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

📄 rs485_51device.lis

📁 电梯楼层采集器代码
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 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 + -