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

📄 display.lis

📁 LED显示面板
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 019E           ;    if(channel<47)
 019E 80910000          lds R24,_channel
 01A2 8F32              cpi R24,47
 01A4 20F4              brsh L47
 01A6                   .dbline 70
 01A6           ;    channel++;
 01A6 8F5F              subi R24,255    ; addi 1
 01A8 80930000          sts _channel,R24
 01AC 03C0              xjmp L48
 01AE           L47:
 01AE                   .dbline 72
 01AE           ;    else
 01AE           ;    channel =0;
 01AE 2224              clr R2
 01B0 20920000          sts _channel,R2
 01B4           L48:
 01B4                   .dbline 73
 01B4           ;    }
 01B4           L45:
 01B4                   .dbline 74
 01B4           ; }
 01B4           L41:
 01B4                   .dbline 75
 01B4           ;  WDR();
 01B4 A895              wdr
 01B6                   .dbline 76
 01B6           ; if(key[5]==on)              //通道号减一
 01B6 80910500          lds R24,_key+5
 01BA 8A35              cpi R24,90
 01BC C1F4              brne L49
 01BE                   .dbline 77
 01BE           ; {
 01BE                   .dbline 78
 01BE           ;  key[5]=off;
 01BE 85EA              ldi R24,165
 01C0 80930500          sts _key+5,R24
 01C4                   .dbline 79
 01C4           ;  if(mode_flag==on)
 01C4 80910000          lds R24,_mode_flag
 01C8 90910100          lds R25,_mode_flag+1
 01CC 8A35              cpi R24,90
 01CE E0E0              ldi R30,0
 01D0 9E07              cpc R25,R30
 01D2 69F4              brne L53
 01D4                   .dbline 80
 01D4           ;  {
 01D4                   .dbline 81
 01D4           ;  if(channel>0)
 01D4 80E0              ldi R24,0
 01D6 20900000          lds R2,_channel
 01DA 8215              cp R24,R2
 01DC 28F4              brsh L55
 01DE                   .dbline 82
 01DE           ;  channel--;
 01DE 822D              mov R24,R2
 01E0 8150              subi R24,1
 01E2 80930000          sts _channel,R24
 01E6 03C0              xjmp L56
 01E8           L55:
 01E8                   .dbline 84
 01E8           ;  else
 01E8           ;  channel=47;
 01E8 8FE2              ldi R24,47
 01EA 80930000          sts _channel,R24
 01EE           L56:
 01EE                   .dbline 85
 01EE           ;  }
 01EE           L53:
 01EE                   .dbline 86
 01EE           ; }
 01EE           L49:
 01EE                   .dbline 88
 01EE           ; 
 01EE           ; if(key[6]==on)              //通道号减16
 01EE 80910600          lds R24,_key+6
 01F2 8A35              cpi R24,90
 01F4 A1F4              brne L57
 01F6                   .dbline 89
 01F6           ; {
 01F6                   .dbline 90
 01F6           ;  key[6]=off;
 01F6 85EA              ldi R24,165
 01F8 80930600          sts _key+6,R24
 01FC                   .dbline 91
 01FC           ;  if(mode_flag==on)
 01FC 80910000          lds R24,_mode_flag
 0200 90910100          lds R25,_mode_flag+1
 0204 8A35              cpi R24,90
 0206 E0E0              ldi R30,0
 0208 9E07              cpc R25,R30
 020A 49F4              brne L61
 020C                   .dbline 92
 020C           ;  {
 020C                   .dbline 93
 020C           ;  if(channel>15)
 020C 8FE0              ldi R24,15
 020E 20900000          lds R2,_channel
 0212 8215              cp R24,R2
 0214 20F4              brsh L63
 0216                   .dbline 94
 0216           ;  channel=channel-16;
 0216 822D              mov R24,R2
 0218 8051              subi R24,16
 021A 80930000          sts _channel,R24
 021E           L63:
 021E                   .dbline 95
 021E           ;  }
 021E           L61:
 021E                   .dbline 96
 021E           ; }
 021E           L57:
 021E                   .dbline 97
 021E           ;  WDR();
 021E A895              wdr
 0220                   .dbline 98
 0220           ; if(key[7]==on)              //通道号加16
 0220 80910700          lds R24,_key+7
 0224 8A35              cpi R24,90
 0226 91F4              brne L65
 0228                   .dbline 99
 0228           ; {
 0228                   .dbline 100
 0228           ;  key[7]=off;
 0228 85EA              ldi R24,165
 022A 80930700          sts _key+7,R24
 022E                   .dbline 101
 022E           ;  if(mode_flag==on)
 022E 80910000          lds R24,_mode_flag
 0232 90910100          lds R25,_mode_flag+1
 0236 8A35              cpi R24,90
 0238 E0E0              ldi R30,0
 023A 9E07              cpc R25,R30
 023C 39F4              brne L69
 023E                   .dbline 102
 023E           ;  {
 023E                   .dbline 103
 023E           ;  if(channel<32)
 023E 80910000          lds R24,_channel
 0242 8032              cpi R24,32
 0244 18F4              brsh L71
 0246                   .dbline 104
 0246           ;  channel=channel+16;
 0246 805F              subi R24,240    ; addi 16
 0248 80930000          sts _channel,R24
 024C           L71:
 024C                   .dbline 105
 024C           ;  }
 024C           L69:
 024C                   .dbline 106
 024C           L65:
 024C                   .dbline -2
 024C           L2:
 024C 2C96              adiw R28,12
 024E 0E940000          xcall pop_gset1
 0252                   .dbline 0 ; func end
 0252 0895              ret
 0254                   .dbsym r i 20 c
 0254                   .dbend
 0254                   .dbfunc e led7_display _led7_display fV
 0254           ;              p -> R20,R21
 0254           ;             tt -> y+4
 0254           ;          point -> y+2
 0254           ;             ds -> R18
 0254           ;              i -> R16
                        .even
 0254           _led7_display::
 0254 0E940000          xcall push_gset1
 0258                   .dbline -1
 0258                   .dbline 111
 0258           ; }
 0258           ; 
 0258           ; }
 0258           ; 
 0258           ; void led7_display(unsigned char i,unsigned char ds,unsigned char point,unsigned char tt)   //七段码显示
 0258           ; {
 0258                   .dbline 112
 0258           ;  unsigned char *p= (unsigned char *) (addr_led7[ds]);
 0258 82E0              ldi R24,2
 025A 829F              mul R24,R18
 025C F001              movw R30,R0
 025E 80E0              ldi R24,<_addr_led7
 0260 90E0              ldi R25,>_addr_led7
 0262 E80F              add R30,R24
 0264 F91F              adc R31,R25
 0266 4081              ldd R20,z+0
 0268 5181              ldd R21,z+1
 026A                   .dbline 113
 026A           ;  WDR();
 026A A895              wdr
 026C                   .dbline 114
 026C           ;  if(tt)
 026C 0C80              ldd R0,y+4
 026E 0020              tst R0
 0270 C1F0              breq L74
 0272                   .dbline 115
 0272           ;  {
 0272                   .dbline 116
 0272           ;  if(point)
 0272 0A80              ldd R0,y+2
 0274 0020              tst R0
 0276 59F0              breq L76
 0278                   .dbline 117
 0278           ;  *p = (led7_data[i]&0x7f);
 0278 80E0              ldi R24,<_led7_data
 027A 90E0              ldi R25,>_led7_data
 027C E02F              mov R30,R16
 027E FF27              clr R31
 0280 E80F              add R30,R24
 0282 F91F              adc R31,R25
 0284 8081              ldd R24,z+0
 0286 8F77              andi R24,127
 0288 FA01              movw R30,R20
 028A 8083              std z+0,R24
 028C 0EC0              xjmp L75
 028E           L76:
 028E                   .dbline 119
 028E           ;  else
 028E           ;  *p = led7_data[i];
 028E 80E0              ldi R24,<_led7_data
 0290 90E0              ldi R25,>_led7_data
 0292 E02F              mov R30,R16
 0294 FF27              clr R31
 0296 E80F              add R30,R24
 0298 F91F              adc R31,R25
 029A 2080              ldd R2,z+0
 029C FA01              movw R30,R20
 029E 2082              std z+0,R2
 02A0                   .dbline 120
 02A0           ;  }
 02A0 04C0              xjmp L75
 02A2           L74:
 02A2                   .dbline 122
 02A2 20900C00          lds R2,_led7_data+12
 02A6 FA01              movw R30,R20
 02A8 2082              std z+0,R2
 02AA           L75:
 02AA                   .dbline -2
 02AA           L73:
 02AA 0E940000          xcall pop_gset1
 02AE                   .dbline 0 ; func end
 02AE 0895              ret
 02B0                   .dbsym r p 20 pc
 02B0                   .dbsym l tt 4 c
 02B0                   .dbsym l point 2 c
 02B0                   .dbsym r ds 18 c
 02B0                   .dbsym r i 16 c
 02B0                   .dbend
 02B0                   .dbfunc e led_display _led_display fV
 02B0           ;             dd -> R22
 02B0           ;              d -> R10
 02B0           ;              j -> R20
 02B0           ;              i -> R12
                        .even
 02B0           _led_display::
 02B0 0E940000          xcall push_gset4
 02B4 2397              sbiw R28,3
 02B6                   .dbline -1
 02B6                   .dbline 127
 02B6           ;  else
 02B6           ;  *p= led7_data[12];
 02B6           ; }
 02B6           ; 
 02B6           ; 
 02B6           ; void led_display(void)
 02B6           ; {
 02B6                   .dbline 130
 02B6           ; unsigned char i,j,d,dd;
 02B6           ; 
 02B6           ; WDR();
 02B6 A895              wdr
 02B8                   .dbline 131
 02B8           ; PORTD&=0x7f;
 02B8 8BB1              in R24,0xb
 02BA 8F77              andi R24,127
 02BC 8BB9              out 0xb,R24
 02BE                   .dbline 132
 02BE           ; asm("nop");
 02BE 0000              nop
 02C0                   .dbline 133
 02C0           ; asm("nop");
 02C0 0000              nop
 02C2                   .dbline 134
 02C2           ; for(j=0;j<6;j++)
 02C2 4427              clr R20
 02C4 D3C0              xjmp L83
 02C6           L80:
 02C6                   .dbline 135
 02C6           ; {
 02C6                   .dbline 136
 02C6           ;  d=0;
 02C6 AA24              clr R10
 02C8                   .dbline 137
 02C8           ;  dd=0;
 02C8 6627              clr R22
 02CA                   .dbline 138
 02CA           ;  for(i=0;i<8;i++)
 02CA CC24              clr R12
 02CC C1C0              xjmp L87
 02CE           L84:
 02CE                   .dbline 139
 02CE           ;  {WDR();
 02CE                   .dbline 139
 02CE A895              wdr
 02D0                   .dbline 140
 02D0           ;   if(pannel_led[j*8+i].state==noack)                   //报警显示
 02D0 88E0              ldi R24,8
 02D2 849F              mul R24,R20
 02D4 102D              mov R17,R0
 02D6 1C0D              add R17,R12
 02D8 04E1              ldi R16,20
 02DA 0102              muls R16,R17
 02DC F001              movw R30,R0
 02DE 80E0              ldi R24,<_pannel_led+13
 02E0 90E0              ldi R25,>_pannel_led+13
 02E2 E80F              add R30,R24
 02E4 F91F              adc R31,R25
 02E6 8081              ldd R24,z+0
 02E8 8130              cpi R24,1
 02EA 49F5              brne L88
 02EC                   .dbline 141
 02EC           ;    {
 02EC                   .dbline 142
 02EC           ;       if(pannel_led[j*8+i].cut_off==off)               //无闭锁则输出
 02EC 88E0              ldi R24,8
 02EE 849F              mul R24,R20
 02F0 102D              mov R17,R0
 02F2 1C0D              add R17,R12
 02F4 0102              muls R16,R17
 02F6 F001              movw R30,R0
 02F8 80E0              ldi R24,<_pannel_led+16
 02FA 90E0              ldi R25,>_pannel_led+16
 02FC E80F              add R30,R24
 02FE F91F              adc R31,R25
 0300 8081              ldd R24,z+0
 0302 853A              cpi R24,165
 0304 69F4              brne L91
 0306                   .dbline 143
 0306           ;       {
 0306                   .dbline 144
 0306           ;       d|=(1<<i);                 
 0306 01E0              ldi R16,1
 0308 1C2D              mov R17,R12
 030A 0E940000          xcall lsl8
 030E A02A              or R10,R16
 0310                   .dbline 145
 0310           ;       dd&= ~(1<<i);
 0310 01E0              ldi R16,1
 0312 1C2D              mov R17,R12
 0314 0E940000          xcall lsl8
 0318 202E              mov R2,R16

⌨️ 快捷键说明

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