📄 rs485_51device.lis
字号:
035A 0E940000 xcall _I2C_Close
035E .dbline 189
035E ; communication->c51_txd = 1;
035E 81E0 ldi R24,1
0360 FA01 movw R30,R20
0362 8383 std z+3,R24
0364 .dbline 190
0364 ; Cyc_manage |= 0x02;
0364 80910000 lds R24,_Cyc_manage
0368 8260 ori R24,2
036A 80930000 sts _Cyc_manage,R24
036E .dbline -2
036E L51:
036E .dbline 0 ; func end
036E 2196 adiw R28,1
0370 0C940000 xjmp pop_xgsetF000
0374 .dbsym r communication 20 pS[data]
0374 .dbsym r C51_buf 22 pS[Device51_StructOfProtocol]
0374 .dbend
0374 .dbfunc e set_Device51_PRODUCT_CODE _set_Device51_PRODUCT_CODE fV
0374 ; communication -> R20,R21
0374 ; C51_buf -> R22,R23
.even
0374 _set_Device51_PRODUCT_CODE::
0374 0E940000 xcall push_xgsetF000
0378 2197 sbiw R28,1
037A .dbline -1
037A .dbline 195
037A ; }
037A ; //------------------------------------------------------------------------------
037A ; //设置产品标签代码
037A ; void set_Device51_PRODUCT_CODE(void)
037A ; {
037A .dbline 198
037A ; struct Device51_StructOfProtocol *C51_buf;
037A ; struct data *communication;
037A ; C51_buf = (struct Device51_StructOfProtocol*)C51Buffer485;
037A 60E0 ldi R22,<_C51Buffer485
037C 70E0 ldi R23,>_C51Buffer485
037E .dbline 199
037E ; C51_buf->Length = sizeof(struct StructOfProductCode) + 1;
037E 8BEF ldi R24,251
0380 90E0 ldi R25,0
0382 FB01 movw R30,R22
0384 9283 std z+2,R25
0386 8183 std z+1,R24
0388 .dbline 200
0388 ; I2C_Initial();
0388 0E940000 xcall _I2C_Initial
038C .dbline 201
038C ; AT24_Read((unsigned char *)&C51_buf->Data,StructOfProductCode_Address,C51_buf->Length-1);
038C FB01 movw R30,R22
038E 8181 ldd R24,z+1
0390 9281 ldd R25,z+2
0392 0197 sbiw R24,1
0394 8883 std y+0,R24
0396 2AEB ldi R18,39610
0398 3AE9 ldi R19,154
039A 8F01 movw R16,R30
039C 0C5F subi R16,252 ; offset = 4
039E 1F4F sbci R17,255
03A0 0E940000 xcall _AT24_Read
03A4 .dbline 202
03A4 ; I2C_Close();
03A4 0E940000 xcall _I2C_Close
03A8 .dbline 203
03A8 ; communication->c51_txd = 1;
03A8 81E0 ldi R24,1
03AA FA01 movw R30,R20
03AC 8383 std z+3,R24
03AE .dbline 204
03AE ; Cyc_manage |= 0x02;
03AE 80910000 lds R24,_Cyc_manage
03B2 8260 ori R24,2
03B4 80930000 sts _Cyc_manage,R24
03B8 .dbline -2
03B8 L52:
03B8 .dbline 0 ; func end
03B8 2196 adiw R28,1
03BA 0C940000 xjmp pop_xgsetF000
03BE .dbsym r communication 20 pS[data]
03BE .dbsym r C51_buf 22 pS[Device51_StructOfProtocol]
03BE .dbend
03BE .dbfunc e set_Device51_UNIT_STATUS _set_Device51_UNIT_STATUS fV
.even
03BE _set_Device51_UNIT_STATUS::
03BE .dbline -1
03BE .dbline 209
03BE ; }
03BE ; //------------------------------------------------------------------------------
03BE ; /*设置控制器状态*/
03BE ; void set_Device51_UNIT_STATUS(void)
03BE ; {
03BE .dbline -2
03BE L53:
03BE .dbline 0 ; func end
03BE 0895 ret
03C0 .dbend
03C0 .dbfunc e update_data_51director _update_data_51director fV
03C0 ; Device51 -> R10,R11
03C0 ; C51_buf -> R22,R23
03C0 ; i -> R20
.even
03C0 _update_data_51director::
03C0 0E940000 xcall push_xgsetF03C
03C4 .dbline -1
03C4 .dbline 219
03C4 ;
03C4 ;
03C4 ; }
03C4 ;
03C4 ;
03C4 ; //------------------------------------------------------------------------------
03C4 ; //------------------------------------------------------------------------------
03C4 ; //更新51控制板
03C4 ; void update_data_51director(void)
03C4 ; {
03C4 .dbline 223
03C4 ; unsigned char i;
03C4 ; struct Device51_StructOfProtocol *C51_buf;
03C4 ; struct Device51_Address *Device51;
03C4 ; C51_buf = (struct Device51_StructOfProtocol*)C51Buffer485;
03C4 60E0 ldi R22,<_C51Buffer485
03C6 70E0 ldi R23,>_C51Buffer485
03C8 .dbline 224
03C8 ; for(i=0;i<sizeof(struct ReadHC165Switch);i++)
03C8 4427 clr R20
03CA 43C0 xjmp L58
03CC L55:
03CC .dbline 225
03CC ; {
03CC .dbline 226
03CC ; C51_buf->Address = Device51->Address[i];
03CC E42F mov R30,R20
03CE FF27 clr R31
03D0 EA0D add R30,R10
03D2 FB1D adc R31,R11
03D4 2080 ldd R2,z+0
03D6 FB01 movw R30,R22
03D8 2082 std z+0,R2
03DA .dbline 227
03DA ; switch(C51_buf->Command)
03DA C380 ldd R12,z+3
03DC DD24 clr R13
03DE C601 movw R24,R12
03E0 8F33 cpi R24,63
03E2 E0E0 ldi R30,0
03E4 9E07 cpc R25,R30
03E6 09F4 brne X34
03E8 30C0 xjmp L68
03EA X34:
03EA X24:
03EA 8FE3 ldi R24,63
03EC 8C15 cp R24,R12
03EE 9D05 cpc R25,R13
03F0 D4F0 brlt L71
03F2 X25:
03F2 L70:
03F2 C601 movw R24,R12
03F4 8232 cpi R24,34
03F6 E0E0 ldi R30,0
03F8 9E07 cpc R25,R30
03FA D9F0 breq L62
03FC X26:
03FC 8332 cpi R24,35
03FE E0E0 ldi R30,0
0400 9E07 cpc R25,R30
0402 09F1 breq L67
0404 X27:
0404 8432 cpi R24,36
0406 E0E0 ldi R30,0
0408 9E07 cpc R25,R30
040A A9F0 breq L63
040C X28:
040C 8532 cpi R24,37
040E E0E0 ldi R30,0
0410 9E07 cpc R25,R30
0412 99F0 breq L64
0414 X29:
0414 8632 cpi R24,38
0416 E0E0 ldi R30,0
0418 9E07 cpc R25,R30
041A 89F0 breq L65
041C X30:
041C 8D32 cpi R24,45
041E E0E0 ldi R30,0
0420 9E07 cpc R25,R30
0422 79F0 breq L66
0424 X31:
0424 15C0 xjmp L60
0426 L71:
0426 C601 movw R24,R12
0428 8036 cpi R24,96
042A E0E0 ldi R30,0
042C 9E07 cpc R25,R30
042E 79F0 breq L69
0430 X32:
0430 0FC0 xjmp L60
0432 L62:
0432 .dbline 230
0432 ; {
0432 ; case CMD_SET_TIME://下载系统时间
0432 ; set_Device51_TIME();
0432 58DE xcall _set_Device51_TIME
0434 .dbline 231
0434 ; break;
0434 0DC0 xjmp L60
0436 L63:
0436 .dbline 233
0436 ; case CMD_SET_CARDSET://下载系统卡注册表
0436 ; set_Device51_CARDSET();
0436 7EDE xcall _set_Device51_CARDSET
0438 .dbline 234
0438 ; break;
0438 0BC0 xjmp L60
043A L64:
043A .dbline 236
043A ; case CMD_SET_USER://下载门禁时间组(设用户楼层授权资料)
043A ; set_Device51_USER();
043A BBDE xcall _set_Device51_USER
043C .dbline 237
043C ; break;
043C 09C0 xjmp L60
043E L65:
043E .dbline 239
043E ; case CMD_SET_USER_TIME://设用户时间组授权资料
043E ; set_Device51_USER_TIME();
043E F8DE xcall _set_Device51_USER_TIME
0440 .dbline 240
0440 ; break;
0440 07C0 xjmp L60
0442 L66:
0442 .dbline 242
0442 ; case CMD_SET_AUTH_TIME://设电梯授权时间组
0442 ; set_Device51_AUTH_TIME();
0442 35DF xcall _set_Device51_AUTH_TIME
0444 .dbline 243
0444 ; break;
0444 05C0 xjmp L60
0446 L67:
0446 .dbline 245
0446 ; case CMD_SET_CONFIG: //设置系统配置参数
0446 ; set_Device51_CONFIG();
0446 71DF xcall _set_Device51_CONFIG
0448 .dbline 246
0448 ; break;
0448 03C0 xjmp L60
044A L68:
044A .dbline 248
044A ; case CMD_SET_PRODUCT_CODE://设置产品标签代码
044A ; set_Device51_PRODUCT_CODE();
044A 94DF xcall _set_Device51_PRODUCT_CODE
044C .dbline 249
044C ; break;
044C 01C0 xjmp L60
044E L69:
044E .dbline 251
044E ; case CTL_SET_UNIT_STATUS: /*设置控制器状态*/
044E ; set_Device51_UNIT_STATUS();
044E B7DF xcall _set_Device51_UNIT_STATUS
0450 .dbline 252
0450 ; break;
0450 .dbline 254
0450 ; default:
0450 ; break;
0450 L60:
0450 .dbline 256
0450 ; }
0450 ; }
0450 L56:
0450 .dbline 224
0450 4395 inc R20
0452 L58:
0452 .dbline 224
0452 4330 cpi R20,3
0454 08F4 brsh X35
0456 BACF xjmp L55
0458 X35:
0458 X33:
0458 .dbline -2
0458 L54:
0458 .dbline 0 ; func end
0458 0C940000 xjmp pop_xgsetF03C
045C .dbsym r Device51 10 pS[Device51_Address]
045C .dbsym r C51_buf 22 pS[Device51_StructOfProtocol]
045C .dbsym r i 20 c
045C .dbend
045C ; }
045C ; //------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -