资源简介

51单片机应用定时器实现pwm输出C语言程序,频率、占空比可调

资源截图

代码片段和文件信息

#include
#define uchar unsigned char
#define uint unsigned int
void isr_t0(void);    //定时器T0中断,
sbit SINGAL1=P2^0;         //两路PWM信号输出端口,
sbit SINGAL2=P2^1;
sbit P1_0=P1^0;       //P1端口做为调节信号输入口,
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;

int a=100;
int b;
uchar c=5;
uint PWM1;

void isr_t0(void) interrupt 1     //定时器实现T0方波输出
{     int khmn;  
      TH0=0xFF;                 //定时初值0.1ms
      TL0=0x9B;
  PWM1++; 
  b=a/5*c;
    if (PWM1<=b)                //a=10初始频率为50Hz,
    { SINGAL1=0;
  SINGAL2=1;}
    else if ((PWM1>b)&&(PWM1<2*a))
      {SINGAL1=1;
   SINGAL2=0;}
    else if(PWM1=2*a)
         {PWM1=0;}
  if (P1_0==0)
  {k=20000;
   while (k--);
   

评论

共有 条评论