📄 pwm.lis
字号:
.module pwm.c
.area text(rom, con, rel)
0000 .dbfile pwm.c
.area data(ram, con, rel)
0000 .dbfile pwm.c
0000 _pwm1::
0000 .blkb 2
.area idata
0000 6400 .word 100
.area data(ram, con, rel)
0002 .dbfile pwm.c
0002 .dbfile E:\课件\128最小系统板\AVR程序\pwm\pwm.c
0002 .dbsym e pwm1 _pwm1 i
0002 _pwm2::
0002 .blkb 2
.area idata
0002 6400 .word 100
.area data(ram, con, rel)
0004 .dbfile E:\课件\128最小系统板\AVR程序\pwm\pwm.c
0004 .dbsym e pwm2 _pwm2 i
.area text(rom, con, rel)
0000 .dbfile E:\课件\128最小系统板\AVR程序\pwm\pwm.c
0000 .dbfunc e int_io _int_io fV
.even
0000 _int_io::
0000 .dbline -1
0000 .dbline 5
0000 ; #include<iom128v.h>
0000 ; #define uint unsigned int
0000 ; uint pwm1=100,pwm2=100;
0000 ; void int_io(void)
0000 ; {
0000 .dbline 6
0000 ; TCCR1A=0XFF;//三通道
0000 8FEF ldi R24,255
0002 8FBD out 0x2f,R24
0004 .dbline 7
0004 ; TCCR1B=0X0A;//8分频 0x09不分频
0004 8AE0 ldi R24,10
0006 8EBD out 0x2e,R24
0008 .dbline 8
0008 ; TCNT1=0X0000;
0008 2224 clr R2
000A 3324 clr R3
000C 3DBC out 0x2d,R3
000E 2CBC out 0x2c,R2
0010 .dbline 9
0010 ; TIMSK=0X00;
0010 27BE out 0x37,R2
0012 .dbline 10
0012 ; ETIMSK=0X00;
0012 20927D00 sts 125,R2
0016 .dbline 11
0016 ; DDRB=0XFF;
0016 8FEF ldi R24,255
0018 87BB out 0x17,R24
001A .dbline 12
001A ; OCR1A=pwm1;
001A 20900000 lds R2,_pwm1
001E 30900100 lds R3,_pwm1+1
0022 3BBC out 0x2b,R3
0024 2ABC out 0x2a,R2
0026 .dbline 13
0026 ; OCR1B=pwm2;
0026 20900200 lds R2,_pwm2
002A 30900300 lds R3,_pwm2+1
002E 39BC out 0x29,R3
0030 28BC out 0x28,R2
0032 .dbline -2
0032 L1:
0032 .dbline 0 ; func end
0032 0895 ret
0034 .dbend
0034 .dbfunc e main _main fV
.even
0034 _main::
0034 .dbline -1
0034 .dbline 16
0034 ; }
0034 ; void main(void)
0034 ; {
0034 .dbline 17
0034 ; DDRA=0XFF;
0034 8FEF ldi R24,255
0036 8ABB out 0x1a,R24
0038 .dbline 18
0038 ; PORTA=0XF0;
0038 80EF ldi R24,240
003A 8BBB out 0x1b,R24
003C .dbline 19
003C ; DDRD=0X00;
003C 2224 clr R2
003E 21BA out 0x11,R2
0040 .dbline 20
0040 ; PORTD=0XFF;
0040 8FEF ldi R24,255
0042 82BB out 0x12,R24
0044 .dbline 21
0044 ; int_io();
0044 DDDF xcall _int_io
0046 54C0 xjmp L4
0048 L3:
0048 .dbline 23
0048 ; while(1)
0048 ; {
0048 .dbline 25
0048 ;
0048 ; if(PIND==0XFE)
0048 80B3 in R24,0x10
004A 8E3F cpi R24,254
004C 91F4 brne L6
004E X0:
004E .dbline 26
004E ; {
004E .dbline 27
004E ; pwm1=pwm1-100;
004E 80910000 lds R24,_pwm1
0052 90910100 lds R25,_pwm1+1
0056 8456 subi R24,100
0058 9040 sbci R25,0
005A 90930100 sts _pwm1+1,R25
005E 80930000 sts _pwm1,R24
0062 .dbline 28
0062 ; OCR1A=pwm1;
0062 9BBD out 0x2b,R25
0064 8ABD out 0x2a,R24
0066 .dbline 29
0066 ; OCR1B=pwm2;
0066 20900200 lds R2,_pwm2
006A 30900300 lds R3,_pwm2+1
006E 39BC out 0x29,R3
0070 28BC out 0x28,R2
0072 .dbline 30
0072 ; }
0072 L6:
0072 .dbline 31
0072 ; if(PIND==0XFD)
0072 80B3 in R24,0x10
0074 8D3F cpi R24,253
0076 91F4 brne L8
0078 X1:
0078 .dbline 32
0078 ; {
0078 .dbline 33
0078 ; pwm2=pwm2-100;
0078 80910200 lds R24,_pwm2
007C 90910300 lds R25,_pwm2+1
0080 8456 subi R24,100
0082 9040 sbci R25,0
0084 90930300 sts _pwm2+1,R25
0088 80930200 sts _pwm2,R24
008C .dbline 34
008C ; OCR1A=pwm1;
008C 20900000 lds R2,_pwm1
0090 30900100 lds R3,_pwm1+1
0094 3BBC out 0x2b,R3
0096 2ABC out 0x2a,R2
0098 .dbline 35
0098 ; OCR1B=pwm2;
0098 99BD out 0x29,R25
009A 88BD out 0x28,R24
009C .dbline 36
009C ; }
009C L8:
009C .dbline 37
009C ; if(PIND==0XFB)
009C 80B3 in R24,0x10
009E 8B3F cpi R24,251
00A0 91F4 brne L10
00A2 X2:
00A2 .dbline 38
00A2 ; {
00A2 .dbline 39
00A2 ; pwm1=pwm1+100;
00A2 80910000 lds R24,_pwm1
00A6 90910100 lds R25,_pwm1+1
00AA 8C59 subi R24,156 ; offset = 100
00AC 9F4F sbci R25,255
00AE 90930100 sts _pwm1+1,R25
00B2 80930000 sts _pwm1,R24
00B6 .dbline 40
00B6 ; OCR1A=pwm1;
00B6 9BBD out 0x2b,R25
00B8 8ABD out 0x2a,R24
00BA .dbline 41
00BA ; OCR1B=pwm2;
00BA 20900200 lds R2,_pwm2
00BE 30900300 lds R3,_pwm2+1
00C2 39BC out 0x29,R3
00C4 28BC out 0x28,R2
00C6 .dbline 42
00C6 ; }
00C6 L10:
00C6 .dbline 43
00C6 ; if(PIND==0XF7)
00C6 80B3 in R24,0x10
00C8 873F cpi R24,247
00CA 91F4 brne L12
00CC X3:
00CC .dbline 44
00CC ; {
00CC .dbline 45
00CC ; pwm2=pwm2+100;
00CC 80910200 lds R24,_pwm2
00D0 90910300 lds R25,_pwm2+1
00D4 8C59 subi R24,156 ; offset = 100
00D6 9F4F sbci R25,255
00D8 90930300 sts _pwm2+1,R25
00DC 80930200 sts _pwm2,R24
00E0 .dbline 46
00E0 ; OCR1A=pwm1;
00E0 20900000 lds R2,_pwm1
00E4 30900100 lds R3,_pwm1+1
00E8 3BBC out 0x2b,R3
00EA 2ABC out 0x2a,R2
00EC .dbline 47
00EC ; OCR1B=pwm2;
00EC 99BD out 0x29,R25
00EE 88BD out 0x28,R24
00F0 .dbline 48
00F0 ; }
00F0 L12:
00F0 .dbline 49
00F0 ; }
00F0 L4:
00F0 .dbline 22
00F0 ABCF xjmp L3
00F2 X4:
00F2 .dbline -2
00F2 L2:
00F2 .dbline 0 ; func end
00F2 0895 ret
00F4 .dbend
00F4 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -