51单片机,想要输出PWM。但是好像没有什么用,大神们看看有什么问题

2019-07-15 13:21发布

#include<reg51.h>
sbit a=P1^0;
sbit b=P1^1;
unsigned char speed0;
void zz();
void speed();
void model1(unsigned char a);
void main()                                                                     
{
TMOD|=0x10;
TH0=0xfe;
TL0=0x0c;
EA=1;
ET0=1;//´ò¿ª¶¨Ê±Æ÷0
TR0=1;
        zz();
}
void zz()               
     {
                        model1(a);
                        b=0;                                                                                                                0;
                       
                        }
void model1(unsigned char a)
{
        while(1)
        {
                if(speed0>=100)  //PWMÖÜÆÚΪ100*0.5ms
                {
                        speed0=0;
                }
        else        if(speed0< 50)        //¸Ä±ä30Õâ¸öÖµ¿ÉÒԸıäÖ±Á÷µç»úµÄËÙ¶È
                {
                        a=1;
//                b=1;
                }
                else
                {
                        a=0;
//          b=0;
                }
        }
       
}

void speed(void) interrupt 1
{

    TH0 = 0xfe;  
        TL0 = 0x0c;
        speed0++;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
chenwei6991627
1楼-- · 2019-07-15 16:49
如果是占空比50%的,定时器取反就可以了
李春明
2楼-- · 2019-07-15 21:23
不懂 期待楼主搞好后能分享一下经验
浪man鑫仔
3楼-- · 2019-07-16 00:13
 精彩回答 2  元偷偷看……
langzitianya
4楼-- · 2019-07-16 05:31
你用的什么芯片?如果你这么输出占空比的话很费资源的,现在好多的都带这个功能的,
大亮锅
5楼-- · 2019-07-16 10:29
langzitianya 发表于 2016-7-25 03:59
你用的什么芯片?如果你这么输出占空比的话很费资源的,现在好多的都带这个功能的,

51
大亮锅
6楼-- · 2019-07-16 12:27
王栋春 发表于 2016-7-24 16:16
不懂 期待楼主搞好后能分享一下经验

那个while(1)不应该写在那里,会进入死循环,出不来

一周热门 更多>