-
大小: 429KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-22
- 語(yǔ)言: C/C++
- 標(biāo)簽:
資源簡(jiǎn)介
交通燈控制系統(tǒng),附實(shí)驗(yàn)要求及圖紙
利用單片機(jī)控制十字路口的紅綠黃燈交替點(diǎn)亮和熄滅,并且用4只七段LED數(shù)碼管(不能使用BCD數(shù)碼管)顯示十字路口兩個(gè)方向的剩余時(shí)間。要求能用按鍵設(shè)置兩個(gè)方向的通行時(shí)間(綠燈點(diǎn)亮的時(shí)間)和暫緩?fù)ㄐ袝r(shí)間(黃燈點(diǎn)亮的時(shí)間),系統(tǒng)的工作符合一般交通燈控制要求。

代碼片段和文件信息
#include?“at89x51.h“ ?
#include?“control.h“ ???//用于顯控制數(shù)碼管示的函數(shù)
int?EWNowCount; ???//東西向的顯示秒數(shù)
int?NSNowCount; //南北向德顯示秒數(shù)
int?temp?; ???//?臨時(shí)變量,用以判斷路燈轉(zhuǎn)換條件及賦給count的值
unsigned?int?num; ??//計(jì)時(shí)次數(shù),每4000次為一秒
unsigned?char?delay_time; ?????//控制閃爍的延時(shí)
unsigned?char?edit; ???//可設(shè)置紅綠燈初始值
unsigned?char?setClicks; //保存set鍵的按下次數(shù)
unsigned?char?FlashChange; //東西向與南北向計(jì)時(shí)器轉(zhuǎn)換?
char?add;????????????????//加或者減后的值
int?EWGreenDef?=?60?; ???//東西向的默認(rèn)值
int?EWYellowDef?=?4?;
int?EWRedDef?= 44 ;
int?NSGreenDef ?=?40?; ???//南北向的默認(rèn)值
int?NSYellowDef?=?4?;
int?NSRedDef? =?64?;
int?EWGreen;
int?EWYellow; ???//定義六個(gè)變量?,用來(lái)讀秒
int?EWRed;
int?NSGreen;
int?NSYellow;
int?NSRed?;
int?Sum1?; ??//??EWGreenDef?+EWYellowDef+?EWRedDef
int?Sum2?; ??//???EWGreenDef+EWYellowDef
int?Sum3?; ??//??NSGreenDef+NSRedDef
unsigned?char?n; ??//用其值來(lái)判斷是否為長(zhǎng)按鍵
void?T0_INT(void)?interrupt?1 /*定時(shí)器T0,控制紅綠燈的轉(zhuǎn)換?*/ ???
{
num++;
Sum1?=?EWGreenDef?+EWYellowDef+?EWRedDef;
Sum2?=?EWGreenDef+EWYellowDef;
Sum3?=?NSGreenDef+NSRedDef?;
if(?num?==4000?) /*1s?=?0.25ms?*4000?*/?
{
if(temp<=EWGreenDef) /*?東西向綠燈讀秒?*/?
{
EWNowCount?=?EWGreen;
EWGreenLight();
EWGreen--;
}
if(temp<=NSRedDef) ???/*?南北向紅燈燈讀秒?*/?
{
NSNowCount?=?NSRed;
NSRedLight();
NSRed--;
}
if(temp<=Sum2?&&?temp>EWGreenDef)????????/*?東西向黃燈讀秒?*/??
{
EWNowCount?=?EWYellow;
EWYellowLight();
EWYellow--;
}
if(temp<=Sum3?&&?temp>NSRedDef) /*?南北向綠燈讀秒?*/?
{
NSNowCount?=?NSGreen;
NSGreenLight();
NSGreen--;
}
if(temp<=Sum1+2?&&?temp?>?Sum2) /*?東西向紅燈讀秒?*/?
{
EWNowCount?=?EWRed;
EWRedLight();
EWRed--;
}
if(temp<=Sum1+2?&&?temp?>?Sum3) /*?南北向黃燈讀秒?*/?
{
NSNowCount?=?NSYellow;
NSYellowLight();
NSYellow--;
}
if(EWGreen<0)? EWGreen?=?EWGreenDef; ?/*?重新裝載初值?*/?
if(EWYellow<0)? EWYellow?=?EWYellowDef;
if(EWRed<0)? EWRed?=?EWRedDef;
if(NSGreen<0)? NSGreen?=?NSGreenDef;
if(NSYellow<0)? NSYellow?=?NSYellowDef;
if(NSRed<0)? NSRed?=?NSRedDef;
temp++;
if(temp>Sum1)?temp?=?0;
num=0;
}
}
void?T1_INT(void)?interrupt?3 /*??定時(shí)器?T1控制長(zhǎng)按鍵??*/ ?
{
?if(P0_1==0?||?P0_0==0)?n++;
?if(P0_1==1?&&?P0_0==1)?
?{
? n=0;
?}
}
unsigned?char?getKey(void) ?????/*??判斷哪個(gè)鍵被按下并返回鍵值 ??*/
{
unsigned?char?key?;
if(P0_0?==?0?||?P0_1==0?||?P3_3==0)
{
delay_ms(10);
if(P0_0==0) /*?add鍵?*/?
{?
key=2;
while(!P0_0);
if(n<100)?add++;
if(n>100)
add=add+10;
if(add>=99) add=99;
}
if(P0_1==0) /*?decrease鍵?*/?
{?
key=3;
TR1?=?1;
while(!P0_1);
if(n<100) add--;
if(n>100)
add=add-10;
if(add<=0)?add?=?0;
}
if(P3_3==0) /*?set鍵?*/?
{
while(!P3_3)?;
key?=?1?;
setClicks++;
}
???
}
else?key=0; /*?無(wú)鍵按下?*/?
return?key;
}
void?run(void) ? /*根據(jù)鍵值,實(shí)現(xiàn)相應(yīng)的功能(設(shè)置,加或減)?*/
{
unsi
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????1797??2010-06-11?07:14??C51\Control.h
?????文件???????7375??2010-06-11?07:14??C51\main.c
?????文件??????22171??2010-06-11?07:15??C51\main.LST
?????文件??????23005??2010-06-11?07:15??C51\main.OBJ
?????文件??????18476??2010-06-11?07:15??C51\S18
?????文件???????4794??2010-06-11?07:15??C51\S18.hex
?????文件?????????40??2010-06-11?07:15??C51\S18.lnp
?????文件??????26519??2010-06-11?07:15??C51\S18.M51
?????文件???????1839??2010-06-11?07:15??C51\S18.Opt
?????文件??????98610??2010-06-11?07:15??C51\S18.plg
?????文件???????2190??2010-06-11?03:44??C51\S18.Uv2
????.......??????1840??2010-06-11?07:15??C51\S18_Opt.Bak
????.......??????2190??2010-06-04?03:52??C51\S18_Uv2.Bak
?????文件???????6376??2005-03-22?15:22??C51\STARTUP.A51
?????文件??????14076??2010-06-11?07:15??C51\STARTUP.LST
?????文件????????758??2010-06-11?07:15??C51\STARTUP.OBJ
?????文件?????129869??2010-06-11?06:49??capture\at89c51.jpg
?????文件?????187865??2010-06-11?06:49??capture\display.jpg
?????文件?????302760??2010-06-11?06:48??capture\picture1.jpg
????..A.SH.?????16896??2010-06-11?08:46??capture\Thumbs.db
?????文件?????116736??2010-05-23?10:19??考察項(xiàng)目.ppt
?????文件?????113536??2010-06-09?17:11??ISIS設(shè)計(jì)圖\Last?Loaded?s.DBK
?????文件?????113536??2010-06-09?18:16??ISIS設(shè)計(jì)圖\s.DSN
?????文件????????768??2010-06-11?06:50??ISIS設(shè)計(jì)圖\s.PWI
?????目錄??????????0??2010-06-11?08:49??C51
?????目錄??????????0??2010-06-11?08:00??capture
?????目錄??????????0??2010-06-17?17:24??ISIS設(shè)計(jì)圖
-----------?---------??----------?-----??----
??????????????1214022????????????????????27
............此處省略0個(gè)文件信息
評(píng)論
共有 條評(píng)論