当前位置:首页 > 单片机 > 单片机
[导读]//AVR单片机学习程序 //名称:音乐合成 //硬件:AVR-ATMEGA16实验板 //修改日志: #include<iom16v.h> #include <macros.h>//-------------位拉高-------------------------------------------- #define ADC

//AVR单片机学习程序
//名称:音乐合成
//硬件:AVR-ATMEGA16实验板
//修改日志:
#include<iom16v.h> 
#include <macros.h>

//-------------位拉高--------------------------------------------
#define ADC0_H PORTA|=BIT(PA0)
#define ADC1_H PORTA|=BIT(PA1)  
#define LEDLK_H PORTA|=BIT(PA2)  //流水灯选通
#define SEGLK_H PORTA|=BIT(PA3)  //数码管段码选通
#define BITLK_H PORTA|=BIT(PA4)  //数码管位选通
//#define 18B20_H PORTA|=BIT(PA5)
#define BEEP_H PORTA|=BIT(PA6)   //蜂鸣器
#define CUSB_H PORTA|=BIT(PA7)
//#define ~YY PORTD|=BIT(PD7)
//-------------位拉低--------------------------------------------
#define ADC0_L PORTA&=~BIT(PA0) 
#define ADC1_L PORTA&=~BIT(PA1)   
#define LEDLK_L PORTA&=~BIT(PA2)  
#define SEGLK_L PORTA&=~BIT(PA3)  
#define BITLK_L PORTA&=~BIT(PA4)  
//#define 18B20_L PORTA&=~BIT(PA5) 
#define BEEP_L PORTA&=~BIT(PA6) 
#define CUSB_L PORTA&=~BIT(PA7) 
//#define YY PORTD&=~BIT(PD7)

#define NOP() asm("nop")

#define uchar unsigned char
#define uint unsigned int

uint a,x;

//====================音乐数据表=============================================

__flash uchar yin[]={
//《我们从这里起飞》
119,119,106,94,119,106,119,106,119,159,
119,119,106,94,89,94,106,142,126,119,94,106,94,89,79,71,79,94,106,
126,119,106,94,142,159,119,94,71,79,94,119,106,159,106,119,
119,119,89,79,71,79,71,59,71,89,71,79,79,79,94,71,79,94,119,
106,159,126,119,106,119,119,89,79,71,59,71,89,71,79,94,
59,79,94,71,79,94,119,106,159,94,106,119,
119,119,106,94,119,106,119,106,119,159,
119,119,106,94,89,94,106,142,126,119,94,106,94,89,79,71,79,94,106,
126,119,106,94,142,159,119,94,71,79,94,119,106,159,106,119,
//119,119,106,94,89,94,89,71,89,106,89,94,94,94,119,94,94,119,119,
//126,159,126,119,106,119,119,106,94,89,71,89,106,89,94,119,
//79,94,119,94,94,119,119,126,159,142,126,119,
119,119,89,79,71,79,71,59,71,89,71,79,79,79,94,71,79,94,119,
106,159,126,119,106,119,119,89,79,71,59,71,89,71,79,94,
59,79,94,71,79,94,119,106,159,94,106,119,
59,79,94,71,79,89,94,79,79,71,63,59,0,
//《你怎么说》
60,60,53,59,71,79,95,80,71,59,80,80,71,59,
53,53,59,53,47,0,39,47,53,47,47,79,71,
59,47,53,0,79,39,47,53,79,47,53,59,
59,53,47,47,39,47,53,59,71,79,59,59,53,47,94,79,94,106,94,
79,79,71,59,59,59,53,47,39,47,39,47,39,47,53,
59,53,53,59,53,47,47,53,59,53,47,39,0,79,39,47,
53,79,47,53,59,
60,60,53,59,71,79,95,80,71,59,80,80,71,59,
53,53,59,53,47,0,39,47,53,47,47,79,71,
59,47,53,0,79,39,47,53,79,47,53,59,
59,53,47,47,39,47,53,59,71,79,59,59,53,47,94,79,94,106,94,
79,79,71,59,59,59,53,47,39,47,39,47,39,47,53,
59,53,53,59,53,47,47,53,59,53,47,39,0,79,39,47,
53,79,47,53,59,
0,
//《八月桂花香》
59,71,79,71,59,79,71,59,71,79,71,59,79,
79,71,59,53,71,79,94,79,106,94,79,119,
79,71,59,79,94,106,119,106,79,71,59,79,94,106,119,106,
79,71,59,53,71,79,94,79,106,94,79,119,
79,71,59,53,71,79,94,47,59,53,47,59,0,
//《阿里山的姑娘》
94,79,94,106,94,79,71,79,94,106,94,79,94,94,106,106,
142,119,106,119,142,159,142,71,71,71,79,79,94,94,94,106,106,94,119,
142,142,106,106,106,94,79,94,94,106,94,106,119,119,106,119,142,159,142,142,
119,142,142,159,106,94,106,119,106,94,79,94,106,94,106,142,119,106,119,142,
159,142,71,71,71,79,79,94,94,106,94,106,94,119,142,142,106,106,106,94,
79,94,94,106,94,106,119,119,106,119,142,159,142,94,106,94,79,71,79,94,
106,94,79,94,106,142,119,106,119,142,159,142,71,71,71,79,79,94,94,106,
94,106,94,119,142,142,106,106,94,79,94,79,106,94,79,71,0,
71,71,71,71,71,59,53,59,71,79,94,71,79,59,71,79,106,94,79,79,106,94,106,142,
94,106,94,79,106,94,142,119,94,106,119,142,142,142,
94,106,94,79,71,79,94,
106,94,79,94,106,142,119,106,119,142,159,142,71,71,71,79,79,94,94,106,
94,106,94,119,142,142,106,106,94,79,94,79,106,94,79,71,0,
71,71,71,71,71,59,53,59,71,79,94,71,79,59,71,79,106,94,79,79,106,94,106,142,
94,106,94,79,106,94,142,119,94,106,119,142,142,142,
94,106,94,79,71,79,94,

};

//---------------------节拍表------------------------------------------------
__flash uchar time[]={
40,40,40,40,160,40,40,40,40,160,
40,40,40,40,40,40,80,40,40,40,40,160,40,40,40,40,120,20,20,
40,40,40,40,160,40,40,40,40,40,40,80,40,80,40,160,
40,40,40,40,120,20,20,40,40,40,40,160,40,40,40,40,40,40,80,
40,40,40,40,160,40,40,40,40,160,40,40,40,40,80,80,
40,40,40,40,40,40,80,40,80,20,20,160,
40,40,40,40,160,40,40,40,40,160,
40,40,40,40,40,40,80,40,40,40,40,160,40,40,40,40,120,20,20,
40,40,40,40,160,40,40,40,40,40,40,80,40,80,40,160,
//40,40,40,40,120,20,20,40,40,40,40,160,40,40,40,40,40,40,80,
//40,40,40,40,160,40,40,40,40,160,40,40,40,40,80,80,
//40,40,40,40,40,40,80,40,80,20,20,160,
40,40,40,40,120,20,20,40,40,40,40,160,40,40,40,40,40,40,80,
40,40,40,40,160,40,40,40,40,160,40,40,40,40,80,80,
40,40,40,40,40,40,80,40,80,20,20,160,
40,40,50,55,60,65,240,40,80,20,20,160,200,//198个

120,20,20,80,40,40,40,80,20,20,200,40,40,40,40,40,40,40,160,40,
40,40,40,40,40,40,40,60,40,80,40,40,40,40,40,40,40,40,255   ,120,
40,80,40,40,40,40,40,40,160,40,40,40,40,40,20,20,40,40,240,40,
40,120,40,80,40,20,20,40,40,20,20,20,20,160,40,40,40,40,40,20,
20,40,20,20,255,40,40,40,40,40,40,40,40,250,//96个
120,20,20,80,40,40,40,80,20,20,200,40,40,40,40,40,40,40,160,40,
40,40,40,40,40,40,40,60,40,80,40,40,40,40,40,40,40,40,255   ,120,
40,80,40,40,40,40,40,40,160,40,40,40,40,40,20,20,40,40,240,40,
40,120,40,80,40,20,20,40,40,20,20,20,20,160,40,40,40,40,40,20,
20,40,20,20,255,40,40,40,40,40,40,40,40,250,255,

60,20,80,20,20,20,20,80,40,40,40,40,160,60,20,40,40,40,40,80,
40,40,40,40,160,40,20,20,40,40,40,40,80,40,20,20,40,40,40,40,
80,60,20,40,40,40,40,80,40,40,40,40,160,60,20,40,40,40,40,80,
120,40,80,80,160,200,//66个

20,10,10,20,20,20,10,10,20,20,120,20,20,30,10,30,10,20,10,10,
20,20,160,20,20,20,20,20,20,40,20,20,20,20,20,20,40,30,10,20,
20,20,20,40,30,10,20,20,20,10,10,20,20,160,20,10,10,20,20,20,
10,10,20,20,120,20,20,20,20,20,20,20,10,10,20,20,160,20,20,20,
20,20,20,40,20,20,20,20,20,20,40,30,10,20,20,20,20,40,30,10,
20,20,20,10,10,20,20,160,40,20,20,20,10,10,20,20,120,20,20,60,
20,20,10,10,20,20,160,30,10,20,20,20,20,40,30,10,30,10,20,20,
40,40,20,20,40,20,20,80,60,20,255,40,//153个
30,10,20,20,20,20,20,20,40,20,20,40,20,20,40,20,20,20,20,20,20,20,
20,40,40,20,20,40,20,20,20,20,20,10,10,40,40,80,
40,20,20,20,10,10,20,20,120,20,20,60,
20,20,10,10,20,20,160,30,10,20,20,20,20,40,30,10,30,10,20,20,
40,40,20,20,40,20,20,80,60,20,255,
20,20,10,10,20,20,160,30,10,20,20,20,20,40,30,10,30,10,20,20,
40,40,20,20,40,20,20,80,60,20,255,
};
//===================延时MS子程序===========================================
void delayms(uint m)
{
  uint i,j;
  for(i=0;i<m;i++)
  {
    for(j=0;j<10000;j++);
  }
}
//==============IO初始化=========================
void IO_init(void)
{
DDRA  = 0xff;
PORTA = 0XFF;
DDRB  = 0xff;
DDRC  = 0xff;
DDRD  = 0xff;
}
//==============定时器T0初始化====================
void timer0_init(void)
{
TCCR0 = 0x0B; //64分频
TCNT0 = 0x00;  //计数器清0
OCR0  = 1;     //1*8/8M=8uS
TIMSK |=0x02;  //使能OCIE0
TIFR  |=0x02;  //清OCIF0中断标识位
}
//==============使能全局中断======================
void Interrupt_init()
{
  SREG|=0x80;
}
//==============初始化============================
void init(void)
{
IO_init();
timer0_init();
Interrupt_init();//使能全局中断
}
//===============主函数===========================
void main()
{
init();
while(1)
{
   for(x=0;x<820;x++)
   {
     a=yin[x];
  if(a==0){DDRD=0x00;}
     else  {DDRD=0xFF;OCR0=a;}
     a=time[x];
     delayms(a);
  DDRD=0x00;
  delayms(1);
   } 
}
}
//============定时器T0中断服务子程序===============
#pragma interrupt_handler Timer0_Interrupt:20
void Timer0_Interrupt(void)
{
  TIFR |=0x02;
  TCNT0 =0x00;
  PORTD^=0x80;   //PD7输出音乐
}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

慕尼黑2024年5月9日 /美通社/ -- TÜV南德意志集团(以下简称"TÜV南德")持续保障安全、可靠及可持续发展。作为全球化的服务提供商,TÜV南德2023年全年营收达约31亿欧元,首次突破30亿欧元大关,同比增长...

关键字: BSP 可持续发展 数字化 人工智能

凭借深度学习技术和SmartBid产品,百度国际MediaGo获得美国商业奖认可 旧金山2024年5月6日 /美通社/ -- 第22届美国商业奖(American Business Award®)近日发布获奖名...

关键字: MEDIA GO SMART BSP

上海2024年4月17日 /美通社/ -- 在2024 F1中国站即将拉开帷幕之际,高端全合成润滑油品牌美孚1号今日举办了品牌50周年庆祝活动。三届F1年度车手总冠军马克斯•维斯塔潘也亲临现场,共同庆祝这一里程...

关键字: BSP 汽车制造 行业标准 产品系列

北京2024年4月17日 /美通社/ -- 2024年4月13日,由北京康盟慈善基金会主办的"县域诊疗,规范同行"——肿瘤诊疗学术巡讲项目首站在广州隆重召开。本次会议邀请全国多位肺癌领域专家和县域同道...

关键字: AI技术 医疗服务 BSP 互联网

海口2024年4月16日 /美通社/ -- 4月14日,在中法建交60周年之际,科学护肤先锋品牌Galenic法国科兰黎受邀入驻第四届中国国际消费品博览会(以下简称"消博会")法国馆。Galenic法...

关键字: NI IC BSP ACTIVE

上海2024年4月17日 /美通社/ -- 每年4月17日是世界血友病日。今年,世界血友病日以"认识出血性疾病,积极预防和治疗"为主题,呼吁关注所有出血性疾病,提升科学认知,提高规范化诊疗水平,让每一位出血性疾病患者享有...

关键字: VII 动力学 软件 BSP

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

全球领先的科技公司默克推出了同类产品中首个经验证的全新一体化遗传稳定性分析。 Aptegra™ CHO遗传稳定性检测利用全基因组测序和生物信息学,显著加快了客户的生物医药安全性测试,从而帮助加快了客户进入商业生产的步伐。...

关键字: 稳定性分析 BSP 人工智能

常州2023年9月25日 /美通社/ -- 9月23日,由江苏省商务厅指导,世界中餐业联合会、常州市人民政府主办的"第三届中华节气菜大会暨首届江南美食节"在江苏常州开幕。文化和旅游部国际交流与合作局一...

关键字: BSP 可持续发展 大赛 质量控制
关闭
关闭