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条回答
bbxy2010
1楼-- · 2019-07-15 22:20
定时器初始化程序没怎么看,假设你的定时器能够正常工作,那问题就出现在main函数里面,KEY1=1;KEY2=1;这两句是什么意思?KEY1、KEY2都置1了,下面的判断还能执行吗??可以去掉那两句试一下
bbxy2010
2楼-- · 2019-07-16 00:40
定时器初始化程序没怎么看,假设你的定时器能够正常工作,那问题就出现在main函数里面,KEY1=1;KEY2=1;这两句是什么意思?KEY1、KEY2都置1了,下面的判断还能执行吗??可以去掉那两句试一下
bbxy2010
3楼-- · 2019-07-16 03:37
定时器初始化程序没怎么看,假设你的定时器能够正常工作,那问题就出现在main函数里面,KEY1=1;KEY2=1;这两句是什么意思?KEY1、KEY2都置1了,下面的判断还能执行吗??可以去掉那两句试一下
bbxy2010
4楼-- · 2019-07-16 07:27
定时器初始化程序没怎么看,假设你的定时器能够正常工作,那问题就出现在main函数里面,KEY1=1;KEY2=1;这两句是什么意思?KEY1、KEY2都置1了,下面的判断还能执行吗??可以去掉那两句试一下
bbxy2010
5楼-- · 2019-07-16 12:10
 精彩回答 2  元偷偷看……
bbxy2010
6楼-- · 2019-07-16 13:51
KEY1=1; KEY2=1;这两句在前边,后边的判断语句是进不去的

一周热门 更多>