8ch_pwm.c

来自「在普通单片现机上用软件模拟实现高速8路8位PWM输出」· C语言 代码 · 共 96 行

C
96
字号
///////////////////////////////////////////////////////////////////////////////
//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 + =
减小字号Ctrl + -
显示快捷键?