📄 rs485_51device.lis
字号:
0220 80910000 lds R24,_Cyc_manage
0224 8260 ori R24,2
0226 80930000 sts _Cyc_manage,R24
022A .dbline 132
022A ; }
022A L37:
022A .dbline -2
022A L36:
022A .dbline 0 ; func end
022A 2196 adiw R28,1
022C 0C940000 xjmp pop_xgsetF03C
0230 .dbsym r communication 20 pS[data]
0230 .dbsym r count 12 i
0230 .dbsym r C51_buf 22 pS[Device51_StructOfProtocol]
0230 .dbsym r point 10 i
0230 .dbend
0230 .dbfunc e set_Device51_USER_TIME _set_Device51_USER_TIME fV
0230 ; communication -> R20,R21
0230 ; count -> R12,R13
0230 ; C51_buf -> R22,R23
0230 ; point -> R10,R11
.even
0230 _set_Device51_USER_TIME::
0230 0E940000 xcall push_xgsetF03C
0234 2197 sbiw R28,1
0236 .dbline -1
0236 .dbline 137
0236 ; }
0236 ; //------------------------------------------------------------------------------
0236 ; //设用户时间组授权资料
0236 ; void set_Device51_USER_TIME(void)
0236 ; {
0236 .dbline 141
0236 ; unsigned int point,count;
0236 ; struct Device51_StructOfProtocol *C51_buf;
0236 ; struct data *communication;
0236 ; C51_buf = (struct Device51_StructOfProtocol*)C51Buffer485;
0236 60E0 ldi R22,<_C51Buffer485
0238 70E0 ldi R23,>_C51Buffer485
023A .dbline 142
023A ; point = *(unsigned int *)C51_buf->Data;
023A FB01 movw R30,R22
023C A480 ldd R10,z+4
023E B580 ldd R11,z+5
0240 .dbline 143
0240 ; if(point <sizeof(struct StructOfUserTimezone))
0240 C501 movw R24,R10
0242 8C34 cpi R24,76
0244 ADE1 ldi R26,29
0246 9A07 cpc R25,R26
0248 08F0 brlo X20
024A 2EC0 xjmp L42
024C X20:
024C X18:
024C .dbline 144
024C ; {//发送用户时间组授权资料给51控制板
024C .dbline 145
024C ; count = sizeof(struct StructOfUserTimezone) - point ;
024C 8CE4 ldi R24,7500
024E 9DE1 ldi R25,29
0250 6C01 movw R12,R24
0252 CA18 sub R12,R10
0254 DB08 sbc R13,R11
0256 .dbline 146
0256 ; if (count < 256 - 8) C51_buf->Length = count + 1;
0256 C601 movw R24,R12
0258 883F cpi R24,248
025A A0E0 ldi R26,0
025C 9A07 cpc R25,R26
025E 20F4 brsh L44
0260 X19:
0260 .dbline 146
0260 0196 adiw R24,1
0262 9283 std z+2,R25
0264 8183 std z+1,R24
0266 05C0 xjmp L45
0268 L44:
0268 .dbline 147
0268 ; else C51_buf->Length = 256 - 8;
0268 88EF ldi R24,248
026A 90E0 ldi R25,0
026C FB01 movw R30,R22
026E 9283 std z+2,R25
0270 8183 std z+1,R24
0272 L45:
0272 .dbline 148
0272 ; point += USER_TIMEZONE_Address;
0272 C501 movw R24,R10
0274 8D5B subi R24,189 ; offset = 579
0276 9D4F sbci R25,253
0278 5C01 movw R10,R24
027A .dbline 149
027A ; I2C_Initial();
027A 0E940000 xcall _I2C_Initial
027E .dbline 150
027E ; AT24_Read((unsigned char *)&C51_buf->Data,point,C51_buf->Length-1);
027E FB01 movw R30,R22
0280 8181 ldd R24,z+1
0282 9281 ldd R25,z+2
0284 0197 sbiw R24,1
0286 8883 std y+0,R24
0288 9501 movw R18,R10
028A 8F01 movw R16,R30
028C 0C5F subi R16,252 ; offset = 4
028E 1F4F sbci R17,255
0290 0E940000 xcall _AT24_Read
0294 .dbline 151
0294 ; I2C_Close();
0294 0E940000 xcall _I2C_Close
0298 .dbline 152
0298 ; communication->c51_txd = 1;
0298 81E0 ldi R24,1
029A FA01 movw R30,R20
029C 8383 std z+3,R24
029E .dbline 153
029E ; Cyc_manage |= 0x02;
029E 80910000 lds R24,_Cyc_manage
02A2 8260 ori R24,2
02A4 80930000 sts _Cyc_manage,R24
02A8 .dbline 154
02A8 ; }
02A8 L42:
02A8 .dbline -2
02A8 L41:
02A8 .dbline 0 ; func end
02A8 2196 adiw R28,1
02AA 0C940000 xjmp pop_xgsetF03C
02AE .dbsym r communication 20 pS[data]
02AE .dbsym r count 12 i
02AE .dbsym r C51_buf 22 pS[Device51_StructOfProtocol]
02AE .dbsym r point 10 i
02AE .dbend
02AE .dbfunc e set_Device51_AUTH_TIME _set_Device51_AUTH_TIME fV
02AE ; communication -> R20,R21
02AE ; count -> R12,R13
02AE ; C51_buf -> R22,R23
02AE ; point -> R10,R11
.even
02AE _set_Device51_AUTH_TIME::
02AE 0E940000 xcall push_xgsetF03C
02B2 2197 sbiw R28,1
02B4 .dbline -1
02B4 .dbline 159
02B4 ; }
02B4 ; //------------------------------------------------------------------------------
02B4 ; //设电梯授权时间组
02B4 ; void set_Device51_AUTH_TIME(void)
02B4 ; {
02B4 .dbline 163
02B4 ; unsigned int point,count;
02B4 ; struct Device51_StructOfProtocol *C51_buf;
02B4 ; struct data *communication;
02B4 ; C51_buf = (struct Device51_StructOfProtocol*)C51Buffer485;
02B4 60E0 ldi R22,<_C51Buffer485
02B6 70E0 ldi R23,>_C51Buffer485
02B8 .dbline 164
02B8 ; point = *(unsigned int *)C51_buf->Data;
02B8 FB01 movw R30,R22
02BA A480 ldd R10,z+4
02BC B580 ldd R11,z+5
02BE .dbline 165
02BE ; if(point <sizeof(struct StructOfLiftSchedule))
02BE C501 movw R24,R10
02C0 8936 cpi R24,105
02C2 A0E0 ldi R26,0
02C4 9A07 cpc R25,R26
02C6 08F0 brlo X23
02C8 2DC0 xjmp L47
02CA X23:
02CA X21:
02CA .dbline 166
02CA ; {//发送电梯授权时间组给51控制板
02CA .dbline 167
02CA ; count = sizeof(struct StructOfLiftSchedule) - point;
02CA 89E6 ldi R24,105
02CC 90E0 ldi R25,0
02CE 6C01 movw R12,R24
02D0 CA18 sub R12,R10
02D2 DB08 sbc R13,R11
02D4 .dbline 168
02D4 ; if (count < 256 - 8) C51_buf->Length = count + 1;
02D4 C601 movw R24,R12
02D6 883F cpi R24,248
02D8 A0E0 ldi R26,0
02DA 9A07 cpc R25,R26
02DC 20F4 brsh L49
02DE X22:
02DE .dbline 168
02DE 0196 adiw R24,1
02E0 9283 std z+2,R25
02E2 8183 std z+1,R24
02E4 05C0 xjmp L50
02E6 L49:
02E6 .dbline 169
02E6 ; else C51_buf->Length = 256 - 8;
02E6 88EF ldi R24,248
02E8 90E0 ldi R25,0
02EA FB01 movw R30,R22
02EC 9283 std z+2,R25
02EE 8183 std z+1,R24
02F0 L50:
02F0 .dbline 170
02F0 ; point += LIFT_SCHEDULE_Address;
02F0 C501 movw R24,R10
02F2 C696 adiw R24,54
02F4 5C01 movw R10,R24
02F6 .dbline 171
02F6 ; I2C_Initial();
02F6 0E940000 xcall _I2C_Initial
02FA .dbline 172
02FA ; AT24_Read((unsigned char *)&C51_buf->Data,point,C51_buf->Length-1);
02FA FB01 movw R30,R22
02FC 8181 ldd R24,z+1
02FE 9281 ldd R25,z+2
0300 0197 sbiw R24,1
0302 8883 std y+0,R24
0304 9501 movw R18,R10
0306 8F01 movw R16,R30
0308 0C5F subi R16,252 ; offset = 4
030A 1F4F sbci R17,255
030C 0E940000 xcall _AT24_Read
0310 .dbline 173
0310 ; I2C_Close();
0310 0E940000 xcall _I2C_Close
0314 .dbline 174
0314 ; communication->c51_txd = 1;
0314 81E0 ldi R24,1
0316 FA01 movw R30,R20
0318 8383 std z+3,R24
031A .dbline 175
031A ; Cyc_manage |= 0x02;
031A 80910000 lds R24,_Cyc_manage
031E 8260 ori R24,2
0320 80930000 sts _Cyc_manage,R24
0324 .dbline 176
0324 ; }
0324 L47:
0324 .dbline -2
0324 L46:
0324 .dbline 0 ; func end
0324 2196 adiw R28,1
0326 0C940000 xjmp pop_xgsetF03C
032A .dbsym r communication 20 pS[data]
032A .dbsym r count 12 i
032A .dbsym r C51_buf 22 pS[Device51_StructOfProtocol]
032A .dbsym r point 10 i
032A .dbend
032A .dbfunc e set_Device51_CONFIG _set_Device51_CONFIG fV
032A ; communication -> R20,R21
032A ; C51_buf -> R22,R23
.even
032A _set_Device51_CONFIG::
032A 0E940000 xcall push_xgsetF000
032E 2197 sbiw R28,1
0330 .dbline -1
0330 .dbline 181
0330 ; }
0330 ; //------------------------------------------------------------------------------
0330 ; /*设置系统配置参数*/
0330 ; void set_Device51_CONFIG(void)
0330 ; {
0330 .dbline 184
0330 ; struct Device51_StructOfProtocol *C51_buf;
0330 ; struct data *communication;
0330 ; C51_buf = (struct Device51_StructOfProtocol*)C51Buffer485;
0330 60E0 ldi R22,<_C51Buffer485
0332 70E0 ldi R23,>_C51Buffer485
0334 .dbline 185
0334 ; C51_buf->Length = sizeof(SystemConfig) + 1;
0334 81E2 ldi R24,33
0336 90E0 ldi R25,0
0338 FB01 movw R30,R22
033A 9283 std z+2,R25
033C 8183 std z+1,R24
033E .dbline 186
033E ; I2C_Initial();
033E 0E940000 xcall _I2C_Initial
0342 .dbline 187
0342 ; AT24_Read((unsigned char *)&C51_buf->Data,SystemConfig_Address,C51_buf->Length-1);
0342 FB01 movw R30,R22
0344 8181 ldd R24,z+1
0346 9281 ldd R25,z+2
0348 0197 sbiw R24,1
034A 8883 std y+0,R24
034C 2227 clr R18
034E 3327 clr R19
0350 8F01 movw R16,R30
0352 0C5F subi R16,252 ; offset = 4
0354 1F4F sbci R17,255
0356 0E940000 xcall _AT24_Read
035A .dbline 188
035A ; I2C_Close();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -