求帮忙看看定时器的问题

2019-07-15 23:16发布

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit led=P1;
uchar num;
void main()
{
        TMOD=0x01;
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;       
        EA=1;
        ET0=1;
        TR0=1;
    while(1);
}
void TO_time() interrupt 1
{
               
                led=~led;

}
为什么LED灯闪烁呢,这里定时器没有重新设定初值啊


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
kaitokid
1楼-- · 2019-07-15 23:28
定时器在响应了中断后要重新给TH0,TL0赋值。因为既然响应了中断,那么肯定TF0=1了,既然TF0=1了,那么肯定计数满溢出了。你的中断程序里没有重新赋值,所以不闪烁
ч﹎路太弯℡
2楼-- · 2019-07-16 03:27
kaitokid 发表于 2013-8-5 16:56
定时器在响应了中断后要重新给TH0,TL0赋值。因为既然响应了中断,那么肯定TF0=1了,既然TF0=1了,那么肯定 ...

可是我的灯却在不停闪烁
kaitokid
3楼-- · 2019-07-16 09:17
本帖最后由 kaitokid 于 2013-8-5 17:41 编辑
ч﹎路太弯℡ 发表于 2013-8-5 17:00
可是我的灯却在不停闪烁


不好意思,我看成不闪烁了。
liwenbiao
4楼-- · 2019-07-16 11:56
 精彩回答 2  元偷偷看……
yzx41
5楼-- · 2019-07-16 16:06
程序好像是没错  看硬件电路有没有好错,最好接下上拉电阻
Mcgrady/v
6楼-- · 2019-07-16 20:03
不是应该重新附初值的吗?

一周热门 更多>