⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfidsys.s

📁 读写器与射频卡通信的设计采用RC522射频读写芯片与射频卡进行通信
💻 S
📖 第 1 页 / 共 3 页
字号:
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
	.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 + -