单片机中断定时程序改错,求助?

cwhe_10 2013-03-16 08:31:54
/*======================================================

使LED灯(P1.7口接LED灯)亮一下后灭一下的中断定时程序

======================================================*/
#include<reg52.h>
sbit P1_7=P1^7;
void delay(long y)
{ y--; }
timer0() interrupt 2 using 1
{
P1_7=!P1_7;delay(100000);
}
main()
{
P1_7=0;
TMOD=0x03;
TH0=TL0=0xff;
IP=0x00;
EA=1; //开总中断
ET0=1; //定时器中断允许位
TR0=1; //定时器0开始计数
while(1);
}


求助:程序可以编译,就是下载进去后P1.7口的灯一直亮着,怎么改啊
...全文
166 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
asxulong0409 2013-03-22
  • 打赏
  • 举报
回复
#include<reg52.h> sbit P1_7=P1^7; timer0() interrupt 2 using 1 { H0=TL0=0xff; P1_7=!P1_7; } main() { P1_7=0; TMOD=0x03; TH0=TL0=0xff; IP=0x00; EA=1; //开总中断 ET0=1; //定时器中断允许位 TR0=1; //定时器0开始计数 while(1); }
Dson2020 2013-03-21
  • 打赏
  • 举报
回复
中断服务程序应该要重装初值吧
wsyk1984 2013-03-21
  • 打赏
  • 举报
回复

/*======================================================

	使LED灯(P1.7口接LED灯)亮一下后灭一下的中断定时程序

======================================================*/
#include<reg52.h>
sbit P1_7=P1^7;

void delay(long y)
{	while(y--);	}

static unsigned char delay_50ms = 50;
void timer0(void) interrupt 1
{
	TH0=0xb8;		//TH0=0xb8  TH0=0  22.1184MHz时钟下定时时间为10mS
	TL0=0;
	while(!(--delay_50ms))
	{
		delay_50ms = 50;
		P1_7=!P1_7;				//500ms一次
	}

}
void main(void )
{
	P1_7=0;
	TMOD=0x01;
	TH0=0xb8;		//TH0=0xb8  TH0=0  22.1184MHz时钟下定时时间为10mS
	TL0=0;
	IP=0x00;
	EA=1;		    //开总中断
	ET0=1;		    //定时器中断允许位
	TR0=1;              //定时器0开始计数
	while(1);
}
在程序基础上修改了一下,我这里仿真没问题了,楼主试试看。 你的问题是用了模式3,模式3在22.1184MHz时钟下,最大延时时间才0.138ms,人眼是跟不上的。 而且应该用interrupt 1,2是外部中断1的编号。
woshi_ziyu 2013-03-21
  • 打赏
  • 举报
回复
用示波器查看输出管脚电平变化
aydf1 2013-03-21
  • 打赏
  • 举报
回复
TMOD=0x01
chendu1986 2013-03-20
  • 打赏
  • 举报
回复
TMOD=0x03;这个不怎么合适吧,还有上面说得对,尽量不要在中断函数里面用延时函数。
ymm198606 2013-03-20
  • 打赏
  • 举报
回复
delay(100000);去掉试试看
s_syx 2013-03-19
  • 打赏
  • 举报
回复
在中断处理程序里要把中断标志警告清0和从新装中断值。
dceacho 2013-03-16
  • 打赏
  • 举报
回复
TMOD=03,这是什么计数方式来着? 可能是中断太快,导致闪的太快,看着就一直亮 顺便说一下,如果你用中断控制时间就不要用延时,而且你那个延时程序是错的 while(y){y--;}

27,382

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧