|
发表于 2024-1-14 21:13:10
|
显示全部楼层
本帖最后由 刘佑红 于 2024-1-15 07:17 编辑
使用STC8G1K08A实现电压对应占空比的方法还可以使用ADC采集电位器电压,然后计算占空比,根据占空比去控制PCA产生PWM的方法。因为STC8G1K08A不仅有ADC可以测量电位器中心点电压,其PCA模块还可以产生PWM(最高10位)。大致方法如下:
电位器上端接电源,就是楼主图中的4V,电位器下端接地。启动ADC,读取电位器中心点电压转换数值E(=dat*256+dat1,最大1024),占空比D=(E/1024)*100=E*100/1024(%)。
根据占空比D的数值,先判断D的数值,在0<D<100时计算PCA模块需要的CCAP2H和CCAP2L数值,其数值=D*1024/100=E(式中1024是按10位PWM模式),即将ADC读取的转换数值(dat*256+dat1)装载入PCA模块的CCPA2H和CCPA2L,就会输出相应的占空比脉冲。判断在D<1(即D=0),设置PWM输出固定高或者低电平让灯熄灭,判断在D>99(即D=100),设置PWM输出固定高或者低电平让灯直亮。
使用PCA模块产生PWM的方式,得到的占空比比使用定时器的要精确,也较少占用单片机的系统资源,且定时器中断法在PWM频率较高时最低占空比受到定时器中断延时的影响很明显。 |
|