测试STC12C5A60S2输出可调占空比的PWM脉冲带两个按键,分别加大与减少占空比调整,
可以用万用表电压档测量PWM输出IO的电压会随着占空比高低变化
单片机源程序如下:
- /**********
- 测试STC12C5A
- 输出可调占空比的PWM脉冲
- 调整范围
- 20191109
- *********/
- #include "STC12C5A.H" // 包含STC12C5A60S2寄存器定义文件
- sbit UpKey=P3^5; //调小占空比按键
- sbit DownKey=P3^4;//调大占空比按键
- #define ADJdata CCAP0H//宏定义
- void delayms(unsigned int delay)
- {
- unsigned int a,b;
- for(a=delay;a>0;a--)
- for(b=150;b>0;b--);
- }
- void main()
- {
- CCAPM0=0x42; // 设置PCA模块为PWM输出方式。
- //B7 B6 B5 B4 B3 B2 B1 B0
- //* ECOM0 CAPPn CAPNn MATn TOGn PWMn ECCFn
- // 开启比较器允许 允许PWM引脚输出脉冲
- CR=1; // PCA计数器开始运行
- ADJdata=0x80; // 脉宽控制初值50%
- while(1)
- {
- if(UpKey==0)
- {
- delayms(20);
- if(UpKey==0)
- {
- while(UpKey==0);
- ADJdata+=5;
- if(ADJdata>=255) ADJdata=255;//最大
- }
- }
- if(DownKey==0)
- {
- delayms(20);
- if(DownKey==0)
- {
- while(DownKey==0);
- if(ADJdata<=25) ADJdata=30;//最低
- ADJdata-=5;
- }
- }
- }
- }
复制代码
|