新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于89C52單片機(jī)的紅外遙控雙模式交通燈控制系統(tǒng)

基于89C52單片機(jī)的紅外遙控雙模式交通燈控制系統(tǒng)

作者: 時(shí)間:2012-08-31 來源:網(wǎng)絡(luò) 收藏

void display(shi,ge)

{ dula=1;

P0=table[shi];

dula=0;

wela=1;

P0=table1[0];

wela=0;

delay(5);

P0=0xff; // 對數(shù)碼管消影

dula=1;

P0=table[ge];

dula=0;

wela=1;

P0=table1[1];

wela=0;

delay(5);

P0=0xff;}

模式一函數(shù):

void mod1()

{ if(num==1gtime>5) // 東西道紅燈亮,南北道綠燈亮,最后5 秒切換成黃燈

{ LED5=0;

LED1=0; }

if(num==2) // 東西道綠燈亮,南北道紅燈亮

{ LED2=0;

LED6=0;

LED5=1;

LED3=1;

LED1=1; }

if(num==1gtime==5) // 東西道紅燈亮,南北道黃燈亮5 秒

{ LED5=1;

LED2=1;

LED3=0; }

shi=gtime/10;

ge=gtime%10;

if(aa==20) // 50ms×20=1s, 即過1s 數(shù)碼管數(shù)字減1

{ aa=0;

gtime--; }

display(shi,ge);

if(gtime==0num!=2)

{ gtime=60;

num=2; }

if(gtime==0num==2)

{ num=1;

gtime=60;

LED2=1;

LED6=1; } }

模式二函數(shù):

如同模式一,只是參數(shù)有變化。如將gtime=60 換成rtime=40;num=1 換成numa=1;僅此而已。

主函數(shù):

void main()

{ init();

while(1)

/* 模式一,平常模式,紅綠燈切換時(shí)間為60 秒*/

{ if(MODEL1==1||HMODE1==0) // 按鍵或紅外控制切換模式

{ mod1(); }

/* 通過按鍵切換工作模式*/

if(KEY1==0)

{ delay(5); //按鍵消抖

while(KEY1==0)

{ MODEL1++;

rtime=40;

if(MODEL1==3)

{ MODEL1=1;

gtime=60; }

while(!KEY1); } }

… …

/*模式二,上下班高峰期模式。紅綠燈切換時(shí)間為40 秒*/

if(MODEL1==2||HMODE1==1)

{ mod2(); }

} }

void timer0() interrupt 1

{ TH0=15536/256;

TL0=15536%256;

aa++; }

紅外遙控器相關(guān)文章:紅外遙控器原理


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉