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

📄 pwm.lis

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