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

📄 function.lis

📁 LED显示面板
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0168 2A93              st -y,r18
 016A 0E940000          xcall push_gset5
 016E 402F              mov R20,R16
 0170 2397              sbiw R28,3
 0172                   .dbline -1
 0172                   .dbline 35
 0172           ; }
 0172           ; 
 0172           ; void turn_display(unsigned char channel,unsigned char point_flag,unsigned int data)
 0172           ; {
 0172                   .dbline 38
 0172           ; unsigned char t1,t2,t3,t4;
 0172           ; unsigned int t5;
 0172           ; if( pannel_led[channel].up_down==0xa5)
 0172 8AE1              ldi R24,26
 0174 849F              mul R24,R20
 0176 F001              movw R30,R0
 0178 80E0              ldi R24,<_pannel_led+6
 017A 90E0              ldi R25,>_pannel_led+6
 017C E80F              add R30,R24
 017E F91F              adc R31,R25
 0180 8081              ldd R24,z+0
 0182 853A              cpi R24,165
 0184 09F0              breq X0
 0186 2FC0              xjmp L11
 0188           X0:
 0188                   .dbline 39
 0188           ; {
 0188                   .dbline 40
 0188           ;  if( pannel_led[channel].state==0x5a)
 0188 8AE1              ldi R24,26
 018A 849F              mul R24,R20
 018C F001              movw R30,R0
 018E 80E0              ldi R24,<_pannel_led+21
 0190 90E0              ldi R25,>_pannel_led+21
 0192 E80F              add R30,R24
 0194 F91F              adc R31,R25
 0196 8081              ldd R24,z+0
 0198 8A35              cpi R24,90
 019A 29F4              brne L14
 019C                   .dbline 41
 019C           ;    {
 019C                   .dbline 42
 019C           ;    PORTD |= 0x01;
 019C 589A              sbi 0xb,0
 019E                   .dbline 43
 019E           ;    PORTD &= 0x7f;
 019E 8BB1              in R24,0xb
 01A0 8F77              andi R24,127
 01A2 8BB9              out 0xb,R24
 01A4                   .dbline 44
 01A4           ;    }
 01A4 57C0              xjmp L12
 01A6           L14:
 01A6                   .dbline 45
 01A6           ;   else if(pannel_led[channel].state==0)
 01A6 8AE1              ldi R24,26
 01A8 849F              mul R24,R20
 01AA F001              movw R30,R0
 01AC 80E0              ldi R24,<_pannel_led+21
 01AE 90E0              ldi R25,>_pannel_led+21
 01B0 E80F              add R30,R24
 01B2 F91F              adc R31,R25
 01B4 2080              ldd R2,z+0
 01B6 2220              tst R2
 01B8 21F4              brne L17
 01BA                   .dbline 46
 01BA           ;   {
 01BA                   .dbline 47
 01BA           ;   PORTD&=0x7e;
 01BA 8BB1              in R24,0xb
 01BC 8E77              andi R24,126
 01BE 8BB9              out 0xb,R24
 01C0                   .dbline 48
 01C0           ;     }
 01C0 49C0              xjmp L12
 01C2           L17:
 01C2                   .dbline 49
 01C2           ;   else if(pannel_led[channel].state==0xa5)
 01C2 8AE1              ldi R24,26
 01C4 849F              mul R24,R20
 01C6 F001              movw R30,R0
 01C8 80E0              ldi R24,<_pannel_led+21
 01CA 90E0              ldi R25,>_pannel_led+21
 01CC E80F              add R30,R24
 01CE F91F              adc R31,R25
 01D0 8081              ldd R24,z+0
 01D2 853A              cpi R24,165
 01D4 09F0              breq X1
 01D6 3EC0              xjmp L12
 01D8           X1:
 01D8                   .dbline 50
 01D8           ;  {
 01D8                   .dbline 51
 01D8           ;  PORTD |= 0x03;
 01D8 8BB1              in R24,0xb
 01DA 8360              ori R24,3
 01DC 8BB9              out 0xb,R24
 01DE                   .dbline 52
 01DE           ;  PORTD &= 0x7f;
 01DE 8BB1              in R24,0xb
 01E0 8F77              andi R24,127
 01E2 8BB9              out 0xb,R24
 01E4                   .dbline 53
 01E4           ;    }  
 01E4                   .dbline 54
 01E4           ;   }
 01E4 37C0              xjmp L12
 01E6           L11:
 01E6                   .dbline 55
 01E6           ;  else if(pannel_led[channel].up_down==0x5a) 
 01E6 8AE1              ldi R24,26
 01E8 849F              mul R24,R20
 01EA F001              movw R30,R0
 01EC 80E0              ldi R24,<_pannel_led+6
 01EE 90E0              ldi R25,>_pannel_led+6
 01F0 E80F              add R30,R24
 01F2 F91F              adc R31,R25
 01F4 8081              ldd R24,z+0
 01F6 8A35              cpi R24,90
 01F8 69F5              brne L23
 01FA                   .dbline 56
 01FA           ;  {
 01FA                   .dbline 57
 01FA           ;    if( pannel_led[channel].state==0x5a)
 01FA 8AE1              ldi R24,26
 01FC 849F              mul R24,R20
 01FE F001              movw R30,R0
 0200 80E0              ldi R24,<_pannel_led+21
 0202 90E0              ldi R25,>_pannel_led+21
 0204 E80F              add R30,R24
 0206 F91F              adc R31,R25
 0208 8081              ldd R24,z+0
 020A 8A35              cpi R24,90
 020C 29F4              brne L26
 020E                   .dbline 58
 020E           ;    {
 020E                   .dbline 59
 020E           ;    PORTD |= 0x02;
 020E 599A              sbi 0xb,1
 0210                   .dbline 60
 0210           ;     PORTD &= 0x7f;
 0210 8BB1              in R24,0xb
 0212 8F77              andi R24,127
 0214 8BB9              out 0xb,R24
 0216                   .dbline 61
 0216           ;    }
 0216 1EC0              xjmp L27
 0218           L26:
 0218                   .dbline 62
 0218           ;   else if(pannel_led[channel].state==0)
 0218 8AE1              ldi R24,26
 021A 849F              mul R24,R20
 021C F001              movw R30,R0
 021E 80E0              ldi R24,<_pannel_led+21
 0220 90E0              ldi R25,>_pannel_led+21
 0222 E80F              add R30,R24
 0224 F91F              adc R31,R25
 0226 2080              ldd R2,z+0
 0228 2220              tst R2
 022A 21F4              brne L29
 022C                   .dbline 63
 022C           ;   {
 022C                   .dbline 64
 022C           ;   PORTD&=0xfd;
 022C 8BB1              in R24,0xb
 022E 8D7F              andi R24,253
 0230 8BB9              out 0xb,R24
 0232                   .dbline 65
 0232           ;     }
 0232 10C0              xjmp L30
 0234           L29:
 0234                   .dbline 66
 0234           ;   else if(pannel_led[channel].state==0xa5)
 0234 8AE1              ldi R24,26
 0236 849F              mul R24,R20
 0238 F001              movw R30,R0
 023A 80E0              ldi R24,<_pannel_led+21
 023C 90E0              ldi R25,>_pannel_led+21
 023E E80F              add R30,R24
 0240 F91F              adc R31,R25
 0242 8081              ldd R24,z+0
 0244 853A              cpi R24,165
 0246 31F4              brne L32
 0248                   .dbline 67
 0248           ;  {
 0248                   .dbline 68
 0248           ;  PORTD |= 0x03;
 0248 8BB1              in R24,0xb
 024A 8360              ori R24,3
 024C 8BB9              out 0xb,R24
 024E                   .dbline 69
 024E           ;   PORTD &= 0x7f;
 024E 8BB1              in R24,0xb
 0250 8F77              andi R24,127
 0252 8BB9              out 0xb,R24
 0254                   .dbline 70
 0254           ;  }    
 0254           L32:
 0254           L30:
 0254           L27:
 0254                   .dbline 71
 0254           ;   }
 0254           L23:
 0254           L12:
 0254                   .dbline 74
 0254           ;  
 0254           ; 
 0254           ; t1 = channel/10;
 0254 1AE0              ldi R17,10
 0256 042F              mov R16,R20
 0258 0E940000          xcall div8u
 025C E02E              mov R14,R16
 025E                   .dbline 75
 025E           ; t2 = channel%10;
 025E 1AE0              ldi R17,10
 0260 042F              mov R16,R20
 0262 0E940000          xcall mod8u
 0266 A02E              mov R10,R16
 0268                   .dbline 76
 0268           ; if(!t1)
 0268 EE20              tst R14
 026A 41F4              brne L35
 026C                   .dbline 77
 026C           ; led7_display(12,0,0,1);
 026C 81E0              ldi R24,1
 026E 8A83              std y+2,R24
 0270 2224              clr R2
 0272 2882              std y+0,R2
 0274 2227              clr R18
 0276 0CE0              ldi R16,12
 0278 27D5              xcall _led7_display
 027A 07C0              xjmp L36
 027C           L35:
 027C                   .dbline 79
 027C           ; else
 027C           ; led7_display(t1,0,0,1);
 027C 81E0              ldi R24,1
 027E 8A83              std y+2,R24
 0280 2224              clr R2
 0282 2882              std y+0,R2
 0284 2227              clr R18
 0286 0E2D              mov R16,R14
 0288 1FD5              xcall _led7_display
 028A           L36:
 028A                   .dbline 81
 028A           ; 
 028A           ; led7_display(t2,1,0,1);
 028A 81E0              ldi R24,1
 028C 8A83              std y+2,R24
 028E 2224              clr R2
 0290 2882              std y+0,R2
 0292 21E0              ldi R18,1
 0294 0A2D              mov R16,R10
 0296 18D5              xcall _led7_display
 0298                   .dbline 82
 0298           ; if(pannel_led[channel].state!=0xa5)
 0298 8AE1              ldi R24,26
 029A 849F              mul R24,R20
 029C F001              movw R30,R0
 029E 80E0              ldi R24,<_pannel_led+21
 02A0 90E0              ldi R25,>_pannel_led+21
 02A2 E80F              add R30,R24
 02A4 F91F              adc R31,R25
 02A6 8081              ldd R24,z+0
 02A8 853A              cpi R24,165
 02AA 09F4              brne X2
 02AC E1C1              xjmp L37
 02AE           X2:
 02AE                   .dbline 83
 02AE           ; {WDR();
 02AE                   .dbline 83
 02AE A895              wdr
 02B0                   .dbline 84
 02B0           ;   if(channel<36)
 02B0 4432              cpi R20,36
 02B2 08F0              brlo X3
 02B4 94C1              xjmp L40
 02B6           X3:
 02B6                   .dbline 85
 02B6           ;   {    
 02B6                   .dbline 86
 02B6           ;     if(point_flag == 1)
 02B6 8D85              ldd R24,y+13
 02B8 8130              cpi R24,1
 02BA 09F0              breq X4
 02BC C6C0              xjmp L42
 02BE           X4:
 02BE                   .dbline 87
 02BE           ;     {
 02BE                   .dbline 88
 02BE           ;       CLI();
 02BE F894              cli
 02C0                   .dbline 89
 02C0           ;         WDR();
 02C0 A895              wdr
 02C2                   .dbline 90
 02C2           ;       t5 = data;
 02C2 4F85              ldd R20,y+15
 02C4 5889              ldd R21,y+16
 02C6                   .dbline 91
 02C6           ;       t1 = t5/1000;
 02C6 28EE              ldi R18,1000
 02C8 33E0              ldi R19,3
 02CA 8A01              movw R16,R20
 02CC 0E940000          xcall div16u
 02D0 E02E              mov R14,R16
 02D2                   .dbline 92
 02D2           ;       t2 = (t5%1000)/100;
 02D2 28EE              ldi R18,1000
 02D4 33E0              ldi R19,3
 02D6 8A01              movw R16,R20
 02D8 0E940000          xcall mod16u
 02DC 24E6              ldi R18,100
 02DE 30E0              ldi R19,0
 02E0 0E940000          xcall div16u
 02E4 A02E              mov R10,R16
 02E6                   .dbline 93
 02E6           ;       t3 = ((t5%1000)%100)/10;
 02E6 28EE              ldi R18,1000
 02E8 33E0              ldi R19,3
 02EA 8A01              movw R16,R20
 02EC 0E940000          xcall mod16u
 02F0 24E6              ldi R18,100
 02F2 30E0              ldi R19,0
 02F4 0E940000          xcall mod16u
 02F8 2AE0              ldi R18,10
 02FA 30E0              ldi R19,0
 02FC 0E940000          xcall div16u
 0300 C02E              mov R12,R16
 0302                   .dbline 94
 0302           ;       t4 = ((t5%1000)%100)%10;
 0302 28EE              ldi R18,1000
 0304 33E0              ldi R19,3
 0306 8A01              movw R16,R20
 0308 0E940000          xcall mod16u
 030C 24E6              ldi R18,100

⌨️ 快捷键说明

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