(2) 控制寄存器TCON,控制定时器启动、停止及对其标志溢出和中断,如表4所示。
表4 TCON格式
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
① TF0 (TF1):T0 (T1)溢出标志。当T0 (T1)计数溢出,该位被硬件置1,向CPU发出中断请求,若CPU响应,则该位被硬件清0。
② TR0、TR1:运行控制位。软件置1或置0对定时/计数器启动或关闭。
本系统采用12MHz晶振,定时器T0,选用方式1工作模式,TMOD=0x01。
3.2 音频设计
3.2.1 发声原理
声音是由发声物体振动产生,振动的频率高为高音,振动的频率低则为低音。电子琴可以弹奏很多音乐,而每一首完整的音乐是由许多音符构成,每个音符都有自己不同的频率。通过对不同频率进行随意组合并加以控制就构成了不同的乐曲[8]。
利用AT89C51单片机产生一频率的方波的方式模拟产生音符。将单片机的P3.5口线输出高电平,利用定时/计数器T0延时一段时间后再输出低电平,延时的时间不同,单片机的方波输出频率就不同。通过频率的变化产生不同电平去驱动发音电路,就可以得到要弹奏的音符[9]。
3.2.2 音频计算
要产生对应的音频脉冲需要计算出某音符的周期,然后再除以2。在本次设计中震荡电路选择的晶振为12MHz,使用定时/计数器T0,工作模式1。利用单片机的半周期进行计时,计满以后使P3.5反向,再重复计时然后再反向。通过改变计数初值TH0、TL0产生不同频率的脉冲信号。计数脉冲个数与频率的关系:
(2)
计数初值的算法表达式:
(3)
表达式中N代表计数脉冲个数,fi 代表机器频率(晶振为12MHz,其频率为1MHz),fr是音符的频率[10]。
在本次设计中有八个按键,设计产生1、2、3、4、5、6、7、1,八个音符。已知中音DO的频率fr=523Hz,根据表达式得T=65536-500000÷523=64580。按照表达式根据其他音阶的频率计算他们的计数初值得到中高音符与定时器的计数初值,如表5。在编程中建立表格,AT89C51通过软件查询获取数据信息[11]。
表5 音符频率表
音符 频率(Hz) T值 音符 频率(Hz) T值
中 1 DO 523 64580 中 5 SO 784 64898
中 2 RE 587 64684 中 6 LA 880 64968
中 3 M 659 64777 中 7 SI 988 65030
中 4 FA 698 64820 高 1 DO 1064 65058
3.3 I/O并行口驱动LED显示
将单片机的P1.0~P1.1接键盘的2条行线,P1.4~P1.7接键盘4条列线,P0.0~P0.7分别与8个共阳极的LED灯的阴极相连。在弹奏电子琴的过程中,单片机可以通过软件查询到弹奏不同音符时对应的按键状态以及LED 灯指示状态。如表6所示。
- 上一篇:智能变电站电光缆信息(RFID电子标签)非接触识别系统开发
- 下一篇:52单片机步进电机控制系统设计仿真+电路图+源程序
-
-
-
-
-
-
-
乳业同业并购式全产业链...
当代大学生慈善意识研究+文献综述
中考体育项目与体育教学合理结合的研究
杂拟谷盗体内共生菌沃尔...
电站锅炉暖风器设计任务书
酸性水汽提装置总汽提塔设计+CAD图纸
java+mysql车辆管理系统的设计+源代码
大众媒体对公共政策制定的影响
河岸冲刷和泥沙淤积的监测国内外研究现状
十二层带中心支撑钢结构...