📄 sing.lst
字号:
A51 MACRO ASSEMBLER SING 02/04/2004 17:09:16 PAGE 1
MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN sing.OBJ
ASSEMBLER INVOKED BY: C:\KEIL\C51\BIN\A51.EXE sing.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
00B3 1 BUZZ EQU P3.3
8000 2 ORG 8000H
8000 028100 3 LJMP MAIN
800B 4 ORG 800BH
800B 028177 5 LJMP INT_T0
8100 6 ORG 8100H
7
8100 8 MAIN:
8100 758160 9 MOV SP,#60H ;初始化堆栈向量
8103 753000 10 MOV 30H,#00 ;定时器初值清零
8106 753100 11 MOV 31H,#00
8109 7590FF 12 MOV P1,#0FFH ;设置P1口为输入模式
810C 758901 13 MOV TMOD,#01H ;设置定时器0为工作模式1
810F D2A9 14 SETB ET0 ;开定时器0中断
8111 D2AF 15 SETB EA ;开总中断
8113 C28C 16 CLR TR0 ;关闭定时器0
17
8115 18 START:
8115 A890 19 MOV R0,P1
8117 B8FF04 20 CJNE R0,#0FFH,KEY1 ;键盘扫描
811A C28C 21 CLR TR0
811C 80F7 22 SJMP START
811E 23 KEY1:
811E B8FE09 24 CJNE R0,#0FEH,KEY2 ;K1键按下
8121 7530FB 25 MOV 30H,#0FBH ;设置音阶1
8124 7531E9 26 MOV 31H,#0E9H
8127 02816F 27 LJMP SET_TIMER
812A 28 KEY2:
812A B8FD09 29 CJNE R0,#0FDH,KEY3 ;K2键按下
812D 7530FC 30 MOV 30H,#0FCH ;设置音阶2
8130 75315C 31 MOV 31H,#5CH
8133 02816F 32 LJMP SET_TIMER
8136 33 KEY3:
8136 B8FB09 34 CJNE R0,#0FBH,KEY4 ;K3键按下
8139 7530FC 35 MOV 30H,#0FCH ;设置音阶3
813C 7531C1 36 MOV 31H,#0C1H
813F 02816F 37 LJMP SET_TIMER
8142 38 KEY4:
8142 B8F709 39 CJNE R0,#0F7H,KEY5 ;K4键按下
8145 7530FC 40 MOV 30H,#0FCH ;设置音阶4
8148 7531EF 41 MOV 31H,#0EFH
814B 02816F 42 LJMP SET_TIMER
814E 43 KEY5:
814E B8EF09 44 CJNE R0,#0EFH,KEY6 ;K5键按下
8151 7530FD 45 MOV 30H,#0FDH ;设置音阶5
8154 753145 46 MOV 31H,#045H
8157 02816F 47 LJMP SET_TIMER
815A 48 KEY6:
815A B8DF09 49 CJNE R0,#0DFH,KEY7 ;K6键按下
815D 7530FD 50 MOV 30H,#0FDH ;设置音阶6
8160 753192 51 MOV 31H,#92H
8163 02816F 52 LJMP SET_TIMER
8166 53 KEY7:
8166 B8BF0A 54 CJNE R0,#0BFH,NOKEY ;K7键按下
8169 7530FD 55 MOV 30H,#0FDH ;设置音阶7
816C 7531D6 56 MOV 31H,#0D6H
57
816F 58 SET_TIMER:
A51 MACRO ASSEMBLER SING 02/04/2004 17:09:16 PAGE 2
816F D28C 59 SETB TR0 ;发声
8171 80A2 60 SJMP START
8173 61 NOKEY:
8173 C28C 62 CLR TR0 ;无键按下
8175 809E 63 SJMP START
64
8177 65 INT_T0: ;T0中断服务程序
8177 85308C 66 MOV TH0,30H ;定时器附初值
817A 85318A 67 MOV TL0,31H
817D B2B3 68 CPL BUZZ ;输出方波
817F 32 69 RETI
70
71 END
A51 MACRO ASSEMBLER SING 02/04/2004 17:09:16 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
BUZZ . . . . . . . B ADDR 00B0H.3 A
EA . . . . . . . . B ADDR 00A8H.7 A
ET0. . . . . . . . B ADDR 00A8H.1 A
INT_T0 . . . . . . C ADDR 8177H A
KEY1 . . . . . . . C ADDR 811EH A
KEY2 . . . . . . . C ADDR 812AH A
KEY3 . . . . . . . C ADDR 8136H A
KEY4 . . . . . . . C ADDR 8142H A
KEY5 . . . . . . . C ADDR 814EH A
KEY6 . . . . . . . C ADDR 815AH A
KEY7 . . . . . . . C ADDR 8166H A
MAIN . . . . . . . C ADDR 8100H A
NOKEY. . . . . . . C ADDR 8173H A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
SET_TIMER. . . . . C ADDR 816FH A
SP . . . . . . . . D ADDR 0081H A
START. . . . . . . C ADDR 8115H A
TH0. . . . . . . . D ADDR 008CH A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -