《音阶声音输出试验〖AT89S52单片机入门教程〗》由会员分享,可在线阅读,更多相关《音阶声音输出试验〖AT89S52单片机入门教程〗(3页珍藏版)》请在金锄头文库上搜索。
1、第22课,音阶声音输出试验 这一课,我们不再输出简单嘀声了,而是要输出各种不同频率的音乐声。先输出基本的音阶,12345671。 为了输出准确的音阶频率,我们需要用定时器输出来控制蜂鸣器的驱动,这里用的我们再每一次定时器中断溢出时取反形成频率驱动蜂鸣器,定时器0工作在16位方式,需要在中断里重新置入初始值。这个值就决定了们在程序里先做好了一张表,预先写好了每个音阶的频率需要设置的初始值。到时调入对应的值进去断溢出时就在这个程序里,我们自动地输出8个音符,每个音符保持1秒钟左右。 # /包括一个52标准内核的头文件 _7; /喇叭输出脚 ; /在中断中装载的,及输出频率对照表 6*2= 0,1
2、/0 0,1# 0,2 0,2# 0,3 0,4 0,4# 0,5 0,5# 0,6 0,6# 0,7 0,0# /13 0,0# /15 0,0,0# /18 0,0# /20 0,0# /22 0,01 01# 02 02# 03 04 04# 05 05# 06 06# 07 /35 ; /定时中断0,用于产生唱歌频率 H0= /调入预定时值 /取反音乐输出2= /音阶声音自动输出试验 n; i; =12,14,16,17,19,21,23,24;/12345671八个音符在频率表中的位置 0 /使用定时器0的16位工作模式 1; 1; 1; ) i=0;i8;i+) /循环播放8个音符 i*2; /置一个音符的值 i*2+1; n=0;n50000;n+); /延时1秒左右 请编译,运行。可以听到8个音符不断循环输出。 作业:循环输出更多的音符