基于单片机的带存储的电子琴
更新时间:2024-04-16 09:10:01 阅读量: 综合文库 文档下载
- 可存储式电子琴单片机推荐度:
- 相关推荐
ORG 00H SJMP MAIN ORG 0BH
LJMP TIME0 ;定时器0中断服务程序 ORG 1BH
LJMP TIME1 ;定时器1中断服务程序 ORG 30H MAIN: MOV SP,#5FH MOV 9H,#0 MOV 0AH,#0
MOV DPTR,#1000H MOV TMOD,#11H MOV IE,#8AH LOOP: CLR TR0 CLR TR1 AAA: JB P3.3,LOOP5 MOV A,#0 MOVX @DPTR,A
LCALL DELAY1 JNB P3.3,$ LCALL DELAY1
LJMP SING0 LOOP5: JB P3.2,LOOP4 LCALL DELAY1 JNB P3.2,$ LCALL DELAY1
LJMP SING0 LOOP4: CLR P3.1 MOV R0,#4 MOV R3,#11101111B MOV R2,#11111111B NLINE: MOV A,R3 MOV P1,A MOV A,P1 ORL A,#0F0H
CJNE A,#0FFH,KEYIN MOV A,R3 RL A MOV R3,A
DJNZ R0,NLINE LJMP LOOP KEYIN: MOV R2,A
LCALL DELAY1 LCALL TRANF ;存储器6264首地址
;设定定时器0和定时器1的工作方式为1 ;开中断T0、T1 ;关中断T0 ;关中断T1 ;未按键转
;按了键则转\写入6264中,以表示结束音乐 ;消除按键抖动 ;转复奏音乐
;未按键转扫描按键 ;消除按键抖动 ;转复奏音乐 ;奏音乐指示灯亮 ;扫描键盘子程序 ;判断有无按键,有则转 无按键继续扫描
将扫描码转成按键码
; ; ANL A,#0FH ;屏蔽高四位 SWAP A ;半字节对换
MOV 09H,A ;存放于09H单元中 SWAP A ;09H为音符码节拍工作 CJNE A,#0,ZZZ ;音符码不为0的则转
CLR TR1 ;为0则关中断1,不发出声音 SETB TR0 ;开中断0 LJMP ZZZZ ZZZ: DEC A MOV 22H,A CLR C RLC A PUSH DPH PUSH DPL
MOV DPTR,#TABLE1 MOVC A,@A+DPTR
MOV TH1,A MOV 21H,A MOV A,22H CLR C RLC A
INC A MOVC A,@A+DPTR POP DPL POP DPH MOV TL1,A MOV 20H,A
MOV TH0,#0A4H MOV TL0,#0H
SETB TR0 SETB TR1 ZZZZ: LCALL NOPEN CLR TR0 CLR TR1 MOV A,0AH CLR C RRC A CLR C RRC A CLR C RRC A
CJNE A,#0FH,NODE SJMP DDD NODE: JC DDD
;到TABLE1取相应的高字节值 ;高字节值存入TH0和21H ;取低字节并存在TL0和22H ;1/32节拍初值 ;开中断0 ;开中断1
;等待按键放开 ;关中断T0 ;关中断T1
;(0AH)单元中表示按键时间长短 MOV A,#0FH DDD: ORL 09H,A MOV 0AH,#0 WWW: MOV A,09H SETB P3.1
MOVX @DPTR,A ;写6264 LCALL DELAY1 ;延时151ms INC DPTR LJMP LOOP
DELAY1:MOV R7,#3 MOV R6,#0 S1: DJNZ R6,$ DJNZ R7,S1 RET
NOPEN: MOV A,P1 ORL A,#0F0H CJNE A,#0FFH,NOPEN LCALL DELAY1 RET
TRANF: MOV B,#0 MOV A,R2 C1: RRC A JNC C2 INC B INC B INC B INC B LJMP C1 C2: MOV A,R3 RR A RR A RR A RR A C3: RRC A JNC C4 INC B LJMP C3
C4: MOV A,B RET
TIME0: INC 0AH MOV TH0,#0A4H MOV TL0,#0H RETI
SING0: SETB P3.1 ;延时15ms ;等待键盘按键盘放开 ;消除键盘抖动 ;将扫描码转换成按键盘子程序 ;(A)=(B)为按键码 ;按键盘时间长短,中断服务程序 重载初值 ;复奏时指示灯灭
; NEXT: MOV DPTR,#1000H ;到片外ROM处取简码指针 NEXTX: MOVX A,@DPTR PUSH DPH PUSH DPL
MOV R2,A ;取到的简码暂存于R2中 JZ ENDF ;取到\则结束 ANL A,#0FH ;否,取低四位节拍码 MOV R5,A ;将节拍码存于R5中 MOV A,R2 ;取高4位简符码 SWAP A ANL A,#0FH
JNZ SING CLR TR1 SJMP DLY1 SING: DEC A MOV 22H,A
RL A MOV DPTR,#TABLE1 MOVC A,@A+DPTR
MOV TH1,A MOV 21H,A MOV A,22H RL A
INC A MOVC A,@A+DPTR MOV TL1,A MOV 20H,A SETB TR1 DLY1: INC R5 ACALL DELAY
POP DPL POP DPH INC DPTR
SJMP NEXTX ENDF: CLR TR1 CLR TR0
LJMP MAIN TIME1: PUSH ACC PUSH PSW
MOV TL1,20H MOV TH1,21H
CPL P3.0 POP PSW POP ACC
;取到的是非0,则转向SING子程序 ;取到0则不发声 ;到TABLE1取高字节计数值 ;高字节存入TH0和21H ;取低字节并存入TL0和20H ;基本单元时间为1/4拍187s ;取下一个码 ;停止定时器 ;循环
;定时器1中断服务程序 重装计数器 ;发音 ; RETI
DELAY: MOV R7,#187 ;187ms延时子程序 DLY2: MOV R4,#02 DLY3: MOV R3,#248 DJNZ R3,$ DJNZ R4,DLY3 DJNZ R7,DLY2 DJNZ R5,DELAY RET
TABLE1:
DW 63628,63835,64021,64103,64260,64400,64524 DW 64580,64684,64777,64820,64898,64968,65030 DW 65058,65110,65157,65178,65217,65252,65283 END
正在阅读:
基于单片机的带存储的电子琴04-16
我和我的同桌作文450字07-01
贞观政要之《治国犹栽树》原文及翻译02-08
电大市场营销案例分析题答案03-06
模切压痕工艺中常见问题及对策07-18
人教版小学五年级上册品社全册教案211-06
各种仪器操作规程09-16
投资建设项目管理师06-11
学生综合素质评价结果分析报告04-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 电子琴
- 单片机
- 基于
- 存储