求助各位大神,关于PWM波的程序

2019-07-15 10:11发布

#include"STC12C5A60S2.h"
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit dj1=P1^0;
uint tt;
uint cs;
void timer0Init();
void Delay500ms();
void Delay500ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 22;
        j = 3;
        k = 227;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}
void main()
{
        Timer0Init();
       
        while(1);
        {
                cs=20;
                Delay500ms();                       

        }
}
void Timer0Init(void)                //50微秒@11.0592MHz
{
        AUXR |= 0x80;                //定时器时钟1T模式
        TMOD &= 0xF0;                //设置定时器模式
        TL0 = 0xD7;                //设置定时初值
        TH0 = 0xFD;                //设置定时初值
        TF0 = 0;                //清除TF0标志
        TR0 = 1;                //定时器0开始计时
}
void timer0() interrupt 1
{
        TH0=0XFD;
        TL0=0XD7;
        tt++;
        if(tt>=400)
        {
                tt=0;
        }
        if(tt<=cs)
        {
                dj1=1;
        }
        else
        {
                dj1=0;
        }
}

这样无法形成PWM波吗??


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。