📄 两行显示.lst
字号:
A51 MACRO ASSEMBLER 两__蟔示 12/01/2004 21:25:00 PAGE 1
MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN .\两行显示.OBJ
ASSEMBLER INVOKED BY: E:\Keil\C51\BIN\A51.EXE .\两行显示.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0080 1 DATDB EQU P0
003E 2 TEMPL EQU 3EH
003F 3 TEMPH EQU 3FH
0040 4 ALARMHL EQU 40H
0041 5 ALARMHH EQU 41H
0042 6 ALARMLL EQU 42H
0043 7 ALARMLH EQU 43H
007E 8 MODE1 BIT 7EH
007D 9 MODE2 BIT 7DH
007C 10 ONALARM BIT 7CH
00B7 11 ALARMM BIT P3.7
00A2 12 K1 BIT P2.2
00A1 13 K2 BIT P2.1
00A0 14 K3 BIT P2.0
0090 15 RS BIT P1.0
0091 16 RW BIT P1.1
0092 17 E BIT P1.2
0000 18 FLAG BIT 00H
00B6 19 DAT BIT P3.6
20 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0000 21 ORG 00H
0000 804E 22 JMP DESPLAY
000B 23 ORG 000BH
000B 01BA 24 AJMP INSERS
000D 32 25 RETI
0050 26 ORG 50H
27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0050 28 DESPLAY:
0050 758900 29 MOV TMOD,#0
0053 758A00 30 MOV TL0,#0
0056 758C00 31 MOV TH0,#0
0059 D2AF 32 SETB EA
005B D2A9 33 SETB ET0
005D D28C 34 SETB TR0
005F 7D32 35 MOV R5,#50
0061 C2B2 36 CLR P3.2
0063 D2B1 37 SETB P3.1
0065 758160 38 MOV SP,#60H
0068 39 DISPLAY1:
0068 11C9 40 CALL INITIAL;启动显示
006A 310A 41 CALL CLS;清屏
006C 7480 42 MOV A,#10000000B
006E 11EC 43 CALL WRITE
0070 9000A9 44 MOV DPTR,#LINE1;指向显示内容
0073 7B00 45 mov R3,#0
0075 12010F 46 LCALL PRSTRING;查显示内容
0078 74C0 47 MOV A,#11000000B
007A 11EC 48 CALL WRITE
007C 9000AF 49 MOV DPTR,#LINE2
007F AB2B 50 MOV R3,2BH
0081 12011E 51 LCALL PRSTRING1;查显示内容
0084 74C1 52 MOV A,#11000001B
0086 11EC 53 CALL WRITE
0088 9000AF 54 MOV DPTR,#LINE2
008B AB2A 55 MOV R3,2AH
008D 12011E 56 LCALL PRSTRING1;查显示内容
0090 74C2 57 MOV A,#11000010B
0092 11EC 58 CALL WRITE
A51 MACRO ASSEMBLER 两__蟔示 12/01/2004 21:25:00 PAGE 2
0094 9000AF 59 MOV DPTR,#LINE2
0097 AB29 60 MOV R3,29H
0099 12011E 61 LCALL PRSTRING1;查显示内容
009C 74C3 62 MOV A,#11000011B
009E 11EC 63 CALL WRITE
00A0 9000AF 64 MOV DPTR,#LINE2
00A3 AB28 65 MOV R3,28H
00A5 12011E 66 LCALL PRSTRING1;查显示内容
00A8 32 67 LOOP: RETI
00A9 74656D70 68 LINE1: DB 'temp:',00H
00AD 3A00
00AF 30313233 69 LINE2: DB '0','1','2','3','4','5','6','7','8','9',00H
00B3 34353637
00B7 383900
70 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
00BA 758C00 71 INSERS: MOV TH0,#0
00BD 758A00 72 MOV TL0,#0
00C0 DD06 73 DJNZ R5,NO
00C2 7D32 74 MOV R5,#50
00C4 B2B2 75 CPL P3.2
00C6 B2B1 76 CPL P3.1
00C8 32 77 NO: RETI
78 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
79 ; 启动LCM子程序
80 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
00C9 7438 81 INITIAL:MOV A,#00111000B;设置为8BIT汇流,显示两行并使用5*7的字型
00CB 11EC 82 CALL WRITE
00CD 740E 83 MOV A,#00001110B;设置为显示器要显示,光标要显示并闪烁
00CF 11EC 84 CALL WRITE
00D1 7406 85 MOV A,#00000110B;设置为每一次资料输入后光标自动向右移一格
00D3 11EC 86 CALL WRITE
00D5 22 87 RET
88 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
89 ; 检测显示器是否忙
90 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
00D6 91 CHECKBUSY:
00D6 C0E0 92 PUSH ACC
00D8 93 CHECKBUSYLOOP:
00D8 C292 94 CLR E
00DA D291 95 SETB RW
00DC C290 96 CLR RS
00DE D292 97 SETB E
00E0 E580 98 MOV A,DATDB
00E2 C292 99 CLR E
00E4 20E7F1 100 JB ACC.7,CHECKBUSYLOOP;BF=1时忙,直到检测到BF=0时才跳出循环
00E7 D0E0 101 POP ACC
00E9 3128 102 CALL DELAY
00EB 22 103 RET
104 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
105 ; 写寄存器子程序
106 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
00EC 11D6 107 WRITE: CALL CHECKBUSY
00EE C292 108 CLR E
00F0 C291 109 CLR RW
00F2 C290 110 CLR RS
00F4 D292 111 SETB E
00F6 F580 112 MOV DATDB,A
00F8 C292 113 CLR E
00FA 22 114 RET
115 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
116 ; 写显示内容字程序
117 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
00FB 118 WRITELCDDATA:
00FB 11D6 119 CALL CHECKBUSY
00FD C292 120 CLR E
00FF C291 121 CLR RW
A51 MACRO ASSEMBLER 两__蟔示 12/01/2004 21:25:00 PAGE 3
0101 D290 122 SETB RS
0103 D292 123 SETB E
0105 F580 124 MOV DATDB,A
0107 C292 125 CLR E
0109 22 126 RET
127 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
010A 7401 128 CLS: MOV A,#01H;清显示屏
010C 11EC 129 CALL WRITE
010E 22 130 RET
131 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
010F C0E0 132 PRSTRING: PUSH ACC
0111 E4 133 PRLOOP: CLR A
0112 EB 134 mov a,r3
0113 93 135 MOVC A,@A+DPTR;查显示内容表
0114 6005 136 JZ EPR;判断是否查到结束标志位00H
0116 11FB 137 CALL WRITELCDDATA
0118 A3 138 INC DPTR
0119 80F6 139 JMP PRLOOP
011B D0E0 140 EPR: POP ACC
011D 22 141 RET
011E C0E0 142 PRSTRING1: PUSH ACC
0120 E4 143 PRLOOP1: CLR A
0121 EB 144 mov a,r3
0122 93 145 MOVC A,@A+DPTR;查显示内容表
0123 11FB 146 CALL WRITELCDDATA
0125 D0E0 147 EPR1: POP ACC
0127 22 148 RET
149 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0128 7E05 150 DELAY: MOV R6,#5
012A 7FF8 151 D1: MOV R7,#248
012C DFFE 152 DJNZ R7,$
012E DEFA 153 DJNZ R6,D1
0130 22 154 RET
155 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0131 120128 156 DL10MS: LCALL DELAY
0134 120128 157 LCALL DELAY
0137 120128 158 LCALL DELAY
013A 120128 159 LCALL DELAY
013D 120128 160 LCALL DELAY
0140 120128 161 LCALL DELAY
0143 120128 162 LCALL DELAY
0146 120128 163 LCALL DELAY
0149 120128 164 LCALL DELAY
014C 120128 165 LCALL DELAY
014F 22 166 RET
167
168
0150 120131 169 DL50MS: LCALL DL10MS
0153 120131 170 LCALL DL10MS
0156 120131 171 LCALL DL10MS
0159 120131 172 LCALL DL10MS
015C 120131 173 LCALL DL10MS
015F 22 174 RET
175 END
A51 MACRO ASSEMBLER 两__蟔示 12/01/2004 21:25:00 PAGE 4
A51 MACRO ASSEMBLER 两__蟔示 12/01/2004 21:25:00 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
ALARMHH. . . . . . N NUMB 0041H A
ALARMHL. . . . . . N NUMB 0040H A
ALARMLH. . . . . . N NUMB 0043H A
ALARMLL. . . . . . N NUMB 0042H A
ALARMM . . . . . . B ADDR 00B0H.7 A
CHECKBUSY. . . . . C ADDR 00D6H A
CHECKBUSYLOOP. . . C ADDR 00D8H A
CLS. . . . . . . . C ADDR 010AH A
D1 . . . . . . . . C ADDR 012AH A
DAT. . . . . . . . B ADDR 00B0H.6 A
DATDB. . . . . . . D ADDR 0080H A
DELAY. . . . . . . C ADDR 0128H A
DESPLAY. . . . . . C ADDR 0050H A
DISPLAY1 . . . . . C ADDR 0068H A
DL10MS . . . . . . C ADDR 0131H A
DL50MS . . . . . . C ADDR 0150H A
E. . . . . . . . . B ADDR 0090H.2 A
EA . . . . . . . . B ADDR 00A8H.7 A
EPR. . . . . . . . C ADDR 011BH A
EPR1 . . . . . . . C ADDR 0125H A
ET0. . . . . . . . B ADDR 00A8H.1 A
FLAG . . . . . . . B ADDR 0020H.0 A
INITIAL. . . . . . C ADDR 00C9H A
INSERS . . . . . . C ADDR 00BAH A
K1 . . . . . . . . B ADDR 00A0H.2 A
K2 . . . . . . . . B ADDR 00A0H.1 A
K3 . . . . . . . . B ADDR 00A0H.0 A
LINE1. . . . . . . C ADDR 00A9H A
LINE2. . . . . . . C ADDR 00AFH A
LOOP . . . . . . . C ADDR 00A8H A
MODE1. . . . . . . B ADDR 002FH.6 A
MODE2. . . . . . . B ADDR 002FH.5 A
NO . . . . . . . . C ADDR 00C8H A
ONALARM. . . . . . B ADDR 002FH.4 A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
PRLOOP . . . . . . C ADDR 0111H A
PRLOOP1. . . . . . C ADDR 0120H A
PRSTRING . . . . . C ADDR 010FH A
PRSTRING1. . . . . C ADDR 011EH A
RS . . . . . . . . B ADDR 0090H.0 A
RW . . . . . . . . B ADDR 0090H.1 A
SP . . . . . . . . D ADDR 0081H A
TEMPH. . . . . . . N NUMB 003FH A
TEMPL. . . . . . . N NUMB 003EH A
TH0. . . . . . . . D ADDR 008CH A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
WRITE. . . . . . . C ADDR 00ECH A
WRITELCDDATA . . . C ADDR 00FBH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -