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条回答
李春明
1楼-- · 2019-07-16 15:23
大亮锅 发表于 2016-7-26 20:06
那个while(1)不应该写在那里,会进入死循环,出不来

哎 我也练习过一些非常基本的程序 但是感觉程序模式死板 稍微错一点就不行  
大亮锅
2楼-- · 2019-07-16 15:38
 精彩回答 2  元偷偷看……
大亮锅
3楼-- · 2019-07-16 16:34
大亮锅 发表于 2016-7-26 20:08
#include
#define uint unsigned int
sbit a=P1^0;

这是改好的程序,可以正常使用了
大亮锅
4楼-- · 2019-07-16 20:25
王栋春 发表于 2016-7-26 20:08
哎 我也练习过一些非常基本的程序 但是感觉程序模式死板 稍微错一点就不行

是这样的==想了好久

一周热门 更多>