|
#include <reg51.h>
sbit LED=P3^7;
sbit LED1=P3^6;
unsigned char second;
unsigned char tcount ,t,a;
void delay(unsigned int c);
void time_int();
void main()
{
int d;
time_int();
a=1;
delay(100);
for(d=0;d<3;d++)
{
LED1=0;
LED=0;
delay(100);
LED1=1;
LED=1;
delay(100);
}
while(1);
}
void t0() interrupt 1 using 0
{
int i;
TH0=0Xd8; //重裝50ms初值,TH0=(65536-50000)/256
TL0=0Xf0; // TL0=(65536-50000)/256
if(a==1)
{
while(1)
{
for(i=0;i<3;i++)
{
LED=0;
delay(1000);
LED=1;
delay(1000);
}
a=0; break;
}
if(a==0)
{ while(1) //本段程序功能為顯示
{
LED1=0;
delay(1000);
LED1=1;
delay(1000);
break;
}
}
}
}
void time_int()
{
TMOD=0x01; //定時器0工作在工作方式1下
TH0=0Xd8; //設置50ms定時時計數器的初值,TH0=(65536-50000)/256
TL0=0Xf0; // TL0=(65536-50000)/256
EA=1; //CPU開總中斷
ET0=1; //T0開中斷
TR0=1; //啟動T0
tcount=0;
second=0;
t=0;
}
void delay(unsigned int c)
{
unsigned int x,y;
for(x=c;x>0;x--)
for(y=110;y>0;y--);
}
這是一個中斷的實驗
當檢測到a==1的時候,進入中斷,當執行完中斷的函數后,為何不能
執行主函數的
for(d=0;d<3;d++)
{
LED1=0;
LED=0;
delay(100);
LED1=1;
LED=1;
delay(100);
}
我是菜鳥,求大神解答下,謝謝!!!
|
-
-
shiyan.rar
2019-4-29 11:13 上傳
點擊文件名下載附件
41.75 KB, 下載次數: 6
程序和仿真
|