📄 electronic organ.lst
字号:
A51 MACRO ASSEMBLER ELECTRONIC_ORGAN 08/26/2008 17:28:14 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN Electronic Organ.OBJ
ASSEMBLER INVOKED BY: D:\Keil\C51\BIN\A51.EXE Electronic Organ.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0030 1 LINE EQU 30H
0031 2 ROW EQU 31H
0032 3 VAL EQU 32H
0000 4 ORG 00H
0000 800C 5 SJMP START
000B 6 ORG 0BH
000B 0200B7 7 LJMP INT_T0
000E 758000 8 START: MOV P0,#00H
0011 758901 9 MOV TMOD,#01H
10 ;******************************************
11 ;按键扫描程序
12 ;******************************************
0014 75B0F0 13 LSCAN: MOV P3,#0F0H
0017 30B00C 14 L1: JNB P3.0,L2
001A 1200CC 15 LCALL DELAY
001D 30B006 16 JNB P3.0,L2
0020 753000 17 MOV LINE,#00H
0023 020050 18 LJMP RSCAN
0026 30B10C 19 L2: JNB P3.1,L3
0029 1200CC 20 LCALL DELAY
002C 30B106 21 JNB P3.1,L3
002F 753001 22 MOV LINE,#01H
0032 020050 23 LJMP RSCAN
0035 30B20C 24 L3: JNB P3.2,L4
0038 1200CC 25 LCALL DELAY
003B 30B206 26 JNB P3.2,L4
003E 753002 27 MOV LINE,#02H
0041 020050 28 LJMP RSCAN
0044 30B3D0 29 L4: JNB P3.3,L1
0047 1200CC 30 LCALL DELAY
004A 30B3CA 31 JNB P3.3,L1
004D 753003 32 MOV LINE,#03H
33
0050 75B00F 34 RSCAN: MOV P3,#0FH
0053 30B406 35 C1: JNB P3.4,C2
0056 753100 36 MOV ROW,#00H
0059 020074 37 LJMP CALCU
005C 30B506 38 C2: JNB P3.5,C3
005F 753101 39 MOV ROW,#01H
0062 020074 40 LJMP CALCU
0065 30B606 41 C3: JNB P3.6,C4
0068 753102 42 MOV ROW,#02H
006B 020074 43 LJMP CALCU
006E 30B7E2 44 C4: JNB P3.7,C1
0071 753103 45 MOV ROW,#03H
46
0074 E530 47 CALCU: MOV A,LINE ;计算键号
0076 75F004 48 MOV B,#04H
0079 A4 49 MUL AB
007A 2531 50 ADD A,ROW
007C F532 51 MOV VAL,A
52 ;*******************************************
53 ;根据键号查表得到定时器的定时常
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -