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

📄 zero.lis

📁 工业开关量检测模块的原代码,带断线检测功能
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0106 E80F              add R30,R24
 0108 F91F              adc R31,R25
 010A 2080              ldd R2,z+0
 010C 3180              ldd R3,z+1
 010E 4424              clr R4
 0110 5524              clr R5
 0112 FE01              movw R30,R28
 0114 EC59              subi R30,156  ; addi 100
 0116 FF4F              sbci R31,255
 0118 6080              ldd R6,z+0
 011A 7180              ldd R7,z+1
 011C 8280              ldd R8,z+2
 011E 9380              ldd R9,z+3
 0120 620C              add R6,R2
 0122 731C              adc R7,R3
 0124 841C              adc R8,R4
 0126 951C              adc R9,R5
 0128 FE01              movw R30,R28
 012A EC59              subi R30,156  ; addi 100
 012C FF4F              sbci R31,255
 012E 6082              std z+0,R6
 0130 7182              std z+1,R7
 0132 8282              std z+2,R8
 0134 9382              std z+3,R9
 0136                   .dbline 62
 0136           L25:
 0136                   .dbline 59
 0136 A394              inc R10
 0138           L27:
 0138                   .dbline 59
 0138 8A2D              mov R24,R10
 013A 8233              cpi R24,50
 013C 00F3              brlo L24
 013E                   .dbline 64
 013E           ; {
 013E           ; Ad_buf +=Ad_Ze[i];                             //重复50次 以保证基准点测量的准确性
 013E           ; }
 013E           ; 
 013E           ; asm("nop");
 013E 0000              nop
 0140                   .dbline 65
 0140           ; asm("nop");
 0140 0000              nop
 0142                   .dbline 66
 0142           ; Ad_Ze_Data=Ad_buf/50.0;
 0142 FE01              movw R30,R28
 0144 EC59              subi R30,156  ; addi 100
 0146 FF4F              sbci R31,255
 0148 0081              ldd R16,z+0
 014A 1181              ldd R17,z+1
 014C 2281              ldd R18,z+2
 014E 3381              ldd R19,z+3
 0150 0E940000          xcall long2fp
 0154 1801              movw R2,R16
 0156 2901              movw R4,R18
 0158 00E0              ldi R16,<L28
 015A 10E0              ldi R17,>L28
 015C 0E940000          xcall lpm32
 0160 3A93              st -y,R19
 0162 2A93              st -y,R18
 0164 1A93              st -y,R17
 0166 0A93              st -y,R16
 0168 8101              movw R16,R2
 016A 9201              movw R18,R4
 016C 0E940000          xcall fpdiv2
 0170 FE01              movw R30,R28
 0172 E459              subi R30,148  ; addi 108
 0174 FF4F              sbci R31,255
 0176 0083              std z+0,R16
 0178 1183              std z+1,R17
 017A 2283              std z+2,R18
 017C 3383              std z+3,R19
 017E                   .dbline 67
 017E           ; Ze_temp=Ad_Ze_Data*1000;                       //放大1000倍
 017E 00E0              ldi R16,<L29
 0180 10E0              ldi R17,>L29
 0182 0E940000          xcall lpm32
 0186 CE01              movw R24,R28
 0188 8459              subi R24,148  ; offset = 108
 018A 9F4F              sbci R25,255
 018C 9A93              st -y,R25
 018E 8A93              st -y,R24
 0190 0E940000          xcall fpmule1
 0194 0E940000          xcall fpint
 0198 FE01              movw R30,R28
 019A E859              subi R30,152  ; addi 104
 019C FF4F              sbci R31,255
 019E 0083              std z+0,R16
 01A0 1183              std z+1,R17
 01A2 2283              std z+2,R18
 01A4 3383              std z+3,R19
 01A6                   .dbline 69
 01A6           ; 
 01A6           ; temp_dd = (Ze_temp&0xff000000)>>24;            //数据高八位存入EEROM的00地址
 01A6 40E0              ldi R20,0
 01A8 50E0              ldi R21,0
 01AA 60E0              ldi R22,0
 01AC 7FEF              ldi R23,255
 01AE FE01              movw R30,R28
 01B0 E859              subi R30,152  ; addi 104
 01B2 FF4F              sbci R31,255
 01B4 0081              ldd R16,z+0
 01B6 1181              ldd R17,z+1
 01B8 2281              ldd R18,z+2
 01BA 3381              ldd R19,z+3
 01BC 0423              and R16,R20
 01BE 1523              and R17,R21
 01C0 2623              and R18,R22
 01C2 3723              and R19,R23
 01C4 88E1              ldi R24,24
 01C6 90E0              ldi R25,0
 01C8 8A93              st -y,R24
 01CA 0E940000          xcall lsr32
 01CE C02E              mov R12,R16
 01D0                   .dbline 70
 01D0           ; EEPROMwrite(0x01,temp_dd);
 01D0 2C2D              mov R18,R12
 01D2 01E0              ldi R16,1
 01D4 10E0              ldi R17,0
 01D6 0E940000          xcall _EEPROMwrite
 01DA                   .dbline 72
 01DA           ; 
 01DA           ; temp_dd = (Ze_temp&0x00ff0000)>>16;            
 01DA 40E0              ldi R20,0
 01DC 50E0              ldi R21,0
 01DE 6FEF              ldi R22,255
 01E0 70E0              ldi R23,0
 01E2 FE01              movw R30,R28
 01E4 E859              subi R30,152  ; addi 104
 01E6 FF4F              sbci R31,255
 01E8 2080              ldd R2,z+0
 01EA 3180              ldd R3,z+1
 01EC 4280              ldd R4,z+2
 01EE 5380              ldd R5,z+3
 01F0 2422              and R2,R20
 01F2 3522              and R3,R21
 01F4 4622              and R4,R22
 01F6 5722              and R5,R23
 01F8 6201              movw R12,R4
 01FA                   .dbline 73
 01FA           ; EEPROMwrite(0x02,temp_dd);
 01FA 2C2D              mov R18,R12
 01FC 02E0              ldi R16,2
 01FE 10E0              ldi R17,0
 0200 0E940000          xcall _EEPROMwrite
 0204                   .dbline 75
 0204           ; 
 0204           ; temp_dd = (Ze_temp&0x00ff00)>>8;
 0204 40E0              ldi R20,0
 0206 5FEF              ldi R21,255
 0208 60E0              ldi R22,0
 020A 70E0              ldi R23,0
 020C FE01              movw R30,R28
 020E E859              subi R30,152  ; addi 104
 0210 FF4F              sbci R31,255
 0212 0081              ldd R16,z+0
 0214 1181              ldd R17,z+1
 0216 2281              ldd R18,z+2
 0218 3381              ldd R19,z+3
 021A 0423              and R16,R20
 021C 1523              and R17,R21
 021E 2623              and R18,R22
 0220 3723              and R19,R23
 0222 88E0              ldi R24,8
 0224 90E0              ldi R25,0
 0226 8A93              st -y,R24
 0228 0E940000          xcall asr32
 022C C02E              mov R12,R16
 022E                   .dbline 76
 022E           ; EEPROMwrite(0x03,temp_dd);
 022E 2C2D              mov R18,R12
 0230 03E0              ldi R16,3
 0232 10E0              ldi R17,0
 0234 0E940000          xcall _EEPROMwrite
 0238                   .dbline 78
 0238           ; 
 0238           ; temp_dd = (Ze_temp&0x00ff);
 0238 4FEF              ldi R20,255
 023A 50E0              ldi R21,0
 023C 60E0              ldi R22,0
 023E 70E0              ldi R23,0
 0240 FE01              movw R30,R28
 0242 E859              subi R30,152  ; addi 104
 0244 FF4F              sbci R31,255
 0246 2080              ldd R2,z+0
 0248 3180              ldd R3,z+1
 024A 4280              ldd R4,z+2
 024C 5380              ldd R5,z+3
 024E 2422              and R2,R20
 0250 3522              and R3,R21
 0252 4622              and R4,R22
 0254 5722              and R5,R23
 0256 C22C              mov R12,R2
 0258                   .dbline 79
 0258           ; EEPROMwrite(0x04,temp_dd);
 0258 222D              mov R18,R2
 025A 04E0              ldi R16,4
 025C 10E0              ldi R17,0
 025E 0E940000          xcall _EEPROMwrite
 0262                   .dbline 80
 0262           ; EEPROMwrite(0x09,0x5a);
 0262 2AE5              ldi R18,90
 0264 09E0              ldi R16,9
 0266 10E0              ldi R17,0
 0268 0E940000          xcall _EEPROMwrite
 026C                   .dbline 81
 026C           ; asm("nop");
 026C 0000              nop
 026E                   .dbline 82
 026E           ; asm("nop");
 026E 0000              nop
 0270                   .dbline 83
 0270           ; PORTB|=0x20;                                  //点亮运行指示灯 表示基准点测量已完成
 0270 2D9A              sbi 0x5,5
 0272                   .dbline -2
 0272           L7:
 0272 EF96              adiw R28,63
 0274 E196              adiw R28,49  ; offset = 112
 0276 0E940000          xcall pop_gset5
 027A                   .dbline 0 ; func end
 027A 0895              ret
 027C                   .dbsym l Ad_Ze_Data 108 D
 027C                   .dbsym r ta 10 c
 027C                   .dbsym l Ze_temp 104 L
 027C                   .dbsym r temp_dd 12 c
 027C                   .dbsym l Ad_buf 100 L
 027C                   .dbsym l Ad_Ze 0 A[100:50]i
 027C                   .dbsym r j 14 c
 027C                   .dbsym r i 10 c
 027C                   .dbend
                        .area lit(rom, con, rel)
 0000           L29:
 0000 00007A44          .word 0x0,0x447a
 0004           L28:
 0004 00004842          .word 0x0,0x4248

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -