}
}
TR0=0; //关定时器 fm=1; //关蜂鸣器
void delay_ms(uint a){ }
void INT0_svr(void) interrupt 0 { }
void INT1_svr(void) interrupt 2 {
delay_ms(10); if(int1==0){
a-=2000; if(a<=0)a=0;}
int i,j; for(i=a;i>=0;i--)
for(j=110;j>=0;j--){}
delay_ms(10); if(int0==0){ }
a+=2000; if(a>18000)a=0;
}
3 运行结果或者测试结果
测试结果:利用蜂鸣器实现了播放音乐的功能,并有节奏的闪灭二极管,可以进行速度的变换。达到了预期的目标,测试成功。
4 遇到的问题及解决的方法
在设计的过程中主要遇到以下问题: 1.计算机与单片机的连接不上问题
计算机与单片机的连接需要在电脑端安装相应的USB转串的驱动,由于我组没有使用实验室windows xp系统,而使用的是个人计算机windows 7系统,所以需要针对win 7 的驱动。后来联网搜索下载相应的驱动之后解决了这一问题。 2.如何使蜂鸣器发出声音而非Be-Be声
为了解决这个问题,我们深入研究了蜂鸣器发声原理与乐谱相关
的知识。通过学习相关知识发现,不同的音符对应不同的音高,音高取决于发声频率。所以可以通过构造不同频率的方波来使蜂鸣器发出不同频率的声音,具体实现时利用定时器计时,定时器每一次累加消耗一个机器周期,即12个时钟周期。本实验采用晶振频率为12MHz,即定时器每一次累加消耗1us,通过设置定时器初值设定蜂鸣器取法的时间间隔,从而产生相应的音频。
每个音符不但有频率属性,还有节拍属性。对不同节拍的控制可
以采用延迟一定的时间来得到。
3.音乐节奏的调节
设置全局变量a,似的程序每循环一次就让音符的延时减一次a或加一次a,并利用中断让按键来控制。
5 总结
在本次课程设计中,我们进一步加深了对小型嵌入式系统的认识。实验初期单片机需要自己焊接,通过亲手焊接电路板,了解了如何将实验原理图转化为具体的硬件实物连接。通过使用TN单片机开发板和STC89C52RC系统,对单片机应用开发有了初步的熟悉。在实验的过程中,使用到了C51的编译环境Keil C和单片机通讯程序STC_ISP,两者是单片机开发所不可缺少的工具。在具体实施的过程中,通过一一解决遇到的问题,增强了动手实践能力。