📄 rfidsys.s
字号:
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 325
;
xcall _I2C_Start
tst R16
brne L72
.dbline 326
;
clr R16
xjmp L71
L72:
.dbline 328
;
;
movw R16,R22
xcall _I2C_SendWrDAdr_
tst R16
brne L74
.dbline 329
;
clr R16
xjmp L71
L74:
.dbline 331
;
;
mov R16,R20
xcall _I2C_SendDat
tst R16
brne L76
.dbline 332
;
clr R16
xjmp L71
L76:
.dbline 334
;
;
xcall _I2C_Restart
tst R16
brne L78
.dbline 335
;
clr R16
xjmp L71
L78:
.dbline 337
;
;
ldd R16,y+4
xcall _I2C_SendRdDAdr
tst R16
brne L80
.dbline 338
;
clr R16
xjmp L71
L80:
.dbline 340
;
;
ldd R16,y+6
ldd R17,y+7
xcall _I2C_RcvNAckDat
tst R16
brne L82
.dbline 341
;
clr R16
xjmp L71
L82:
.dbline 343
;
;
ldi R24,148
out 0x36,R24
.dbline 345
;
;
ldi R16,1
.dbline -2
L71:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym l pRdDat 6 pc
.dbsym l rdDAdr 4 c
.dbsym r wordAdr 20 c
.dbsym r wrDAdr 22 i
.dbend
.dbfunc e I2C_Read_ _I2C_Read_ fc
; i -> R20
; num -> R22
; pRdDat -> R10,R11
; rdDAdr -> y+8
; wordAdr -> R20
; wrDAdr -> R12,R13
.even
_I2C_Read_::
xcall push_gset4
mov R20,R18
movw R12,R16
ldd R10,y+10
ldd R11,y+11
ldd R22,y+12
.dbline -1
.dbline 361
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 364
;
;
;
xcall _I2C_Start
tst R16
brne L85
.dbline 365
;
clr R16
xjmp L84
L85:
.dbline 367
;
;
movw R16,R12
xcall _I2C_SendWrDAdr_
tst R16
brne L87
.dbline 368
;
clr R16
xjmp L84
L87:
.dbline 370
;
;
mov R16,R20
xcall _I2C_SendDat
tst R16
brne L89
.dbline 371
;
clr R16
xjmp L84
L89:
.dbline 373
;
;
xcall _I2C_Restart
tst R16
brne L91
.dbline 374
;
clr R16
xjmp L84
L91:
.dbline 376
;
;
ldd R16,y+8
xcall _I2C_SendRdDAdr
tst R16
brne L93
.dbline 377
;
clr R16
xjmp L84
L93:
.dbline 379
;
;
clr R20
xjmp L98
L95:
.dbline 380
;
mov R16,R20
clr R17
add R16,R10
adc R17,R11
xcall _I2C_RcvAckDat
tst R16
brne L99
.dbline 381
;
clr R16
xjmp L84
L99:
L96:
.dbline 379
inc R20
L98:
.dbline 379
mov R24,R22
subi R24,1
cp R20,R24
brlo L95
.dbline 383
;
;
mov R16,R20
clr R17
add R16,R10
adc R17,R11
xcall _I2C_RcvNAckDat
tst R16
brne L101
.dbline 384
;
clr R16
xjmp L84
L101:
.dbline 386
;
;
ldi R24,148
out 0x36,R24
.dbline 388
;
;
ldi R16,1
.dbline -2
L84:
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r num 22 c
.dbsym r pRdDat 10 pc
.dbsym l rdDAdr 8 c
.dbsym r wordAdr 20 c
.dbsym r wrDAdr 12 i
.dbend
.dbfile D:\Headers\Hardware.H
.dbfunc e delay50us _delay50us fV
; j -> R20
; t -> R16,R17
.even
_delay50us::
xcall push_gset1
.dbline -1
.dbline 106
.dbline 108
xjmp L107
L104:
.dbline 109
clr R20
xjmp L111
L108:
.dbline 110
L109:
.dbline 109
inc R20
L111:
.dbline 109
cpi R20,70
brlo L108
L105:
.dbline 108
subi R16,1
sbci R17,0
L107:
.dbline 108
clr R2
clr R3
cp R2,R16
cpc R3,R17
brlt L104
.dbline -2
L103:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r j 20 c
.dbsym r t 16 I
.dbend
.dbfunc e delay50ms _delay50ms fV
; i -> R20,R21
; t -> R16,R17
.even
_delay50ms::
xcall push_gset1
.dbline -1
.dbline 121
.dbline 123
xjmp L116
L113:
.dbline 124
clr R20
clr R21
xjmp L120
L117:
.dbline 125
L118:
.dbline 124
subi R20,255 ; offset = 1
sbci R21,255
L120:
.dbline 124
cpi R20,162
ldi R30,205
cpc R21,R30
brlo L117
L114:
.dbline 123
subi R16,1
sbci R17,0
L116:
.dbline 123
clr R2
clr R3
cp R2,R16
cpc R3,R17
brlt L113
.dbline -2
L112:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r t 16 I
.dbend
.dbfile D:\Headers\LCD12864_ST7920.H
.dbfunc e SPI_init _SPI_init fV
.even
_SPI_init::
.dbline -1
.dbline 78
.dbline 79
in R24,0x17
ori R24,176
out 0x17,R24
.dbline 81
ldi R24,80
out 0xd,R24
.dbline 82
ldi R24,1
out 0xe,R24
.dbline 83
sei
.dbline -2
L121:
.dbline 0 ; func end
ret
.dbend
.dbfunc e lcd_wrByte _lcd_wrByte fV
; data -> R16
.even
_lcd_wrByte::
.dbline -1
.dbline 87
.dbline 88
out 0xf,R16
L123:
.dbline 89
L124:
.dbline 89
sbis 0xe,7
rjmp L123
.dbline -2
L122:
.dbline 0 ; func end
ret
.dbsym r data 16 c
.dbend
.dbfunc e lcd_wrCmd _lcd_wrCmd fV
; LC -> R20
; HC -> R22
.even
_lcd_wrCmd::
xcall push_gset2
mov R20,R18
mov R22,R16
.dbline -1
.dbline 93
.dbline 94
ldi R16,248
xcall _lcd_wrByte
.dbline 95
mov R16,R22
xcall _lcd_wrByte
.dbline 96
mov R16,R20
xcall _lcd_wrByte
.dbline -2
L126:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r LC 20 c
.dbsym r HC 22 c
.dbend
.dbfunc e lcd_wrDat _lcd_wrDat fV
; LD -> R20
; HD -> R22
.even
_lcd_wrDat::
xcall push_gset2
mov R20,R18
mov R22,R16
.dbline -1
.dbline 100
.dbline 101
ldi R16,250
xcall _lcd_wrByte
.dbline 102
mov R16,R22
xcall _lcd_wrByte
.dbline 103
mov R16,R20
xcall _lcd_wrByte
.dbline -2
L127:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r LD 20 c
.dbsym r HD 22 c
.dbend
.dbfunc e lcd_set_xy _lcd_set_xy fV
; adr -> R20
; y -> R22
; x -> R20
.even
_lcd_set_xy::
xcall push_gset2
mov R22,R18
mov R20,R16
.dbline -1
.dbline 110
.dbline 113
clr R21
cpi R20,1
ldi R30,0
cpc R21,R30
breq L132
cpi R20,2
ldi R30,0
cpc R21,R30
breq L133
cpi R20,3
ldi R30,0
cpc R21,R30
breq L134
cpi R20,4
ldi R30,0
cpc R21,R30
breq L135
xjmp L129
X1:
.dbline 114
L132:
.dbline 115
mov R20,R22
subi R20,129 ; addi 127
.dbline 116
xjmp L130
L133:
.dbline 117
mov R20,R22
subi R20,113 ; addi 143
.dbline 118
xjmp L130
L134:
.dbline 119
mov R20,R22
subi R20,121 ; addi 135
.dbline 120
xjmp L130
L135:
.dbline 121
mov R20,R22
subi R20,105 ; addi 151
.dbline 122
L129:
.dbline 123
.dbline 124
L130:
.dbline 125
mov R18,R20
andi R18,15
andi R18,#0x0F
swap R18
mov R16,R20
andi R16,240
xcall _lcd_wrCmd
.dbline -2
L128:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r adr 20 c
.dbsym r y 22 c
.dbsym r x 20 c
.dbend
.dbfunc e lcd_putc _lcd_putc fV
; ch -> y+4
; y -> R22
; x -> R20
.even
_lcd_putc::
xcall push_gset2
mov R22,R18
mov R20,R16
.dbline -1
.dbline 129
.dbline 130
mov R18,R22
mov R16,R20
xcall _lcd_set_xy
.dbline 131
ldi R16,20
ldi R17,0
xcall _delay50us
.dbline 133
ldd R18,y+4
andi R18,15
andi R18,#0x0F
swap R18
ldd R16,y+4
andi R16,240
xcall _lcd_wrDat
.dbline -2
L136:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym l ch 4 c
.dbsym r y 22 c
.dbsym r x 20 c
.dbend
.dbfunc e lcd_putd0 _lcd_putd0 fV
; i -> R20
; length -> y+9
; dat -> y+5
; y -> R22
; x -> R20
.even
_lcd_putd0::
xcall push_gset2
mov R22,R18
mov R20,R16
sbiw R28,1
.dbline -1
.dbline 137
.dbline 140
ldd R0,y+9
std y+0,R0
movw R30,R28
ldd R16,z+5
ldd R17,z+6
ldd R18,z+7
ldd R19,z+8
xcall _speaData
.dbline 141
mov R18,R22
mov R16,R20
xcall _lcd_set_xy
.dbline 142
ldi R16,40
ldi R17,0
xcall _delay50us
.dbline 144
ldd R20,y+9
subi R20,1
xjmp L141
L138:
.dbline 145
.dbline 146
ldi R24,<_dataElem
ldi R25,>_dataElem
mov R30,R20
clr R31
sbrc R30,7
com R31
add R30,R24
adc R31,R25
ldd R24,z+0
clr R25
adiw R24,48
mov R18,R24
andi R18,15
andi R19,0
lsl R18
rol R19
lsl R18
rol R19
lsl R18
rol R19
lsl R18
rol R19
mov R16,R24
andi R16,240
andi R17,0
xcall _lcd_wrDat
.dbline 147
ldi R16,40
ldi R17,0
xcall _delay50us
.dbline 149
L139:
.dbline 144
dec R20
L141:
.dbline 144
cpi R20,0
brge L138
.dbline -2
L137:
adiw R28,1
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 C
.dbsym l length 9 c
.dbsym l dat 5 l
.dbsym r y 22 c
.dbsym r x 20 c
.dbend
.dbfunc e lcd_putd _lcd_putd fV
; effectLen -> R12
; i -> R10
; length -> y+15
; dat -> y+11
; y -> R14
; x -> R10
.even
_lcd_putd::
xcall push_gset5
mov R14,R18
mov R10,R16
sbiw R28,1
.dbline -1
.dbline 153
.dbline 157
ldi R20,63
ldi R21,66
ldi R22,15
ldi R23,0
movw R30,R28
ldd R2,z+11
ldd R3,z+12
ldd R4,z+13
ldd R5,z+14
cp R20,R2
cpc R21,R3
cpc R22,R4
cpc R23,R5
brsh L143
.dbline 158
ldi R24,7
mov R12,R24
xjmp L144
L143:
.dbline 159
ldi R20,159
ldi R21,134
ldi R22,1
ldi R23,0
movw R30,R28
ldd R2,z+11
ldd R3,z+12
ldd R4,z+13
ldd R5,z+14
cp R20,R2
cpc R21,R3
cpc R22,R4
cpc R23,R5
brsh L145
.dbline 160
ldi R24,6
mov R12,R24
xjmp L146
L145:
.dbline 161
ldi R20,15
ldi R21,39
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+11
ldd R3,z+12
ldd R4,z+13
ldd R5,z+14
cp R20,R2
cpc R21,R3
cpc R22,R4
cpc R23,R5
brsh L147
.dbline 162
ldi R24,5
mov R12,R24
xjmp L148
L147:
.dbline 163
ldi R20,231
ldi R21,3
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+11
ldd R3,z+12
ldd R4,z+13
ldd R5,z+14
cp R20,R2
cpc R21,R3
cpc R22,R4
cpc R23,R5
brsh L149
.dbline 164
ldi R24,4
mov R12,R24
xjmp L150
L149:
.dbline 165
ldi R20,99
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+11
ldd R3,z+12
ldd R4,z+13
ldd R5,z+14
cp R20,R2
cpc R21,R3
cpc R22,R4
cpc R23,R5
brsh L151
.dbline 166
ldi R24,3
mov R12,R24
xjmp L152
L151:
.dbline 167
ldi R20,9
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+11
ldd R3,z+12
ldd R4,z+13
ldd R5,z+14
cp R20,R2
cpc R21,R3
cpc R22,R4
cpc R23,R5
brsh L153
.dbline 168
ldi R24,2
mov R12,R24
xjmp L154
L153:
.dbline 170
clr R12
inc R12
L154:
L152:
L150:
L148:
L146:
L144:
.dbline 171
std y+0,R12
movw R30,R28
ldd R16,z+11
ldd R17,z+12
ldd R18,z+13
ldd R19,z+14
xcall _speaData
.dbline 173
mov R18,R14
mov R16,R10
xcall _lcd_set_xy
.dbline 174
ldi R16,40
ldi R17,0
xcall _delay50us
.dbline 176
ldd R0,y+15
cp R12,R0
brsh L155
.dbline 177
.dbline 178
mov R24,R0
sub R24,R12
subi R24,1
mov R10,R24
xjmp L160
L157:
.dbline 179
.dbline 180
clr R18
ldi R16,32
xcall _lcd_wrDat
.dbline 181
ldi R16,40
ldi R17,0
xcall _delay50us
.dbline 183
L158:
.dbline 178
dec R10
L160:
.dbline 178
mov R24,R10
cpi R24,0
brge L157
.dbline 184
L155:
.dbline 185
mov R24,R12
subi R24,1
mov R10,R24
xjmp L164
L161:
.dbline 186
.dbline 187
ldi R24,<_dataElem
ldi R25,>_dataElem
mov R30,R10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -