📄 pwm.lis
字号:
.module PWM.C
.area text(rom, con, rel)
0000 .dbfile E:\产品\开发板\mega128-board\实验程序\PWM输出\PWM.C
0000 .dbfunc e main _main fI
.even
0000 _main::
0000 .dbline -1
0000 .dbline 6
0000 ; #include <iom128v.h>
0000 ;
0000 ;
0000 ; //输出PWM
0000 ; main()
0000 ; {
0000 .dbline 7
0000 ; DDRB=0xff; //端口为输出
0000 8FEF ldi R24,255
0002 87BB out 0x17,R24
0004 .dbline 8
0004 ; DDRD=0xff;
0004 81BB out 0x11,R24
0006 .dbline 9
0006 ; DDRE=0xff;
0006 82B9 out 0x2,R24
0008 .dbline 10
0008 ; PORTB=0x00;
0008 2224 clr R2
000A 28BA out 0x18,R2
000C .dbline 11
000C ; PORTD=0x00;
000C 22BA out 0x12,R2
000E .dbline 12
000E ; PORTE=0x00;
000E 23B8 out 0x3,R2
0010 .dbline 15
0010 ;
0010 ; //关闭定时器中断
0010 ; TIMSK=0x00;
0010 27BE out 0x37,R2
0012 .dbline 18
0012 ;
0012 ; //定时器0,OC0输出1.95305kHz的方波,占空比50%
0012 ; TCNT0=0x00; //计数器清零
0012 22BE out 0x32,R2
0014 .dbline 19
0014 ; TCCR0=0x6b; //快速PWM方式,128分频
0014 8BE6 ldi R24,107
0016 83BF out 0x33,R24
0018 .dbline 20
0018 ; OCR0=0x80; //写入比较器数值(决定占空比)
0018 80E8 ldi R24,128
001A 81BF out 0x31,R24
001C .dbline 24
001C ;
001C ;
001C ; //定时器1,输出7.81220kHz的方波
001C ; TCNT1H=0x00; //计数器清零
001C 2DBC out 0x2d,R2
001E .dbline 25
001E ; TCNT1L=0x00;
001E 2CBC out 0x2c,R2
0020 .dbline 26
0020 ; TCCR1A=0xa9; //8位快速PWM,8分频;
0020 89EA ldi R24,169
0022 8FBD out 0x2f,R24
0024 .dbline 27
0024 ; TCCR1B=0x0a;
0024 8AE0 ldi R24,10
0026 8EBD out 0x2e,R24
0028 .dbline 28
0028 ; TCCR1C=0x00;
0028 20927A00 sts 122,R2
002C .dbline 29
002C ; OCR1A=0x40; //OC1A 输出 25%占空比
002C 80E4 ldi R24,64
002E 90E0 ldi R25,0
0030 9BBD out 0x2b,R25
0032 8ABD out 0x2a,R24
0034 .dbline 30
0034 ; OCR1B=0x80; //OC1B 输出 50%占空比
0034 80E8 ldi R24,128
0036 99BD out 0x29,R25
0038 88BD out 0x28,R24
003A .dbline 31
003A ; OCR1C=0xc0; //OC1C 输出 75%占空比
003A 80EC ldi R24,192
003C 90937900 sts 120+1,R25
0040 80937800 sts 120,R24
0044 .dbline -2
0044 L1:
0044 .dbline 0 ; func end
0044 0895 ret
0046 .dbend
0046 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -