单片机课程设计.doc

单片机课程设计.doc

ID:30950570

大小:43.68 KB

页数:24页

时间:2019-01-04

单片机课程设计.doc_第1页
单片机课程设计.doc_第2页
单片机课程设计.doc_第3页
单片机课程设计.doc_第4页
单片机课程设计.doc_第5页
资源描述:

《单片机课程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单片机课程设计简易电子琴一、课设要求所设计简易电子琴能够单曲循环,且能暂停播放,能够实现按键发音功能,能够让点阵LED显示播放声音音调的高低.二、设计思路首先,本实验主要依靠单片机开发板上的喇叭来发出声音,不同的音调对应不同的频率,喇叭发出声音需要正弦波驱动,由于单片机只能输出方波,所以不能用单片机直接驱动喇叭,但是开发板上有自带的喇叭驱动模块,能够将方波转换成同频率的正弦波,所以本次实验的核心模块是让单片机的两个定时器相互配合,改变单片机输出方波的频率和时间,让喇叭发出不同频率,不同节拍的声音,最后形成一首完整的

2、歌曲.其次,按键发音功能也是靠两定时器相互配合实现,只是加了一个计算键值的模块,将所得键值转换成输出的频率来发声.最后,LED显示音调功能是把歌曲的不同音调转换成点阵不同的行点亮来实现.下面将详细介绍各模块的程序及其功能.三、硬件连接:本次课设使用上海朗译科技公司的型号为LY-51S单片机开发板,单片机型号为STC89RD541.单片机P1.0口接喇叭输入口(J42B1插针)2.P1.1口接独立按键区K3插针3.P1.2口接独立按键区K4插针4.P3.2口(INT0)接独立按键区K1插针5.P3.3口(INT1)接

3、独立按键区K2插针6.P3.7,P3.6,P3.5分别接于J4的SER(数据输入),SRCLK(移位时钟),RCLK(锁存输出)7.P1.7,P1.6,P1.5分别接于J5的SER(数据输入),SRCLK(移位时钟),RCLK(锁存输出)8.P0口接于J6排针控制共阳极数码管9.P1口接于J24排针控制矩阵键盘四、程序模块:(1)发音模块:将单片机P1.0口接于喇叭的输入口,发音由定时器T0来完成,让定时器T0工作在方式1,每次定时器T0溢出中断时,取反一次P1.0口,这样就可以发出各种频率的方波.程序如下TINT

4、0:PUSHPSWPUSHACCMOVTH0,40H①MOVTL0,41H②CPLP1.0POPACCPOPPSW由于定时器0工作在方式一时不能自动装入初值,所以每次中断发生后需要装入初值,由于方式1是16位定时,所以初值需要两个存储单元,初值放在40H和41H存储单元中,这两个单元中的不同内容对应不同频率,初值对应频率表如下,高位在前,低位在后123DB0F8H,94h,0F9H,5CH,0FAH,15H,4567DB0FAH,68H,0FBH,05H,0FBH,90H,0FCH,0CH1234DB0FCH,4A

5、H,0FCH,0AEH,0FDH,0AH,0FDH,34H,567DB0FDH,82H,0FDH,0C8H,0FEH,06H122232DB0FEH,25H,0FEH,57H,0FEH,85H该表由标准音标频率计算而得.至于在40H和41H中该装入什么初值,在下一个模块中介绍.(2)发音时长模块:发音时长有定时器T1决定,本次实验中播放单曲时单位时长为0.25s,既歌曲谱中每个音调只响0.25s.定时器T1工作在方式2,模块程序如下:TINT1:PUSHPSWPUSHACCDJNZR1,REBACK①MOVR1,#

6、40DJNZR2,REBACKMOVR2,#25②LCALLDISP1③MOVA,#00H④CLRCMOVA,43HADDA,#1MOV43H,AMOVA,#00HADDCA,42HMOV42H,AMOVA,#00HMOVDPH,42HMOVDPL,43HMOVCA,@A+DPTRMOV44H,A⑤MOVR0,A⑩LCALLDISP⑪CJNEA,#00H,STOP⑥CLRTR0AJMPREBACKCJNEA,#0FFH,GOONMOV42H,#1FHMOV43H,#0FFHAJMPREBACK⑦GOON:SETBT

7、R0MOVA,44H⑧RLAMOVR7,AMOVDPTR,#PITCHMOVCA,@A+DPTRMOV40H,AINCR7MOVA,R7MOVCA,@A+DPTRMOV41H,A⑨REBACK:POPACCPOPPSWRETI程序中第①行到第②行,保证了执行完这几行程序中,某个音调已经响了0.25s,因为定时器T1每次中断为250us.第三行为点阵显示音调高低子程序,44H存放音调,作为点阵的显示依据.后续将做介绍.第④行到第⑤行为读取乐谱中下一个音调部分,42H和43H为音调指针,两者合看作一个16位寄存器,存储

8、待装入DPTR的数据,这里定义为"DPTR",在上一个音调响完一个单位时间后,"DPTR"加1,指向下一个音调,并将"DPTR"中地址装入DPTR,并在表#SCORE(起始为2000H)中读出下一个音调,并存入44H中.第⑥行到第⑦行作用是,原歌曲中需要停顿的部分,在#score表中均为0,通过看A中内容是否为0,来判断是否需要停顿,如果为0,就停止定时器0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。