📄 24c02.lst
字号:
A51 MACRO ASSEMBLER 24C02 10/07/2007 08:14:31 PAGE 1
MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN .\24C02.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE .\24C02.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 NAME WL007
2
00A1 3 OP_READ EQU 0xa1 ; 器件地址以及读取操作
00A0 4 OP_WRITE EQU 0xa0 ; 器件地址以及写入操作
007F 5 MAX_ADDR EQU 0x7f ; AT24C02最大地址
6
7 CODE_SEG SEGMENT CODE
8 DATA_SEG SEGMENT DATA
9 STACK_SEG SEGMENT IDATA
10
11
---- 12 RSEG DATA_SEG
0000 13 ADDR: DS 1
0001 14 TMP2: DS 1
0002 15 TMP3: DS 1
16
---- 17 RSEG STACK_SEG
0000 18 STACK: DS 20
19
00B3 20 SCL BIT P3.3
00B4 21 SDA BIT P3.4
22
23 ;===============================================================================
---- 24 CSEG AT 0000H ; 复位向量
0000 020000 F 25 JMP MAIN
26
27
28
29 ;===============================================================================
---- 30 RSEG CODE_SEG
0000 31 MAIN:
32 ; 主程序开始
33
34 USING 0
35
0000 758100 F 36 MOV SP, #(STACK-1) ; 设置堆栈
37
0003 D2B4 38 SETB SDA
0005 D2B3 39 SETB SCL
40
0007 7F5A 41 MOV R7,#05AH ; 全部填充0xff
0009 120000 F 42 LCALL FILL_BYTE
43
000C E4 44 CLR A
000D F500 F 45 MOV ADDR,A
000F 46 MAIN_LP1: ; 将表格DIS_CODE内示菪慈氲紼EPROM
47
000F E500 F 48 MOV A,ADDR
0011 900000 F 49 MOV DPTR,#DIS_CODE
0014 93 50 MOVC A,@A+DPTR ; 查表
51
0015 FD 52 MOV R5,A ; 示莸絉5
0016 AF00 F 53 MOV R7,ADDR ; 地址到R7
0018 120000 F 54 LCALL WRITE_BYTE
55
001B 0500 F 56 INC ADDR ; 地址加1
001D E500 F 57 MOV A,ADDR
001F C3 58 CLR C
A51 MACRO ASSEMBLER 24C02 10/07/2007 08:14:31 PAGE 2
0020 9408 59 SUBB A,#08H ; 共8字节,判断是否完成
0022 40EB 60 JC MAIN_LP1 ;
61
0024 E4 62 CLR A ;
0025 F500 F 63 MOV ADDR,A ;
0027 64 MAIN_LP2: ; 循环读取AT24C02内容,并输出到P0口
0027 AF00 F 65 MOV R7,ADDR ; 地址到R7
0029 120000 F 66 LCALL READ_RANDOM
002C 8F80 67 MOV P0,R7 ; 将读取的示荽
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -