本帖最后由 neuangel 于 2014-1-1 21:07 编辑
外部中断内部有定时器中断怎么没有执行,请帮忙看看
外部中断1执行后,到定时器0中断的时候不能执行,为什么呢?
刚开始写软件,求帮助
格式怎么考进来都乱了。。。。
#include "reg52.h"#define uint unsigned int
#define uchar unsigned char
uchar count;uint num;
sbit east_red = P2^0;
sbit east_green = P2^1;
sbit sou_red = P2^6;
sbit sou_green = P2^7;
sbit d1 = P2^4;
sbit sp=P1^5;
void delayms(uint);
void main(){
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
EX1=1;
ET0=1;
TR0=1;
east_red=0;
east_green=0;
sou_red=0;
sou_green=0;
delayms(1000);
while(1)
{
east_red=0;
east_green=1;
sou_red=1;
sou_green=0;
delayms(200);
east_red=1;
east_green=0;
sou_red=0;
sou_green=1;
delayms(200);
}
}
void delayms(uint i) //延时函数
{
uint j;
for(;i!=0;i--)
{
for(j=112;j!=0;j--);
}
}
void external1() interrupt 2 //外部中断1
{
d1=0;
delayms(1000);
d1=1;
delayms(1000);
sp=0;
delayms(1000);
sp=1;
num=0;
//这段程序没有运行。。。。
if(num==20) //外部中断执行了
{ //但是定时器中断没有运行
num=0;
count=0xfe;
P2=count;
sp=0;
delayms(1000);
sp=1;
delayms(1000);
}
}
void
time0() interrupt 1 //定时器0——50ms中断
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
}
谢了,确实是这样的
一周热门 更多>