欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)交通燈設(shè)計(jì)

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2007年06月12日   【字體:

交通燈控制系統(tǒng)設(shè)計(jì)
摘要:本系統(tǒng)由單片機(jī)系統(tǒng)、鍵盤、LED 顯示、交通燈演示系統(tǒng)組成。系統(tǒng)包括人行道、左轉(zhuǎn)、右轉(zhuǎn)、以及基本的交通燈的功能。系統(tǒng)除基本交通燈功能外,還具有倒計(jì)時(shí)、時(shí)間設(shè)置、緊急情況處理、分時(shí)段調(diào)整信號燈的點(diǎn)亮?xí)r間以及根據(jù)具體情況手動控制等功能。
關(guān)鍵詞:AT89S51,交通規(guī)則
一、 方案比較、設(shè)計(jì)與論證
1 電源提供方案
為使模塊穩(wěn)定工作,須有可靠電源。我們考慮了兩種電源方案

方案一:采用獨(dú)立的穩(wěn)壓電源。此方案的優(yōu)點(diǎn)是穩(wěn)定可靠,且有各種成熟電路可供選用;缺點(diǎn)是各模塊都采用獨(dú)立電源,會使系統(tǒng)復(fù)雜,且可能影響電路電平。
方案二:采用單片機(jī)控制模塊提供電源。改方案的優(yōu)點(diǎn)是系統(tǒng)簡明扼要,節(jié)約成本;缺點(diǎn)是輸出功率不高。
綜上所述,我們選擇第二種方案。
2 顯示界面方案
該系統(tǒng)要求完成倒計(jì)時(shí)、狀態(tài)燈等功能。基于上述原因,我們考慮了三種方案:
方案一:完全采用數(shù)碼管顯示。這種方案只顯示有限的符號和數(shù)碼字苻,無法勝任題目要求。
方案二:完全采用點(diǎn)陣式LED 顯示。這種方案實(shí)現(xiàn)復(fù)雜,且須完成大量的軟件工作;但功能強(qiáng)大,可方便的顯示各種英文字符,漢字,圖形等。
方案三:采用數(shù)碼管與點(diǎn)陣LED 相結(jié)合的方法因?yàn)樵O(shè)計(jì)既要求倒計(jì)時(shí)數(shù)字輸出,又要求有狀態(tài)燈輸出等,為方便觀看并考慮到現(xiàn)實(shí)情況,用數(shù)碼管與LED燈分別顯示時(shí)間與提示信息。這種方案既滿足系統(tǒng)功能要求,又減少了系統(tǒng)實(shí)現(xiàn)的復(fù)雜度。權(quán)衡利弊,第三種方案可互補(bǔ)一二方案的優(yōu)缺,我們決定采用方案三以實(shí)現(xiàn)系統(tǒng)的顯示功能。
3 輸入方案:
題目要求系統(tǒng)能手動設(shè)燈亮?xí)r間、緊急情況處理,我們討論了兩種方案:
方案一:采用8155擴(kuò)展I/O 口及鍵盤,顯示等。該方案的優(yōu)點(diǎn)是:
使用靈活可編程,并且有RAM,及計(jì)數(shù)器。若用該方案,可提供較多I/O 口,但操作起來稍顯復(fù)雜。
方案二: 直接在IO口線上接上按鍵開關(guān)。因?yàn)樵O(shè)計(jì)時(shí)精簡和優(yōu)化了電路,所以剩余的口資源還比較多,我們使用四個按鍵,分別是K1、K2、K3、K4。
由于該系統(tǒng)對于交通燈及數(shù)碼管的控制,只用單片機(jī)本身的I/O 口就可實(shí)現(xiàn),且本身的計(jì)數(shù)器及RAM已經(jīng)夠用,故選擇方案二。
二、理論分析與計(jì)算
1.交通燈顯示時(shí)序的理論分析與計(jì)算
對于一個交通路口來說,能在最短的時(shí)間內(nèi)達(dá)到最大的車流量,就算是達(dá)到了最佳的性能,我們稱在單位時(shí)間內(nèi)多能達(dá)到的最大車流為車流量,用公式:車流量= 車流 / 時(shí)間 來表示。

先設(shè)定一些標(biāo)號如圖2-1 所示。

說明:此圖為直方圖,上邊為北路口燈,右邊為東路口燈,下邊為南路口燈,左邊為西
路口燈。
圖2-2 所示為一種紅綠燈規(guī)則的狀態(tài)圖,分別設(shè)定為S1、S2、S3、S4,交通燈以這四
的狀態(tài)為一個周期,循環(huán)執(zhí)行(見圖2-3)。

請注意圖2-1b和圖2-1d,它們在一個時(shí)間段中四個方向都可以通車,這種狀態(tài)能在
一定的時(shí)間內(nèi)達(dá)到較大的車流量,效率特別高。
依據(jù)上述的車輛行駛的狀態(tài)圖,可以列出各個路口燈的邏輯表,由于相向的燈的狀態(tài)圖
是一樣的,所以只需寫出相鄰路口的燈的邏輯表;根據(jù)圖2-3 可以看出,相鄰路口的燈它
們的狀態(tài)在相位上相差180°。因此最終只需寫出一組S1、S2、S3、S4的邏輯狀態(tài)表。

如表2-1 所示。

表中的“×”代表是紅燈亮(也代表邏輯上的0),“√”是代表綠燈亮(也代表邏輯上
的1),依上表,就可以向相應(yīng)的端口送邏輯值。

2.交通燈顯示時(shí)間的理論分析與計(jì)算


東西和南北方向的放行時(shí)間的長短是依據(jù)路口的各個方向平時(shí)的車流量來設(shè)定,并且
S1、S2、S3、S4各個狀態(tài)保持的時(shí)間之有嚴(yán)格的對應(yīng)關(guān)系,其公式如下所示。
T-S1+T-S2=T-S3
T-S2=T-S4
T-S1=T-S3
我們可以依據(jù)上述的標(biāo)準(zhǔn)來改變車輛的放行時(shí)間。按照一般的規(guī)則,一個十字路口可分

為主干道和次干道,主干道的放行時(shí)間大于次干道的放行時(shí)間,我們設(shè)定值時(shí)也應(yīng)以此為參
考。
三、電路圖及設(shè)計(jì)文件
1.燈控制電路設(shè)計(jì)
由于32個LED 來實(shí)現(xiàn)紅綠燈狀態(tài),若直接接在單片機(jī)的口線,路口倒計(jì)時(shí)的顯示就不
能實(shí)現(xiàn),所以本次設(shè)計(jì)中采用一種新型的電路如圖3-1 所示。

圖中74LS04的作用是倒相和驅(qū)動,它輸出的電流大約48mA,實(shí)際測試發(fā)現(xiàn)足以滿足要
求,而且發(fā)光管也能達(dá)到足夠的亮度。
觀察圖可以看出:兩組發(fā)光管(一組紅、一組綠)由于反相器的作用,其邏輯狀態(tài)恰恰
相反。
圖中和電阻串聯(lián)的二極管的作用是為了分壓,防止因上下兩組發(fā)光管分壓不同導(dǎo)致邏輯
的錯誤。
共四組和上述相同的電路分別代表東西南北四個方向的紅綠燈,使用兩片74LS04 作為
驅(qū)動。
2.倒計(jì)時(shí)顯示電路設(shè)計(jì)
前面已經(jīng)分析過相向的燈的狀態(tài)和倒計(jì)時(shí)都是相同的,所以為了節(jié)省,采用兩組四個數(shù)碼管
作為倒計(jì)時(shí)的顯示;同時(shí)為了節(jié)省口資源,采用串口顯示的方式驅(qū)動數(shù)碼管。見圖3-2 所
示。

四、程序設(shè)計(jì)思路與流程圖
1.主程序流程圖
主程序中主要是一個死循環(huán),不停的循環(huán)四個狀態(tài),如圖4-1 所示。

2.按鍵子程序流程圖
它包含倒計(jì)時(shí)調(diào)整和緊急狀態(tài)兩個狀態(tài)。
主程序中放了一個按鍵的判斷指令,當(dāng)有按鍵按下的時(shí)候,程序就自動的跳轉(zhuǎn)到按鍵子
程序處理。當(dāng)檢測到K2鍵按下的時(shí)候就自動返回到主程序。
當(dāng)出現(xiàn)緊急的情況的時(shí)候,按下K3或者K4 就切換到緊急狀態(tài),當(dāng)緊急事件處理完畢
的時(shí)候,按下K2,就可以返回正常狀態(tài)。

五、測試、數(shù)據(jù)及結(jié)果分析
1.狀態(tài)燈顯示測試
當(dāng)電路連接完畢后,將寫好的測試程序刷寫到芯片內(nèi),K1 和K2分別給端口送高電平和
低電平,通電即可檢測。
2.?dāng)?shù)碼管的測試
將串口的和電路板上的接口連接,將寫好的測試程序刷寫到芯片內(nèi),開電源即可測試。
3.整體電路測試
系統(tǒng)上電,刷寫好程序即可開始測試,觀測一個周期(共計(jì)S1~S4四個狀態(tài),默認(rèn)140
秒)燈的顯示狀態(tài)是否正常,同時(shí)觀察倒計(jì)的計(jì)數(shù)是否正常。
六、總結(jié)
由于使用的是單片機(jī)作為核心的控制元件,使得電路的可靠性比較高,功能也比較強(qiáng)大,
而且可以隨時(shí)的更新系統(tǒng),進(jìn)行不同狀態(tài)的組合。
但是在我們設(shè)計(jì)和調(diào)試的過程中,也發(fā)現(xiàn)了一些問題,譬如紅燈和綠燈的切換還不夠迅
速,紅綠燈規(guī)則不效率還不是很高等等,這需要在實(shí)踐中進(jìn)一步完善。
參考文獻(xiàn)
[1] 李朝青.單片機(jī)原理及接口技術(shù)(修訂版).北京:北京航空航天大學(xué)出版社,1998
[2] 李廣弟.單片機(jī)基礎(chǔ).北京:北京航空航天大學(xué)出版社,1992
[3] 何立民.單片機(jī)應(yīng)用技術(shù)大全.北京:北京航空航天大學(xué)出版社, 1994
[4] 張毅剛. 單片機(jī)原理及接口技術(shù).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1990
[5] 譚浩強(qiáng).單片機(jī)課程設(shè)計(jì). 北京:清華大學(xué)出版社,1989
Abstract
This system is made up of single-chip microcomputer ,keyboard,lcd displaying module
and Traffic lights system.The system includes pavement,left truning,right truning,and the basic
traffic lights function.Excepting the basic traffic lights function,italso includes couting,time
installing,emergency disposaling,speech cluing,lcd information displaying,adjusting the lighting
time of lights based on different time and controlling with hand in accordance with circumstances
and so on.

附錄 系統(tǒng)總體電路圖

1.滿足南北向紅綠燈亮,東西向紅燈亮,占25秒——南北向黃燈亮,東西向紅燈亮,占5秒——南北向紅燈亮,東西向綠燈亮,占25秒——南北向紅燈亮,東西向黃燈亮,占5秒。如此循環(huán),周而復(fù)始。 2.十字路口要有數(shù)字顯示,提示行人把握時(shí)間:當(dāng)某方向綠燈亮?xí)r,置顯示器為24,然后以每秒減1計(jì)數(shù)方式工作,直到減為0,綠燈滅,黃燈亮。黃燈滅,紅燈亮?xí)r,再次置顯示器為29,并開始減計(jì)數(shù),直到為0,十字路口紅綠燈交換,完成一次工作循環(huán)。
3.可手動調(diào)整和自動調(diào)整,夜間為黃燈閃耀。

下面是一個單片機(jī)交通燈程序

/*
******************************************************************************************
* *
* Keil C 89S51 交通信號控制程序 *
* (C) 版權(quán)所有 Dai_Weis@hotmail.com *
* *
******************************************************************************************

*/
#include "reg51.h"

#define UINT unsigned int
#define ULONG unsigned long
#define UCHAR unsigned char

/*
信號燈變量
南北方向綠燈
sbit n_bike_g = P1^0; //自行車
sbit n_right_g = P1^1; //右轉(zhuǎn)
sbit n_up_g = P1^2; //直行
sbit n_left_g = P1^3; //左轉(zhuǎn) 調(diào)頭

南北方向紅燈
sbit n_bike_r = P1^4; //自行車
sbit n_right_r = P1^5; //右轉(zhuǎn)
sbit n_up_r = P1^6; //直行
sbit n_left_r = P1^7; //左轉(zhuǎn) 調(diào)頭

南北方向黃燈
sbit n_bike_y = P3^0; //自行車
sbit n_right_y = P3^1; //右轉(zhuǎn)
sbit n_up_y = P3^2; //直行
sbit n_left_y = P3^3; //左轉(zhuǎn) 調(diào)頭


東西方向綠燈
sbit e_bike_g = P2^0; //自行車
sbit e_right_g = P2^1; //右轉(zhuǎn)
sbit e_up_g = P2^2; //直行

東西方向紅燈
sbit e_bike_r = P2^4; //自行車
sbit e_right_r = P2^5; //右轉(zhuǎn)
sbit e_up_r = P2^6; //直行

東西方向黃燈
sbit e_bike_y = P3^4; //自行車
sbit e_right_y = P3^5; //右轉(zhuǎn)
sbit e_up_y = P3^6; //直行
*/

//延時(shí)
void delay(UINT t, UINT s)
{
while (t)
{
UINT i;
for (i = 0; i < s; i++)
{
}
t --;
}
}

//信號燈狀態(tài)
void time_x(UCHAR P_P1, UCHAR P_P2, UCHAR P_P3)
{
P1 = P_P1;
P2 = P_P2;
P3 = P_P3;
delay(150, 65535);
}

void time_s(UCHAR P_P1, UCHAR P_P2, UCHAR P_P3, UCHAR P_P11, UCHAR P_P22)
{
UINT i;
for (i = 0; i < 3; i ++)
{
P1 = P_P1;
P2 = P_P2;
delay(5, 65535);
P1 = P_P11;
P2 = P_P22;
delay(5, 65535);
}
P1 = P_P1;
P2 = P_P2;
P3 = P_P3;
delay(10, 65535);
}

//主程序
void main()
{
P1 = P2 = P3 = 0x0;
while (1)
{
time_x(0xA5, 0x38, 0x0);

time_s(0xA4, 0x38, 0x1, 0xA5, 0x38);

time_x(0x96, 0x52, 0x0);

time_s(0x92, 0x52, 0x4, 0x96, 0x52);

time_x(0x5A, 0x52, 0x0);

time_s(0x50, 0x50, 0x2A, 0x5A, 0x52);

time_x(0xF0, 0x25, 0x0);

time_s(0xF0, 0x24, 0x20, 0xF0, 0x25);

time_x(0xD2, 0x16, 0x0);

time_s(0xD0, 0x10, 0x62, 0xD2, 0x16);

}
}
給你一個定時(shí)控制的信號系統(tǒng),我只做的簡單的測試,至于延時(shí)我用的軟件,你自己想辦法。^_^

 

Dai_Weis 于 2005-5-4 13:43:23

重新給你說明
/*
***********************************************************************************
* *
* Keil C AT89S51 交通信號控制程序 *
* (C) 版權(quán)所有 Dai_Weis@hotmail.com *
* *
***********************************************************************************
開發(fā)說明:
固定時(shí)間信號變換,南北設(shè)置調(diào)頭、左傳、直行、右轉(zhuǎn)、自行車。
東西設(shè)置左傳、直行、右轉(zhuǎn)、自行車。
時(shí)序狀態(tài):
紅 綠 紅 綠
序號 左 前 右 自 左 前 右 自 前 右 自 前 右 自
1 1 0 1 0 0 1 0 1 1 1 1 0 0 0
2 1 0 0 1 0 1 1 0 1 0 1 0 1 0
3 0 1 0 1 1 0 1 0 1 0 1 0 1 0
4 1 1 1 1 0 0 0 0 0 1 0 1 0 1
5 1 1 0 1 0 0 1 0 0 0 1 1 1 0
*/
另外修正個錯誤
while (1)
{
time_x(0xA5, 0x70, 0x0);

time_s(0xA4, 0x70, 0x1, 0xA5, 0x70);

關(guān)閉窗口

相關(guān)文章