PWM模式下RC2应为输出方式,用于输出可调制的方波。用一个产生指定周期和高电平宽度的方波例子来说明CCP1模块的PWM模式的编程方法。
【例12-4】电路如图12-10所示。单片机主频为4MHz。采用CCP1模块的PWM模式实现通过RC2输出频率为50kHz,占空比为30%的方波,并用示波器测量其占空比是否准确,用频率计测量频率是否正确。
电路图在光盘位置:“\Example\Chapter12\S123\CCP1_PWM.DSN”。
图12-10 基于CCP1模块PWM模式的方波发生器电路图
题意分析
●RC2用做输出方波,所以应该把RC2置为输出方式。
●题意要求采用CCP1模块的PWM模式,所以要确定PWM模式的周期预设值PR2和高电平宽度CCPR1L。已知主频为4MHz,则TOSC=0.25µs。输出方波频率是50kHz,则
PWM模式周期为20µs。为了提高精度,设TMR2预分频值为1∶1。可得PR2设定值=(PWM模式周期/(4×TOSC×TMR2预分频值))-1=(20µs/(4×0.25µs×1))-1=19
●题意要求占空比是30%,已知PWM模式周期,则可计算PWM模式高电平宽度为PWM模式高电平宽度=PWM模式周期×30%=6µs
●计算可知,DCR=6µs/(0.25×1)=24。程序中需要把DCR值分别写入CCPR1L和CCP1X、CCP1Y。(www.daowen.com)
设计过程
1)用MPLAB新建项目S123,语言工具选择为“HI-TECH Universal Toolsuite”,保存在“C:\S123”文件夹下。
2)新建main.c文件并加入项目中,其内容如下所示。
3)程序录入完毕后,保存并编译成功。然后用调试工具Proteus VSM加载CCP1_PWM.DSN。启动VSM后运行程序。程序运行效果是示波器O1的A通道上会显示方波波形,如图12-11所示。当VSM运行时间超过1s后(VSM运行时间与真实时间不同步)会在频率计F1上显示所测得的频率,如图12-12所示。
图12-11 用示波器测量PWM模式输出方波的周期和占空比的截图
图12-12 用频率计测量PWM模式输出频率的截图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。