📄 rf.lis
字号:
018E 87 psha
018F CD002D jsr _RFRegWrite
0192 A702 ais #2
0194 .dbline 193
0194 ; data = RFRegRead(0x29); //读寄存器FIFOLevel($29),验证写入是否正确
0194 A629 lda #41
0196 87 psha
0197 CD0000 jsr _RFRegRead
019A A701 ais #1
019C 95 tsx
019D B700 sta *__r1
019F F7 sta ,X
01A0 .dbline 194
01A0 ; if (data == 0x20)
01A0 A120 cmp #32
01A2 2603 bne L44
01A4 .dbline 195
01A4 ; return 0; //初始化成功
01A4 4F clra
01A5 2002 bra L35
01A7 L44:
01A7 .dbline 197
01A7 ; else
01A7 ; return 1; //初始化失败
01A7 A601 lda #1
01A9 .dbline -2
01A9 L35:
01A9 A702 ais #2
01AB .dbline 0 ; func end
01AB 81 rts
01AC .dbsym l data 0 c
01AC .dbsym l i 1 c
01AC .dbend
01AC .dbfunc e RC531_Init _RC531_Init fV
01AC _RC531_Init::
01AC .dbline -1
01AC .dbline 206
01AC ; }
01AC ;
01AC ; //RC531_Init--------------------------------------------------------------*
01AC ; //功 能: 禁止中断及清除中断标志 *
01AC ; //参 数: 无 *
01AC ; //返 回: 无 *
01AC ; //------------------------------------------------------------------------*
01AC ; void RC531_Init(void)
01AC ; {
01AC .dbline 207
01AC ; RFRegWrite(RegPage, 0x00); //线性地址模式
01AC 4F clra
01AD 87 psha
01AE 87 psha
01AF CD002D jsr _RFRegWrite
01B2 A702 ais #2
01B4 .dbline 208
01B4 ; RFRegWrite(RegInterruptEn, 0x7f); //禁止所有中断
01B4 A67F lda #127
01B6 87 psha
01B7 A606 lda #6
01B9 87 psha
01BA CD002D jsr _RFRegWrite
01BD A702 ais #2
01BF .dbline 209
01BF ; RFRegWrite(RegInterruptRq, 0x7f); //中断标识清零
01BF A67F lda #127
01C1 87 psha
01C2 A607 lda #7
01C4 87 psha
01C5 CD002D jsr _RFRegWrite
01C8 A702 ais #2
01CA 95 tsx
01CB .dbline -2
01CB L46:
01CB .dbline 0 ; func end
01CB 81 rts
01CC .dbend
01CC .dbfunc e RC531_14443ABInit _RC531_14443ABInit fV
01CC ; i -> 0,X
01CC ; Tagtype -> 4,X
01CC _RC531_14443ABInit::
01CC .dbline -1
01CC A7FE ais #-2
01CE 95 tsx
01CF .dbline 223
01CF ; }
01CF ;
01CF ; //------------------------------------------------------------------------*
01CF ; //3.RC531的读卡操作 *
01CF ; //------------------------------------------------------------------------*
01CF ;
01CF ; //RC531_14443ABInit-------------------------------------------------------*
01CF ; //功 能: 初始化RC531各相关寄存器 *
01CF ; //参 数: Tagtype - 电子标签类型 *
01CF ; // 0 - ISO14443B; 1 - ISO14443A *
01CF ; //返 回: 无 *
01CF ; //------------------------------------------------------------------------*
01CF ; void RC531_14443ABInit(INT8U Tagtype)
01CF ; {
01CF .dbline 227
01CF ; INT16U i;
01CF ;
01CF ; //设置线性地址模式
01CF ; RFRegWrite(RegPage, 0x00);
01CF 4F clra
01D0 87 psha
01D1 87 psha
01D2 CD002D jsr _RFRegWrite
01D5 A702 ais #2
01D7 95 tsx
01D8 .dbline 230
01D8 ;
01D8 ; //根据电子标签类型进行相应的RC531寄存器初始化
01D8 ; if(Tagtype)
01D8 E604 lda 4,X
01DA 2603 bne X0
01DC CC0270 jmp L48
01DF X0:
01DF .dbline 231
01DF ; {
01DF .dbline 234
01DF ; //ISO14443A电子标签
01DF ; //第2页 传送器与编码器控制
01DF ; RFRegWrite(RegTxControl, 0x5b); //0x5b, 幅移键控ASk 100%
01DF A65B lda #91
01E1 87 psha
01E2 A611 lda #17
01E4 87 psha
01E5 CD002D jsr _RFRegWrite
01E8 A702 ais #2
01EA .dbline 235
01EA ; RFRegWrite(RegCwConductance, 0x3f); //0x3f, 设置输出驱动的电导系数
01EA A63F lda #63
01EC 87 psha
01ED A612 lda #18
01EF 87 psha
01F0 CD002D jsr _RFRegWrite
01F3 A702 ais #2
01F5 .dbline 236
01F5 ; RFRegWrite(RegModConductance, 0x3f); //0x3f, 调制比 100%
01F5 A63F lda #63
01F7 87 psha
01F8 A613 lda #19
01FA 87 psha
01FB CD002D jsr _RFRegWrite
01FE A702 ais #2
0200 .dbline 237
0200 ; RFRegWrite(RegCoderControl, 0x19); //0x19, TypeA模式,波特率106kbps,米勒编码
0200 A619 lda #25
0202 87 psha
0203 A614 lda #20
0205 87 psha
0206 CD002D jsr _RFRegWrite
0209 A702 ais #2
020B .dbline 238
020B ; RFRegWrite(RegTypeBFraming, 0x00); //0x00, EGT=0
020B 4F clra
020C 87 psha
020D A617 lda #23
020F 87 psha
0210 CD002D jsr _RFRegWrite
0213 A702 ais #2
0215 .dbline 241
0215 ;
0215 ; //第3页 接收器与解码器控制
0215 ; RFRegWrite(RegDecoderControl, 0x08); //0x08, ISO14443A帧,曼彻斯特编码
0215 A608 lda #8
0217 87 psha
0218 A61A lda #26
021A 87 psha
021B CD002D jsr _RFRegWrite
021E A702 ais #2
0220 .dbline 242
0220 ; RFRegWrite(RegRxThreshold, 0xff); //0xff, 可接收的最小信号强度
0220 A6FF lda #-1
0222 87 psha
0223 A61C lda #28
0225 87 psha
0226 CD002D jsr _RFRegWrite
0229 A702 ais #2
022B .dbline 243
022B ; RFRegWrite(RegBPSKDemControl, 0x1e); //0x00, 忽略EOF,打开高通滤波
022B A61E lda #30
022D 87 psha
022E A61D lda #29
0230 87 psha
0231 CD002D jsr _RFRegWrite
0234 A702 ais #2
0236 .dbline 244
0236 ; RFRegWrite(RegClockQControl, 0x00); //0x3f, Q时钟控制
0236 4F clra
0237 87 psha
0238 A61F lda #31
023A 87 psha
023B CD002D jsr _RFRegWrite
023E A702 ais #2
0240 .dbline 247
0240 ;
0240 ; //第4页 射频时间和通道冗余
0240 ; RFRegWrite(RegRxWait, 0x06); //0x06, 设置接收延时
0240 A606 lda #6
0242 87 psha
0243 A621 lda #33
0245 87 psha
0246 CD002D jsr _RFRegWrite
0249 A702 ais #2
024B .dbline 248
024B ; RFRegWrite(RegChannelRedundancy, 0x03); //0x03, TypeA接收冗余校验
024B A603 lda #3
024D 87 psha
024E A622 lda #34
0250 87 psha
0251 CD002D jsr _RFRegWrite
0254 A702 ais #2
0256 .dbline 249
0256 ; RFRegWrite(RegCRCPresetLSB, 0x63); //0x63, CRC预设值
0256 A663 lda #99
0258 87 psha
0259 A623 lda #35
025B 87 psha
025C CD002D jsr _RFRegWrite
025F A702 ais #2
0261 .dbline 250
0261 ; RFRegWrite(RegCRCPresetMSB, 0x63); //0x63, CRC预设值
0261 A663 lda #99
0263 87 psha
0264 A624 lda #36
0266 87 psha
0267 CD002D jsr _RFRegWrite
026A A702 ais #2
026C 95 tsx
026D .dbline 251
026D ; }
026D CC0300 jmp L49
0270 L48:
0270 .dbline 253
0270 ; else
0270 ; {
0270 .dbline 256
0270 ; //ISO14443B电子标签
0270 ; //第2页 传送器与编码器控制
0270 ; RFRegWrite(RegTxControl, 0x4b); //0x4b, 13.56MHz
0270 A64B lda #75
0272 87 psha
0273 A611 lda #17
0275 87 psha
0276 CD002D jsr _RFRegWrite
0279 A702 ais #2
027B .dbline 257
027B ; RFRegWrite(RegCwConductance, 0x3f); //0x3f, 设置输出驱动的电导系数
027B A63F lda #63
027D 87 psha
027E A612 lda #18
0280 87 psha
0281 CD002D jsr _RFRegWrite
0284 A702 ais #2
0286 .dbline 258
0286 ; RFRegWrite(RegModConductance, 0x06); //0x06, 幅移键控ASk 12%
0286 A606 lda #6
0288 87 psha
0289 A613 lda #19
028B 87 psha
028C CD002D jsr _RFRegWrite
028F A702 ais #2
0291 .dbline 259
0291 ; RFRegWrite(RegCoderControl, 0x20); //0x20, TypeB,波特率106kbps, NRZ编码
0291 A620 lda #32
0293 87 psha
0294 A614 lda #20
0296 87 psha
0297 CD002D jsr _RFRegWrite
029A A702 ais #2
029C .dbline 260
029C ; RFRegWrite(RegTypeBFraming, 0x23); //0x23, 定义ISO14443B帧格式
029C A623 lda #35
029E 87 psha
029F A617 lda #23
02A1 87 psha
02A2 CD002D jsr _RFRegWrite
02A5 A702 ais #2
02A7 .dbline 263
02A7 ;
02A7 ; //第3页 接收器与解码器控制
02A7 ; RFRegWrite(RegDecoderControl, 0x19); //0x19, ISO14443B帧,BPSK编码
02A7 A619 lda #25
02A9 87 psha
02AA A61A lda #26
02AC 87 psha
02AD CD002D jsr _RFRegWrite
02B0 A702 ais #2
02B2 .dbline 264
02B2 ; RFRegWrite(RegRxThreshold, 0x44); //0x44, 可接收的最小信号强度
02B2 A644 lda #68
02B4 87 psha
02B5 A61C lda #28
02B7 87 psha
02B8 CD002D jsr _RFRegWrite
02BB A702 ais #2
02BD .dbline 265
02BD ; RFRegWrite(RegBPSKDemControl, 0x3e); //0x3e, 忽略EOF,打开高通滤波
02BD A63E lda #62
02BF 87 psha
02C0 A61D lda #29
02C2 87 psha
02C3 CD002D jsr _RFRegWrite
02C6 A702 ais #2
02C8 .dbline 266
02C8 ; RFRegWrite(RegClockQControl, 0x07); //0x3f, Q时钟控制
02C8 A607 lda #7
02CA 87 psha
02CB A61F lda #31
02CD 87 psha
02CE CD002D jsr _RFRegWrite
02D1 A702 ais #2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -