📄 ac11-2.lis
字号:
011A E491 lpm R30,Z
011C EBBB out 0x1b,R30
011E .dbline 52
011E ; PORTC=ACT[4];
011E E0E0 ldi R30,<_ACT+4
0120 F0E0 ldi R31,>_ACT+4
0122 E491 lpm R30,Z
0124 E5BB out 0x15,R30
0126 .dbline 53
0126 ; delay_ms(1);
0126 01E0 ldi R16,1
0128 10E0 ldi R17,0
012A 6ADF xcall _delay_ms
012C .dbline 54
012C ; PORTA=SEG7[(x%100)/10];
012C 24E6 ldi R18,100
012E 30E0 ldi R19,0
0130 00910100 lds R16,_x
0134 1127 clr R17
0136 0E940000 xcall mod16s
013A 2AE0 ldi R18,10
013C 30E0 ldi R19,0
013E 0E940000 xcall div16s
0142 F801 movw R30,R16
0144 80E0 ldi R24,<_SEG7
0146 90E0 ldi R25,>_SEG7
0148 E80F add R30,R24
014A F91F adc R31,R25
014C E491 lpm R30,Z
014E EBBB out 0x1b,R30
0150 .dbline 55
0150 ; PORTC=ACT[5];
0150 E0E0 ldi R30,<_ACT+5
0152 F0E0 ldi R31,>_ACT+5
0154 E491 lpm R30,Z
0156 E5BB out 0x15,R30
0158 .dbline 56
0158 ; delay_ms(1);
0158 01E0 ldi R16,1
015A 10E0 ldi R17,0
015C 51DF xcall _delay_ms
015E .dbline 57
015E ; PORTA=SEG7[(x%1000)/100];
015E 28EE ldi R18,1000
0160 33E0 ldi R19,3
0162 00910100 lds R16,_x
0166 1127 clr R17
0168 0E940000 xcall mod16s
016C 24E6 ldi R18,100
016E 30E0 ldi R19,0
0170 0E940000 xcall div16s
0174 F801 movw R30,R16
0176 80E0 ldi R24,<_SEG7
0178 90E0 ldi R25,>_SEG7
017A E80F add R30,R24
017C F91F adc R31,R25
017E E491 lpm R30,Z
0180 EBBB out 0x1b,R30
0182 .dbline 58
0182 ; PORTC=ACT[6];
0182 E0E0 ldi R30,<_ACT+6
0184 F0E0 ldi R31,>_ACT+6
0186 E491 lpm R30,Z
0188 E5BB out 0x15,R30
018A .dbline 59
018A ; delay_ms(1);
018A 01E0 ldi R16,1
018C 10E0 ldi R17,0
018E 38DF xcall _delay_ms
0190 .dbline 60
0190 ; PORTA=SEG7[x/1000];
0190 28EE ldi R18,1000
0192 33E0 ldi R19,3
0194 00910100 lds R16,_x
0198 1127 clr R17
019A 0E940000 xcall div16s
019E F801 movw R30,R16
01A0 80E0 ldi R24,<_SEG7
01A2 90E0 ldi R25,>_SEG7
01A4 E80F add R30,R24
01A6 F91F adc R31,R25
01A8 E491 lpm R30,Z
01AA EBBB out 0x1b,R30
01AC .dbline 61
01AC ; PORTC=ACT[7];
01AC E0E0 ldi R30,<_ACT+7
01AE F0E0 ldi R31,>_ACT+7
01B0 E491 lpm R30,Z
01B2 E5BB out 0x15,R30
01B4 .dbline 62
01B4 ; delay_ms(1);
01B4 01E0 ldi R16,1
01B6 10E0 ldi R17,0
01B8 23DF xcall _delay_ms
01BA .dbline -2
01BA L18:
01BA .dbline 0 ; func end
01BA 0895 ret
01BC .dbend
01BC .dbfunc e port_init _port_init fV
.even
01BC _port_init::
01BC .dbline -1
01BC .dbline 66
01BC ; }
01BC ; //*************************************
01BC ; void port_init(void)
01BC ; {
01BC .dbline 67
01BC ; PORTA = 0xFF;
01BC 8FEF ldi R24,255
01BE 8BBB out 0x1b,R24
01C0 .dbline 68
01C0 ; DDRA = 0xFF;
01C0 8ABB out 0x1a,R24
01C2 .dbline 69
01C2 ; PORTB = 0xFF;
01C2 88BB out 0x18,R24
01C4 .dbline 70
01C4 ; DDRB = 0xFF;
01C4 87BB out 0x17,R24
01C6 .dbline 71
01C6 ; PORTC = 0xFF;
01C6 85BB out 0x15,R24
01C8 .dbline 72
01C8 ; DDRC = 0xFF;
01C8 84BB out 0x14,R24
01CA .dbline 73
01CA ; PORTD = 0xFF;
01CA 82BB out 0x12,R24
01CC .dbline 74
01CC ; DDRD = 0x00;
01CC 2224 clr R2
01CE 21BA out 0x11,R2
01D0 .dbline -2
01D0 L26:
01D0 .dbline 0 ; func end
01D0 0895 ret
01D2 .dbend
01D2 .dbfunc e main _main fV
01D2 ; i -> R20
.even
01D2 _main::
01D2 .dbline -1
01D2 .dbline 78
01D2 ; }
01D2 ; //*************************************
01D2 ; void main(void)
01D2 ; {uchar i;
01D2 .dbline 79
01D2 ; port_init();
01D2 F4DF xcall _port_init
01D4 35C0 xjmp L29
01D6 L28:
01D6 .dbline 81
01D6 ; while(1)
01D6 ; {
01D6 .dbline 82
01D6 ; if((PIND&0x10)==0)
01D6 8499 sbic 0x10,4
01D8 0DC0 rjmp L31
01DA .dbline 83
01DA ; {
01DA .dbline 84
01DA ; if(x<255)x++;
01DA 80910100 lds R24,_x
01DE 8F3F cpi R24,255
01E0 18F4 brsh L33
01E2 .dbline 84
01E2 8F5F subi R24,255 ; addi 1
01E4 80930100 sts _x,R24
01E8 L33:
01E8 .dbline 85
01E8 ; for(i=0;i<25;i++)
01E8 4427 clr R20
01EA 02C0 xjmp L38
01EC L35:
01EC .dbline 86
01EC 2EDF xcall _display
01EE L36:
01EE .dbline 85
01EE 4395 inc R20
01F0 L38:
01F0 .dbline 85
01F0 4931 cpi R20,25
01F2 E0F3 brlo L35
01F4 .dbline 87
01F4 ; display();
01F4 ; }
01F4 L31:
01F4 .dbline 89
01F4 ; //---------------
01F4 ; if((PIND&0x20)==0)
01F4 8599 sbic 0x10,5
01F6 0FC0 rjmp L39
01F8 .dbline 90
01F8 ; {
01F8 .dbline 91
01F8 ; if(x>0)x--;
01F8 2224 clr R2
01FA 30900100 lds R3,_x
01FE 2314 cp R2,R3
0200 20F4 brsh L41
0202 .dbline 91
0202 832D mov R24,R3
0204 8150 subi R24,1
0206 80930100 sts _x,R24
020A L41:
020A .dbline 92
020A ; for(i=0;i<50;i++)
020A 4427 clr R20
020C 02C0 xjmp L46
020E L43:
020E .dbline 93
020E 1DDF xcall _display
0210 L44:
0210 .dbline 92
0210 4395 inc R20
0212 L46:
0212 .dbline 92
0212 4233 cpi R20,50
0214 E0F3 brlo L43
0216 .dbline 94
0216 ; display();
0216 ; }
0216 L39:
0216 .dbline 96
0216 ; //***************
0216 ; if((PIND&0x40)==0){W_EEP(200,x);delay_ms(10);}
0216 8699 sbic 0x10,6
0218 08C0 rjmp L47
021A .dbline 96
021A .dbline 96
021A 20910100 lds R18,_x
021E 08EC ldi R16,200
0220 10E0 ldi R17,0
0222 04DF xcall _W_EEP
0224 .dbline 96
0224 0AE0 ldi R16,10
0226 10E0 ldi R17,0
0228 EBDE xcall _delay_ms
022A .dbline 96
022A L47:
022A .dbline 97
022A ; if((PIND&0x80)==0){y=R_EEP(200);delay_ms(10);}
022A 8799 sbic 0x10,7
022C 08C0 rjmp L49
022E .dbline 97
022E .dbline 97
022E 08EC ldi R16,200
0230 10E0 ldi R17,0
0232 04DF xcall _R_EEP
0234 00930000 sts _y,R16
0238 .dbline 97
0238 0AE0 ldi R16,10
023A 10E0 ldi R17,0
023C E1DE xcall _delay_ms
023E .dbline 97
023E L49:
023E .dbline 98
023E 05DF xcall _display
0240 .dbline 99
0240 L29:
0240 .dbline 80
0240 CACF xjmp L28
0242 X0:
0242 .dbline -2
0242 L27:
0242 .dbline 0 ; func end
0242 0895 ret
0244 .dbsym r i 20 c
0244 .dbend
.area bss(ram, con, rel)
0000 .dbfile d:\MYDOCU~1\ac11-2\ac11-2.c
0000 _y::
0000 .blkb 1
0001 .dbsym e y _y c
0001 _x::
0001 .blkb 1
0002 .dbsym e x _x c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -