湖南铁路科技职业技术学院单片机课程设计说明书
图 6
4.2 外部中断源系统设计
在本设计中中断源是采用外部中断0方式,其入口地址是0003H。其中断响应级别最高。
(1)定时器/计数器
工作方式寄存器TMOD用于选择定时器/计数器的工作方式和工作模式。其格式如下表4.1: TMOD D7 GATE D6 D5 M1 D4 M0 D3 GATE D2 D1 M1 D0 M0 T1方式字段 表4.1
下面表4.2对TMOD各位进行说明: 门控位—GATE
工作方式选择位—M1、M0 M1 0 0 1 1 M0 0 1 0 1 T0方式字段 工作方式 方式0,为13位定时器/计数器 方式1,为16位定时器/计数器 方式2,8位的常数自动重新装载的定时器/计数器 方式3,仅适用于T0 表4.2
其中,在本设计中采用方式1的16位定时器/计数器。
—计数器模式和定时器模式选择位 =0,为定时器模式。 =1,为计数模式。
定时器/计数器控制寄存器TCON,其格式如下表4.3:
- - 25
湖南铁路科技职业技术学院单片机课程设计说明书
TCON D7 TF1 D6 TR1 D5 TF0 D4 TR0 D3 IE1 D2 IT1 D1 IE0 D0 ITO 表4.3 其各位的功能如下:
TF1、TF0—计数溢出标志位当计数器溢出时,该位置1。 TR1、TR0—计数运行控制位
4.3 基本显示模块设计
基本显示模块设计的重点是由显示代码取得相应的段码,显示段码数据的并行发送,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
程序流程如图4.4所示。
图4.4
- - 26
湖南铁路科技职业技术学院单片机课程设计说明书
4.4 系统初始化程序
RS BIT P2.0;定义液晶显示端口标
RW BIT P2.1 E BIT P2.2 L50MS EQU 60H L1MS EQU 61H L250MS EQU 62H SEC EQU 65H MIN EQU 64H HOU EQU 63H ORG 0000H ORG 000BH
LJMP MAIN LJMP TT0 ORG 001BH LJMP T1INT ORG 1000H MAIN: 液晶初始化 MOV SP,#70H MOV P0,#01H ;清屏 CALL ENABLE
MOV P0,#38H ;8位,2行显示 LCALL ENABLE
4.5音调、节拍以及编码的确定方法
一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能像电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和节拍表示一个音符唱多长的时间。
4.5.1 音调的确定
不同音高的乐音是用C、D、E、F、G、A、B来表示,这7个字母就是音乐的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成简谱的1、2、3、4、5、6、7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐音的发音,所以叫“音调”,即Tone。把C、D、E、F、G、A、B这一组音的距离分成12个等份,每一个等份叫一个“半音”。两个音之间的距离有两个“半音”,就叫“全音”。在钢琴等键盘乐器上,C–D、D–E、F–G、
- - 27
湖南铁路科技职业技术学院单片机课程设计说明书
G–A、A–B两音之间隔着一个黑键,他们之间的距离就是全音;E–F、B–C两音之间没有黑键相隔,它们之间的距离就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它们的左上角加上﹟号或者b号的叫变化音。﹟叫升记号,表示把音在原来的基础上升高半音,b叫降记音,表示在原来的基础上降低半音。例如高音DO的频率(1046Hz)刚好是中音DO的频率(523Hz)的一倍,中音DO的频率(523Hz)刚好是低音DO频率(266 Hz)的一倍;同样的,高音RE的频率(1175Hz)刚好是中音RE的频率(587Hz)的一倍,中音RE的频率(587Hz)刚好是低音RE频率(294 Hz)的一倍。
1)要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。
2)利用AT89C51的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。
此外结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。
3)例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每次技术956次时将I/O反相,就可得到中音DO(523Hz)。
计数脉冲值与频率的关系公式如下: N=Fi?2?Fr N:计算值;
Fi:内部计时一次为1us,故其频率为1MHz;
其计数值的求法如下: T=65536-N=65536-Fi?2?Fr
例如:设K=65536,F=1000000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。高音的DO(1046Hz)的计算值
T=65536-N=65536-Fi?2?Fr=65536-1000000?2?Fr=65536-500000/Fr 低音DO的T=65536-500000/262=63627
- - 28
湖南铁路科技职业技术学院单片机课程设计说明书
低音DO的T=65536-500000/523=64580 低音DO的T=65536-500000/1047=65059
C调各音符频率与计数值T的对照表如表4.4所示。
表4.4 C调各音符频率与计数值T的对照表
低音 Do Do﹟ Re Re﹟ Mi Fa Fa﹟ So So﹟ La La﹟ Si
频率 262 277 294 311 330 349 370 392 415 440 464 494
T 1908 1805 1701 1608 1515 1433 1351 1276 1205 1136 1078 1012
参数 229 217 204 193 182 172 162 153 145 136 129 121
中音 Do Do﹟ Re Re﹟ Mi Fa Fa﹟ So So﹟ La La﹟ Si
频率 523 554 587 622 659 698 740 784 831 880 932 988
T 956 903 852 804 759 716 676 638 602 568 536 506
参数 115 108 102 97 91 86 81 77 72 68 64 61
高音 Do Do﹟ Re Re﹟ Mi Fa Fa﹟ So So﹟ La La﹟ Si
频率 1046 1109 1175 1245 1318 1397 1480 1568 1661 1760 1865 1976
T 57 54 51 48 45 43 41 38 36 34 32 30
参数 57 54 51 48 45 43 41 38 36 34 32 30
4.5.2 节拍的确定
若要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律(固定的律动),而且可以调节各个音的快满度。“节拍”,即Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手或跺脚。若1拍实0.5s,则1/4 拍为0.125s。至于1拍多少s,并没有严格规定,就像人的心跳一样,大部分人的心跳是每分钟72下,有些人快一点,有些人慢一点,只要听的悦耳就好。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。
一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这
- - 29