|
#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; //定時(shí)器0工作在工作方式1下
TH0=0Xd8; //設(shè)置50ms定時(shí)時(shí)計(jì)數(shù)器的初值,TH0=(65536-50000)/256
TL0=0Xf0; // TL0=(65536-50000)/256
EA=1; //CPU開總中斷
ET0=1; //T0開中斷
TR0=1; //啟動(dòng)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--);
}
這是一個(gè)中斷的實(shí)驗(yàn)
當(dāng)檢測到a==1的時(shí)候,進(jìn)入中斷,當(dāng)執(zhí)行完中斷的函數(shù)后,為何不能
執(zhí)行主函數(shù)的
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 上傳
點(diǎn)擊文件名下載附件
41.75 KB, 下載次數(shù): 6
程序和仿真
|