基于单片机的电子琴设计_毕业设计论文(编辑修改稿)内容摘要:

即跳转到 NOKEYS NEQ: LCALL DELY10MS。 延时 10ms 消抖 MOV A,P2。 消除扰动和干扰 XRL A,0FFH CJNE A,00H,NK1 LJMP NOKEYS。 为扰动信号没有键按下转 NOKEYS NK1: MOV A,P2。 判断是否按下 1 键 CJNE A,0FEH,NK2。 按下 1 键即顺序执行程序,否则跳到NK2 检查下一键位 MOV KEYBUF,0。 保存列号 0 MOV P0,06H。 让 LED 显示为 1 LJMP DK1 NK2: CJNE A,0FDH,NK3。 判断是否按下 2 键 MOV KEYBUF,1。 保存列号 1 MOV P0,5BH。 让 LED 显示为 2 LJMP DK1 NK3: CJNE A,0FBH,NK4。 判断是否按下 3 键 MOV KEYBUF,2。 保存列号 2 MOV P0,4FH。 让 LED 显示为 3 LJMP DK1 NK4: CJNE A,0F7H,NK5。 判断是否按下 4 键 MOV KEYBUF,3。 保存列号 3 MOV P0,66H。 让 LED 显示为 4 LJMP DK1 NK5: CJNE A,0EFH,NK6。 判断是否按下 5 键 MOV KEYBUF,4。 保存列号 4 MOV P0,6DH。 让 LED 显示为 5 LJMP DK1 NK6: CJNE A,0DFH,NK7。 判断是否按下 6 键 MOV KEYBUF,5。 保存列号 5 MOV P0,7DH。 让 LED 显示为 6 LJMP DK1 NK7: 河南理工大学本科课程设计报告 13 CJNE A,0BFH,NK08。 判断是否按下 7 键 MOV KEYBUF,6。 保存列号 6 MOV P0,07H。 让 LED 显示为 7 LJMP DK1 NK08: CJNE A ,7FH,NK8。 判断是否按下 8 功能切换键 NK8: LJMP CHOICE。 转向功能转换程序 DK1: MOV A,KEYBUF。 取列号 MOV B,2。 初值为双字节,乘以 2 MUL AB。 对应读取表格 TABLE1 的数据 MOV TEMP,A。 保存初值高八位偏移地址 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。 开启定时器 T0, T0 开始计数 DK1A:。 判断音符键是否松开 MOV A,P2 XRL A,0FFH JNZ DK1A。 没有松开,等待 CLR TR0。 松开,定 时器 T0 停止计数 NOKEYS: RET。 返回。 *******功能转换程序 ******** CHOICE: MOV P2,0FFH MOV A,P2 CJNE A,7FH,NEXT1111。 按下了 功能转换键后,顺序执行,否则则跳转到 NEXT1111 NEXT111: MOV P2,0FFH MOV A,P2 XRL A,0FFH JNZ NEXT111。 如果 A 不为 0,即按键有变化,等待键释放 ACALL DISPLAY。 如果没有键按下,即调用 DISPLAY MOV SP,60H。 设定堆栈指针指向 60H MOV 40H,00H。 歌谱偏移地址存储单元清零 ACALL DIANGE。 转向点歌程序 河南理工大学本科课程设计报告 14 NEXT1111: LJMP SAOMIAO。 返回弹奏程序。 *******点歌播放音乐程序 ******** DIANGE: MOV P2,0FFH。 先将键盘的列全部置为高电平 MOV A,P2 XRL A,0FFH CJNE A,00H,NNEQ。 判断有没键按下 , CLR。 没有键按下,蜂鸣器不发声 LJMP DIANGE。 等待点歌 NNEQ:。 有按键按下即跳到 NNEQ LCALL DELY10MS。 延 时 10ms 消抖 MOV A,P2 XRL A,0FFH CJNE A,00H,NNEQ1。 有键按下转向 NNEQ1 LJMP DIANGE。 没有键按下等待点歌 NNEQ1: MOV A,P2。 判断是否按下 1 键 CJNE A,0FEH,NNK2。 按下 1 键即顺序执行程序,否则跳到 NNK1 检查下一键位 MOV DPTR,TABLE10。 DPTR 指向第一首歌歌谱 MOV P0,06H。 让 LED 显示为 1 LJMP MUSIC。 转向歌曲播放程序 NNK2: CJNE A,0FDH,NNK3。 判断是否按下 2 键 MOV DPTR,TABLE20。 DPTR 指向第二首歌歌谱 MOV P0,5BH。 让 LED 显示为 2 LJMP MUSIC。 转向歌曲播放程序 NNK3: CJNE A,0FBH,NNK4。 判断是否按下 3 键 MOV DPTR,TABLE30。 DPTR 指向第三首歌歌谱 MOV P0,4FH。 让 LED 显示为 3 LJMP MUSIC。 转向歌曲播放程序 NNK4: CJNE A,0F7H,NNK5。 判断是否按下 4 键 MOV DPTR,TABLE40。 DPTR 指向第四首歌歌谱 MOV P0,66H。 让 LED 显示为 4 LJMP MUSIC。 转向歌曲播放程序 NNK5: CJNE A,0EFH,NNK6。 判断是否按下 5 键 MOV DPTR,TABLE50。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。