1樓:
思路:紅燈停,綠燈行,黃燈閃爍提示行人紅綠燈即將切換。四個方向各有一個紅、黃、綠顯示和兩個數碼管。
東西道為人行道(20秒),南北道為車行道(60秒),黃燈延時最後三秒時,閃爍並切換。
三、硬體電路設計
此電中路設計採用at89c51微控制器,74ls47(數碼管驅動)74ls373(數碼管驅動輸出鎖存),8個數碼管顯示其延時值,四個紅、黃、綠指示燈。硬體設計關鍵在於,延時顯示時,要考慮到當個位數字顯示時,要確保十位數字顯示輸出的不變。因此,可加輸出鎖存器。
在延時最後三秒時,要讓黃燈進行閃爍,並同時顯示數字(這一步在軟體設計上很關鍵)。
四、軟體程式(c語言)
//程式名:十字路**通燈控制
//編寫人:黃庭劍
//程式功能:南北為車行道,延時60秒;東西方向為人行道,延時20秒,且在最後3秒黃燈顯示2秒鐘再實現切換.
//cpu說明:at89c51型微控制器; 24mhz晶體振盪器
#include
#include
#include
sfr p0 = 0x80;
sfr p1 = 0x90;
sfr p2 = 0xa0;
sfr p3 = 0xb0; //這部分內容其實在“#include”裡已經有,但裡面定義的必須區分大小寫,在這裡,因為我程式採用的是小寫,reg51.h裡對各個埠與暫存器的定義都是大寫,所以在編譯連線時,會報錯,所以,在本設計程式裡,我只用到了埠,在這裡也就只定義了四個,而沒有去改reg51.h裡面的內容。
其實兩者是一樣的。
sbit sw = p0^0;
sbit oe =p0^6;
sbit le =p0^7; //74ls373鎖存器控制端定義
char display=; //p1口的數碼管時間顯示呼叫,利用74l74bcd碼,8位驅動輸出;
//函式宣告 begin
void delay1(int count);
void delay_long(int number1,int number2);
void people_car_drive();
//函式宣告end
//***********************//延時子程式
void delay1(int count)
//**********************//延時子程式
void people_car_drive()
int p_1=2,i,j=9,p_2=6; //****************//行人通行時,延時20秒
p2=0x09; //南北紅燈亮
p3=0x24; //東西綠燈亮
while(p_1-->0)
//當十位數減到0時,只顯示個位數
p1=display[p_1];
delay1(1000);
le=0;
j=9;
for(i=10;i>0;i--)
if(p_1==0&&j==3)break; //減到3時退出迴圈,讓其黃燈閃爍顯示
p1=display[j--];
delay_long(16000,2);
if(sw==1)return;
p2=0x12; //南北黃燈閃爍三秒,以提醒行人注意
p3=0x12;
p1=display[3];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
p2=0x12;
p3=0x12;
p1=display[2];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
p2=0x12;
p3=0x12;
p1=display[1];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
//*****************以下是車輛通行時延時60秒//
p2=0x24; //南北綠燈亮
p3=0x09; //東西紅燈亮
while(p_2-->0)
//當十位數減到0時,只顯示個位數
p1=display[p_2];
delay1(1000);
le=0;
j=9;
for(i=10;i>0;i--)
if(p_2==0&&j==3)break; //減到2時退出迴圈
p1=display[j--];
delay_long(16000,2);
if(sw==1)return;
p2=0x12; //南北黃燈閃爍三秒,以提醒行人注意
p3=0x12;
p1=display[3];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
p2=0x12;
p3=0x12;
p1=display[2];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
p2=0x12;
p3=0x12;
p1=display[1];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1); //南北黃燈閃爍三秒完畢
void main() //主函式入口處
p0=0x01;
p1=0x00;
p2=0x00;
p3=0x00; //初始化各埠
else
p2=0x00;
p3=0x00; //關閉所有交通燈
詳情訪問
2樓:安楽使徒
交通訊號燈控制
控制要求
按下啟動按鈕,交通訊號燈開始正常執行;按下停止按鈕立即停止;按下閃爍按鈕開始閃爍。
正常執行為在前15秒內南北綠燈亮;15到20秒(5秒)中為南北黃燈閃爍(以每秒亮滅一次),南北綠燈滅;在0到20秒內東西紅燈一直點亮;在20到35秒內東西綠燈點亮,東西紅燈與南北黃燈滅;35到40秒東西黃燈閃爍(以每秒亮滅一次),東西綠燈滅;20到40秒內南北紅燈一直點亮。以此為一個週期迴圈點亮。
東西與南北方向的綠燈和紅燈都需要進行倒計時顯示。
啟動和閃爍在執行時都必須使用停止進行停止,啟動與閃爍不可直接進行切換。
硬體要求
使用80c51微控制器進行控制,7位數碼管顯示時間。其餘可根據自己喜好自行選擇。
此專案選擇器件有:7位數碼管顯示選擇兩個74hc573作為訊號鎖存器件;7位數碼管用共陰極數碼管;用紅綠黃燈使用對應顏色的二極體模擬;使用按鈕模擬啟動、停止和閃爍訊號。
軟體使用
硬體**使用protuse 7.8版本。
微控制器程式設計軟體使用keil c51 uvision2。
3樓:匿名使用者
前幾天我寫了一個設計思路,查檢視是否對你有啟發!
4樓:幽黯之林
具體要求說一下啊,幫你試做一下
5樓:一週逗比秀
你找我 923361379!
以at89c51微控制器為控制器的智慧交通燈控制系統,基於51微控制器的交通訊號燈模擬系統控制的**圖及c程式
6樓:匿名使用者
需要給你完成一份嗎
我做微控制器設計的
7樓:匿名使用者
你好!這樣的效果可以嗎
8樓:胡斯哲哲
這個是比較基礎的管腳控制哦
求51微控制器控制的交通燈電路圖
9樓:頓子
一、設計任務與要求
1.設計一個十字路口的交通燈控制電路,要求甲車道和乙車道兩條交叉道路上的車輛交替執行,每次通行時間都設為25秒;
2.要求黃燈先亮5秒,才能變換執行車道;
3.黃燈亮時,要求每秒鐘閃亮一次 。
二、實驗預習要求
1.複習數字系統設計基礎。
2.複習多路資料選擇器、二進位制同步計數器的工作原理。
3.根據交通燈控制系統框圖,畫出完整的電路圖。
三、設計原理與參考電路
1.分析系統的邏輯功能,畫出其框圖
交通燈控制系統的原理框圖如圖12、1所示。它主要由控制器、定時器、譯碼器和秒脈衝訊號發生器等部分組成。秒脈衝發生器是該系統中定時器和控制器的標準時鍾訊號源,譯碼器輸出兩組訊號燈的控制訊號,經驅動電路後驅動訊號燈工作,控制器是系統的主要部分,由它控制定時器和譯碼器的工作。
圖中:tl: 表示甲車道或乙車道綠燈亮的時間間隔為25秒,即車輛正常通行的時間間隔。定時時間到,tl=1,否則,tl=0。
ty:表示黃燈亮的時間間隔為5秒。定時時間到,ty=1,否則,ty=0。
st:表示定時器到了規定的時間後,由控制器發出狀態轉換訊號。由它控制定時器開始下個工作狀態的定時。
圖12、1 交通燈控制系統的原理框圖 2.畫出交通燈控制器的asm(algorithmic state machine,演算法狀態機)
(1)圖甲車道綠燈亮,乙車道紅燈亮。表示甲車道上的車輛允許通行,乙車道禁止通行。綠燈亮足規定的時間隔tl時,控制器發出狀態訊號st,轉到下一工作狀態。
(2)甲車道黃燈亮,乙車道紅燈亮。表示甲車道上未過停車線的車輛停止通行,已過停車線的車輛繼續通行,乙車道禁止通行。黃燈亮足規定時間間隔ty時,控制器發出狀態轉換訊號st,轉到下一工作狀態。
(3)甲車道紅燈亮,乙車道黃燈亮。表示甲車道禁止通行,乙車道上的車輛允許通行綠燈亮足規定的時間間隔tl時,控制器發出狀態轉換訊號st,轉到下一工作狀態。
(4)甲車道紅燈亮,乙車道黃燈亮。表示甲車道禁止通行,乙車道上位過縣停車線的車輛停止通行,已過停車線的車輛停止通行,已過停車線的車輛繼續通行。黃燈亮足規定的時間間隔ty時,控制器發出狀態轉換訊號st,系統又轉換到第(1)種工作狀態。
交通燈以上4種工作狀態的轉換是由控制器器進行控制的。設控制器的四種狀態編碼為00、01、11、10,並分別用s0、s1、s3、s2表示,則控制器的工作狀態及功能如表12、1所示,控制器應送出甲、乙車道紅、黃、綠燈的控制訊號。為簡便起見,把燈的代號和燈的驅動訊號合二為一,並作如下規定:
表12、1 控制器工作狀態及功能
控制狀態 訊號燈狀態 車道執行狀態
s0(00) 甲綠,乙紅 甲車道通行,乙車道禁止通行
s1(01) 甲黃,乙紅 甲車道緩行,乙車道禁止通行
s3(11) 甲紅,乙綠 甲車道禁止通行,甲車道通行
s2(10) 甲紅,乙黃 甲車道禁止通行,甲車道緩行
ag=1:甲車道綠燈亮;
bg=1:乙車道綠燈亮;
ay=1:甲車道黃燈亮;
by=1:乙車道黃燈亮;
ar=1:甲車道紅燈亮;
by=1:乙車道紅燈亮;
由此得到交通燈的asm圖,如 圖12、2所示。設控制器的初始狀態為s0(用狀態框表示s0),當s0的持續時間小於25秒時,tl=0(用判斷框表示tl),控制器保持s0不變。只有當s0的持續時間等於25秒時,tl=1,控制器發出狀態轉換訊號st(用條件輸出框表示st),並轉換到下一個工作狀態。
依此類推可以弄懂asm圖所表達的含義。
3.單元電路的設計
(1)定時器
定時器由與系統秒脈衝(由時鐘脈衝產生器提供)同步的計數器構成,要求計數器在狀態訊號st作用下,首先清零,然後在時鐘脈衝上升沿作用下,計數器從零開始進行增1計數,向控制器提供模5的定時訊號ty和模25的定時訊號tl。
計數器選用積體電路74ls163進行設計較簡便。74ls163是4位二進位制同步計數器,它具有同步清零、同步置數的功能。74ls163的外引線排列圖和時序波形圖如圖12、3所示,其功能表如表12、2所示。
圖中, 是低電平有效的同步清零輸入端, 是低電平有效才同步並行置數控制端,ctp、ctt是計 圖12、2 交通燈的asm圖數控制端,co是進位輸出端,d0~d3是並行資料輸入端,q0~q 3是資料輸出端。由兩片74ls163級聯組成的定時器電路如圖12、4所示。電路的工作原理請自行分析。
(a)圖12、3 74ls163的外引線排列圖和時序波形圖
(2)控制器
控制器是交通管理的核心,它應該能夠按照交通管理規則控制訊號燈工作狀態的轉換。從asm圖可以列出控制器的狀態轉換表,如表12、3所示。選用兩個d觸發器ff1、ffo做為時序暫存器產生 4種狀態,控制器狀態轉換的條件為tl和ty,當控制器處於q1n+1q0n+1= 00狀態時,如果tl= 0,則控制器保持在00狀態;如果,則控制器轉換到q1n+1q0n+1= 01狀態。
這兩種情況與條件ty無關,所以用無關項"x"表示。其餘情況依次類推,同時表中還列出了狀態轉換訊號st。
圖12、4 定時器電路圖
表12、2 74ls163功能表
|表12、3 控制器狀態轉換表
根據表12、3、可以推出狀態方程和轉換訊號方程,其方法是:將q1n+1、q0n+1和 st為1的項所對應的輸人或狀態轉換條件變數相與,其中"1"用原變數表示,"0"用反變數表示,然後將各與項相或,即可得到下面的方程:
根據以上方程,選用資料選擇器 74ls153來實現每個d觸發器的輸入函式,將觸發器的現態值( )加到74ls153的資料選擇輸入端作為控制訊號.即可實現控制器的功能。控制器的邏輯圖如圖12、5所示。圖中r、c構成上電覆位電路 。
圖 12、5控制器邏輯圖
(3)譯碼器
譯碼器的主要任務是將控制器的輸出 q1、 q0的4種工作狀態,翻譯成甲、乙車道上6個訊號燈的工作狀態。控制器的狀態編碼與訊號燈控制訊號之間的關係如表 12、4所示。實現上述關係的譯碼電路請讀者自行設計。
四、實驗儀器裝置
1. 數位電路實驗箱
2. 積體電路74ls74 1片,74ls10 1片,74ls00 2片,74ls153 2片,74ls163 2片,ne555 1片
3. 電阻 51kω 1只,200ω 6只
4. 電容 10uf 1只
5. 其它 發光二極體 6只
五、實驗內容及方法
表12、4控制器狀態編碼與訊號燈關係表
狀態 ag ay ar bg by br
00 1 0 0 0 0 1
01 0 1 0 0 0 1
10 0 0 1 1 0 0
11 0 0 1 0 1 0
1.設計、組裝譯碼器電路,其輸出接甲、乙車道上的6只訊號燈(實驗時用發光二極體代替),驗證電路的邏輯功能。
2.設計、組裝秒脈衝產生電路。
3.組裝、除錯定時電路。當 cp訊號為 1hz正方波時,畫出cp、 q0、 q1、 q2、q3、q4、tl.、ty的波形,並注意它們之間一的時序關係。
4.組裝、除錯控制器電路。
5.完成交通燈控制電路的聯調,並測試其功能。
求51微控制器控制的交通燈電路圖
頓子 一 設計任務與要求 1 設計一個十字路口的交通燈控制電路,要求甲車道和乙車道兩條交叉道路上的車輛交替執行,每次通行時間都設為25秒 2 要求黃燈先亮5秒,才能變換執行車道 3 黃燈亮時,要求每秒鐘閃亮一次 二 實驗預習要求 1 複習數字系統設計基礎。2 複習多路資料選擇器 二進位制同步計數器的...
微控制器控制交通燈
吳欽浩 org 0000h sta mov p0,11011011b 幹線亮綠燈,支線亮紅燈 mov p2,0001000b 選通ledmov p3,11101111b k1列線置0mov r7,3 sta1 jb p3.3,無按鍵等待lcall delay30ms 去抖動jb p3.3,sta1 ...
AT89C51微控制器交通燈模擬控制系統
電路也沒有,要全都給你弄好啊? 我有這個設計的資料 圖和程式,怎麼發給你。聯絡我 你的要求也太多了吧,程式要自己寫才能記得住的 include define uint unsigned int define uchar unsigned charsbit dongho p0 0 sbit hu p0...