📄 24i2c.lst
字号:
0100 C297 162 CLR SDA
0102 AFE0 163 MOV R7,ACC ;将接收到的数据保存到R7
0104 D0E0 164 POP ACC ;还原ACC
0106 22 165 RET
166 ;----------------------------------------------------------------
167 ;设置结束 在SEND & READ 后DSA & SCL均=0 ,本程序退出后 SDA & SCL=1
168 ;----------------------------------------------------------------
0107 3112 169 R2STOP: ACALL D15US ;对2401操作结束
0109 D296 170 SETB SCL ;在SCL=1时,SDA由0变为1表示结束
010B 3112 171 ACALL D15US
010D D297 172 SETB SDA
010F 3112 173 ACALL D15US
0111 22 174 RET
175 ;*****************************************************************
176 ;I2C串行时钟延时程序
177 ;------------------------
0112 C0D0 178 D15US: PUSH PSW ;3区
0114 D2D3 179 SETB RS0
0116 D2D4 180 SETB RS1
0118 7C08 181 MOV R4,#08H
011A DCFE 182 DJNZ R4,$
011C D0D0 183 POP PSW
011E 22 184 RET
185 ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
186 ;************************************************************************
187 ;74164显示程序,使用RS1=1,RS0=0的1区
188 ;---------------------------------------------------------
011F C0E0 189 display: PUSH ACC ;保存ACC
0121 C0D0 190 push psw
A51 MACRO ASSEMBLER 24I2C 12/05/03 19:09:36 PAGE 4
0123 C2D4 191 clr rs1
0125 D2D3 192 setb rs0 ;使用第一区工作寄存器
0127 90018E 193 mov dptr,#xstab
012A E530 194 mov a,sjgw ;取得数据
012C 93 195 movc a,@a+dptr ;提取字模
012D 315B 196 acall dsout ;调用送出子程序
012F C290 197 clr gw
0131 3167 198 acall ds1ms ;调用显示1ms延时程序
0133 D290 199 setb gw
0135 E531 200 mov a,sjsw
0137 93 201 movc a,@a+dptr ;提取字模
0138 315B 202 acall dsout ;送出
013A C291 203 clr sw
013C 3167 204 acall ds1ms ;显示1ms
013E D291 205 setb sw
0140 E532 206 mov a,sjbw
0142 93 207 movc a,@a+dptr ;提取字模
0143 315B 208 acall dsout ;送出
0145 C292 209 clr bw
0147 3167 210 acall ds1ms ;显示1ms
0149 D292 211 setb bw
014B E533 212 mov a,sjqw
014D 93 213 movc a,@a+dptr ;提取字模
014E 315B 214 acall dsout ;送出
0150 C293 215 clr qw
0152 3167 216 acall ds1ms ;显示1ms
0154 D293 217 setb qw
0156 D0D0 218 pop psw
0158 D0E0 219 POP ACC ;出栈
015A 22 220 ret ;返回调用
221 ;---送出循环----------
015B 222 dsout:
015B 7808 223 MOV R0,#8 ;传送一个字节8位
015D 33 224 dSLOOP: RLC A ;右移
015E 9294 225 MOV xsdat,C ;送数据到数据口
0160 D295 226 SETB xsclk ;送一时钟
0162 C295 227 CLR xsclk
0164 D8F7 228 DJNZ R0,dSLOOP
0166 22 229 RET
230 ;---显示延时----------
0167 790A 231 ds1ms: mov r1,#10
0169 7A64 232 ds1lo: mov r2,#100
016B DAFE 233 djnz r2,$
016D D9FA 234 djnz r1,ds1lo
016F 22 235 ret ;延时返回
236 ;************************************************************************
0170 C0D0 237 D10MS: PUSH PSW ;3区
0172 D2D3 238 SETB RS0
0174 D2D4 239 SETB RS1
0176 7A0A 240 mov r2,#10
0178 7BFF 241 d10lo: MOV R3,#0FFH
017A DBFE 242 DJNZ R3,$
017C DAFA 243 djnz r2,d10lo
017E D0D0 244 POP PSW
0180 22 245 RET
246 ;*****************************************************************
0181 C0D0 247 D1MS: PUSH PSW ;3区
0183 D2D3 248 SETB RS0
0185 D2D4 249 SETB RS1
0187 7B64 250 MOV R3,#100
0189 DBFE 251 DJNZ R3,$
018B D0D0 252 POP PSW
018D 22 253 RET
254 ;************************************************************************
255 ;显示字表(共阴)
018E 256 xstab: DB 3FH,06H,5BH,4FH ;"0","1","2","3"
A51 MACRO ASSEMBLER 24I2C 12/05/03 19:09:36 PAGE 5
0192 257 DB 66H,6DH,7DH,07H ;"4","5","6","7"
0196 258 DB 7FH,6FH,77H,7cH ;"8","9","A","B"
019A 259 DB 39H,5eh,79h,71h ;"C","D","E","F"
260
261 endA51 MACRO ASSEMBLER 24I2C 12/05/03 19:09:36 PAGE 6
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
ADDKEY . . . . . . C ADDR 0034H A
ADDL1. . . . . . . C ADDR 0036H A
B. . . . . . . . . D ADDR 00F0H A
B2C. . . . . . . . C ADDR 0069H A
BW . . . . . . . . B ADDR 0090H.2 A
D10LO. . . . . . . C ADDR 0178H A
D10MS. . . . . . . C ADDR 0170H A
D15US. . . . . . . C ADDR 0112H A
D1MS . . . . . . . C ADDR 0181H A
DISPLAY. . . . . . C ADDR 011FH A
DS1LO. . . . . . . C ADDR 0169H A
DS1MS. . . . . . . C ADDR 0167H A
DSLOOP . . . . . . C ADDR 015DH A
DSOUT. . . . . . . C ADDR 015BH A
GW . . . . . . . . B ADDR 0090H.0 A
I2CADD . . . . . . N NUMB 0020H A
I2CREAD. . . . . . C ADDR 00C4H A
I2CWRI . . . . . . C ADDR 007DH A
JSTEM. . . . . . . N NUMB 0021H A
MAIN . . . . . . . C ADDR 0019H A
N1 . . . . . . . . C ADDR 0022H A
N2 . . . . . . . . C ADDR 002BH A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
PSW. . . . . . . . D ADDR 00D0H A
QW . . . . . . . . B ADDR 0090H.3 A
R2READ . . . . . . C ADDR 00E9H A
R2RLOP1. . . . . . C ADDR 00EDH A
R2SEND . . . . . . C ADDR 009CH A
R2SLOP1. . . . . . C ADDR 00A2H A
R2SLOP2. . . . . . C ADDR 00B7H A
R2STAR . . . . . . C ADDR 00DEH A
R2STOP . . . . . . C ADDR 0107H A
READ . . . . . . . B ADDR 00B0H.2 A
READKEY. . . . . . C ADDR 0045H A
READL1 . . . . . . C ADDR 0047H A
RS0. . . . . . . . B ADDR 00D0H.3 A
RS1. . . . . . . . B ADDR 00D0H.4 A
SADD . . . . . . . B ADDR 00B0H.4 A
SCL. . . . . . . . B ADDR 0090H.6 A
SDA. . . . . . . . B ADDR 0090H.7 A
SJBW . . . . . . . N NUMB 0032H A
SJGW . . . . . . . N NUMB 0030H A
SJQW . . . . . . . N NUMB 0033H A
SJSW . . . . . . . N NUMB 0031H A
SP . . . . . . . . D ADDR 0081H A
SW . . . . . . . . B ADDR 0090H.1 A
WRI. . . . . . . . B ADDR 00B0H.3 A
WRIKEY . . . . . . C ADDR 0059H A
WRIL1. . . . . . . C ADDR 005BH A
XSCLK. . . . . . . B ADDR 0090H.5 A
XSDAT. . . . . . . B ADDR 0090H.4 A
XSTAB. . . . . . . C ADDR 018EH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -