📄 func.asm
字号:
#pragma debug scope 1 1
#line 26 "E:\HT\IIC\FUNC.C"
__acsr EQU [023H]
__adcr EQU [022H]
__adrh EQU [021H]
__adrl EQU [020H]
__pwm EQU [01aH]
__pdc EQU [019H]
__pd EQU [018H]
__pbc EQU [015H]
__pb EQU [014H]
__pac EQU [013H]
__pa EQU [012H]
__tmrc EQU [0eH]
__tmr EQU [0dH]
__intc EQU [0bH]
__status EQU [0aH]
__tblh EQU [08H]
__tblp EQU [07H]
__pcl EQU [06H]
__acc EQU [05H]
__mp EQU [01H]
__iar EQU [00H]
@I2C_Start .SECTION 'CODE'
PUBLIC _I2C_Start
_I2C_Start PROC
#pragma debug scope 2 1 ; 27 "E:\HT\IIC\FUNC.C"
#line 27 "E:\HT\IIC\FUNC.C"
CLR __pbc.3
#line 28 "E:\HT\IIC\FUNC.C"
CLR __pdc.0
#line 29 "E:\HT\IIC\FUNC.C"
SET [018H].0
#line 30 "E:\HT\IIC\FUNC.C"
SET [014H].3
#line 31 "E:\HT\IIC\FUNC.C"
MOV A,01H
CALL __DELAYX2
#line 32 "E:\HT\IIC\FUNC.C"
CLR [018H].0
#line 33 "E:\HT\IIC\FUNC.C"
MOV A,01H
CALL __DELAYX2
#line 34 "E:\HT\IIC\FUNC.C"
CLR [014H].3
#line 35 "E:\HT\IIC\FUNC.C"
MOV A,01H
CALL __DELAYX2
L1:
RET
_I2C_Start ENDP
#line 48 "E:\HT\IIC\FUNC.C"
@I2C_Stop .SECTION 'CODE'
PUBLIC _I2C_Stop
_I2C_Stop PROC
#pragma debug scope 3 1 ; 49 "E:\HT\IIC\FUNC.C"
#line 49 "E:\HT\IIC\FUNC.C"
CLR __pbc.3
#line 50 "E:\HT\IIC\FUNC.C"
CLR __pdc.0
#line 51 "E:\HT\IIC\FUNC.C"
CLR [018H].0
#line 52 "E:\HT\IIC\FUNC.C"
SET [014H].3
#line 53 "E:\HT\IIC\FUNC.C"
MOV A,01H
CALL __DELAYX2
#line 54 "E:\HT\IIC\FUNC.C"
SET [018H].0
#line 55 "E:\HT\IIC\FUNC.C"
MOV A,01H
CALL __DELAYX2
#line 56 "E:\HT\IIC\FUNC.C"
CLR [014H].3
#line 57 "E:\HT\IIC\FUNC.C"
MOV A,01H
CALL __DELAYX2
L2:
RET
_I2C_Stop ENDP
#line 70 "E:\HT\IIC\FUNC.C"
@I2C_Write_Bit .SECTION 'CODE'
PUBLIC _I2C_Write_Bit
_I2C_Write_Bit PROC
#pragma debug scope 4 1
#line 69 "E:\HT\IIC\FUNC.C"
PUBLIC I2C_Write_Bit0
LOCAL I2C_Write_Bit0 DBIT ; dat
#pragma debug variable 2 4 I2C_Write_Bit0 dat
#pragma debug scope 4 1 ; 71 "E:\HT\IIC\FUNC.C"
#line 71 "E:\HT\IIC\FUNC.C"
CLR __pbc.3
#line 72 "E:\HT\IIC\FUNC.C"
CLR __pdc.0
#line 73 "E:\HT\IIC\FUNC.C"
MOV A,[018H]
CLR [05H].0
SZ I2C_Write_Bit0
SET [05H].0
MOV [018H],A
#line 74 "E:\HT\IIC\FUNC.C"
SET [014H].3
#line 75 "E:\HT\IIC\FUNC.C"
MOV A,01H
CALL __DELAYX2
#line 76 "E:\HT\IIC\FUNC.C"
CLR [014H].3
#line 77 "E:\HT\IIC\FUNC.C"
MOV A,01H
CALL __DELAYX2
L3:
RET
_I2C_Write_Bit ENDP
#line 90 "E:\HT\IIC\FUNC.C"
@I2C_Write_Byte .SECTION 'CODE'
PUBLIC _I2C_Write_Byte
_I2C_Write_Byte PROC
#pragma debug scope 5 1
#line 89 "E:\HT\IIC\FUNC.C"
PUBLIC I2C_Write_Byte0
LOCAL I2C_Write_Byte0 DB ? ; dat
#pragma debug variable 8 5 I2C_Write_Byte0 dat
#pragma debug scope 5 1 ; 93 "E:\HT\IIC\FUNC.C"
#line 93 "E:\HT\IIC\FUNC.C"
CLR CR1
#line 93 "E:\HT\IIC\FUNC.C"
JMP L8
L5:
#pragma debug scope 6 5 ; 95 "E:\HT\IIC\FUNC.C"
#line 95 "E:\HT\IIC\FUNC.C"
SNZ I2C_Write_Byte0.7
JMP L9
#pragma debug scope 7 6 ; 97 "E:\HT\IIC\FUNC.C"
#line 97 "E:\HT\IIC\FUNC.C"
SET CR2
#line 98 "E:\HT\IIC\FUNC.C"
#pragma debug scope 6 5 ; 98 "E:\HT\IIC\FUNC.C"
JMP L10
L9:
#line 99 "E:\HT\IIC\FUNC.C"
SZ I2C_Write_Byte0.7
JMP L11
#pragma debug scope 8 6 ; 101 "E:\HT\IIC\FUNC.C"
#line 101 "E:\HT\IIC\FUNC.C"
CLR CR2
L11:
L10:
#line 103 "E:\HT\IIC\FUNC.C"
#pragma debug scope 6 5 ; 103 "E:\HT\IIC\FUNC.C"
CLR I2C_Write_Bit0
SZ CR2
SET I2C_Write_Bit0
CALL _I2C_Write_Bit
#line 104 "E:\HT\IIC\FUNC.C"
CLR [0AH].0
RLC I2C_Write_Byte0
L6:
#line 93 "E:\HT\IIC\FUNC.C"
#pragma debug scope 5 1 ; 93 "E:\HT\IIC\FUNC.C"
INC CR1
L8:
#line 93 "E:\HT\IIC\FUNC.C"
MOV A,CR1
SUB A,08h
SNZ [0ah].0
JMP L5
L4:
RET
#line 91 "E:\HT\IIC\FUNC.C"
LOCAL CR1 DB ? ; i
#pragma debug variable 8 5 CR1 i
#line 92 "E:\HT\IIC\FUNC.C"
LOCAL CR2 DBIT ; tmp
#pragma debug variable 2 5 CR2 tmp
_I2C_Write_Byte ENDP
#line 118 "E:\HT\IIC\FUNC.C"
@I2C_Read_Bit .SECTION 'CODE'
PUBLIC _I2C_Read_Bit
_I2C_Read_Bit PROC
#pragma debug scope 9 1 ; 120 "E:\HT\IIC\FUNC.C"
#line 120 "E:\HT\IIC\FUNC.C"
CLR __pbc.3
#line 121 "E:\HT\IIC\FUNC.C"
CLR __pdc.0
#line 122 "E:\HT\IIC\FUNC.C"
SET [018H].0
#line 123 "E:\HT\IIC\FUNC.C"
SET [014H].3
#line 124 "E:\HT\IIC\FUNC.C"
MOV A,01H
CALL __DELAYX2
#line 125 "E:\HT\IIC\FUNC.C"
SET __pdc.0
#line 126 "E:\HT\IIC\FUNC.C"
CLR CR4
SZ [018H].0
SET CR4
#line 127 "E:\HT\IIC\FUNC.C"
MOV A,01H
CALL __DELAYX2
#line 128 "E:\HT\IIC\FUNC.C"
CLR [014H].3
#line 129 "E:\HT\IIC\FUNC.C"
CLR b0_5
SZ CR4
SET b0_5.0
MOV A,b0_5
L13:
RET
LOCAL b0_5 DB ?
#line 119 "E:\HT\IIC\FUNC.C"
LOCAL CR4 DBIT ; dat
#pragma debug variable 2 9 CR4 dat
_I2C_Read_Bit ENDP
#line 141 "E:\HT\IIC\FUNC.C"
@I2C_Read_Byte .SECTION 'CODE'
PUBLIC _I2C_Read_Byte
_I2C_Read_Byte PROC
#pragma debug scope 10 1 ; 144 "E:\HT\IIC\FUNC.C"
#line 144 "E:\HT\IIC\FUNC.C"
CLR CR7
#line 145 "E:\HT\IIC\FUNC.C"
CLR CR6
#line 145 "E:\HT\IIC\FUNC.C"
JMP L18
L15:
#pragma debug scope 11 10 ; 147 "E:\HT\IIC\FUNC.C"
#line 147 "E:\HT\IIC\FUNC.C"
CLR [0AH].0
RLC CR7
#line 148 "E:\HT\IIC\FUNC.C"
CALL _I2C_Read_Bit
MOV b0_6,A
MOV A,b0_6
CLR b0_6
SZ [05H]
SET b0_6.0
CLR CR5
SZ b0_6
SET CR5
#line 149 "E:\HT\IIC\FUNC.C"
SZ CR5
JMP L19
#pragma debug scope 12 11 ; 151 "E:\HT\IIC\FUNC.C"
#line 151 "E:\HT\IIC\FUNC.C"
CLR CR7.0
#line 152 "E:\HT\IIC\FUNC.C"
#pragma debug scope 11 10 ; 152 "E:\HT\IIC\FUNC.C"
JMP L20
L19:
#line 153 "E:\HT\IIC\FUNC.C"
SNZ CR5
JMP L21
#pragma debug scope 13 11 ; 155 "E:\HT\IIC\FUNC.C"
#line 155 "E:\HT\IIC\FUNC.C"
SET CR7.0
L21:
L20:
L16:
#line 145 "E:\HT\IIC\FUNC.C"
#pragma debug scope 10 1 ; 145 "E:\HT\IIC\FUNC.C"
INC CR6
L18:
#line 145 "E:\HT\IIC\FUNC.C"
MOV A,CR6
SUB A,08h
SNZ [0ah].0
JMP L15
#line 158 "E:\HT\IIC\FUNC.C"
MOV A,CR7
L14:
RET
LOCAL b0_6 DB ?
#line 143 "E:\HT\IIC\FUNC.C"
LOCAL CR5 DBIT ; tmp
#pragma debug variable 2 10 CR5 tmp
#line 142 "E:\HT\IIC\FUNC.C"
LOCAL CR6 DB ? ; i
#pragma debug variable 8 10 CR6 i
#line 142 "E:\HT\IIC\FUNC.C"
LOCAL CR7 DB ? ; data
#pragma debug variable 8 10 CR7 data
_I2C_Read_Byte ENDP
#line 170 "E:\HT\IIC\FUNC.C"
@I2C_Ack .SECTION 'CODE'
PUBLIC _I2C_Ack
_I2C_Ack PROC
#pragma debug scope 14 1 ; 172 "E:\HT\IIC\FUNC.C"
#line 172 "E:\HT\IIC\FUNC.C"
CLR __pbc.3
#line 173 "E:\HT\IIC\FUNC.C"
CLR __pdc.0
#line 174 "E:\HT\IIC\FUNC.C"
SET [014H].3
#line 175 "E:\HT\IIC\FUNC.C"
SET [018H].0
#line 176 "E:\HT\IIC\FUNC.C"
SET __pdc.0
#line 177 "E:\HT\IIC\FUNC.C"
MOV A,01H
CALL __DELAYX2
#line 178 "E:\HT\IIC\FUNC.C"
CLR CR8
SZ [018H].0
SET CR8
#line 179 "E:\HT\IIC\FUNC.C"
CLR [014H].3
#line 180 "E:\HT\IIC\FUNC.C"
MOV A,01H
CALL __DELAYX2
#line 181 "E:\HT\IIC\FUNC.C"
CLR b0_7
SZ CR8
SET b0_7.0
MOV A,b0_7
L23:
RET
LOCAL b0_7 DB ?
#line 171 "E:\HT\IIC\FUNC.C"
LOCAL CR8 DBIT ; dat
#pragma debug variable 2 14 CR8 dat
_I2C_Ack ENDP
#line 195 "E:\HT\IIC\FUNC.C"
@I2C_Write_N .SECTION 'CODE'
PUBLIC _I2C_Write_N
_I2C_Write_N PROC
#pragma debug scope 15 1
#line 194 "E:\HT\IIC\FUNC.C"
PUBLIC I2C_Write_N0
LOCAL I2C_Write_N0 DB ? ; N
#pragma debug variable 8 15 I2C_Write_N0 N
#line 194 "E:\HT\IIC\FUNC.C"
PUBLIC I2C_Write_N1
LOCAL I2C_Write_N1 DB ? ; addr
#pragma debug variable 8 15 I2C_Write_N1 addr
#line 194 "E:\HT\IIC\FUNC.C"
PUBLIC I2C_Write_N2
LOCAL I2C_Write_N2 DB ? ; data
#pragma debug variable 19 15 I2C_Write_N2 data
#pragma debug scope 15 1 ; 198 "E:\HT\IIC\FUNC.C"
#line 198 "E:\HT\IIC\FUNC.C"
CLR CR9
#line 198 "E:\HT\IIC\FUNC.C"
JMP L28
L25:
#pragma debug scope 16 15 ; 200 "E:\HT\IIC\FUNC.C"
#line 200 "E:\HT\IIC\FUNC.C"
CALL _I2C_Start
#line 201 "E:\HT\IIC\FUNC.C"
MOV A,0a0h
MOV I2C_Write_Byte0,A
CALL _I2C_Write_Byte
#line 202 "E:\HT\IIC\FUNC.C"
CALL _I2C_Ack
MOV b0_8,A
MOV A,b0_8
CLR b0_8
SZ [05H]
SET b0_8.0
CLR CR10
SZ b0_8
SET CR10
#line 203 "E:\HT\IIC\FUNC.C"
SZ CR10
JMP L29
#pragma debug scope 17 16 ; 205 "E:\HT\IIC\FUNC.C"
#line 205 "E:\HT\IIC\FUNC.C"
MOV A,I2C_Write_N1
ADD A,CR9
MOV b0_8,A
MOV A,b0_8
MOV I2C_Write_Byte0,A
CALL _I2C_Write_Byte
#line 206 "E:\HT\IIC\FUNC.C"
CALL _I2C_Ack
MOV b0_8,A
MOV A,b0_8
CLR b0_8
SZ [05H]
SET b0_8.0
CLR CR10
SZ b0_8
SET CR10
#line 207 "E:\HT\IIC\FUNC.C"
SZ CR10
JMP L31
#pragma debug scope 18 17 ; 209 "E:\HT\IIC\FUNC.C"
#line 209 "E:\HT\IIC\FUNC.C"
MOV A,I2C_Write_N2
MOV b0_8,A
MOV A,CR9
ADD A,b0_8
MOV b0_8,A
MOV A,b0_8
MOV [01H],A
MOV A,[00H]
MOV b0_8,A
MOV A,b0_8
MOV I2C_Write_Byte0,A
CALL _I2C_Write_Byte
#line 210 "E:\HT\IIC\FUNC.C"
CALL _I2C_Ack
MOV b0_8,A
MOV A,b0_8
CLR b0_8
SZ [05H]
SET b0_8.0
CLR CR10
SZ b0_8
SET CR10
#line 211 "E:\HT\IIC\FUNC.C"
CALL _I2C_Stop
#line 212 "E:\HT\IIC\FUNC.C"
#pragma debug scope 17 16 ; 212 "E:\HT\IIC\FUNC.C"
JMP L30
L31:
#pragma debug scope 19 17 ; 215 "E:\HT\IIC\FUNC.C"
#line 215 "E:\HT\IIC\FUNC.C"
DEC CR9
#line 217 "E:\HT\IIC\FUNC.C"
#pragma debug scope 16 15 ; 217 "E:\HT\IIC\FUNC.C"
JMP L30
L29:
#pragma debug scope 20 16 ; 220 "E:\HT\IIC\FUNC.C"
#line 220 "E:\HT\IIC\FUNC.C"
DEC CR9
L30:
L26:
#line 198 "E:\HT\IIC\FUNC.C"
#pragma debug scope 15 1 ; 198 "E:\HT\IIC\FUNC.C"
INC CR9
L28:
#line 198 "E:\HT\IIC\FUNC.C"
MOV A,CR9
SUB A,I2C_Write_N0
SNZ [0ah].0
JMP L25
L24:
RET
LOCAL b0_8 DB ?
#line 196 "E:\HT\IIC\FUNC.C"
LOCAL CR9 DB ? ; i
#pragma debug variable 8 15 CR9 i
#line 197 "E:\HT\IIC\FUNC.C"
LOCAL CR10 DBIT ; ack
#pragma debug variable 2 15 CR10 ack
_I2C_Write_N ENDP
#line 237 "E:\HT\IIC\FUNC.C"
@I2C_Read_N .SECTION 'CODE'
PUBLIC _I2C_Read_N
_I2C_Read_N PROC
#pragma debug scope 21 1
#line 236 "E:\HT\IIC\FUNC.C"
PUBLIC I2C_Read_N0
LOCAL I2C_Read_N0 DB ? ; N
#pragma debug variable 8 21 I2C_Read_N0 N
#line 236 "E:\HT\IIC\FUNC.C"
PUBLIC I2C_Read_N1
LOCAL I2C_Read_N1 DB ? ; addr
#pragma debug variable 8 21 I2C_Read_N1 addr
#line 236 "E:\HT\IIC\FUNC.C"
PUBLIC I2C_Read_N2
LOCAL I2C_Read_N2 DB ? ; data
#pragma debug variable 19 21 I2C_Read_N2 data
#pragma debug scope 21 1 ; 240 "E:\HT\IIC\FUNC.C"
#line 240 "E:\HT\IIC\FUNC.C"
CLR CR12
#line 240 "E:\HT\IIC\FUNC.C"
JMP L37
L34:
#pragma debug scope 22 21 ; 242 "E:\HT\IIC\FUNC.C"
#line 242 "E:\HT\IIC\FUNC.C"
CALL _I2C_Start
#line 243 "E:\HT\IIC\FUNC.C"
MOV A,0a0h
MOV I2C_Write_Byte0,A
CALL _I2C_Write_Byte
#line 244 "E:\HT\IIC\FUNC.C"
CALL _I2C_Ack
MOV b0_9,A
MOV A,b0_9
CLR b0_9
SZ [05H]
SET b0_9.0
CLR CR11
SZ b0_9
SET CR11
#line 245 "E:\HT\IIC\FUNC.C"
SZ CR11
JMP L38
#pragma debug scope 23 22 ; 247 "E:\HT\IIC\FUNC.C"
#line 247 "E:\HT\IIC\FUNC.C"
MOV A,I2C_Read_N1
ADD A,CR12
MOV b0_9,A
MOV A,b0_9
MOV I2C_Write_Byte0,A
CALL _I2C_Write_Byte
#line 248 "E:\HT\IIC\FUNC.C"
CALL _I2C_Ack
MOV b0_9,A
MOV A,b0_9
CLR b0_9
SZ [05H]
SET b0_9.0
CLR CR11
SZ b0_9
SET CR11
#line 249 "E:\HT\IIC\FUNC.C"
SZ CR11
JMP L40
#pragma debug scope 24 23 ; 251 "E:\HT\IIC\FUNC.C"
#line 251 "E:\HT\IIC\FUNC.C"
CALL _I2C_Start
#line 252 "E:\HT\IIC\FUNC.C"
MOV A,0a1h
MOV I2C_Write_Byte0,A
CALL _I2C_Write_Byte
#line 253 "E:\HT\IIC\FUNC.C"
CALL _I2C_Ack
MOV b0_9,A
MOV A,b0_9
CLR b0_9
SZ [05H]
SET b0_9.0
CLR CR11
SZ b0_9
SET CR11
#line 254 "E:\HT\IIC\FUNC.C"
SZ CR11
JMP L42
#pragma debug scope 25 24 ; 256 "E:\HT\IIC\FUNC.C"
#line 256 "E:\HT\IIC\FUNC.C"
CALL _I2C_Read_Byte
MOV b0_9,A
MOV A,CR12
ADD A,I2C_Read_N2
MOV [01H],A
MOV A,b0_9
MOV [00H],A
#line 257 "E:\HT\IIC\FUNC.C"
CALL _I2C_Stop
#line 258 "E:\HT\IIC\FUNC.C"
#pragma debug scope 24 23 ; 258 "E:\HT\IIC\FUNC.C"
JMP L41
L42:
#pragma debug scope 26 24 ; 261 "E:\HT\IIC\FUNC.C"
#line 261 "E:\HT\IIC\FUNC.C"
DEC CR12
#line 263 "E:\HT\IIC\FUNC.C"
#pragma debug scope 23 22 ; 263 "E:\HT\IIC\FUNC.C"
JMP L41
L40:
#pragma debug scope 27 23 ; 266 "E:\HT\IIC\FUNC.C"
#line 266 "E:\HT\IIC\FUNC.C"
DEC CR12
L41:
L38:
L35:
#line 240 "E:\HT\IIC\FUNC.C"
#pragma debug scope 21 1 ; 240 "E:\HT\IIC\FUNC.C"
INC CR12
L37:
#line 240 "E:\HT\IIC\FUNC.C"
MOV A,CR12
SUB A,I2C_Read_N0
SNZ [0ah].0
JMP L34
L33:
RET
LOCAL b0_9 DB ?
#line 239 "E:\HT\IIC\FUNC.C"
LOCAL CR11 DBIT ; ack
#pragma debug variable 2 21 CR11 ack
#line 238 "E:\HT\IIC\FUNC.C"
LOCAL CR12 DB ? ; i
#pragma debug variable 8 21 CR12 i
_I2C_Read_N ENDP
EXTERN __DELAYX0:NEAR
EXTERN __DELAYX1:NEAR
EXTERN __DELAYX2:NEAR
EXTERN __DELAYX3:NEAR
EXTERN __DELAYX4:NEAR
EXTERN __DELAYX5:NEAR
EXTERN __DELAYX6:NEAR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -