⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm.lst

📁 这个程序是用atmega128芯片实现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 + -