各位帮忙看一下这个51的程序

2019-07-15 23:09发布

#include <reg52.h>
sbit l=P1^0;
uint16 counter=0;
uint16 j;
uint8 a=0;
uint16 num[]={1,2,3,4,5,6,7,8};
void timer0_init()
{
        TMOD=0x01;
        TH0=0xFE;
        TL0=0x33;
        EA=1;
        ET0=1;
        TR0=1;
}
main()
{
        timer0_init();
        l=1;       
        while(1)
        {       
        if(TF0==1)
           {
            TF0=0;
            TH0=0xFE;
            TL0=0x33;
            counter++;
           }
        if(counter==num[a]){
                l=0;
                a++;
                if(a==8){
                a=0;}
                }
        if(counter==40){
        counter=0;
        l=1;}
        }
}
这个程序本想实现输出一个占空比可以不断变化的PWM波,但用示波器观察波形是不变的,请各位帮帮忙,先谢谢了

这个

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
woshiaokeman
1楼-- · 2019-07-16 02:04
 精彩回答 2  元偷偷看……
沉默的北极熊
2楼-- · 2019-07-16 07:36
woshiaokeman 发表于 2013-8-11 09:06
不怎么看得懂你的思路。。
我只是觉得第一次中断的时候counter = 1;
然后就不听的执行 if(counter==num[a]) ...

嗯  谢谢了  已经找到问题了

一周热门 更多>