?? m16_t1_pwm.lis
字號:
00B0 FA01 movw R30,R20
00B2 0183 std z+1,R16
00B4 .dbline 47
00B4 1AE0 ldi R17,10
00B6 062F mov R16,R22
00B8 0E940000 xcall mod8u
00BC FA01 movw R30,R20
00BE 0283 std z+2,R16
00C0 .dbline 48
00C0 L21:
00C0 .dbline -2
00C0 .dbline 49
00C0 ; void Sub_Process(uchar *p)
00C0 ; {
00C0 ; uchar temp;
00C0 ; temp=p[1]*10+p[2];
00C0 ; if(temp!=0)
00C0 ; {
00C0 ; temp=temp-1;
00C0 ; p[1]=temp/10;
00C0 ; p[2]=temp%10;
00C0 ; }
00C0 ; }
00C0 L20:
00C0 0E940000 xcall pop_gset2
00C4 .dbline 0 ; func end
00C4 0895 ret
00C6 .dbsym r temp 22 c
00C6 .dbsym r p 20 pc
00C6 .dbend
00C6 .dbfunc e Key_Process _Key_Process fV
.even
00C6 _Key_Process::
00C6 .dbline -1
00C6 .dbline 51
00C6 ; void Key_Process()
00C6 ; {
00C6 06C0 xjmp L25
00C8 L24:
00C8 .dbline 52
00C8 .dbline 52
00C8 00E0 ldi R16,<_Data1
00CA 10E0 ldi R17,>_Data1
00CC A7DF xcall _Display
00CE .dbline 52
00CE 81E0 ldi R24,1
00D0 80930100 sts _Key1,R24
00D4 .dbline 52
00D4 L25:
00D4 .dbline 52
00D4 ; while((PINB&0x01)==0){Display(Data1);Key1=1;}
00D4 B09B sbis 0x16,0
00D6 F8CF rjmp L24
00D8 06C0 xjmp L28
00DA L27:
00DA .dbline 53
00DA .dbline 53
00DA 00E0 ldi R16,<_Data1
00DC 10E0 ldi R17,>_Data1
00DE 9EDF xcall _Display
00E0 .dbline 53
00E0 81E0 ldi R24,1
00E2 80930000 sts _Key2,R24
00E6 .dbline 53
00E6 L28:
00E6 .dbline 53
00E6 ; while((PINB&0x02)==0){Display(Data1);Key2=1;}
00E6 B19B sbis 0x16,1
00E8 F8CF rjmp L27
00EA .dbline 54
00EA ; if(Key1==1)
00EA 80910100 lds R24,_Key1
00EE 8130 cpi R24,1
00F0 31F4 brne L30
00F2 .dbline 55
00F2 ; {
00F2 .dbline 56
00F2 ; Add_Process(Data1);
00F2 00E0 ldi R16,<_Data1
00F4 10E0 ldi R17,>_Data1
00F6 B3DF xcall _Add_Process
00F8 .dbline 57
00F8 ; Key1=0;
00F8 2224 clr R2
00FA 20920100 sts _Key1,R2
00FE .dbline 58
00FE ; }
00FE L30:
00FE .dbline 59
00FE 80910000 lds R24,_Key2
0102 8130 cpi R24,1
0104 31F4 brne L32
0106 .dbline 60
0106 .dbline 61
0106 00E0 ldi R16,<_Data1
0108 10E0 ldi R17,>_Data1
010A C1DF xcall _Sub_Process
010C .dbline 62
010C 2224 clr R2
010E 20920000 sts _Key2,R2
0112 .dbline 63
0112 L32:
0112 .dbline -2
0112 .dbline 64
0112 ; if(Key2==1)
0112 ; {
0112 ; Sub_Process(Data1);
0112 ; Key2=0;
0112 ; }
0112 ; }
0112 L23:
0112 .dbline 0 ; func end
0112 0895 ret
0114 .dbend
0114 .dbfunc e Set_Process _Set_Process fV
0114 ; i -> R20,R21
0114 ; p -> R20,R21
.even
0114 _Set_Process::
0114 0E940000 xcall push_gset1
0118 A801 movw R20,R16
011A .dbline -1
011A .dbline 66
011A ; void Set_Process(uchar *p)
011A ; {
011A .dbline 68
011A ; uint i;
011A ; i=p[1]*10+p[2];
011A .dbline 69
011A ; i=1023*i/10;
011A .dbline 70
011A ; OCR1AH=i>>8;
011A FA01 movw R30,R20
011C 2180 ldd R2,z+1
011E 8AE0 ldi R24,10
0120 829D mul R24,R2
0122 1001 movw R2,R0
0124 FA01 movw R30,R20
0126 4280 ldd R4,z+2
0128 5524 clr R5
012A 240C add R2,R4
012C 351C adc R3,R5
012E 0FEF ldi R16,1023
0130 13E0 ldi R17,3
0132 9101 movw R18,R2
0134 0E940000 xcall empy16s
0138 2AE0 ldi R18,10
013A 30E0 ldi R19,0
013C 0E940000 xcall div16u
0140 A801 movw R20,R16
0142 1A01 movw R2,R20
0144 232C mov R2,R3
0146 3324 clr R3
0148 2BBC out 0x2b,R2
014A .dbline 71
014A ; OCR1AL=i&0x00ff;
014A CA01 movw R24,R20
014C 9070 andi R25,0
014E 8ABD out 0x2a,R24
0150 .dbline -2
0150 .dbline 72
0150 ; }
0150 L34:
0150 0E940000 xcall pop_gset1
0154 .dbline 0 ; func end
0154 0895 ret
0156 .dbsym r i 20 i
0156 .dbsym r p 20 pc
0156 .dbend
0156 .dbfunc e Init_IO _Init_IO fV
.even
0156 _Init_IO::
0156 .dbline -1
0156 .dbline 74
0156 ; void Init_IO(void)
0156 ; {
0156 .dbline 75
0156 ; DDRA=0xff;
0156 8FEF ldi R24,255
0158 8ABB out 0x1a,R24
015A .dbline 76
015A ; PORTA=0xff;
015A 8BBB out 0x1b,R24
015C .dbline 77
015C ; DDRC=0xff;
015C 84BB out 0x14,R24
015E .dbline 78
015E ; PORTC=0xff;
015E 85BB out 0x15,R24
0160 .dbline 79
0160 ; DDRB=0x00;
0160 2224 clr R2
0162 27BA out 0x17,R2
0164 .dbline 80
0164 ; PORTB=0x00;
0164 28BA out 0x18,R2
0166 .dbline 81
0166 ; DDRD=0xff;
0166 81BB out 0x11,R24
0168 .dbline 82
0168 ; PORTD=0xff;
0168 82BB out 0x12,R24
016A .dbline -2
016A .dbline 83
016A ; }
016A L35:
016A .dbline 0 ; func end
016A 0895 ret
016C .dbend
016C .dbfunc e main _main fV
.even
016C _main::
016C .dbline -1
016C .dbline 85
016C ; void main(void)
016C ; {
016C .dbline 86
016C ; Init_IO();
016C F4DF xcall _Init_IO
016E .dbline 87
016E ; TCCR1A=0xc3;
016E 83EC ldi R24,195
0170 8FBD out 0x2f,R24
0172 .dbline 88
0172 ; TCCR1B=0x02;
0172 82E0 ldi R24,2
0174 8EBD out 0x2e,R24
0176 .dbline 89
0176 ; DelayMs(50);
0176 02E3 ldi R16,50
0178 43DF xcall _DelayMs
017A 07C0 xjmp L38
017C L37:
017C .dbline 91
017C .dbline 92
017C A4DF xcall _Key_Process
017E .dbline 93
017E 00E0 ldi R16,<_Data1
0180 10E0 ldi R17,>_Data1
0182 C8DF xcall _Set_Process
0184 .dbline 94
0184 00E0 ldi R16,<_Data1
0186 10E0 ldi R17,>_Data1
0188 49DF xcall _Display
018A .dbline 95
018A L38:
018A .dbline 90
018A F8CF xjmp L37
018C X0:
018C .dbline -2
018C .dbline 96
018C ; while(1)
018C ; {
018C ; Key_Process();
018C ; Set_Process(Data1);
018C ; Display(Data1);
018C ; }
018C ; }
018C L36:
018C .dbline 0 ; func end
018C 0895 ret
018E .dbend
.area bss(ram, con, rel)
0000 .dbfile F:\myavr\temp\M16_T1_PWM\M16_T1_PWM.c
0000 _Key2::
0000 .blkb 1
0001 .dbsym e Key2 _Key2 c
0001 _Key1::
0001 .blkb 1
0002 .dbsym e Key1 _Key1 c
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -