您当前的位置:五五电子网电子知识电子学习基础知识电脑-单片机-自动控制利用单片机控制自动演奏乐曲的程序 正文
利用单片机控制自动演奏乐曲的程序

利用单片机控制自动演奏乐曲的程序

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

  单片机通过控制定时器来产生不同频率的方波。驱动扬声器便发出不同音节的声音,再利用延迟来控制发音时间的长短,即可控制节拍。把乐谱中的音符和节拍做成表格存放,由程序查表得到再分别控制定时器和方波的持续时间,当延时结束,再查下一个音符和节拍。依次就可自动演奏乐曲。
  
  我们用定时器O方式1来产生方波,由P1.0输出驱动扬声器。节拍的控制通过调用200微秒延时子程序的次数来实现。一拍调用两次,半拍就是一次。列出列出音符和定时常数对应表:

音符 1 2 3 4 5 6 7 频率Hz 523 587 659 698 784 880 988 TO值 64580 64684 64777 64820 64898 64968 65030

  这里我们还要用到查表指令:MOVCA,@A+DPTR它是把表格的首地址存入DPTR,作为基本地址寄存器,把表格的项数(即所查表格元素在表格中的位置)送到累加器A中,两者相加所得的16位数作为程序存储器的地址,取出该地址所对应单元的内容送到累加器A中。
  
  程序的开始还和以前一样。

  主程序开始先做初始化设置。

  下来就该着查表找音符,确定定时器初值。

  接着控制定时器工作,控制小车动作。

  然后调用延时子程序。

  最后按照简谱把定时值、节拍数和小车动作编成表格,比如《新年好》。

 




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