📄 display.lis
字号:
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 + -