目 录
1、设计课题任务、功能要求说明及总体方案介绍
1.1 设计课题任务……………………………………………………………………1 1.2 功能要求说明……………………………………………………………………1 1.3 设计课题总体方案介绍及工作原理说明………………………………………1 2、设计课题硬件系统的设计
2.1 设计课题硬件系统各模块功能简要介绍…………………………………… 5 2.2 设计课题电路原理图、PCB图、元器件布局图…………………………… 5 2.3 设计课题元器件清单………………………………………………………… 5 3、设计课题软件系统的设计
3.1 设计课题使用单片机资源的情况…………………………………………… 7 3.2 设计课题软件系统各模块功能简要介绍…………………………………… 7 3.3 设计课题软件系统程序流程框图……………………………………………7 3.4 设计课题软件系统程序清单…………………………………………………7 4、设计结论、仿真结果、误差分析、教学建议等等
4.1 设计课题的设计结论及使用说明……………………………………………10 4.2 设计课题的仿真结果…………………………………………………………10 4.3 设计课题的误差分析…………………………………………………………10 4.4 设计体会………………………………………………………………………10 4.5 教学建议………………………………………………………………………11 参考文献…………………………………………………………………………………12 致谢………………………………………………………………………………………13 附录………………………………………………………………………………………14
第一章 设计课题任务、功能要求说明及总体方案介绍
1.1 设计课题任务
设计一个具有特定功能的音乐播放器。该音乐播放器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该音乐播放器可以播放多首音乐,曲目选择可以由键盘控制,曲目名称可以显示在显示器上。
1.2 功能要求说明
(1) 该音乐播放器上电后显示系统提示符“P.”。
(2) 在按下第一个键后就播放第一首歌曲,并在显示器上显示“1”。 (3) 在按下第二个键后就播放第二首歌曲,并在显示器上显示“2”。 (4) 在按下第三个键后就播放第三首歌曲,并在显示器上显示“3”。
(5) 在播放音乐的中间能切换歌曲,在放完一首歌后回到起始状态,下一步的动作由人控制。
1.3设计课题总体方案介绍及工作原理说明 本设计由
所示
AT89C52 单片机,3*1独立键盘,数码管等构成。总体方案图如图1.1
3*1键盘P1P0复位电路AT89C52P2蜂鸣器数码管显示器晶振电路P3
1
图1.1 总体方案图 (1)总体原理:
乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,由蜂鸣器放出,就产生了美妙和谐的乐曲。 (2) 单片机产生不同频率脉冲信号的原理:
1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。
2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下:
例如,频率为523Hz,其周期天/523 S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。 计数脉冲值与频率的关系公式如下: N=Fi/2/Fr
(N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率 ) (3)其计数值的求法如下: 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 中音DO的T=65536-500000/523=64580 高音DO的T=65536-500000/1047=65059
(4) 每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,下表为节拍码的对照。但如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如下表为1/4和1/8节拍的时间设定。 1/4节拍 1/8节拍
节拍码 节拍数 节拍码 节拍数 1 1/4拍 1 1/8拍
2
2 2/4拍 2 1/4拍 3 3/4拍 3 3/8拍 4 1拍 4 1/2拍 5 1又1/4拍 5 5/8拍 6 1又1/2拍 6 3/4拍 7 1又3/4拍 7 7/8拍 8 2 拍 8 1 拍 9 2又1/4拍 9 1又1/8拍 A 2又1/2拍 A 1又1/4拍 B 2又3/4拍 B 1又3/8拍 C 3拍 C 1又1/2拍 D 3又1/4拍 D 1又5/8拍 E 3又1/2拍 E 1又3/4拍 F 3又3/4拍 F 1又7/8拍
各调节拍的时间设定 1/4节拍 1/8节拍
曲调值 DELAY 曲调值 DELAY 调4/4 125毫秒 调4/4 62毫秒 调3/4 187毫秒 调3/4 94毫秒 调2/4 250毫秒 调2/4 125毫秒 ⑹ 建立音乐的步骤:
1)先把乐谱的音符找出,然后由上建立T值表的顺序。
2)把T值表建立在TABLE1,构成发音符的计数值放在“SONG”。
3)简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“SONG”处。
简谱对应的简谱码、T值、节拍数 简谱 发音 简谱码 T值 节拍码 节拍数 5 低 5SO 1 64260 1 1/4拍 6 低 6LA 2 64400 2 2/4拍 7 低 7SI 3 64524 3 3/4拍 1 中 1DO 4 64580 4 1拍 2 中 2RE 5 64684 5 1又1/4拍
3
3 中 3M 6 64777 6 1又2/4拍 4 中 4FA 7 64820 7 1又3/4拍 5 中 5SO 8 64898 8 2拍 6 中 6LA 9 64968 9 2又1/4拍 7 中 7SI A 65030 A 2又2/4拍 1 高 1DO B 65058 B 2又3/4拍 2 高 2RE C 65110 C 33 高 3M D 65157 D 34 高 4FA E 65178 E 35 高 5SO F 65217 F 3 不发音 0
拍 又1/4拍 又2/4拍 又3/4拍 4
第二章 设计课题硬件系统的设计
2.1 设计课题硬件系统各模块功能简要介绍
本设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块、输入模块、输出模块、电源模块。
1、 单片机最小系统模块:包括低功耗、高性能CMOS 8位微控制器AT89S52,复位电路,晶振电路。本模块AT89S52系统控制核心,单片机系统复位又复位电路完成,由外部提供晶振频率。
2、 输入模块:本模块用了四个按键,一个复位键,单片机运行期间,利用此键完成复位操作。三个控制键,为独立式键盘,为音乐选择键,按下键一,选中第一首歌,以此类推。
3、 输出模块:本模块包括显示区和音乐输出区,显示区由一个数码显示管构成,用来显示选中歌曲的序号。音乐输出区由一个建议的喇叭或分频器构成,用以播放音乐。
4、 电源模块:为了节约成本和设计时间,本模块由市面销售的USB接口和USB线构成,没有另外设计编程器了。
2.2 设计课题电路原理图、PCB图、元器件布局图
设计课题电路原理图,见附录 设计课题电路PCB图,见附录 设计课题电路元器件布局图,见附录
2.3 设计课题元器件清单
设计课题元器件清单如表2.1所示
5
表2.1 设计所用元器件清单
元器件名称 STC89C52RC芯片 四位一体共阴数码管 晶振 普通电容 极性电容 按键 电源接口 排阻 电阻 电阻
标值 11.0592MHz 30pF 22μF 4.7KΩ 0.2 KΩ 1 KΩ 数量 1块 1个 1个 2个 1个 4个 1个 1个 4个 1个 6
第三章 设计课题软件系统的设计
3.1 设计课题使用单片机情况
本设计使用单片机资源情况如下:
P0口输出数码管段选信号,P3.1输出数码管段选信号,晶振11.0592M HZ P1.0至P1.2为按键接口,P2.1为喇叭或蜂鸣器接口。
3.2 设计课题软件系统各模块功能简要介绍
本设计的软件系统主要采用以下几个基本模块来实现,主程序、定时中断服务程
序、键盘扫描程序、显示程序及延时程序。
主程序: 主要用于对输入信号的处理,输出信号的控制,对各功能模块的运用于综合。以及将音乐简谱码从表中取出,并将其翻译成对应的频率,延迟对应的时间节拍,并输出给蜂鸣器。
定时中断服务程序:主要用来确定节拍,并完成相应的延时。 键盘扫描程序:主要用来判断是否有键按下并得到相应的键码值。 显示程序:主要用来显示选到歌曲的序号。
延时程序:本程序中有两个延时子程序,一个为去抖动延时程序,另一个为187ms四分之一拍的基本延时子程序。
3.3 设计课题软件系统程序流程框图
本设计采用汇编语言按模块化方式进行设计,然后通过KEIL软件开发平台将程序转变成十六进制程序语言,接着使用proteous进行仿真,读出显示数据,判断播放的音乐。
主程序流程框图如图3.1所示; 键盘扫描子程序流程框图如图3.2所示。
3.4 设计课题软件系统程序清单
设计课题软件系统程序清单,详见附录一。
7
开始系统初始化,显示P点调键盘扫描子程序1键是否按下送第一首歌的地址并显示1Y2键是否按下送第二首歌德地址并显示2NY3键是否按下YN送第三首歌首地址并显示3Y到表格取码并判断是否结束N将取得码的高四位与T值对应将取得码的低四位与相应的延时对应调键盘扫描子程序将得到的简谱码转化为相应的频率将产生的频率送往P2.1
图3.1 主程序流程框图
8
开始N有键按下Y调DIR去抖动调DIR去抖动N键是否确实按下Y计算保存键值N按键是否释放Y调DIR延时恢复键值返回
图3.2 键扫子程序流程框图
9
第四章 设计结论、仿真结果、误差分析、教学建议
4.1 设计课题的设计结论及使用说明
本设计为基于单片机的音乐播放器设计。刚开始毫无头绪,跟本不知道音乐是怎么产生的,各种调,节拍的音乐是怎么放出来的,通过查资料,我明白了音乐播放器的基本原理,在我算出所需的T值后我找了几首歌的简谱并将其转化为相应的简谱码,接着我确定了基本设计方案。通过好几个日夜的keil调试,程序终于出来了,但令我失望的是在proteus上仿真时只有喇叭的嘟嘟声而没有我日思夜想的音乐。通过认真思考及仔细盘查终于找出了原因,原来是电路原理图的错误,在更正了电路原理图后,音乐总算是出来了。本设计有三个按键用来选择播放的曲目,一个数码管用来显示所选曲目的序号,按下key1键播放第一首音乐,按下key2键停止播放第一首,开始播放第二首,按下key3键停止播放第二首,开始播放第三首,并且数码管的显示与歌曲同步。这样的结果与设计要求完全相符,设计成功。
4.2 设计课题的仿真结果
当播放器上电的时候显示P点,如图4.1所示;按下一键的时候,显示1,如图4.2所示;按下第二个键时显示2,如图4.3所示,按下第三个键时显示3,如图4.4所示。
图4.1 P点 图4.2 1 图4.3 2 图4.4 3
4.3 设计体会
通过此次设计,我对音乐播放器播放音乐的原理有了相当深刻的体会,对汇编语
言有了更深的了解。其中对子程序的运用有了很深的映像,子程序的灵活运用大大的简化了程序的编写,也使得程序很直观,透彻。通过这2周的设计,我感觉有很
10
大的收获:首先,通过学习使自己对课本上的知识可以应用于实际,使的理论与实际相结合,加深自己对课本知识的更好理解,同时实习也段练了我个人的动手能力:能够有方向有目的的去查阅资料,增加了许多课本以外的知识。对所学的课程有了进一步的深入了解,能达到学以致用。对我们学生来说,理论与实际同样重要,这是我们以后在工作中说明自己能力的一个重要标准。特别是实物的制作,对我们动手能力是一个很严峻的考验。我的实物最终以失败告终,但我并不后悔,从失败中我学会了很多很多,对我以后的学习和工作将会有很大的帮助。
4.4 教学意见
经过一个学期的单片机学习,在王韧老师详细的教导之下,我掌握了很多单片机学习的宝贵经验,尤其是编程思路和软件的使用方面。思路是编程的灵魂,没有它你的程序很难出来。在编程之前确定好编程思路,编程的过程才会顺畅,程序的质量才会高。在王老师到的课堂中,幽默轻松的教学方式让课堂很活跃,一些亲身的体会让我们对单片机得了解更加透彻。而对我们人生道路的引导更让我们受益匪浅。针对我自己的认识,我有以下几点想对老师说:
(1)关于本专业毕业以后的发展方向,考研方向,就业方面应该具体讲一讲。 (2)关于单片机的最新动态,它的升级产品以及可以代替它的产品经常给学生讲讲。 (3)回答问题不要老针对那几个熟悉的人,可以直接点学号,给每一个人包括那些胆小的一次表现的机会。
(4)实验课上不要将精力全部倾注于女生身上。
11
参考文献
【1】谢自美主编. 电子线路设计.试验.测试(第一版). 武汉:华中科技大学出版社,2000.
【2】张毅刚等编著.MCS-51单片机应用设计.哈尔滨:哈尔滨工业大学出版社,2003。【3】康华光主编. 电子技术基础数字部分(第四版).北京:高等教育出版社,2003。【4】康华光主编. 电子技术基础模拟部分(第四版).北京:高等教育出版社,2002。 【5】Xie from the U.S. editor in chief. Electronic circuit design. Test. Test (first edition). Wuhan: Huazhong University of Science and Technology Press, 2000.
【6】ZHANG Yi-gang eds. MCS-51 microcontroller applications. Harbin: Harbin Institute of Technology Press, 2003.
12
致 谢
经过3周的忙碌,本次课程设计在几经波折之后总算已经完成,虽然不是特别理想,但在此,我要感谢每一个帮助过我的人。
首先,我要感谢的是我的老师王韧老师。王老师平日里工作繁多,但在我做课程设计的每个阶段,都抽出休息时间来给予我悉心的指导和帮助。可以说,没有王老师的悉心指导和帮助,我是不可能顺利完成我的课程设计的。另外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。同时也要感谢那些在我陷入困境中帮我走出来的兄弟同学们。
总之,感谢每一位关心过我,爱护过我的人。最后,再次感谢我的老师王韧老师。
13
14
附 录
;基于51单片机的简易音乐播放器,可以播放三个音乐片段,由三个按键控制
ORG 0000H JMP START
ORG 000BH JMP TIMER0 START: MOV TMOD, #01H ; MOV IE, #82H ;LOOP: CLR P3.0 MOV P0, #00001100B
LCALL KEY LOOP1: MOV A , 20H
START0:CJNE A , #01H , START1 LJMP SONG1
START1:CJNE A , #02H , START2 LJMP SONG2
START2:CJNE A , #04H , START3 LJMP SONG3 START3:LCALL DIR LJMP LOOP
SONG1 :MOV 30H, #LOW SING1 ; MOV P0, #11111001B LJMP NEXT
SONG2 :MOV 30H, #LOW SING2 MOV P0, #10100100B LJMP NEXT
SONG3 :MOV P0, #10110000B MOV 30H, #LOW SING3 LJMP NEXT
NEXT: MOV A, 30H MOV DPTR, #TABLE
MOVC A, @A+DPTR MOV R2, A JZ STOP ANL A, #0FH MOV R5, A MOV A, R2 SWAP A
ANL A, #0FH JNZ SING ;
;TIMER0 ; ; ; ; ; ; 中断起始地址 跳至TIMER0中断子程序 设TIMER0在MODE1 中断使能 开机显示P点 调键扫 第一首歌的地址 至相关页取码,高4位位音符的高低 ;低4位为音符的节拍
检查简谱码是否已结束(有无00?) 取节拍(低4位) ;存入R5,节拍的时间 ;取音频值(高4位)
是否为0,是0则不发音
15
CLR TR0 JMP W1
SING: DEC A ;因0不列入 MOV 22H,A ;存入(22H) RL A ;乘2 MOV DPTR, #TABLE
MOVC A, @A+DPTR ;至TABLE取码,取T的值 MOV TH0, A ;取得的高位字节存入TH0 MOV 21H, A ;取得的高位字节存入(21H) MOV A, 22H ;再载入取得的音符码 RL A ;乘2 INC A ;加1 MOVC A, @A+DPTR
MOV TL0, A ;取得的低位字节存入TL0 MOV 20H, A ;取得的低位字节存入(20H) LCALL TT ;调键盘扫描子程序 SETB TR0
w1: LCALL DELAY ;调延时子程序 INC 30H ;首地址加一 JMP NEXT STOP: CLR TR0 JMP LOOP
;**************************中断服务子程序******************************* TIMER0:PUSH ACC ;将A的值暂存于堆栈 PUSH PSW ;将PSW的值暂存于堆栈 MOV TL0, 20H ;重设计数值 MOV TH0, 21H CPL P2.1 POP PSW POP ACC RETI
;***************************187毫秒子程序******************************* DELAY:MOV R7, #2 ;187毫秒子程序 W2: MOV R4, #187 w3: MOV R3, #248 DJNZ R3, $ DJNZ R4, W3 DJNZ R7, W2
DJNZ R5, DELAY ;决定节拍 RET
;*************************键盘扫描小子程序********************************** TT: JNB P1.0, SONG1
16
JNB P1.1, SONG2 JNB P1.2, SONG3 RET
;*************************键扫子程序*************************************** KEY: LCALL KS JZ EXIT LCALL DIR LCALL DIR LCALL KS JZ EXIT
MOV B, 20H EXIT: RET
KEYS :LCALL KS JZ KEY1
LCALL DIR LJMP KEYS
KEY1: MOV B, 20H RET
KS: PUSH PSW ;P0口数据处理子程序 CLR RS1 SETB RS0
MOV P1, #0FFH MOV A, P1 CPL A
ANL A, #0FH MOV 20H, A CLR RS1 CLR RS0 POP PSW RET
DIR: MOV R7, #20 ;延时去抖动子程序 WW: MOV R3, #248 DJNZ R3, $ DJNZ R7, WW RET
;*****************************表格*********************************** ORG 300H
TABLE:DW 64260,64400,64524,64580 DW 64684,64777,64820,64898 DW 64968,65030,65058,65110 DW 65157,65178,65217
SING1: ;第一首 生日快乐
17
;1
DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H
DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H ;2
DB 82H,01H,81H,0F4H,0D4H DB 0B4H,0A4H,94H
DB 0E2H,01H,0E1H,0D4H,0B4H DB 0C4H,0B4H,04H ;3
DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H
DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H ;4
DB 84H,01H,81H,0F4H,0D4H DB 0B4H,0A4H,94H
DB 0E2H,01H,0E1H,0D4H,0B4H DB 0C4H,0B4H,04H DB 00H
SING2: ;第二首 两只老虎 ;1
DB 44H,54H,64H,44H DB 44H,54H,64H,44H DB 64H,74H,88H DB 64H,74H,88H ;2
DB 82H,92H,82H,72H,64H,44H DB 82H,92H,82H,72H,64H,44H DB 44H,84H,48H DB 44H,14H,48H DB 00H
SING3: ;第三首 三只小猫 ;1
DB 62H,82H,82H,62H,98H DB 92H,0B2H,0B2H,82H,98H DB 62H,82H,82H,52H,68H DB 92H,0B2H,0B2H,82H,98H ;2
DB 62H,82H,82H,62H,92H,92H,94H DB 92H,0B2H,0B2H,92H,84H,94H DB 0B8H,0B4H,04H DB 00H END
18
.
19
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- ryyc.cn 版权所有 湘ICP备2023022495号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务