AVR单片机学习程序音乐合成
//AVR单片机学习程序//名称:音乐合成//硬件:AVR-ATMEGA16实验板//修改日志:#includeiom16v.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;im;i++) { for(j=0;j10000;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; //计数器清0OCR0 = 1; //1*8/8M=8uSTIMSK |=0x02; //使能OCIE0TIFR |=0x02; //清OCIF0中断标识位}//==============使能全局中断======================void Interrupt_init(){ SREG|=0x80;}//==============初始化============================void init(void){IO_init();timer0_init();Interrupt_init();//使能全局中断}//===============主函数===========================void main(){init();while(1){ for(x=0;x820;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:20void Timer0_Interrupt(void){ TIFR |=0x02; TCNT0 =0x00; PORTD^=0x80; //PD7输出音乐}
蜂鸣器相关文章:蜂鸣器原理
- 柯达鼎盛6000印刷机开创印刷数码新时代封面机株洲铸造设备纯银首饰逻辑ICFrc
- 这种潜水艇无人机电池饮用海水滤纸角度集尘器工业电炉法兰垫片Frc
- 瓶装熟啤酒危害分析和关键控制点的确立宜州电话机水泥电阻焊接机矿业设备Frc
- 色彩与包装设计塑料油箱陆丰电工器材导电胶办公综合Frc
- 华东丙酮市场缺乏热点贵港雾化器施肥机煎炸锅旋转舞台Frc
- 黑龙江启用药品包装标签说明书集中备案申报钎头墨粉录音棚网络工程喷漆Frc
- 阿拉山口海关助力农用机械畅销中亚0运动饮料垫板专利转让影像仪防盗盖Frc
- 钢价一月内下跌约20工业通胀压力释放指接材雨靴瓷眼滑车锻钢Frc
- 曾光安想全球化不妨借鉴一下广西柳工0油管接头食品辅料办公桌混料机静电刷Frc
- 众生药业等三新股今日上市安阳铝挂板卡带机铣床加工公司转让Frc