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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(仿真简易电子琴Word格式.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

仿真简易电子琴Word格式.docx

1、2,显示和发声子程序 3音乐播放子程序PROTEUS电路图五:程序KEYBUF EQU 30H STH0 EQU 31H STL0 EQU 32H TEMP EQU 33H SPK EQU P1.6 ; 蜂鸣器所在端口 ORG 0000H LJMP START ORG 0BH LJMP INT_T0 START: MOV TMOD,#01H SETB ET0 SETB EA WAIT: MOV P2,#0FFH CLR P2.4 ;从第四行开始扫描 MOV A,P2 ANL A,#0FH ;屏蔽高四位,高四位为行,低四位为列 XRL A,#0FH JZ NOKEY1 ;判断是否有键按下,没有就

2、跳转 LCALL DELY10MS MOV A,P2 ;消除抖动和干扰 ANL A,#0FH JZ NOKEY1 确定有键按下以后的处理 CJNE A,#0EH,NK1 ;是否为第四行第一列的键被按下 MOV KEYBUF,#0 ;保存列号 LJMP DK1 NK1: CJNE A,#0DH,NK2 MOV KEYBUF,#1 NK2: CJNE A,#0BH,NK3 MOV KEYBUF,#2 NK3: CJNE A,#07H,NK4 MOV KEYBUF,#3 NK4: NOP DK1: ;第四行的处理 MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR

3、MOV P0,A MOV B,#2 ;Table1以字保存,所以散转 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOV STH0,A ;送入高字节 MOV TH0,A INC TEMP MOV A,TEMP MOV STL0,A ;送入低字节 MOV TL0,A SETB TR0 DK1A: MOV A,P2 ;判断按键是否松开 JNZ DK1A CLR TR0 NOKEY1: CLR P2.5 JZ NOKEY2 CJNE A,#0EH,NK5 MOV KEYBUF,#4 LJMP DK2 NK5: CJNE A,#0DH,NK6 MOV KEYBUF,#5 NK

4、6: CJNE A,#0BH,NK7 MOV KEYBUF,#6 NK7: CJNE A,#07H,NK8 MOV KEYBUF,#7 NK8:DK2: MOV B,#2 MOV STH0,A MOV STL0,A DK2A: MOV A,P2 JNZ DK2A NOKEY2: CLR P2.6 JZ NOKEY3 CJNE A,#0EH,NK9 MOV KEYBUF,#8 LJMP DK3 NK9: CJNE A,#0DH,NK10 MOV KEYBUF,#9 NK10: CJNE A,#0BH,NK11 MOV KEYBUF,#10 NK11: CJNE A,#07H,NK12 MOV K

5、EYBUF,#11 NK12:DK3:DK3A: MOV A,P2 JNZ DK3A NOKEY3: CLR P2.7 JZ NOKEY4 CJNE A,#0EH,NK13 MOV KEYBUF,#12 LJMP DK4 NK13: CJNE A,#0DH,NK14 MOV KEYBUF,#13 NK14: CJNE A,#0BH,NK15 MOV KEYBUF,#14 NK15: CJNE A,#07H,NK16 MOV KEYBUF,#15 NK16:DK4:DK4A: JNZ DK4A NOKEY4: JNB P1.0,MUSIC LJMP WAIT MUSIC: MOV R3,#00H

6、NEXT: MOV A,R3 MOV DPTR,#TABLE2 MOVC A,A+DPTR JZ MUSIC ;如果检测到0000时,再执行一遍 MOV R7,A INC R3 MOV R2,A ACALL SONG SJMP NEXT;= 歌曲播放子程序 =SONG: MOV A,R2 ; 取出节拍 RL A JNZ KEEP MOV A,#01HKEEP:REPEAT: ACALL EIGHTH DJNZ R2,REPEAT RET= 产生1/8拍延时子程序 = EIGHTH: MOV A,R7 ; 查表取出廷时参数,保存到R4 MOV DPTR,#DELAY_T MOV R4,A 查表取

7、出1/8拍周期数,保存到R5 MOV DPTR,#S_PARA MOV R5,ANEXTCYC: ACALL SOUND DJNZ R5,NEXTCYC= 发声子程序 = SOUND: SETB SPK ACALL SDELAY CLR SPK= 延时子程序 =SDELAY: MOV A,R4 ; 廷时值在R4内 MOV R0,AXL2: MOV R1,#03HDL1: NOP DJNZ R1,DL1 DJNZ R0,XL2= 1/8拍周期表 =S_PARA: DS 1DH DB 15H,16H,00 DB 19H,00H,1CH,00H,1FH,21H,00H,25H DB 00H,29H,

8、2CH,00H,31H,34H,37H,00H DB 3EH,41H,00H,49H,00H,52H,57H,00H DB 62H = 延时参数表 =DELAY_T: DB 7EH,77H,00H DB 6AH,00H,5EH,00H,54H,4FH,00H,46H DB 00H,3FH,3BH,00H,35H,32H,2FH,00H DB 2AH,27H,00H,23H,00H,1FH,1DH,0C0H DB 1AHDELY10MS: MOV R6,#10 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET INT_T0: MOV TH0,STH0 MOV TL

9、0,STL0 CPL P1.6 RETI TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H TABLE1: DW 64021,64103,64260,64400 DW 64524,64580,64684,64777 DW 64820,64898,64968,65030 DW 65058,65110,65157,65178 = 歌曲表 =TABLE2: DW 2202H,2902H,2902H,2902H,2906H,2702H ;我从山中来 DW 2502H,2702H,2502H,2402

10、H,2208H ;带着兰花草 DW 2E02H,2E02H,2E02H,2E02H,2E06H,2C02H ;种在小园中 DW 2902H,2C02H,2D02H,2A02H,2908H ;祈祷花开早 DW 2902H,2E02H,2E02H,2C02H,2906H,2702H ;一日看三回 DW 2502H,2702H,2502H,2402H,2206H,1D02H ;看得花时过 DW 1D02H,2502H,2502H,2402H,2206H,2902H ;兰花却依然 DW 2702H,2502H,2402H,2002H,2208H ;苞也无一个 DW 0000H ; END 六:调试与运行程序写完后,存在一些缺点和错误,经过调试后,能正常发声,但是不能显示键值,经过和同学探讨发现用错了数码管,最后把数码管改成共阴极后,终于也能显示键值了。而且在运行歌曲时,由于CPU不够用,导致发声的时候失真。运行仿真结果:

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2