新手求stc89c52单片机中断和定时器一起用的问题。
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar a=0,i=0xfe;
void deng();
void main()
{
TMOD = 0x01;
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
EA = 1; //开总中断
EX0 = 1; //开外部中断0
IT0 = 1; //中断触发为跳沿触发
PT1 = 1; //设定定时器中断优先
P1 = 0;
while(1);
}
void duan() interrupt 0 using 0
{
EX0 = 0;
ET0 = 1;
deng();
EX0 = 1;
}
void deng()
{
if(a == 20)
{a = 0;
P1 = i;
i = i<<1;
i = i+ 1;
if(i == 0xff)
i = 0xfe;
}
}
void timer() interrupt 1 using 0
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
a++;
}
我写的意思是要终端中执行流水灯,灯的间隔时间为1秒,用定时器实现。求各位大神帮忙看看怎么运行不对啊!谢谢了!