📄 library.lst
字号:
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 1
MCS-51 Family Macro Assembler A S E M - 5 1 V 1.3
=====================================================
Source File: E:\MiCrOConTroller\Coba_M-IDE\I2CROUTINE\LIBRARY.asm
Object File: E:\MiCrOConTroller\Coba_M-IDE\I2CROUTINE\LIBRARY.hex
List File: E:\MiCrOConTroller\Coba_M-IDE\I2CROUTINE\LIBRARY.lst
Line I Addr Code Source
1: ;************************************************************************
2: ; I2C Protocol Library
3: ;
4: ; Written by: Ajay Bhargav
5: ; Email: bhargav.ajay@gmail.com
6: ; URL: http://www.rickeyworld.info
7: ; Description: I2C Subroutines for I2C communication
8: ; these subroutines covers start, stop, send, recieve
9: ; etc. They can be used by anyone and can be changed
10: ; and distributed.
11: ;
12: ; IMPORTANT: Some I2C devices may be slow so you need to add one
13: ; or two nops where ever it required.
14: ;
15: ; NOTE: This library works ony with single master multi-slave
16: ; configuration. If you find any problem mail me.
17: ;************************************************************************
18:
19:
20: ;************************************************************************
21: ; Ports Used for I2C Communication
22: ;************************************************************************
23: B 0080 sda equ P0.0
24: B 0081 scl equ P0.1
25:
26: ;************************************************************************
27: ; Start Condition for I2C Communication
28: ;************************************************************************
29:
30: 0000 startc:
31: 0000 C2 81 clr scl
32: 0002 D2 80 setb sda
33: 0004 00 nop
34: 0005 00 nop
35: 0006 D2 81 setb scl
36: 0008 00 nop
37: 0009 00 nop
38: 000A C2 80 clr sda
39: 000C 22 ret
40:
41: ;************************************************************************
42: ; Stop Condition For I2C Bus
43: ;************************************************************************
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 2
Line I Addr Code Source
44:
45: 000D stop:
46: 000D 00 nop
47: 000E 00 nop
48: 000F C2 80 clr sda
49: 0011 D2 81 setb scl
50: 0013 00 nop
51: 0014 00 nop
52: 0015 D2 80 setb sda
53: 0017 00 nop
54: 0018 00 nop
55: 0019 C2 81 clr scl
56: 001B 22 ret
57:
58: ;************************************************************************
59: ; Sending Data to slave on I2C bus
60: ; with Acknowledgement
61: ;************************************************************************
62:
63: 001C send:
64: 001C 7F 08 mov r7,#08
65: 001E back:
66: 001E C2 81 clr scl
67: 0020 00 nop
68: 0021 00 nop
69: 0022 00 nop
70: 0023 33 rlc a
71: 0024 92 80 mov sda,c
72: 0026 D2 81 setb scl
73: 0028 00 nop
74: 0029 00 nop
75: 002A 00 nop
76: 002B C2 81 clr scl
77: 002D 00 nop
78: 002E 00 nop
79: 002F 00 nop
80: 0030 DF EC djnz r7,back
81: 0032 D2 80 setb sda
82: 0034 D2 81 setb scl
83: 0036 00 nop
84: 0037 00 nop
85: 0038 00 nop
86: 0039 00 nop
87: 003A C2 81 clr scl
88: 003C 00 nop
89: 003D 00 nop
90: 003E 00 nop
91: 003F 22 ret
92:
93: ;************************************************************************
94: ; Receiving Data from slave on I2C bus
95: ; with Acknowledgement
96: ;************************************************************************
97:
98: 0040 recv:
99: 0040 7F 08 mov r7,#08
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 3
Line I Addr Code Source
100: 0042 back2:
101: 0042 D2 80 setb sda
102: 0044 D2 81 setb scl
103: 0046 00 nop
104: 0047 00 nop
105: 0048 00 nop
106: 0049 A2 80 mov c,sda
107: 004B 33 rlc a
108: 004C C2 81 clr scl
109: 004E 00 nop
110: 004F 00 nop
111: 0050 00 nop
112: 0051 DF EF djnz r7,back2
113: 0053 D2 80 setb sda
114: 0055 C2 81 clr scl
115: 0057 00 nop
116: 0058 00 nop
117: 0059 00 nop
118: 005A C2 80 clr sda
119: 005C D2 81 setb scl
120: 005E 00 nop
121: 005F 00 nop
122: 0060 00 nop
123: 0061 C2 81 clr scl
124: 0063 00 nop
125: 0064 00 nop
126: 0065 00 nop
127: 0066 F6 mov @r0,a
128: 0067 08 inc r0
129: 0068 22 ret
130: END
register banks used: ---
no errors
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 4
L I S T O F S Y M B O L S
=============================
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
??ASEM_51 NUMBER 8051
??VERSION NUMBER 0130
AC BIT D6
ACC DATA E0
B DATA F0
BACK CODE 001E 65
BACK2 CODE 0042 100
CY BIT D7
DPH DATA 83
DPL DATA 82
EA BIT AF
ES BIT AC
ET0 BIT A9
ET1 BIT AB
EX0 BIT A8
EX1 BIT AA
EXTI0 CODE 0003
EXTI1 CODE 0013
F0 BIT D5
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT0 BIT B2
INT1 BIT B3
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
OV BIT D2
P BIT D0
P0 DATA 80
P1 DATA 90
P2 DATA A0
P3 DATA B0
PCON DATA 87
PS BIT BC
PSW DATA D0
PT0 BIT B9
PT1 BIT BB
PX0 BIT B8
PX1 BIT BA
RB8 BIT 9A
RD BIT B7
RECV CODE 0040 98
REN BIT 9C
RESET CODE 0000
RI BIT 98
RS0 BIT D3
RS1 BIT D4
RXD BIT B0
SBUF DATA 99
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 5
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
SCL NUMBER 0081 24
SCON DATA 98
SDA NUMBER 0080 23
SEND CODE 001C 63
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
STARTC CODE 0000 30
STOP CODE 000D 45
T0 BIT B4
T1 BIT B5
TB8 BIT 9B
TCON DATA 88
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIMER0 CODE 000B
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
TR0 BIT 8C
TR1 BIT 8E
TXD BIT B1
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -