PWM产生可调方波

2019-07-15 16:28发布

STC89C52RC 定时器0控制高电平,定时器1控制周期,两个按键分别增加t1和t2值
但下载到芯片内无反应,求解
#include<reg52.h>                               //doesnt work
typedef unsigned char uchar;
sbit V_OUT=P1^0;
sbit KEY1=P3^4;
sbit KEY2=P3^5;
int t1,t2;
void timer0_1_init(void)
{
        TMOD=0x11;
        TH0=0xff;
        TL0=0xff;
        TH1=0xff;
        TL1=0xff;
        ET0=1;
        ET1=1;
        TR0=1;
        EA=1;
}
void timer0()interrupt 1 using 1
{
        V_OUT=0;
        TH1=t1/10;
        TL0=t1%10;
        TR0=0;
        TR1=1;
}
void timer1()interrupt 3 using 2
{
        V_OUT=1;
        TH1=t2/10;
        TL1=t2%10;
        TR1=0;
        TR0=1;
}
void main(void)
{
        t1=56320,t2=t1;
        while(1)
        {
                KEY1=1;
                if(KEY1==0)
                {
                        t1+=10;
                        if(t1<56320)t1=56320;
                }
                KEY2=1;
                if(KEY2==0)
                {
                        t2++;
                        if(t2<56320)t2=56320;
                }
        }
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
haohaozhu
1楼-- · 2019-07-17 13:22
haohaozhu 发表于 2015-7-29 16:13
是不是差个键盘扫面程序
void scan()
if(k1=1)

上面应该是== 打快了 没注意
weslydreamer
2楼-- · 2019-07-17 14:46
haohaozhu 发表于 2015-7-29 16:14
上面应该是== 打快了 没注意

应该不是键盘扫描的问题,单片机读IO口的速度还没有太快
改了一下定时初值,发现可以让LED灯渐变了
对定时器理解还不太透彻
感谢前辈指点

一周热门 更多>