微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 简易电子琴的设计

简易电子琴的设计

时间:07-05 来源:互联网 点击:

R6,D2

DJNZ R7,D1

RET

END

生日快乐歌:(扩展功能部分程序)

ORG 0000H

JMP MAIN

ORG 000BH

JMP TT0

MAIN: MOV TMOD,#01H ;设置定时器0工作方式

MOV IE,#82H ;设置中断

MAIN0:MOV 30H,#00H

NEXT: MOV A,30H

MOV DPTR,#TABLE ;查表

MOVC A,@A+DPTR

MOV R2,A

JZ STOP

ANL A,0FH

MOV R5,A

MOV A,R2

SWAP A

ANL A,#0FH

JNZ SING

CLR TR0

JMP W1

SING: DEC A

MOV 22H,A

RL A

MOV DPTR,#TABLE1 ;查表

MOVC A,@A+DPTR

MOV TH0,A

MOV 21H,A

MOV A,22H

RL A

INC A

MOVC A,@A+DPTR

MOV TL0,A

MOV 20H,A

SETB TR0

W1: CALL DELAY

INC 30H

JMP NEXT

STOP: CLR TR0

JMP MAIN0

TT0: PUSH ACC ;中断服务程序

PUSH PSW

MOV TL0,20H

MOV TH0,21H

CPL P1.0

POP PSW

POP ACC

RETI

DELAY:MOV R7,#2 ;延时187ms

W2: MOV R4,#187

W3: MOV R3,#248

DJNZ R3,$

DJNZ R4,W3

DJNZ R7,W2

DJNZ R5,DELAY

RET

TABLE1:DW 64260,64400,64524,64580 ;音符计数植

DW 64684,64777,64820,64898

DW 64968,65030,65058,65110

DW 65157,65178,65217

TABLE:DB 82H,01H,81H,94H,84H ;节拍表

DB 0B4H,0A4H,04H

DB 82H,01H,81H,94H,84H

DB 0C4H,0B4H,04H

DB 82H,01H,81H,0F4H,0D4H

DB 0B4H,0A4H,94H

DB 0E2H,01H,0E1H,0D4H,0B4H

DB 0C4H,0B4H,04H

DB 82H,01H,81H,94H,84H

DB 0B4H,0A4H,04H

DB 82H,01H,81H,94H,84H

DB 0C4H,0B4H,04H

DB 82H,01H,81H,0F4H,0D4H

DB 0B4H,0A4H,94H

DB 0E2H,01H,0E1H,0D4H,0B4H

DB 0C4H,0B4H,04H

DB 00H

END

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top