单片机课程设计报告(利用蜂鸣器播放音乐)(3)

2019-01-27 13:41

开始定义全局变量a。变量temp,j,jp。初始化;定时器TMOD=0x0;IE=0x87。外部中断1,2;IT0=1;EX0=1;IT1=1;大循环1从简谱数组中读出音符付给临时变量 temp=sb【i】Y判断简谱是否到达终点 temp=0xffNjp=temp/16点亮二极管 lightTemp=(1<

程序代码: #include #define uchar unsigned char #define uint unsigned int uint a=0;//全局变量控制速度变换 sbit fm=P1^4;//蜂鸣器控制端口 sbit int0=P3^2; sbit int1=P3^3;

uchar timeh,timel;//用于存放定时器的高8位和低8位 uchar code sb[]={//定义送别简谱

0x54,0x32,0x52,0x88,0x64,0x84,0x58,0x54,0x12,0x22,0x34,0x22,0x12,0x28,0x00,0x00,

0x54,0x32,0x52,0x86,0x72,0x64,0x84,0x58,0x54,0x22,0x32,0x46,0xf2,0x18,0x00,0x00,

0x64,0x84,0x88,0x74,0x62,0x72,0x88,0x62,0x72,0x82,0x62,0x62,0x52,0x32,0x12,0x28,0x00,0x00,

0x54,0x32,0x52,0x86,0x72,0x64,0x84,0x58,0x54,0x22,0x32,0x46,0xf2,0x18,0x00,0x00,

0x54,0x32,0x52,0x88,0x64,0x84,0x58,0x54,0x12,0x22,0x34,0x22,0x12,0x28,0x00,0x00,

0x54,0x32,0x52,0x86,0x72,0x64,0x84,0x58,0x54,0x22,0x32,0x46,0xf2,0x18,0x00,0x00

};

//适合12M的晶振定时器初值表,高低8位分开 uchar code chuzhi[]={

0xff,0xff,//占位

0xFC,0x43,//中央C调1-7 0xFC,0xad, 0xFd,0x0a, 0xFD,0x34, 0xFD,0x82, 0xFD,0xc8, 0xFE,0x06, 0xFe,0x21,//高音 0xFe,0x56, 0xFe,0x85, 0xFe,0x9a, 0xFe,0xc1, 0xFe,0xe4, 0xFf,0x03, 0xFc,0x0c

//0xF8,0x18,//高八度1-7

};

void timer0() interrupt 1 //定时器0中断服务程序 {

TH0=timeh; //将timeh赋给计时器的高8位 TL0=timel; //将timel赋给计时器的低8位 fm=~fm; //定时器每次到时将蜂鸣器反相

}

void delay(uint z) //延时165MS,即十六分音符 { }

void delay1(uint z) { }

void main() {

uint temp; //存放简谱数组中的每一个音符的临时变量 uint lightTemp; //存放音符 uchar i=0;

uchar jp; //jp用于取出temp中的高8位和低8位

IT0=1;

//INT0

uint y; for(z;z>0;z--)

for(y=112;y>0;y--);//大致时间

//延时1MS

uint y; for(z;z>0;z--)

for(y=19000-a;y>0;y--);//大致时间

IT1=1; //INT1

TMOD=0x01;//设置定时器T0工作于方式1 IE=0x87; //允许T0中断 while(1) {

temp=sb[i]; if(temp==0xff)

break;

jp=temp/16; //取数的高4位,音频数值 lightTemp=(1<

timeh=chuzhi[jp*2];//构造定时器初值高8位 timel=chuzhi[jp*2+1]; //构造定时器初值低8位 TR0=1; //开定时器 } else {

TR0=0; //关定时器 fm=1; //关蜂鸣器 }

delay(temp); //取数的低4位,节拍(音符总时延) TR0=0; //唱完一个音停5MS fm=1; delay1(5); i++;


单片机课程设计报告(利用蜂鸣器播放音乐)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新课程理念下对写作教学的几点思考

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: