📄 rs485_51device.lis
字号:
00E0 L6:
00E0 .dbline 0 ; func end
00E0 0C940000 xjmp pop_xgsetF03C
00E4 .dbsym r communication 12 pS[data]
00E4 .dbsym r Device51 10 pS[Device51_Address]
00E4 .dbsym r C51_buf 22 pS[Device51_StructOfProtocol]
00E4 .dbsym r i 20 c
00E4 .dbend
00E4 .dbfunc e set_Device51_TIME _set_Device51_TIME fV
00E4 ; communication -> R16,R17
00E4 ; C51_buf -> R18,R19
.even
00E4 _set_Device51_TIME::
00E4 .dbline -1
00E4 .dbline 78
00E4 ; }
00E4 ; //------------------------------------------------------------------------------
00E4 ; //******************************************************************************
00E4 ; //------------------------------------------------------------------------------
00E4 ; //下载系统时间
00E4 ; void set_Device51_TIME(void)
00E4 ; {
00E4 .dbline 81
00E4 ; struct Device51_StructOfProtocol *C51_buf;
00E4 ; struct data *communication;
00E4 ; C51_buf = (struct Device51_StructOfProtocol*)C51Buffer485;
00E4 20E0 ldi R18,<_C51Buffer485
00E6 30E0 ldi R19,>_C51Buffer485
00E8 .dbline 82
00E8 ; C51_buf->Data[0] = DayOfTime >> 8;
00E8 20900000 lds R2,_DayOfTime
00EC 30900100 lds R3,_DayOfTime+1
00F0 232C mov R2,R3
00F2 3324 clr R3
00F4 F901 movw R30,R18
00F6 2482 std z+4,R2
00F8 .dbline 83
00F8 ; C51_buf->Data[1] = DayOfTime;
00F8 20900000 lds R2,_DayOfTime
00FC 30900100 lds R3,_DayOfTime+1
0100 2582 std z+5,R2
0102 .dbline 84
0102 ; C51_buf->Data[2] = SecondOfTime >> 8;
0102 20900000 lds R2,_SecondOfTime
0106 30900100 lds R3,_SecondOfTime+1
010A 232C mov R2,R3
010C 3324 clr R3
010E 2682 std z+6,R2
0110 .dbline 85
0110 ; C51_buf->Data[3] = SecondOfTime;
0110 20900000 lds R2,_SecondOfTime
0114 30900100 lds R3,_SecondOfTime+1
0118 2782 std z+7,R2
011A .dbline 86
011A ; C51_buf->Length = 5;
011A 85E0 ldi R24,5
011C 90E0 ldi R25,0
011E 9283 std z+2,R25
0120 8183 std z+1,R24
0122 .dbline 87
0122 ; communication->c51_txd = 1;
0122 81E0 ldi R24,1
0124 F801 movw R30,R16
0126 8383 std z+3,R24
0128 .dbline 88
0128 ; Cyc_manage |= 0x02;
0128 80910000 lds R24,_Cyc_manage
012C 8260 ori R24,2
012E 80930000 sts _Cyc_manage,R24
0132 .dbline -2
0132 L30:
0132 .dbline 0 ; func end
0132 0895 ret
0134 .dbsym r communication 16 pS[data]
0134 .dbsym r C51_buf 18 pS[Device51_StructOfProtocol]
0134 .dbend
0134 .dbfunc e set_Device51_CARDSET _set_Device51_CARDSET fV
0134 ; communication -> R20,R21
0134 ; count -> R12,R13
0134 ; C51_buf -> R22,R23
0134 ; point -> R10,R11
.even
0134 _set_Device51_CARDSET::
0134 0E940000 xcall push_xgsetF03C
0138 2197 sbiw R28,1
013A .dbline -1
013A .dbline 93
013A ; }
013A ; //------------------------------------------------------------------------------
013A ; //下载系统卡注册表
013A ; void set_Device51_CARDSET(void)
013A ; {
013A .dbline 97
013A ; unsigned int point,count;
013A ; struct Device51_StructOfProtocol *C51_buf;
013A ; struct data *communication;
013A ; C51_buf = (struct Device51_StructOfProtocol*)C51Buffer485;
013A 60E0 ldi R22,<_C51Buffer485
013C 70E0 ldi R23,>_C51Buffer485
013E .dbline 98
013E ; point = *(unsigned int *)C51_buf->Data;
013E FB01 movw R30,R22
0140 A480 ldd R10,z+4
0142 B580 ldd R11,z+5
0144 .dbline 99
0144 ; if (point < sizeof(struct StructOfRegister))
0144 C501 movw R24,R10
0146 8C3F cpi R24,252
0148 A5E0 ldi R26,5
014A 9A07 cpc R25,R26
014C 08F0 brlo X14
014E 2EC0 xjmp L32
0150 X14:
0150 X12:
0150 .dbline 100
0150 ; {//发送系统卡注册表给51控制板
0150 .dbline 101
0150 ; count = sizeof(struct StructOfRegister) - point;
0150 8CEF ldi R24,1532
0152 95E0 ldi R25,5
0154 6C01 movw R12,R24
0156 CA18 sub R12,R10
0158 DB08 sbc R13,R11
015A .dbline 102
015A ; if (count < 256 - 8) C51_buf->Length = count + 1;
015A C601 movw R24,R12
015C 883F cpi R24,248
015E A0E0 ldi R26,0
0160 9A07 cpc R25,R26
0162 20F4 brsh L34
0164 X13:
0164 .dbline 102
0164 0196 adiw R24,1
0166 9283 std z+2,R25
0168 8183 std z+1,R24
016A 05C0 xjmp L35
016C L34:
016C .dbline 103
016C ; else C51_buf->Length = 256 - 8;
016C 88EF ldi R24,248
016E 90E0 ldi R25,0
0170 FB01 movw R30,R22
0172 9283 std z+2,R25
0174 8183 std z+1,R24
0176 L35:
0176 .dbline 104
0176 ; point += CARDSET_Address;
0176 C501 movw R24,R10
0178 8154 subi R24,65 ; offset = 38079
017A 9B46 sbci R25,107
017C 5C01 movw R10,R24
017E .dbline 105
017E ; I2C_Initial();
017E 0E940000 xcall _I2C_Initial
0182 .dbline 106
0182 ; AT24_Read((unsigned char *)&C51_buf->Data,point,C51_buf->Length-1);
0182 FB01 movw R30,R22
0184 8181 ldd R24,z+1
0186 9281 ldd R25,z+2
0188 0197 sbiw R24,1
018A 8883 std y+0,R24
018C 9501 movw R18,R10
018E 8F01 movw R16,R30
0190 0C5F subi R16,252 ; offset = 4
0192 1F4F sbci R17,255
0194 0E940000 xcall _AT24_Read
0198 .dbline 107
0198 ; I2C_Close();
0198 0E940000 xcall _I2C_Close
019C .dbline 108
019C ; communication->c51_txd = 1;
019C 81E0 ldi R24,1
019E FA01 movw R30,R20
01A0 8383 std z+3,R24
01A2 .dbline 109
01A2 ; Cyc_manage |= 0x02;
01A2 80910000 lds R24,_Cyc_manage
01A6 8260 ori R24,2
01A8 80930000 sts _Cyc_manage,R24
01AC .dbline 110
01AC ; }
01AC L32:
01AC .dbline -2
01AC L31:
01AC .dbline 0 ; func end
01AC 2196 adiw R28,1
01AE 0C940000 xjmp pop_xgsetF03C
01B2 .dbsym r communication 20 pS[data]
01B2 .dbsym r count 12 i
01B2 .dbsym r C51_buf 22 pS[Device51_StructOfProtocol]
01B2 .dbsym r point 10 i
01B2 .dbend
01B2 .dbfunc e set_Device51_USER _set_Device51_USER fV
01B2 ; communication -> R20,R21
01B2 ; count -> R12,R13
01B2 ; C51_buf -> R22,R23
01B2 ; point -> R10,R11
.even
01B2 _set_Device51_USER::
01B2 0E940000 xcall push_xgsetF03C
01B6 2197 sbiw R28,1
01B8 .dbline -1
01B8 .dbline 115
01B8 ; }
01B8 ; //------------------------------------------------------------------------------
01B8 ; //下载门禁时间组(设用户楼层授权资料)
01B8 ; void set_Device51_USER(void)
01B8 ; {
01B8 .dbline 119
01B8 ; unsigned int point,count;
01B8 ; struct Device51_StructOfProtocol *C51_buf;
01B8 ; struct data *communication;
01B8 ; C51_buf = (struct Device51_StructOfProtocol*)C51Buffer485;
01B8 60E0 ldi R22,<_C51Buffer485
01BA 70E0 ldi R23,>_C51Buffer485
01BC .dbline 120
01BC ; point = *(unsigned int *)C51_buf->Data;
01BC FB01 movw R30,R22
01BE A480 ldd R10,z+4
01C0 B580 ldd R11,z+5
01C2 .dbline 121
01C2 ; if (point < sizeof(struct StructOfUserInformation))
01C2 C501 movw R24,R10
01C4 8033 cpi R24,48
01C6 A5E7 ldi R26,117
01C8 9A07 cpc R25,R26
01CA 08F0 brlo X17
01CC 2EC0 xjmp L37
01CE X17:
01CE X15:
01CE .dbline 122
01CE ; {//发送用户楼层授权资料给51控制板
01CE .dbline 123
01CE ; count = sizeof(struct StructOfUserInformation) - point;
01CE 80E3 ldi R24,30000
01D0 95E7 ldi R25,117
01D2 6C01 movw R12,R24
01D4 CA18 sub R12,R10
01D6 DB08 sbc R13,R11
01D8 .dbline 124
01D8 ; if (count < 256 - 8) C51_buf->Length = count + 1;
01D8 C601 movw R24,R12
01DA 883F cpi R24,248
01DC A0E0 ldi R26,0
01DE 9A07 cpc R25,R26
01E0 20F4 brsh L39
01E2 X16:
01E2 .dbline 124
01E2 0196 adiw R24,1
01E4 9283 std z+2,R25
01E6 8183 std z+1,R24
01E8 05C0 xjmp L40
01EA L39:
01EA .dbline 125
01EA ; else C51_buf->Length = 256 - 8;
01EA 88EF ldi R24,248
01EC 90E0 ldi R25,0
01EE FB01 movw R30,R22
01F0 9283 std z+2,R25
01F2 8183 std z+1,R24
01F4 L40:
01F4 .dbline 126
01F4 ; point += USER_INFORMATION_Address;
01F4 C501 movw R24,R10
01F6 8357 subi R24,115 ; offset = 8077
01F8 904E sbci R25,224
01FA 5C01 movw R10,R24
01FC .dbline 127
01FC ; I2C_Initial();
01FC 0E940000 xcall _I2C_Initial
0200 .dbline 128
0200 ; AT24_Read((unsigned char *)&C51_buf->Data,point,C51_buf->Length-1);
0200 FB01 movw R30,R22
0202 8181 ldd R24,z+1
0204 9281 ldd R25,z+2
0206 0197 sbiw R24,1
0208 8883 std y+0,R24
020A 9501 movw R18,R10
020C 8F01 movw R16,R30
020E 0C5F subi R16,252 ; offset = 4
0210 1F4F sbci R17,255
0212 0E940000 xcall _AT24_Read
0216 .dbline 129
0216 ; I2C_Close();
0216 0E940000 xcall _I2C_Close
021A .dbline 130
021A ; communication->c51_txd = 1;
021A 81E0 ldi R24,1
021C FA01 movw R30,R20
021E 8383 std z+3,R24
0220 .dbline 131
0220 ; Cyc_manage |= 0x02;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -