单片机定时计数器中断问题

使用AT89C51单片机,频率为6兆Hz,正常情况下8个霓虹灯依次顺序点亮,循环显示,时间间隔为1s,每隔2分钟,上、下各四个灯分别闪烁两次(即上面四个灯亮时下面四个灯灭,反之亦然),时间间隔为0.5s,延时用T0定时器,每隔2分钟用T1中断方式,我就是不知道T1中断怎么写,外部中断我会,他说每隔2分钟,那这两分钟又要写在哪里?最好有源程序,感激不尽!

计时器肯定计时不了2分钟,可让其100ms中断一次,变量a加1
主程序判断a是否等于或大于1200 即得到2分钟 0.5s也一样
void init()//初始化设置
{
TMOD=0x10;//定时器1作为定时器用
TH1==(65535-50000)/256;
TL1=(65535-50000)%256;
TR1=1;//启动定时器
ET1=1;//允许定时器1中断
EA=1;//开总中断
}

中断程序
void timer1()interrupt 3//注意:定时器1的中断序号为3
{
a++;
TH1==(65535-50000)/256;
TL1=(65535-50000)%256;
}追问

主程序怎么判断a是不是大于1200,?能否写完整点的程序。。。

追答

while(1)
{
P0=1//点亮一个LED,LED阳极接P0
while(a<1200)
{
b=a%10;
if(b==0)
{P0=P0<<1 }
if(p0==ox80)

{P0=1}
}
a=0;
p0=0xf0;//这一段根据自己需要修改
while(a<5);
a=0;
p0=0xof;
while(a<5);
a=0;
p0=0xf0;
while(a<5);
a=0;
p0=0xof;
while(a<5);
a=0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-01
设置定时器,开中断...追问

问题是他要每隔两分钟,那每隔两分钟中断一次怎么写?

追答

参考:

http://hi.baidu.com/do_sermon/item/255f69c7c8132850bcef6965

相似回答