采用中断方式定时一秒,怎么没反应

2019-07-15 23:16发布

本帖最后由 dongyumin 于 2013-8-6 15:53 编辑

各位前辈们,大家好,我是初学单片机,刚学到定时这用定时器1工作在方式1产生1S定时,然后LED取反,闪烁,,反反复复搞了好多次就是不知道错误在哪,身边又没有人能解答的,麻烦各位不吝赐教,到底哪里有问题,感激不尽。
#include<stc89c54rd+.h>
unsigned char i;
sbit led=P1^0;

void main()
{
TMOD=0x01;
TR1=1;
TH1=0x0B;
TL1=0x7F;
EA=1;
ET1=1;
while(1);
}            //初始化
void timer1()interrupt 5
{
TF1=0;
TH1=0x0B;
TL1=0x7F;
i++;
if(i==50)         //定时0.02S*50
{
i=0;
led=~led;
}
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
岁月如割
1楼-- · 2019-07-17 02:33
liwenbiao 发表于 2013-8-5 22:05
楼上说得对这个interrupt 5错了

谢谢指教,,,,,
岁月如割
2楼-- · 2019-07-17 07:04
dongyumin 发表于 2013-8-5 20:57
是不是中断号配置错了?Timer1的不是3吗?

果然,看岔行了,,哎,,多谢
岁月如割
3楼-- · 2019-07-17 07:31
全丽杰 发表于 2013-8-5 22:06
中断算是子函数 应该先声明吧 而且   你的程序编的有问题吧  你自己单步运行下看看时序对不   ...

应先声明?就是在开头写下void timer1()么?
岁月如割
4楼-- · 2019-07-17 10:27
沉默的北极熊 发表于 2013-8-5 22:07
中断向量号写错了

谢谢,,,看岔了
904346841
5楼-- · 2019-07-17 15:52
 精彩回答 2  元偷偷看……
jinyu2013
6楼-- · 2019-07-17 21:20
哈哈                    

一周热门 更多>