理论教育 基于比较功能设计方波发生器

基于比较功能设计方波发生器

时间:2023-10-19 理论教育 版权反馈
【摘要】:用一个比较模式产生方波的例子来说明CCP1模块比较模式的编程方法。图12-6 基于CCP1模块比较模式的方波发生器电路图题意分析●RC2用做输出方波,所以应该把RC2置为输出方式。程序运行效果是示波器的A通道上会显示方波波形。

基于比较功能设计方波发生器

若希望通过比较事件置位或清零RC2/CCP1引脚,RC2应该置为输出。需要注意的是,这两种比较模式下引脚输出的电平直接来自于CCP1模块的数据锁存输出,与数字I/O端口的设定完全无关,即在这两种比较模式下,无法直接用软件去修改引脚的输出电平。软件中断模式和特殊事件触发模式可以直接用软件控制RC2引脚电平。

用一个比较模式产生方波的例子来说明CCP1模块比较模式的编程方法。

【例12-2】电路图如图12-6所示。采用CCP1模块的比较模式实现通过RC2输出周期为812µs的方波,并用示波器测量其周期是否准确。

电路图在光盘位置:“\Example\Chapter12\S122\CCP1_Comp.DSN”。

978-7-111-33274-9-Chapter12-23.jpg

图12-6 基于CCP1模块比较模式的方波发生器电路图

题意分析

●RC2用做输出方波,所以应该把RC2置为输出方式。

●题意要求采用CCP1模块的比较模式,由于其有4种选择,对于输出指定周期的方波而言,用触发TMR1复位的比较模式最方便。可以把CCPR1H:CCPR1L的值设定为目标周期的一半,每中断一次就把RC2的值取反输出。这样就能实现两次中断的时间是一个周期,并且每次中断前后的电平是反向的。

●要求方波周期是812µs,其一半是406µs。当主频为4MHz,TMR1不分频的情况下,TMR1每计一个数的时间是1µs,这样需要TMR1从0计到400时才产生中断,即CCPR1H:CCPR1L的值应设定为406。需要把406分成高低两个字节,高字节保存(www.daowen.com)

在CCPR1H中,低字节保存在CCPR1L中。

设计过程

1)用MPLAB新建项目S122,语言工具选择为“HI-TECH Universal Toolsuite”,保存在C盘根文件夹下。

2)新建main.c文件并加入项目中,其内容如下所示。

978-7-111-33274-9-Chapter12-24.jpg

978-7-111-33274-9-Chapter12-25.jpg

3)程序录入完毕后,保存并编译成功。然后用调试工具Proteus VSM加载CCP1_Comp.DSN。启动VSM后运行程序。程序运行效果是示波器的A通道上会显示方波波形。读者可以使用示波器的Cursors功能来测量每个周期的时间长度,如图12-7所示。

978-7-111-33274-9-Chapter12-26.jpg

图12-7 用示波器测量比较输出的周期

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈