用中断程序写的闪烁灯问题,求高手指导拜谢

2019-07-16 06:54发布

#include "reg51.h"
sbit led=P0^1;
static unsigned int counts;
bit s=0; //变量声明//
void  INT_timer0 (void) interrupt 1
{
   led=s;   
  counts=counts+1;
if (counts==20)
{s=~s;
  led=s;
counts=0;}
return;
}//计时1S //
void main()
{
counts=0;
TMOD=0x01;
  TH0=0;
TL0=0;
EA=1;
ET0=1;
  TR0=1;
return;
}
这是我用中断写的一个P0.1口每隔1秒闪烁一次的闪烁灯,可是我下载到开发板上运行时却什么灯都不能亮。我试过把led=s放到主程序里面运行结果灯能亮一盏可是还是没有闪烁的效果。我怀疑是中断程序没法运行,可是为什么没法运行我却找不出原因来,这个问题已经困扰了我一整天,怎么调试都没调试出来,所以想请论坛里面的高手指正一下,小弟万分感激。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
keywords
1楼-- · 2019-07-16 07:47
自己先顶了防止帖子被沉,求高手啊
keywords
2楼-- · 2019-07-16 09:14
单片机是STC89C52
keywords
3楼-- · 2019-07-16 11:25
初值写错了是       
                TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
szndq
4楼-- · 2019-07-16 16:26
将主函数中的“return;"去掉,改为“while(1);"
sunwen0011
5楼-- · 2019-07-16 18:08
 精彩回答 2  元偷偷看……
sunwen0011
6楼-- · 2019-07-16 21:02
额。。。原来是你自己回答了自己的问题

一周热门 更多>