ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:49.66KB ,
资源ID:23463404      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23463404.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51单片机课程设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

51单片机课程设计.docx

1、51单片机课程设计河北工业大学计算机硬件技术基础(MCS-51)2009年综合实验报告学院 能环 班级 热能073 姓名 周浩 学号 070670成绩 一、题目:简易电子琴的设计-B(10)二、问题的提出1 目的:(1)能够对电子电路、电子元器件、印制电路板等方面的知识有进一步的认识,独立对其进行测试与检查。(2)熟悉8051单片机的内部结构和功能,合理使用其内部寄存器,能够完成相关软件编程设计工作。(3)实现预期功能,能够对系统进行快速的调试,并能够对出现的功能故障进行分析,及时修改相关软硬件。(4)对软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。2 基本

2、要求:(1)要按任务书的要求认真分析问题,并解决问题;(2)要求用MCS-51单片机知识完成程序的设计;(3)在实验室利用现有的设备,完成题目的设计与调试。三、总体设计1、分析问题的功能用DP-51PROC的按键K1K8作为电子琴的按键,控制蜂鸣器能够发出do、re、mi、fa、so、la、xi等七个音符和播放生日歌。2、系统总体结构设计1)硬件设计:根据问题确定单片机、I/O接口、定时器、I/O设备、中断等;单片机:DP-51PROC模拟器 I/O接口:P1口定时器:定时器/计数器T/C0I/O设备:DP-51PROC的按键K1K8、蜂鸣器中断:外部中断INT1 2)软件设计:按问题功能分模

3、块,简述各模块功能。程序流程图:四、详细设计:1、硬件详细设计:1)画出电路图;2)进行硬件资源分配。I/O口地址:P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6、P1.7、P3.3所用存储单元 :A:数据中转R0:记录p1.x对应值R5、R6:分别记录歌曲音节延时和频率30H、31H:存储要输出访波频率的高低位2、设计中的主要困难及解决方案在这部分论述设计中遇到的主要困难及解决方案。1)困难1:do、re、mi、fa、so、la、xi等七个音符的简谱代码及歌曲的简谱。 解决方案:从任务书及相关资料中查得音符简码,并根据歌曲播放顺序设置编码次序,依次放入数据库,播放时依次

4、从数据库中查值并赋予30h、31h依次发声播放。2)困难2:按键与音符的对应问题。 解决方案:将p1.x八位全部置1,根据按键的不同应用cjne判断按键并在所在按键中对30h、31h赋值,实现对应按键与音符的发声。3)设计创新放音解决方案:参照学习网上建立音节数据库的方法,建立低中高音数据库可见任意输入歌曲,控制节奏五、程序清单 BUZZ EQU P3.3 ORG 8000H LJMP MAIN ORG 800BH LJMP INT_T0 ORG 8100H MAIN: MOV SP,#60H ;初始化堆栈向量 MOV 30H,#00 ;定时器初值清零 MOV 31H,#00 MOV P1,#

5、0FFH ;设置P1口为输入模式 MOV TMOD,#01H ;设置定时器0为工作模式1 SETB ET0 ;开定时器0中断 SETB EA ;开总中断 CLR TR0 ;关闭定时器0START: MOV R0,P1 CJNE R0,#0FFH,KEY1 ;键盘扫描 CLR TR0 SJMP STARTKEY1: CJNE R0,#0FEH,KEY2 ;K1键按下 MOV 30H,#0FEH ;设置音阶高音do MOV 31H,#22H LJMP SET_TIMERKEY2: CJNE R0,#0FDH,KEY3 ;K2键按下 MOV 30H,#0FEH ;设置音阶高音re MOV 31H,#

6、56H LJMP SET_TIMERKEY3: CJNE R0,#0FBH,KEY4 ;K3键按下 MOV 30H,#0FEH ;设置音阶高音mi MOV 31H,#85H LJMP SET_TIMERKEY4: CJNE R0,#0F7H,KEY5 ;K4键按下 MOV 30H,#0FEH ;设置音阶高音fa MOV 31H,#9AH LJMP SET_TIMERKEY5: CJNE R0,#0EFH,KEY6 ;K5键按下 MOV 30H,#0FEH ;设置音阶高音so MOV 31H,#0C1H LJMP SET_TIMERKEY6: CJNE R0,#0DFH,KEY7 ;K6键按下

7、MOV 30H,#0FEH ;设置音阶高音la MOV 31H,#0E4H LJMP SET_TIMERKEY7: CJNE R0,#0BFH,KEY8 ;K7键按下 MOV 30H,#0FFH ;设置音阶高音xi MOV 31H,#03H LJMP SET_TIMERKEY8: CJNE R0,#7FH,NOKEY ;K8键按下 LJMP START1 ;播放洋娃娃和小熊跳舞SET_TIMER: SETB TR0 ;发音WAIT1: MOV A,P1 CPL A JNZ WAIT1NOKEY: CLR TR0 LJMP START ;无键按下START1: MOV DPTR,#MUSIC ;

8、取生日歌发生顺序的表头CONT: CLR A ;查表将歌曲播放次序代码输入给A MOVC A,A+DPTR CJNE A,#00,CHK ;判断是否为停止不是则跳转查音 AJMP NOKEY ;是停止则跳回CHK: PUSH ACC ;往后移动指针查表 INC DPTR CLR A MOVC A,A+DPTR MOV R4,A POP ACCCHK1: CJNE A,#01,CHK2 ;根据A值选择发声音节 ACALL DOLCHK2: CJNE A,#02,CHK3 ACALL RELCHK3: CJNE A,#03,CHK4 ACALL MILCHK4: CJNE A,#04,CHK5 A

9、CALL FALCHK5: CJNE A,#05,CHK6 ACALL SOLCHK6: CJNE A,#06,CHK7 ACALL LALCHK7: CJNE A,#07,CHK11 ACALL SILCHK11: CJNE A,#11,CHK12 ACALL DOCHK12: CJNE A,#12,CHK13 ACALL RECHK13: CJNE A,#13,CHK14 ACALL MICHK14: CJNE A,#14,CHK15 ACALL FACHK15: CJNE A,#15,CHK16 ACALL SOCHK16: CJNE A,#16,CHK17 ACALL LACHK17:

10、 CJNE A,#17,CHK21 ACALL SICHK21: CJNE A,#21,CHK22 ACALL DOHCHK22: CJNE A,#22,CHK23 ACALL REHCHK23: CJNE A,#23,CHK24 ACALL MIHCHK24: CJNE A,#24,CHK25 ACALL FAHCHK25: CJNE A,#25,CHK26 ACALL SOHCHK26: CJNE A,#26,CHK27 ACALL LAHCHK27: CJNE A,#27,CHK0 ACALL SIHCHK0: CJNE A,#00,CONT2 ACALL NONCONT2: INC D

11、PTR AJMP CONTDOL: MOV R6,#254 ;给每个音节定音频率和发声时长 MOV R5,#16 AJMP OUTPUTREL: MOV R6,#226 MOV R5,#18 AJMP OUTPUTMIL: MOV R6,#201 MOV R5,#21 AJMP OUTPUTFAL: MOV R6,#190 MOV R5,#22 AJMP OUTPUTSOL: MOV R6,#170 MOV R5,#25 AJMP OUTPUTLAL: MOV R6,#150 MOV R5,#28 AJMP OUTPUTSIL: MOV R6,#134 MOV R5,#31 AJMP OUTP

12、UTDO: MOV R6,#126 MOV R5,#33 AJMP OUTPUTRE: MOV R6,#113 MOV R5,#37 AJMP OUTPUTMI: MOV R6,#100 MOV R5,#41 AJMP OUTPUTFA: MOV R6,#95 MOV R5,#44 AJMP OUTPUTSO: MOV R6,#85 MOV R5,#49 AJMP OUTPUTLA: MOV R6,#75 MOV R5,#55 AJMP OUTPUTSI: MOV R6,#67 MOV R5,#62 AJMP OUTPUTDOH: MOV R6,#63 MOV R5,#65 AJMP OUTP

13、UTREH: MOV R6,#56 MOV R5,#73 AJMP OUTPUTMIH: MOV R6,#50 MOV R5,#82 AJMP OUTPUTFAH: MOV R6,#47 MOV R5,#88 AJMP OUTPUTSOH: MOV R6,#42 MOV R5,#98 AJMP OUTPUTLAH: MOV R6,#37 MOV R5,#110 AJMP OUTPUTSIH: MOV R6,#33 MOV R5,#124 AJMP OUTPUTNON: MOV R6,#33 MOV R5,#124 AJMP OUTPUT ;输出R4*R5周的方波OUTPUT: PUSH 05L

14、OOP: CJNE A,#00,SOUND AJMP MUTESOUND: CLR P3.3MUTE: ACALL DELAY SETB P3.3 ACALL DELAY DJNZ R5,LOOP POP 05 DJNZ R4,OUTPUTREST: MOV R6, #170 MOV R5,#30WAIT: ACALL DELAY DJNZ R5,WAIT RETDELAY: MOV B,R6 ;延时半周期t=15us*R6+9usDL: MOV R7,#6 DJNZ R7,$ DJNZ R6,DL MOV R6,B RETMUSIC: DB 21,02,22,02,23,02,24,02,2

15、5,02,25,02,25,01,24,01,23,02 DB 24,01,24,01,24,02,23,02,22,02,21,02,23,02,25,04 DB 26,02,26,02,26,01,25,01,24,01,25,02,25,02,25,01,DB24,01,23,01,24,02,24,02,24,01,23,01,22,01 DB 21,02,23,02,21,02,00,04 INT_T0: ;T0中断服务程序 MOV TH0,30H ;定时器附初值 MOV TL0,31H CPL BUZZ ;输出方波 RETI END 六、调试程序的方法1)硬件调试方法编译一个程序(

16、按一个健,相应指示灯变亮),确定按键功能完好;编辑另外一个发声程序确定蜂鸣器可以发出声音。2)软件调试方法连接好线,打开单片机电源,将自己的设计一个程序编译运行,确定keil软件完好。七、你所设计的程序最终完成的功能1)说明你编制的程序能完成的功能;用DP-51PROC的按键K1K8作为电子琴的按键,控制蜂鸣器能够分别发出do、re、mi、fa、so、la、xi等七个音符和播放歌曲。2)准备的测试数据,并记录运行结果。 do、re、mi、fa、so、la、xi等七个音符和播放洋娃娃和小熊跳舞。七音的初值为:65058、65110、65157、65178、65217、65252、65283。歌曲频率及发声时长顺序见源程序。八、对该设计题目有何更完善的方案1、对自己完成程序进行自我评价。此程序实现了设计任务书的基本要求,声音比较准,音调响亮。但是,此设计仅有八个按键可以应用,所以只是指完成了高音部分的发音。2、对课题提出更完善的方案。将双排键应用到设计中,以完成低、中、高所有音符的发音。日期: 2009年 1 月 1 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1