📄 write2401.lst
字号:
A51 MACRO ASSEMBLER WRITE2401 06/02/2005 00:19:35 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN .\write2401.obj
ASSEMBLER INVOKED BY: D:\Keil\C51\BIN\A51.EXE D:\Proteus 6 Demonstration\project\I2C\write2401.ASM SET(SMALL) DEBUG PRIN
T(.\write2401.lst) OBJECT(.\write2401.obj) EP
LOC OBJ LINE SOURCE
1 ;将60H--67H中的密码写入2401
2 ;其中60H和64H中存页地址
0050 3 ORG 50H
00B6 4 SDA EQU P3.6
00B5 5 SCL EQU P3.5
6
0050 756000 7 MOV 60H,#00H ;调试用数据
0053 756106 8 MOV 61H,#06H
0056 756207 9 MOV 62H,#07H
0059 756304 10 MOV 63H,#04H
005C 756405 11 MOV 64H,#05H
005F 756508 12 MOV 65H,#08H
0062 75660A 13 MOV 66H,#0AH
0065 75670B 14 MOV 67H,#0BH
15
16
0068 1198 17 SEND_IN: CALL START_BIT
006A 7960 18 MOV R1,#60H
006C 7A05 19 MOV R2,#05H ;写第一页 一位字地址 四位密码
006E E7 20 WRI1: MOV A,@R1
006F 7D08 21 MOV R5,#08H
0071 1188 22 CALL SEND
0073 09 23 INC R1 ;地址加一
0074 DAF8 24 DJNZ R2,WRI1
0076 11A9 25 CALL STOP_BIT
26
0078 7A03 27 MOV R2,#03H ;写第二页
007A 1198 28 CALL START_BIT
007C E7 29 WRI2: MOV A,@R1
007D 7D08 30 MOV R5,#08H
007F 1188 31 CALL SEND
0081 09 32 INC R1 ;地址加一
0082 DAF8 33 DJNZ R2,WRI2
0084 11A9 34 CALL STOP_BIT
0086 80FE 35 JMP $
0088 36 SEND:
0088 C2B5 37 CLR SCL ;传送
008A 33 38 RLC A
008B 92B6 39 MOV SDA,C
008D 11C3 40 CALL DELAY
008F D2B5 41 SETB SCL
0091 11C3 42 CALL DELAY
0093 DDF3 43 DJNZ R5,SEND
0095 11B6 44 CALL ACK
0097 22 45 RET
0098 46 START_BIT: ;起始位
0098 D2B5 47 SETB SCL
009A 11C3 48 CALL DELAY
009C D2B6 49 SETB SDA
009E 11C3 50 CALL DELAY
00A0 C2B6 51 CLR SDA
00A2 11C3 52 CALL DELAY
00A4 C2B5 53 CLR SCL
00A6 11C3 54 CALL DELAY
00A8 22 55 RET
00A9 C2B5 56 STOP_BIT:CLR SCL ;停止位
00AB C2B6 57 CLR SDA
A51 MACRO ASSEMBLER WRITE2401 06/02/2005 00:19:35 PAGE 2
00AD D2B5 58 SETB SCL
00AF 11C3 59 CALL DELAY
00B1 D2B6 60 SETB SDA
00B3 11C3 61 CALL DELAY
00B5 22 62 RET
00B6 C2B5 63 ACK: CLR SCL
00B8 11C3 64 CALL DELAY
00BA C2B6 65 CLR SDA
00BC 11C3 66 CALL DELAY
00BE D2B5 67 SETB SCL
00C0 11C3 68 CALL DELAY
00C2 22 69 RET
70
71 ;延时1ms 用于显示
00C3 7E02 72 DELAY: mov r6,#02H
00C5 7FF8 73 loop2: mov r7,#0f8h
00C7 DFFE 74 loop1: djnz r7,loop1
00C9 DEFA 75 djnz r6,loop2
00CB 22 76 ret
77
78 END
A51 MACRO ASSEMBLER WRITE2401 06/02/2005 00:19:35 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACK. . . . . . . . C ADDR 00B6H A
DELAY. . . . . . . C ADDR 00C3H A
LOOP1. . . . . . . C ADDR 00C7H A
LOOP2. . . . . . . C ADDR 00C5H A
P3 . . . . . . . . D ADDR 00B0H A
SCL. . . . . . . . B ADDR 00B0H.5 A
SDA. . . . . . . . B ADDR 00B0H.6 A
SEND . . . . . . . C ADDR 0088H A
SEND_IN. . . . . . C ADDR 0068H A
START_BIT. . . . . C ADDR 0098H A
STOP_BIT . . . . . C ADDR 00A9H A
WRI1 . . . . . . . C ADDR 006EH A
WRI2 . . . . . . . C ADDR 007CH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -