




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录一、元器件介绍1二、设计题目2三、总体设计2四、硬件电路设计2五、软件设计思路3六、软件调试9九、设计总结10八、参考书籍11摘要单片机又称微控制器,其中最基本的结构是将CPU和计算机外围功能单元,如储存器、I/O口、定时器/计数器、中断系统等集成在一个芯片上构成的。单片机具有体积小、可靠性高、功能强、灵活方便等的优点,故广泛应用于国民经济的各个领域目前单片机已用于工业控制、机电一体化设备、仪器仪表、信号处理、现代兵器、交通能源、商用设备、医疗设备及家用电器等各个领域,随着单片机性能的不断提高,它的应用将会更加广泛。单片机技术发展非常快,所以目前的产品都致力于在功能全面、技术先进、操作简便、安全可靠、价格合理等方面进行仔细研究,精心设计;及时掌握最新的单片机技术,在条件允许的情况下,尽可能地利用最新的单片机技术来研制其应用系统,再利用单片机体积小、价格低、功能强等特点,以保证所设计的产品在未来的一段时间内仍具生命力。关键词:单片机、最小系统、电子琴、键盘输入一、元器件介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图。二、设计题目课程设计题:简易电子琴设计设计内容:三、总体设计设计思路:1、 首先先要有一个输入口,用来控制DO,RW,MI,FA,SUO,LA,XI七个音的发出,还有播放音乐的控制。2、 再次就是输出,用来输出七个音符,和对现在工作状态的显示。3、 最重要的就是单片机的最小系统的实现。4、 最后是电源和flash的烧写RSP接口。四、硬件电路设计 输入口:P2口,3*3矩阵输入键盘,用P3.3做中断输入口输出口:P0口,P0.0、P0.1、P0.2、P0.3接四个LED灯来做为发音状态显示用P0.7做喇叭输出口。五、软件设计思路按键部分设计:开始行列式键盘按键按下成功否?扫描键盘根据按键功能,装入音符对应初值值到T0中启动T0工作行列式键盘按键释放成功否?停止T0工作T0初始化并开中断允放T0中断播放音乐部分:中断产生外部中断0初始与开放INT0开始播放音乐程序中断返回音乐产生的方法;一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO26263628# 4 FA#74064860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765283下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据低音019之间,中音在2039之间,高音在4059之间软件编程:KEYBUF EQU 30HSTH0 EQU 31HSTL0 EQU 32HTEMP EQU 33H ORG 0000H LJMP START ORG 000BH LJMP INT_T0 ORG 0100HSTART: MOV TMOD,#01H SETB ET0 SETB EAWAIT: MOV P2,#0FFH CLR P2.3 MOV A,P2 ANL A,#B XRL A,#B JZ NOKEY1 LCALL DELY10MS MOV A,P2 ANL A,#B XRL A,#B JZ NOKEY1 MOV A,P2 ANL A,#B CJNE A,#06H,NK1 MOV KEYBUF,#0 LJMP DK1NK1: CJNE A,#05H,NK2 MOV KEYBUF,#3 LJMP DK1NK2: CJNE A,#03H,NK3 MOV KEYBUF,#7 LJMP DK1NK3: NOPDK1: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0DK1A: MOV A,P2 ANL A,#B XRL A,#B JNZ DK1A CLR TR0NOKEY1: MOV P2,#0FFH CLR P2.4 MOV A,P2 ANL A,#B XRL A,#B JZ NOKEY2 LCALL DELY10MS MOV A,P2 ANL A,#B XRL A,#B JZ NOKEY2 MOV A,P2 ANL A,#B CJNE A,#06H,NK5 MOV KEYBUF,#1 LJMP DK2NK5: CJNE A,#05H,NK6 MOV KEYBUF,#4 LJMP DK2NK6: CJNE A,#03H,NK7 MOV KEYBUF,#8 LJMP DK2NK7: NOPDK2: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0DK2A: MOV A,P2 ANL A,#B XRL A,#B JNZ DK2A CLR TR0NOKEY2: MOV P2,#0FFH CLR P2.5 MOV A,P2 ANL A,#B XRL A,#B JZ NOKEY3 LCALL DELY10MS MOV A,P2 ANL A,#B XRL A,#B JZ NOKEY3 MOV A,P2 ANL A,#B CJNE A,#06H,NK9 MOV KEYBUF,#2 LJMP DK3NK9: CJNE A,#05H,NK10 MOV KEYBUF,#5 LJMP DK3NK10: CJNE A,#03H,NK11 MOV KEYBUF,#6 LJMP DK3NK11: NOPDK3: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0DK3A: MOV A,P2 ANL A,#B XRL A,#B JNZ DK3A CLR TR0NOKEY3: LJMP WAITDELY10MS: MOV R6,#10D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RETINT_T0: MOV TH0,STH0 MOV TL0,STL0 CPL P0.7 RETITABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FHTABLE1: DW 64021,64103,64260,64400 DW 64524,64580,64684,64777 DW 64820,64898,64968,65030 DW 65058,65110,65157,65178 END六、软件调试首先是最小系统的测试:采用流水灯程序来试验最小系统的实现与否,而后才实验程序的正确性,键盘的输入和喇叭、LED灯的显示。在调试的过程中,出现了很多的问题在多次的检查下才得以解决,但依是有问题存在,比如中断的响应程序并没有得以实现,播放音乐没有实现。中断程序如下所示:先在开头设置了中断地址:ORG 0003H LJMP INT_0中断子程序:INT_0: MOV R7,#12LOOP2: MOV A,R7 MOV DPTR,#TAB MOVC A,A+DPTR MOV KEYBUF,A MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DJNZ R7,INT_0 LJMP LOOPINT_T0: MOV TH0,STH0 MOV TL0,STL0 CPL P0.7 RETITAB: DW 1,5,7,6,1,3,4,5,6,7,1,3九、设计总结最后把程序写入单片机中,实现了键盘控制喇叭发DO,RW,MI,FA,SUO,LA,XI的程序,但中断还是没有最终实现。在这次的单片机实训中,我收获到很多:首先,我们原先的学习仅限于电脑上的仿真,并没有真正的运用到实际中,原先我们在电脑上写的程序也成了纸上谈兵,来到真正的实践中才发现了我们学的知识远远不足以应付在现实中的应用,我们的题目硬件也不是很难,但我也调试了很多次才真正的成功,实现了最小系统。所以说我们的实践经验远远不足。其次,在此过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论