首页 理论教育 用单片机制作项目3方波发生器

用单片机制作项目3方波发生器

时间:2023-11-19 理论教育 版权反馈
【摘要】:可用TPM模块计时,当500μs时间到时,把TPM1CH0引脚状态翻转,同时把计数器清零,TPM输出比较功能方波发生器如图8-13所示。图8-14 方波发生器硬件电路示意图3.软件设计与调试在输出比较控制方面,按照设计方案进行时钟源设置,禁止TPM1的定时溢出中断,使能通道0中断,CPWMS=0,输出电平翻转。这样TPM1CH0引脚电平翻转的时间间隔为0.25μs×2000=500μs,从而得到周期1ms的方波。

用单片机制作项目3方波发生器

1.实践要求与方案设计

(1)要求

使用TPM模块实现方波输出的功能,要求在TPM1CH0引脚上输出频率为1kHz的方波(固定占空比50%),使用内部4MHz总线时钟。

(2)方案设计

要在引脚TPM1CH0上产生周期性方波信号,可把TPM1CH0引脚设定在输出比较模式。要求中方波的频率为1kHz,对应周期为1ms,那么半周期计时即为500μs。可用TPM模块计时,当500μs时间到时,把TPM1CH0引脚状态翻转,同时把计数器清零,TPM输出比较功能方波发生器如图8-13所示。注意程序中应该在改变通道配置位之后、允许通道中断之前清通道状态标志,以此避免不可预料的行为发生。若选择总线时钟BUSCLK=4MHz作为TPM模块时钟,可把计数器分频因子设为1,则计数器的计数周期为0.25μs,500μs所需要的计数个数为2000或0x07D0个。

978-7-111-50417-7-Chapter08-31.jpg

图8-13 TPM输出比较功能方波发生图

2.硬件电路设计

电路主要由MC9S08AC16单片机最小应用系统组成,在TPM1CH0引脚上外接一台数字示波器,用于监测波形,方波发生器硬件电路示意图如图8-14所示,其中TPM1CH0引脚与PTE2引脚为复用引脚,在LQFP-44引脚封装中为第10引脚。

978-7-111-50417-7-Chapter08-32.jpg(www.xing528.com)

图8-14 方波发生器硬件电路示意图

3.软件设计与调试

在输出比较控制方面,按照设计方案进行时钟源设置,禁止TPM1的定时溢出中断,使能通道0中断,CPWMS=0,输出电平翻转。通过TPM1CH0_init()函数初始化之后,TPM1计数器的计数周期设为0.25μs,TPM1通道0设为输出比较模式,输出比较值为2000(0x07D0)。此后每经过一个TPM1计数脉冲,TPM1计数器TPM1CNT中的值加1,同时和寄存器TPM1C0V中的值相比较,当加到0x07D0时,两者相等,于是产生TPM1CH0比较中断,使得TPM1CH0引脚电平发生翻转,同时TPM1计数器TPM1CNT清零重新从0开始计数。这样TPM1CH0引脚电平翻转的时间间隔为0.25μs×2000=500μs,从而得到周期1ms的方波。通道初始化函数如下。

978-7-111-50417-7-Chapter08-33.jpg

程序采用中断方式,根据表6-1,TPM1通道0的中断向量号是5,清零TPMxCNT计数器是通过向它写任意一个字节的值来完成,而清TPM1CH0中断标志位CH0F则需要两个步骤完成:首先读标志位,然后写0到标志位,其中断服务程序如下。

978-7-111-50417-7-Chapter08-34.jpg

主函数完成TPM初始化函数的调用,具体如下。

978-7-111-50417-7-Chapter08-35.jpg

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

我要反馈