📄 8ch_pwm.c
字号:
///////////////////////////////////////////////////////////////////////////////
//C的8路PWM变量定义和中断处理程序,初始化和如何改变PWM的值自行处理.
//
//
//
//
//
//
//
//
//
//timer0中断在12T的为40us,1T~6T的可以跑20us
//
//
//
//
//
//
//
//
//
//在普通单片现机上用软件模拟实现高速8路8位PWM输出,实现软件扩展技术
//
//
//
//
//
//
//
//
//
//
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
sbit P_PWM0 = P1^0; //定义PWM1输出的脚位,这里使用MCS-51单片机的P1口
sbit P_PWM1 = P1^1;//定义PWM1输出的脚位,这里使用MCS-51单片机的P1口
sbit P_PWM2 = P1^2;//定义PWM1输出的脚位,这里使用MCS-51单片机的P1口
sbit P_PWM3 = P1^3;//定义PWM1输出的脚位,这里使用MCS-51单片机的P1口
sbit P_PWM4 = P1^4;//定义PWM1输出的脚位,这里使用MCS-51单片机的P1口
sbit P_PWM5 = P1^5;//定义PWM1输出的脚位,这里使用MCS-51单片机的P1口
sbit P_PWM6 = P1^6;//定义PWM1输出的脚位,这里使用MCS-51单片机的P1口
sbit P_PWM7 = P1^7;//定义PWM1输出的脚位,这里使用MCS-51单片机的P1口
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
uchar PWM_DUTY,PWM0,PWM1,PWM2,PWM3,PWM4,PWM5,PWM6,PWM7; //PWM0~PWM7 为0至7路PWM的宽度值
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/**********************************************/
void timer0 (void) interrupt 1
{
if(++PWM_DUTY == 0) P1 = 0xff;
if(PWM_DUTY == PWM0) P_PWM0 = 0;
if(PWM_DUTY == PWM1) P_PWM1 = 0;
if(PWM_DUTY == PWM2) P_PWM2 = 0;
if(PWM_DUTY == PWM3) P_PWM3 = 0;
if(PWM_DUTY == PWM4) P_PWM4 = 0;
if(PWM_DUTY == PWM5) P_PWM5 = 0;
if(PWM_DUTY == PWM6) P_PWM6 = 0;
if(PWM_DUTY == PWM7) P_PWM7 = 0;
}
///////////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -