?? 232.lst
字號:
A51 MACRO ASSEMBLER 232 02/15/2002 17:36:10 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN 232.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 232.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0045 1 BUF DATA 45H
0030 2 DBUF0 EQU 30H
0090 3 FRIT EQU P1
0090 4 SDA BIT P1^0
0091 5 CLK BIT P1^1
6
0000 7 ORG 0000H
0000 2100 8 AJMP MAIN
0100 9 ORG 0100H
0100 10 MAIN:
0100 758160 11 MOV SP,#60H
0103 758920 12 MOV TMOD,#20H ;設置T1為方式2
0106 758DFD 13 MOV TH1,#0FDH ;設置波特率為9600
0109 758BFD 14 MOV TL1,#0FDH
010C D28E 15 SETB TR1
010E 759840 16 MOV SCON,#40H ;設置串口位方式1
0111 758700 17 MOV PCON,#00H
0114 18 UPUP:
0114 7830 19 MOV R0,#30H
0116 7F05 20 MOV R7,#5H
0118 21 RRU:
0118 D29C 22 SETB REN
011A 109802 23 RRUP: JBC RI,RRD ;接受一位
011D 211A 24 AJMP RRUP
011F E599 25 RRD: MOV A,SBUF
0121 F6 26 MOV @R0,A
0122 08 27 INC R0
0123 DFF3 28 DJNZ R7,RRU
29
0125 7830 30 MOV R0,#30H
0127 7F05 31 MOV R7,#5H
0129 C29C 32 UP: CLR REN
012B E6 33 MOV A,@R0
012C F599 34 MOV SBUF,A ;把它發送出去
012E 109902 35 NEXT: JBC TI,DOWN
0131 212E 36 AJMP NEXT
0133 08 37 DOWN: INC R0
0134 DFF3 38 DJNZ R7,UP
0136 313A 39 DIP: ACALL DISPLAY
0138 2136 40 AJMP DIP
41
42
013A 43 DISPLAY:
013A C0D0 44 PUSH PSW
013C C0E0 45 PUSH ACC
013E 7A7F 46 MOV R2, #7FH ;給位碼初值
0140 7830 47 MOV R0, #DBUF0 ;給顯示緩沖區首值
0142 E6 48 ZCQ: MOV A, @R0
0143 120185 49 LCALL TAB ;查表取段碼
0146 3168 50 ACALL TXDBYTE ;送段碼輸出
0148 859045 51 MOV BUF, FRIT
014B 534507 52 ANL BUF, #07H
014E EA 53 MOV A, R2 ;保證不影響其它位送位碼
014F 4545 54 ORL A, BUF
0151 F590 55 MOV FRIT, A
0153 12017C 56 LCALL DELAY ;調延時子程序
0156 7590FF 57 MOV FRIT,#0FFH
0159 08 58 INC R0
A51 MACRO ASSEMBLER 232 02/15/2002 17:36:10 PAGE 2
015A EA 59 MOV A, R2
015B 03 60 RR A
015C FA 61 MOV R2, A
015D B845E2 62 CJNE R0, #45H, ZCQ;5位顯示完嗎?
0160 7590FF 63 MOV FRIT, #0FFH
0163 D0E0 64 POP ACC
0165 D0D0 65 POP PSW
0167 22 66 RET
67
0168 68 TXDBYTE:
0168 C0D0 69 PUSH PSW
016A C0E0 70 PUSH ACC
016C 7B08 71 MOV R3,#08H
016E 33 72 TXDUP: RLC A
016F 9290 73 MOV SDA,C
0171 C291 74 CLR CLK
0173 D291 75 SETB CLK
0175 DBF7 76 DJNZ R3,TXDUP
0177 D0E0 77 POP ACC
0179 D0D0 78 POP PSW
017B 22 79 RET
80
81 ;延時子程序
017C 7F50 82 DELAY: MOV R7, #50H ;12M時鐘下延時1MS
017E 7E10 83 DELAY0: MOV R6, #10H
0180 DEFE 84 DELAY1: DJNZ R6, DELAY1
0182 DFFA 85 DJNZ R7, DELAY0
0184 22 86 RET
87
88 ;查表子程序
0185 04 89 TAB: INC A ;基地址加一
0186 83 90 MOVC A, @A+PC ;查段碼表,取其相應的段碼
0187 22 91 RET
0188 C0F9A4B0 92 DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,80H,090H,088H,083H,0c6H,0a1H,86H,8eH,0bf
H,89H,8CH
018C 999282F8
0190 80908883
0194 C6A1868E
0198 BF898C
93 ;(0-9 A-F)共陽段碼表
94 END
A51 MACRO ASSEMBLER 232 02/15/2002 17:36:10 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
BUF. . . . . . . . D ADDR 0045H A
CLK. . . . . . . . B ADDR 0090H.1 A
DBUF0. . . . . . . N NUMB 0030H A
DELAY. . . . . . . C ADDR 017CH A
DELAY0 . . . . . . C ADDR 017EH A
DELAY1 . . . . . . C ADDR 0180H A
DIP. . . . . . . . C ADDR 0136H A
DISPLAY. . . . . . C ADDR 013AH A
DOWN . . . . . . . C ADDR 0133H A
FRIT . . . . . . . D ADDR 0090H A
MAIN . . . . . . . C ADDR 0100H A
NEXT . . . . . . . C ADDR 012EH A
P1 . . . . . . . . D ADDR 0090H A
PCON . . . . . . . D ADDR 0087H A
PSW. . . . . . . . D ADDR 00D0H A
REN. . . . . . . . B ADDR 0098H.4 A
RI . . . . . . . . B ADDR 0098H.0 A
RRD. . . . . . . . C ADDR 011FH A
RRU. . . . . . . . C ADDR 0118H A
RRUP . . . . . . . C ADDR 011AH A
SBUF . . . . . . . D ADDR 0099H A
SCON . . . . . . . D ADDR 0098H A
SDA. . . . . . . . B ADDR 0090H.0 A
SP . . . . . . . . D ADDR 0081H A
TAB. . . . . . . . C ADDR 0185H A
TH1. . . . . . . . D ADDR 008DH A
TI . . . . . . . . B ADDR 0098H.1 A
TL1. . . . . . . . D ADDR 008BH A
TMOD . . . . . . . D ADDR 0089H A
TR1. . . . . . . . B ADDR 0088H.6 A
TXDBYTE. . . . . . C ADDR 0168H A
TXDUP. . . . . . . C ADDR 016EH A
UP . . . . . . . . C ADDR 0129H A
UPUP . . . . . . . C ADDR 0114H A
ZCQ. . . . . . . . C ADDR 0142H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -