資源簡(jiǎn)介
jt.zip
代碼片段和文件信息
#include
#define?uchar?unsigned?char
#define?uint?unsigned?int
uchar?code?table[]={
0xc00xf90xa40xb0
0x990x920x820xf8
0x800x900x880x83
0xc60xa10x860x8e};
uchar?num=0num1=30num2=5num3=0;
uchar?flag=0i=0j;
uchar?shige;
uchar?sign=0; ? ???//交通燈開啟關(guān)閉閃滅標(biāo)志
sbit?Bee=P1^5; ??//蜂鳴器開關(guān)位
void?Init(); ??//初始化函數(shù),設(shè)置初始定義
void?SMG(); ??????//交通燈讀秒
void?display(uchar); ??//交通燈顯示函數(shù)
void?delay(uint); ??//延時(shí)函數(shù)
void?main()
{
???Init();
???while(1)
???{
???if(num==20)
???{
??? ??num=0;
??????????SMG();
}
???}
}
void?Init()
{
TMOD=0x01; ?//設(shè)置定時(shí)器工作在工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256; ?//設(shè)置計(jì)時(shí)時(shí)間為1ms
EA=1; ?????//打開總中斷
ET0=1; ?//開定時(shí)器1中斷
TR0=1; ?????//啟動(dòng)定時(shí)器1
}
void?SMG()
{
??if(flag==0) ??//東西亮紅燈,南北顯綠燈
???{
P2=0xde;
display(num1);
num1--;
i++;
if(num1==5) ?//紅綠燈還有五秒時(shí),紅綠燈交替亮滅,并且蜂鳴器發(fā)出響聲,提醒行人
{
sign=1;
Bee=0; ?//開啟蜂鳴器
}
??if(i==31)
{
????i=0;
num1=30;
sign=0;
Bee=1;
flag=1;
????}
}
if(flag==1) ????//東西南北燈均顯示黃燈
{
P2=0xed;
display(num2);
num2--;
????i++;
if(num2==2) //黃燈還有三秒時(shí),紅綠燈交替亮滅,并且蜂鳴器發(fā)出響聲,提醒行人
{
sign=1;
Bee=0; ?//開啟蜂鳴器
}
if(i==6)
{
i=0;
num2=5;
sign=0;
Bee=1;
flag=2;
}
}
if(flag==2) ?//東西顯綠燈,南北顯紅燈
{
P2=0xf3;
display(num1);
num1--;
i++;
if(num1==5) ?//紅綠燈還有五秒時(shí),紅綠燈交替亮滅,并且蜂鳴器發(fā)出響聲,提醒行人
{
???sign=1;
???Bee=0; ??//開啟蜂鳴器
}
if(i==31)
{
????i=0;
num1=30;
sign=0;
Bee=1;
flag=3;
????}
}
if(flag==3) ?//東西南北均顯示黃燈
{
P2=0xed;
display(num2);
num2--;
i++;
??if(num2==2) ???//黃燈還有三秒時(shí),紅綠燈交替亮滅,并且蜂鳴器發(fā)出響聲,提醒行人
{
sign=1;
Bee=0; ??//開啟蜂鳴器
}
if(i==6)
{
????i=0;
num2=5;
sign=0;
Bee=1;
flag=0;
}
????????????}
}
void?delay(uint?z) ?//延時(shí)函數(shù),延時(shí)Z毫秒
{
? uint?xy;
for(x=z;x>0;x--)
??for(y=110;y>0;y--);
}
void?display(uchar?a) ?//數(shù)碼管動(dòng)態(tài)顯示函數(shù)
{
shi=a/10;
ge=a%10;
for(j=0;j<200;j++)
{?????????
P1=0xfa;
P0=table[shi];
delay(1);
????P1=0xff;
P1=0xf5;
P0=table[ge];
delay(1);
P1=0Xff;
}
}
void?time_1()?interrupt?1 ???//定時(shí)器工作在方式1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(sign==1)
{
num3++;
if(num3==10)
{
P2=0xff; ??? //使交通燈全滅
Bee=~Bee; ????//取反,使蜂鳴器響靜交替變化
num3=0;
}
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????361018??2006-10-05?07:56??芯片PDF文檔\L2A板子芯片文檔\at89s52.pdf
-----------?---------??----------?-----??----
???????????????361018????????????????????1
評(píng)論
共有 條評(píng)論