📄 pwm.lst
字号:
__start:
__text_start:
46 EFCF LDI R28,0xFF
47 E1D0 LDI R29,0x10
48 BFCD OUT 0x3D,R28
49 BFDE OUT 0x3E,R29
4A 51CE SUBI R28,0x1E
4B 40D0 SBCI R29,0
4C EA0A LDI R16,0xAA
4D 8308 STD Y+0,R16
4E 2400 CLR R0
4F E0E0 LDI R30,0
50 E0F1 LDI R31,1
51 E011 LDI R17,1
52 30E0 CPI R30,0
53 07F1 CPC R31,R17
54 F011 BEQ 0x0057
55 9201 ST R0,Z+
56 CFFB RJMP 0x0052
57 8300 STD Z+0,R16
58 E8EC LDI R30,0x8C
59 E0F0 LDI R31,0
5A E0A0 LDI R26,0
5B E0B1 LDI R27,1
5C E010 LDI R17,0
5D E000 LDI R16,0
5E BF0B OUT 0x3B,R16
5F 38EC CPI R30,0x8C
60 07F1 CPC R31,R17
61 F021 BEQ 0x0066
62 95C8 LPM
63 9631 ADIW R30,1
64 920D ST R0,X+
65 CFF9 RJMP 0x005F
66 940E 0069 CALL _main
_exit:
68 CFFF RJMP _exit
FILE: E:\产品\开发板\mega128-board\实验程序\PWM输出\PWM.C
(0001) #include <iom128v.h>
(0002)
(0003)
(0004) //输出PWM
(0005) main()
(0006) {
(0007) DDRB=0xff; //端口为输出
_main:
69 EF8F LDI R24,0xFF
6A BB87 OUT 0x17,R24
(0008) DDRD=0xff;
6B BB81 OUT 0x11,R24
(0009) DDRE=0xff;
6C B982 OUT 0x02,R24
(0010) PORTB=0x00;
6D 2422 CLR R2
6E BA28 OUT 0x18,R2
(0011) PORTD=0x00;
6F BA22 OUT 0x12,R2
(0012) PORTE=0x00;
70 B823 OUT 0x03,R2
(0013)
(0014) //关闭定时器中断
(0015) TIMSK=0x00;
71 BE27 OUT 0x37,R2
(0016)
(0017) //定时器0,OC0输出1.95305kHz的方波,占空比50%
(0018) TCNT0=0x00; //计数器清零
72 BE22 OUT 0x32,R2
(0019) TCCR0=0x6b; //快速PWM方式,128分频
73 E68B LDI R24,0x6B
74 BF83 OUT 0x33,R24
(0020) OCR0=0x80; //写入比较器数值(决定占空比)
75 E880 LDI R24,0x80
76 BF81 OUT 0x31,R24
(0021)
(0022)
(0023) //定时器1,输出7.81220kHz的方波
(0024) TCNT1H=0x00; //计数器清零
77 BC2D OUT 0x2D,R2
(0025) TCNT1L=0x00;
78 BC2C OUT 0x2C,R2
(0026) TCCR1A=0xa9; //8位快速PWM,8分频;
79 EA89 LDI R24,0xA9
7A BD8F OUT 0x2F,R24
(0027) TCCR1B=0x0a;
7B E08A LDI R24,0xA
7C BD8E OUT 0x2E,R24
(0028) TCCR1C=0x00;
7D 9220 007A STS 0x007A,R2
(0029) OCR1A=0x40; //OC1A 输出 25%占空比
7F E480 LDI R24,0x40
80 E090 LDI R25,0
81 BD9B OUT 0x2B,R25
82 BD8A OUT 0x2A,R24
(0030) OCR1B=0x80; //OC1B 输出 50%占空比
83 E880 LDI R24,0x80
84 BD99 OUT 0x29,R25
85 BD88 OUT 0x28,R24
(0031) OCR1C=0xc0; //OC1C 输出 75%占空比
FILE: <library>
86 EC80 LDI R24,0xC0
87 9390 0079 STS 0x0079,R25
89 9380 0078 STS 0x0078,R24
8B 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -