资源简介
stc12c5a60s2单片机输出两路pwm走了很多弯路,发现一个很简单的程序,直接可以用的。
代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
/*********************************************************************************************
函数名:PWM初始化函数
调 用:PWM_init();
参 数:无
返回值:无
结 果:将PCA初始化为PWM模式,初始占空比为0
备 注:需要更多路PWM输出直接插入CCAPnH和CCAPnL即可
/**********************************************************************************************/
void PWM_init (void)
{
CMOD=0x02; //设置PCA定时器
CL=0x00;
CH=0x00;
CCAPM0=0x42; //PWM0设置PCA工作方式为PWM方式(0100 0010)
CCAP0L=0x00; //设置PWM0初始值与CCAP0H相同
CCAP0H=0x00; // PWM0初始时为0
CCAPM1=0x42; //PWM1设置PCA工作方式为PWM方式(使用时删除//)
CCAP1L=0x00; //设置PWM1初始值与CCAP0H相同
CCAP1H=0x00; // PWM1初始时为0
//CCAPM2=0x42; //PWM2设置PCA工作方式为PWM方式
//CCAP2L=0x00; //设置PWM2初始值与CCAP0H相同
//CCAP2H=0x00; // PWM2初始时为0
//CCAPM3=0x42; //PWM3设置PCA工作方式为PWM方式
//CCAP3L=0x00; //设置PWM3初始值与CCAP0H相同
//CCAP3H=0x00; // PWM3初始时为0
CR=1; //启动PCA定时器
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:PWM0占空比设置函数
调 用:PWM0_set();
参 数:0x00~0xFF(亦可用0~255)
返回值:无
结 果:设置PWM模式占空比,为0时全部高电平,为1时全部低电平
备 注:如果需要PWM1的设置函数,只要把CCAP0L和CCAP0H中的0改为1即可
/**********************************************************************************************/
void PWM0_set (unsigned char a){
CCAP0L= a; //设置值直接写入CCAP0L
CCAP0H= a; //设置值直接写入CCAP0H
}
/**********************************************************************************************/
void PWM1_set (unsigned char a)
{
CCAP1L= a; //设置值直接写入CCAP1L
CCAP1H= a; //设置值直接写入CCAP1H
}
/*********************************************************************************************
函数名:主函数
调 用:无
参 数:无
返回值:无
结 果:程序开始处,无限循环
备 注:
/**********************************************************************************************/
void delay_1ms(unsigned int i);
void main (void)
{
while(1)
{
PWM_init(); //PWM初始化
while(1)
{
PWM0_set(0x7f);
PWM1_set(0xff);//1
delay_1ms(10000);
PWM0_set(0x33); //设置PWM占空比总共255除以2转换成十六进制得7F
PWM1_set(0x7f); //%50
delay_1ms(100);
PWM0_set(0x00);
PWM1_set(0x00); //%0
delay_1ms(10000);
}
}
}
/**********************************************************************************************/
/**********************************************************************************************/
/*void delay_20us()
{ uchar bt ;
for(bt=0;bt<60;bt++);
}*/
/**********************************************************************************************/
void delay_1ms(unsigned int i)
{
unsigned char j;
while(i--)
{
for(j=0;j<115;j++) //1ms基准延时程序
{
;
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3224 2017-07-08 18:15 pwm灯\111
文件 3162 2017-07-08 18:13 pwm灯\111.c
文件 420 2017-07-08 18:15 pwm灯\111.hex
文件 38 2017-07-08 18:15 pwm灯\111.lnp
文件 6084 2017-07-08 18:15 pwm灯\111.LST
文件 5405 2017-07-08 18:15 pwm灯\111.M51
文件 3563 2017-07-08 18:15 pwm灯\111.OBJ
文件 194 2017-07-08 18:18 pwm灯\111.plg
....... 56160 2017-07-08 18:18 pwm灯\111.uvopt
....... 13223 2017-07-08 16:01 pwm灯\111.uvproj
....... 56168 2017-07-08 18:17 pwm灯\111_uvopt.bak
....... 0 2017-07-08 15:52 pwm灯\111_uvproj.bak
文件 17735 2017-07-08 16:01 pwm灯\stc12c5a60s2.h
目录 0 2017-07-08 18:18 pwm灯
----------- --------- ---------- ----- ----
165376 14
相关资源
- 基于28335的spwm
- DSP28335SVPWM.pdf
- STM32 TIM3 四通道PWM输出实验.rar
- 基于51单片机pwm控制的呼吸灯程序
- 单片机PWM控制花样彩灯
- 基于DSP28335生成spwm源程序 三相120度移
- SVPWM的具体实现.rar
- 三相电压型PWM整流器VSR的建模及其控
- pwm的使用。。stc12
- 用51单片机产生PWM控制直流小电机
- 滞环SVPWM控制
- PWM开关稳压电源设计
- Keil5下的STM32F103Cx例程超值,含PWM输出
- 电压型PWM整流器控制器的设计
- STM32任意角度移相全桥PWM
- STM32通用定时器实现频率占空比可调互
- dspic33的PWM调试程序
- zw_STM32定时器捕获PWM波以及占空比.z
- 基于DSPf28335的PWM——输出互补对称波
- STC12C5A60S2的内部AD和PWM的程序
- 如何使用CCS建立SVPWM工程
- 单相PWM整流电路的仿真设计.doc.doc
- 使用PWM得到精密的输出电压
- 树莓派控制RGB LED源代码softPwm
- 呼吸灯STC12C5A60S2
- PWM逻辑.alc STC8G2K64S4P00-P54全输出
- STC单片机舵机PWM控制教程源码,教程
- SVPWM的仿真
- 三相SVPWM整流
- 汇编实现pwm及按键控制
评论
共有 条评论