这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 51单片机定时器时长变化

共2条 1/1 1 跳转至

51单片机定时器时长变化

工程师
2023-08-31 10:17:27     打赏

想用51单片机通过按键控制继电器,按一次按键继电器吸合5秒,但现在除了第一次时间是正确的,之后每次时间都不一样,而且还没规律,想请教下是怎么回事呢?
这是我写的c程序

#include
#define uint unsigned int
#define uchar unsigned char
***it jidianqi=P0^0;
***it key=P0^1;
int i=0;
uint x=0;
void timer1_init()
{
        TMOD=0x01;
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        EA=1;
        ET0=1;
        TR0=1;        
}
void delayms(uint x)
{
        uint n,m;
        for(n=x;n>0;n--)
        for(m=110;m>0;m--);
}
void keyscan()
{
        if(key==0)
        {
                delayms(10);
                if(key==0)
                {
                        jidianqi=1;
                        timer1_init();
                }
        }
}
void main()
{
        jidianqi=0;
        while(1)
        {
                keyscan();
        if(i==135)
        {
                jidianqi=0;
                i=0;
        }
}
}
void timer1() interrupt 1
{
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        i++;





关键词: 51          定时器    

助工
2023-08-31 10:17:57     打赏
2楼

定时器初始化时i没有清零


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]