您当前的位置:五五电子网电子知识电子学习基础知识电脑-单片机-自动控制AVR单片机学习程序(音乐合成) 正文
AVR单片机学习程序(音乐合成)

AVR单片机学习程序(音乐合成)

点击数:7202 次   录入时间:03-04 11:38:45   整理:http://www.55dianzi.com   电脑-单片机-自动控制

    //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

[1] [2]  下一页


本文关键字:单片机  程序  音乐  电脑-单片机-自动控制电子学习 - 基础知识 - 电脑-单片机-自动控制