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

📄 rs485_51device.lis

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