📄 24cxx.lst
字号:
A51 MACRO ASSEMBLER 24CXX 11/13/2005 20:06:13 PAGE 1
MACRO ASSEMBLER A51 V7.01
NO OBJECT MODULE REQUESTED
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE D:\实验板\实验例程\8583读写\ASM\24CXX.ASM DB SB
LOC OBJ LINE SOURCE
1 ;实验名称:读写AT24C02实验
2 ; 功能:用串口发送指令读出或写入00-7FH单无的内容,显示结果在LCD上显示
3 ; 读出(16进制数):AA 地址
4 ; 写入(16进制数):BB 地址 内容
5 ; 作者:http://www.mcuprog.com
6 ; 05-02-01
7
00A6 8 SCK BIT P2.6 ;I2C的时钟线
00A7 9 SDA BIT P2.7 ;I2C的数据线
10 ;读写I2C总线器件要用到的寄存器
0000 11 ERRFLAG BIT 00H
001A 12 TEMP1 EQU 1AH
001B 13 DELAYCOUNT EQU 1BH
001C 14 ADDREHI EQU 1CH ;读写的地址
001D 15 ADDRELO EQU 1DH
001E 16 WRITE_DATA EQU 1EH ;单字节写入的数据
001F 17 READ_DATA EQU 1FH ;单字节读出的数据
18
00B5 19 E BIT P3.5
00B6 20 RW BIT P3.6
00B7 21 RS BIT P3.7
0080 22 LCDPORT EQU P0
0030 23 CMD_BYTE EQU 30H
0031 24 DAT_BYTE EQU 31H
25
0001 26 READBIT BIT 01H ;读某个单元
0002 27 WRITEBIT BIT 02H ;写某个单元
0003 28 RS232OKBIT BIT 03H ;一个完整的串口指令完
0032 29 RECSUM EQU 32H ;要从232收的字字数
0000 30 ORG 0000H
0000 2100 31 AJMP MAIN
000B 32 ORG 000BH
000B 4100 33 AJMP TIME0_1
0023 34 ORG 0023H
0023 C298 35 RS232: CLR RI
0025 E599 36 MOV A,SBUF
0027 B4AA09 37 CJNE A,#0AAH,RS232_1
002A 753201 38 MOV RECSUM,#01H ;是读EEP后面只要一个地址就可
002D 7840 39 MOV R0,#40H
002F D201 40 SETB READBIT
0031 0146 41 AJMP RS232_RE
0033 B4BB09 42 RS232_1: CJNE A,#0BBH,RS232_2
0036 753202 43 MOV RECSUM,#02H ;是写后要要一个地址一个写的内容
0039 7840 44 MOV R0,#40H
003B D202 45 SETB WRITEBIT
003D 0146 46 AJMP RS232_RE
003F F6 47 RS232_2: MOV @R0,A
0040 08 48 INC R0
0041 D53202 49 DJNZ RECSUM,RS232_RE
0044 D203 50 SETB RS232OKBIT
0046 32 51 RS232_RE: RETI
52
53
0100 54 ORG 0100H
0100 7820 55 MAIN: MOV R0,#20H
0102 7600 56 CLR0: MOV @R0,#00H
0104 08 57 INC R0
0105 B870FA 58 CJNE R0,#70H,CLR0
A51 MACRO ASSEMBLER 24CXX 11/13/2005 20:06:13 PAGE 2
0108 751D00 59 MOV ADDRELO,#00H
010B 60 LCALL READ_BYTE
*** _________________________________________________^
*** ERROR #A45 IN 60 (D:\实验板\实验例程\8583读写\ASM\24CXX.ASM, LINE 60): UNDEFINED SYMBOL (PASS-2)
010E 1202C2 61 LCALL INITLCD
0111 753080 62 MOV CMD_BYTE,#80H
0114 12029E 63 LCALL WRITE_CMD
0117 1202ED 64 LCALL DELAY0
011A 753141 65 MOV DAT_BYTE,#"A"
011D 1202B0 66 LCALL WRITE_DAT
0120 753144 67 MOV DAT_BYTE,#"D"
0123 1202B0 68 LCALL WRITE_DAT
0126 753144 69 MOV DAT_BYTE,#"D"
0129 1202B0 70 LCALL WRITE_DAT
012C 753152 71 MOV DAT_BYTE,#"R"
012F 1202B0 72 LCALL WRITE_DAT
0132 753145 73 MOV DAT_BYTE,#"E"
0135 1202B0 74 LCALL WRITE_DAT
0138 75313A 75 MOV DAT_BYTE,#":"
013B 1202B0 76 LCALL WRITE_DAT
013E 120236 77 LCALL DISPEEPAD
78
0141 7530C0 79 MOV CMD_BYTE,#0C0H
0144 12029E 80 LCALL WRITE_CMD
0147 75314D 81 MOV DAT_BYTE,#"M"
014A 1202B0 82 LCALL WRITE_DAT
014D 753145 83 MOV DAT_BYTE,#"E"
0150 1202B0 84 LCALL WRITE_DAT
0153 75314D 85 MOV DAT_BYTE,#"M"
0156 1202B0 86 LCALL WRITE_DAT
0159 75314F 87 MOV DAT_BYTE,#"O"
015C 1202B0 88 LCALL WRITE_DAT
015F 753152 89 MOV DAT_BYTE,#"R"
0162 1202B0 90 LCALL WRITE_DAT
0165 753159 91 MOV DAT_BYTE,#"Y"
0168 1202B0 92 LCALL WRITE_DAT
016B 75313A 93 MOV DAT_BYTE,#":"
016E 1202B0 94 LCALL WRITE_DAT
0171 12026A 95 LCALL DISPEEPMO
96
0174 758CFC 97 MOV TH0,#0FCH ;1MS
0177 758A67 98 MOV TL0,#67H
017A 758DFD 99 MOV TH1,#0FDH ;9600波特
017D 758BFD 100 MOV TL1,#0FDH
0180 758921 101 MOV TMOD,#21H
0183 759850 102 MOV SCON,#50H
0186 D28C 103 SETB TR0
0188 D28E 104 SETB TR1
018A 75A892 105 MOV IE,#92H
018D D29C 106 SETB REN
018F 438701 107 MAIN1: ORL PCON,#01H
0192 218F 108 AJMP MAIN1
109
0200 110 ORG 0200H
0200 758CFC 111 TIME0_1: MOV TH0,#0FCH
0203 758A67 112 MOV TL0,#67H
0206 100302 113 JBC RS232OKBIT,TODP
0209 4113 114 AJMP TIME0_RE
020B 100106 115 TODP: JBC READBIT,READ_EEP
020E 100211 116 JBC WRITEBIT,WRITE_EEP
0211 4113 117 AJMP TIME0_RE
118
0213 32 119 TIME0_RE: RETI
120
0214 85401D 121 READ_EEP: MOV ADDRELO,40H
0217 122 LCALL READ_BYTE
A51 MACRO ASSEMBLER 24CXX 11/13/2005 20:06:13 PAGE 3
*** _________________________________________________^
*** ERROR #A45 IN 122 (D:\实验板\实验例程\8583读写\ASM\24CXX.ASM, LINE 122): UNDEFINED SYMBOL (PASS-2)
021A 120236 123 LCALL DISPEEPAD
021D 12026A 124 LCALL DISPEEPMO
0220 4113 125 AJMP TIME0_RE
0222 85401D 126 WRITE_EEP: MOV ADDRELO,40H
0225 85411E 127 MOV WRITE_DATA,41H
0228 85411F 128 MOV READ_DATA,41H
022B 129 LCALL WRITE_BYTE
*** _________________________________________________^
*** ERROR #A45 IN 129 (D:\实验板\实验例程\8583读写\ASM\24CXX.ASM, LINE 129): UNDEFINED SYMBOL (PASS-2)
022E 120236 130 LCALL DISPEEPAD
0231 12026A 131 LCALL DISPEEPMO
0234 4113 132 AJMP TIME0_RE
133
134
135 ;显示EEP地址
0236 753087 136 DISPEEPAD: MOV CMD_BYTE,#87H
0239 12029E 137 LCALL WRITE_CMD
023C E51D 138 MOV A,ADDRELO
023E 54F0 139 ANL A,#0F0H
0240 C4 140 SWAP A
0241 B40A00 141 CJNE A,#0AH,DPEEPAD_1
0244 5006 142 DPEEPAD_1: JNC DPEEPAD_2
0246 2430 143 ADD A,#30H
0248 F531 144 MOV DAT_BYTE,A
024A 4150 145 AJMP DPEEPAD_3
024C 2437 146 DPEEPAD_2: ADD A,#37H
024E F531 147 MOV DAT_BYTE,A
0250 1202B0 148 DPEEPAD_3: LCALL WRITE_DAT
149
0253 E51D 150 MOV A,ADDRELO
0255 540F 151 ANL A,#0FH
0257 B40A00 152 CJNE A,#0AH,DPEEPAD_4
025A 5006 153 DPEEPAD_4: JNC DPEEPAD_5
025C 2430 154 ADD A,#30H
025E F531 155 MOV DAT_BYTE,A
0260 8004 156 SJMP DPEEPAD_6
0262 2437 157 DPEEPAD_5: ADD A,#37H
0264 F531 158 MOV DAT_BYTE,A
0266 1202B0 159 DPEEPAD_6: LCALL WRITE_DAT
0269 22 160 RET
161
026A 7530C7 162 DISPEEPMO: MOV CMD_BYTE,#0C7H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -