第一篇:74LS190交通燈控制電路的設(shè)計(jì)與仿真課程設(shè)計(jì).
目錄
一、課程設(shè)計(jì)時(shí)間(1
二、課程設(shè)計(jì)題目(1
三、設(shè)計(jì)任務(wù)、要求及器件(1
四、課程設(shè)計(jì)的電路及工作原理(2
五、設(shè)計(jì)中出現(xiàn)的問題(8
六、心得體會(huì)(8
一、課程設(shè)計(jì)時(shí)間:5月25 日、5月27日、6月1日、6月3日
二、課程設(shè)計(jì)題目:交通燈控制電路的設(shè)計(jì)與仿真
三、設(shè)計(jì)任務(wù)、要求及器件
1、設(shè)計(jì)任務(wù)與要求
1、能顯示十字路口東西、南北兩個(gè)方向的紅、黃、綠的指示狀態(tài),用兩組紅、黃、綠三色燈來表示兩個(gè)方向上的交通燈;
2、能實(shí)現(xiàn)正常的倒計(jì)時(shí)功能,用兩組數(shù)碼管作為東西和南北方向的到計(jì)時(shí)顯示,并且對紅、綠燈的時(shí)間可調(diào),在每次由綠燈變成紅燈或相反的過度轉(zhuǎn)換過程中,要亮黃燈2秒作為過渡;
3、能實(shí)現(xiàn)由手動(dòng)控制紅、綠的狀態(tài),即達(dá)到能手動(dòng)切換交通燈的特殊狀態(tài)的功能;
2、用的器件及芯片,見表一 數(shù)碼管脈沖源
邏輯與門 邏輯或門 燈 邏輯或門 電平開關(guān) 開關(guān)
四、課程設(shè)計(jì)的電路及工作原理
交通燈控制電路主要由循環(huán)部分電路、減數(shù)器和顯示(數(shù)碼管等部分組成。用到的信號(hào)是時(shí)鐘信號(hào),脈沖發(fā)生器是提供給該系統(tǒng)中減數(shù)器的標(biāo)準(zhǔn)時(shí)鐘信號(hào)源,循環(huán)電路部分是系統(tǒng)的主要部分,由它控制定紅、黃綠、燈的往復(fù)工作,減數(shù)器與數(shù)碼管組成不同進(jìn)制與時(shí)間顯示。即74194輸出用于點(diǎn)亮紅、黃、綠燈和控制燈點(diǎn)亮同時(shí)進(jìn)行的倒計(jì)數(shù),倒計(jì)數(shù)及燈點(diǎn)亮?xí)r間的設(shè)置可由74190完成,手動(dòng)脈沖和74190的進(jìn)位輸出脈沖又可用于去激勵(lì)74194進(jìn)位輸出,如此往復(fù)形成紅綠燈的循環(huán)點(diǎn)亮控制。
1、往復(fù)循環(huán)電路及原理
在設(shè)計(jì)中用到起移位作用的芯片是雙向移位寄存器74LS190,用此芯片來控制燈的移動(dòng),可搭建出單循環(huán)和往復(fù)循環(huán)兩種結(jié)構(gòu)電路。
雙向移位寄存器74194 為4 位雙向移位寄存器,其主要電特性的典型值如下: 當(dāng)清除端(CLEAR為低電平時(shí),輸出端(QA-QD均為低電平。當(dāng)工作方式控制端(S0、S1均為高電平時(shí),在時(shí)鐘(CLOCK上升沿作用下,并行數(shù)據(jù)(A-D被送入相應(yīng)的輸出端QA-QD。此時(shí)串行數(shù)據(jù)(DSR、DSL被禁止。當(dāng)S0 為高電平、S1 為低電平時(shí),在CLOCK上升沿作用下進(jìn)行右移操作,數(shù)據(jù)由DSR送入。當(dāng)S0 為低電平、S1
為高電平時(shí),在CLOCK上升沿作用下進(jìn)行操作,數(shù)據(jù)由DSR送入。當(dāng)S0 和S1 均為低電平時(shí), CLOCK 被禁止。對于54(74194,只有當(dāng)CLOCK 為高電平時(shí)S0 和S1 才可改變。
引出端符號(hào): CLOCK 時(shí)鐘輸入端CLEAR 清除端(低電平有效 A-D 并行數(shù)據(jù)輸入端DSL 左移串行數(shù)據(jù)輸入端 DSR 右移串行數(shù)據(jù)輸入端S0、S1 工作方式控制端 QA-QD 輸出端
在設(shè)計(jì)中用的是往復(fù)循環(huán)連接方式: 往復(fù)循環(huán)計(jì)數(shù)電路的設(shè)計(jì)采用的是同步方式,使用D觸發(fā)器控制74LS194的左右移位, 設(shè)計(jì)電路圖如下,圖一所示:
圖
一、紅綠燈的交替電路(往復(fù)循環(huán)
為達(dá)到往復(fù)循環(huán)計(jì)數(shù)電路的設(shè)計(jì),需滿足下列表格的要求,見表二:
D 觸發(fā)器 Q →1S Q →0S ,這樣做到觸發(fā)器“0”態(tài)194右移。
74194與D 觸發(fā)器的D R 端連接置零信號(hào),作啟動(dòng)作用。L S 做接地處理,以便在左行移
位時(shí)給低位補(bǔ)零。
考慮無關(guān)項(xiàng)的情況下,利用卡諾圖化簡可得如下結(jié)果: R S =A B Q Q =A B Q Q D =B Q Q +C Q
2、減數(shù)器電路及原理
另外用到的芯片是74LS194,此芯片具有計(jì)數(shù)功能,而在交通燈中是利用它的減數(shù)功能,單片的194是十進(jìn)制,若要達(dá)到十進(jìn)制以上的要求,則需將兩塊芯片組合在一起運(yùn)用。將兩片組合在一起能實(shí)現(xiàn)一百進(jìn)制的計(jì)數(shù)。
74190為可預(yù)置的十進(jìn)制同步加/減計(jì)數(shù)器,當(dāng)置入控制端LD 為低電平,不管信號(hào)CP 的狀態(tài)如何,輸出端~A D Q Q 即可預(yù)置成與輸入端A~D 相一致的狀態(tài)。引出端符號(hào): ~A D Q Q 并行數(shù)據(jù)輸出端 CTEN 使能端 A~D 數(shù)據(jù)輸入端 LD 置數(shù)端
CLK 信號(hào)輸入端 RCO 進(jìn)位信號(hào)輸出端
圖
二、減數(shù)器
電路中的左邊這片是高位,右邊是低位,將低位的RCO輸出的信號(hào)送到高位的CLK 端,用來給高位信號(hào),來完成高位的自動(dòng)減數(shù),同時(shí)將高位的數(shù)據(jù)輸出端QD用個(gè)邏輯非門送回到高、低位的LD置數(shù)端以達(dá)到自動(dòng)減數(shù)的作用。
此電路可做到控制輸入不同進(jìn)制,完成的是對十位的不同控制,從而達(dá)到所需的不同計(jì)時(shí)要求,達(dá)到的是整十進(jìn)制的轉(zhuǎn)換,通過開關(guān)來完成不同進(jìn)制的轉(zhuǎn)換,可在十到七十的不同控制。例如,在D關(guān)閉下完成的十進(jìn)制,在S關(guān)閉下完成的是二十進(jìn)制,S和D同時(shí)關(guān)閉時(shí)完成的是三十進(jìn)制,在A關(guān)閉下是完成四十進(jìn)制,等進(jìn)制的控制,達(dá)到A、S和D同時(shí)關(guān)閉的狀態(tài)下達(dá)到最高七十進(jìn)制的轉(zhuǎn)換。
3、紅綠燈的控制結(jié)構(gòu)電路及原理
交通燈控制電路主要由以下幾部分構(gòu)成,綠燈、紅燈和黃燈計(jì)時(shí)及預(yù)初值電路、紅綠燈交替往復(fù)電路等構(gòu)成。最終組合的電路要求控制的是十字路口上的紅綠
燈,兩片74190組合的減數(shù)器對一個(gè)路口的交通燈中的綠燈進(jìn)行計(jì)數(shù),另一組減數(shù)器對紅燈進(jìn)行計(jì)數(shù),單獨(dú)一片74190對黃燈計(jì)數(shù),另外路口的交通燈接在這路口上,將紅燈接綠燈,綠燈接紅燈,黃燈接黃燈。
當(dāng)出現(xiàn)緊急情況一類問題是,我們需要能手動(dòng)來控制交通燈的亮/熄,未達(dá)到此要求在電路中設(shè)計(jì)有一手動(dòng)開關(guān)K,需要將交通燈設(shè)置在什么顏色上的位置,只需手動(dòng)控制開關(guān)就能完成。此手動(dòng)開關(guān)由字母K控制,當(dāng)K開啟之后,減數(shù)器從往復(fù)循環(huán)的燈狀態(tài)得到的信號(hào)被截?cái)?交通燈就處于此位置一直不變,到K閉合之后往復(fù)循環(huán)中的燈的狀態(tài)信號(hào)才能給到減數(shù)器中,從而減數(shù)器又開始工作。
在電路中還使用了電平開關(guān),起到的作用是將信號(hào)燈亮/熄狀態(tài)的返回到減數(shù)器的,以控制190的工作,當(dāng)燈亮?xí)r電平開關(guān)兩端有電壓,開關(guān)閉合,線路處于導(dǎo)通,減數(shù)器接收到信號(hào),開始工作,當(dāng)燈熄滅時(shí),電平開關(guān)兩端沒電壓,開關(guān)開啟,線路截止,減數(shù)器沒有信號(hào)輸入,停止工作,減數(shù)器處于開始預(yù)置數(shù)上,到下一個(gè)燈亮起之后減數(shù)器做相同的狀態(tài)變換。
狀態(tài)控制器是系統(tǒng)的核心部分,在紅綠燈的控制結(jié)構(gòu)電路圖中,從74194的紅燈接到電平開關(guān)在接回74190的LOAD`端,即將紅燈的信號(hào)傳給190以控制其工作,將信號(hào)送回到190 驅(qū)動(dòng)它工作;將高位和低位的RCO出來的信號(hào)送到194的CLK端來推動(dòng)194及D觸發(fā)器的工作,如此循環(huán)下去,通過開關(guān)來控制進(jìn)制的轉(zhuǎn)換;對于這路口的紅燈用同樣的方法接在另外一組減數(shù)器上。對黃燈只需一片190就能完成它的進(jìn)制要求,接法和兩片類似。狀態(tài)控制器決定交通燈處于哪一個(gè)運(yùn)行狀態(tài)。從而使相應(yīng)的交通燈點(diǎn)亮,并決定下一個(gè)狀態(tài)的預(yù)置電路該預(yù)置的綠燈和黃燈的預(yù)置值。狀態(tài)控制電路是由寄存器74LS194來實(shí)現(xiàn)的。首先進(jìn)行置數(shù)。將1(高電平送給高位的Q,使綠燈1(亮、黃燈0(熄、綠燈0(熄,在當(dāng)前狀態(tài)計(jì)時(shí)結(jié)束后,計(jì)數(shù)器置入下一個(gè)狀態(tài)計(jì)數(shù)值并開始計(jì)數(shù),如此循環(huán)往復(fù)。紅燈
1、黃燈0、綠燈0,紅燈0、黃燈
1、綠燈0,紅燈0、黃燈0、綠燈1,兩路口連接在一起的紅燈和綠燈顯示時(shí)間同步,其他單元在狀態(tài)控制電路的狀態(tài)控制下有序的完成計(jì)時(shí)和計(jì)數(shù)轉(zhuǎn)換。
假定當(dāng)前狀態(tài)如紅燈亮?xí)r,結(jié)果分析如下:將紅燈的輸入端接到計(jì)數(shù)器,對紅燈的亮燈
時(shí)間進(jìn)行計(jì)數(shù),然后顯示輸出。紅燈熄滅時(shí),數(shù)碼管LED滅;紅燈亮?xí)r,計(jì)時(shí)器開始倒計(jì)時(shí),計(jì)時(shí)器可以通過開關(guān)進(jìn)行不同進(jìn)制的轉(zhuǎn)換,此時(shí),另一路口的綠燈和現(xiàn)在的這紅燈同步。當(dāng)計(jì)時(shí)遞減到0時(shí),狀態(tài)控制器進(jìn)入下一個(gè)狀態(tài),控制黃燈亮起;黃燈熄滅之后到綠燈亮起,和剛才的紅燈一樣的效果,但是進(jìn)制可以調(diào)整成不一樣;當(dāng)紅燈亮?xí)r,計(jì)數(shù)器、顯示器執(zhí)行上述的功能,如此周而復(fù)始,完成交通燈的顯示過程。
五、設(shè)計(jì)中出現(xiàn)的問題
在設(shè)計(jì)過程中出現(xiàn)的了較多的問題,但是在慢慢的查閱資料及和同學(xué)一起討論之后把各個(gè)問題順利解決。例如設(shè)計(jì)過程中,在開始之前沒好好看書及去查資料,導(dǎo)致思路不清晰,以及74190芯片的功能不少很清楚,導(dǎo)致不能順利將減數(shù)器接通。知道用那個(gè)型號(hào)的芯片之后得了解器具體功能才能開始連接電路,不同的芯片可以用來實(shí)現(xiàn)不同的功能,因此要在了解各芯片的具體功能之后才開始實(shí)施設(shè)計(jì)要求。
在設(shè)計(jì)交通燈的減數(shù)器時(shí),將計(jì)數(shù)器74LS190的低位的RCO沒接到高位的CLK,結(jié)果導(dǎo)致高位的數(shù)碼管不顯示,經(jīng)過檢查之后,解決了這一問題。接下來是減數(shù)器不能自動(dòng)計(jì)數(shù),檢查后結(jié)果發(fā)現(xiàn)是沒將高位的輸出信號(hào)返回給190的LOAD,將其用邏輯非門接回給芯片后,減數(shù)器就順利工作。對于進(jìn)制的轉(zhuǎn)換接觸的電路沒問題。
在將往復(fù)循環(huán)電路與減計(jì)數(shù)構(gòu)建在一起時(shí)出現(xiàn)的問題較多,開始是交通燈無法順利進(jìn)行往復(fù),發(fā)現(xiàn)原因是190輸出的信號(hào)到194之間的線路出問題,邏輯門使用的不合理導(dǎo)致結(jié)果出錯(cuò),這是沒能詳細(xì)計(jì)算出現(xiàn)的錯(cuò)誤,經(jīng)過進(jìn)一步的查看及計(jì)算,最后順利完成設(shè)計(jì)。
六、心得體會(huì)
開始拿到設(shè)計(jì)題目,感到很難入手,花了較長時(shí)間來理清楚思路。接下來的具體電路設(shè)計(jì)才是難點(diǎn)所在,所需用到的芯片其功能得去查閱,才能將的電路圖接好。通過此次的設(shè)計(jì),我發(fā)現(xiàn)遇到問題不能死鉆,應(yīng)該和老師同學(xué)主動(dòng)交流,將問題解決的方法不是只有自己弄出來的才算是自己的,和他人共同將問題解決而自己把原理弄清楚,也是學(xué)習(xí)的進(jìn)步;不放棄,也應(yīng)該是我們要做的,在最困難的時(shí)候更應(yīng)該堅(jiān)持下去,想辦法將問題順利解決才是我們應(yīng)該去做的。將開頭做的好點(diǎn)的話,后面的工作要稍微輕松一點(diǎn),最終的結(jié)果也才會(huì)是一個(gè)不錯(cuò)的結(jié)果。
做完設(shè)計(jì)之后發(fā)現(xiàn)學(xué)了一個(gè)學(xué)期的課程,在這次課程設(shè)計(jì)時(shí),暴露出了很多自己不懂得知識(shí),自己掌握的知識(shí)那么有限,在實(shí)際運(yùn)用中更加無法將知識(shí)合理運(yùn)用進(jìn)去。平時(shí)我們都只是學(xué)習(xí)原理知識(shí),對實(shí)踐進(jìn)行的很少。加上許多知識(shí)學(xué)了就忘,很難將知識(shí)連成一線加以利用。所以,實(shí)踐是對我們幫助和提高的最佳方式,雖然實(shí)踐時(shí)出現(xiàn)的問題讓人郁悶,但這是提高的前提,需要通過實(shí)踐來歷練我們,檢測我們的知識(shí)。實(shí)踐環(huán)節(jié)對各方面都有提高,拓展我們多方面的思維。
第二篇:課程設(shè)計(jì)任務(wù)書-24交通燈控制電路設(shè)計(jì)
課程設(shè)計(jì)任務(wù)書
題目:交通燈控制電路設(shè)計(jì)
時(shí)間: 年 月 日—— 年 月 日
設(shè)計(jì)的說明:
本設(shè)計(jì)需要用到實(shí)驗(yàn)箱上交通燈模塊中的發(fā)光二極管,即紅、黃、綠各三個(gè)。依人們的交通常規(guī),“紅燈停,綠燈行,黃燈提醒”。交通燈顯示用實(shí)驗(yàn)箱的交通燈模塊和七段碼管中的任意兩個(gè)來顯示。系統(tǒng)時(shí)鐘選擇時(shí)鐘模塊的1KHz時(shí)鐘,黃燈閃爍時(shí)鐘要求為2Hz,七段碼管的時(shí)間顯示為1Hz 脈沖,即每1s 中遞減一次,在顯示時(shí)間小于3 秒的時(shí)候,通車方向的黃燈以2Hz 的頻率閃爍。系統(tǒng)中用S1 按鍵進(jìn)行復(fù)位。
設(shè)計(jì)的任務(wù)和要求:
1、在十字路口的兩個(gè)方向上各設(shè)一組紅、綠、黃燈;初始狀態(tài)是兩個(gè)路口的紅燈全亮之后,東西路口的綠燈亮,南北路口的紅燈亮,東西方向通車,延時(shí)一段時(shí)間后,東西路口綠燈滅,黃燈開始閃爍。閃爍若干次后,東西路口紅燈亮,而同時(shí)南北路口的綠燈亮,南北方向開始通車,延時(shí)一段時(shí)間后,南北路口的綠燈滅,黃燈開始閃爍。閃爍若干次后,再切換到東西路口方向,重復(fù)上述過程。
2、設(shè)置數(shù)碼管顯示允許通行或者禁止通行的時(shí)間,東西路和南北路的通車時(shí)間均設(shè)定為20s。數(shù)碼管的時(shí)間總是顯示為19、18、17……2、1、0、19、18……。在顯示時(shí)間小于3 秒的時(shí)候,通車方向的黃燈閃爍。
3、當(dāng)各條路中任意一條上出現(xiàn)特殊情況,如消防車、救護(hù)車或其他需要優(yōu)先放行的車輛時(shí),各方向上均是紅燈亮。倒計(jì)時(shí)停止,且顯示數(shù)字在閃爍。當(dāng)特殊運(yùn)行狀態(tài)結(jié)束后,控制器恢復(fù)原來狀態(tài),繼續(xù)正常運(yùn)行。
4、要求對整體電路進(jìn)行仿真,提供仿真波形圖,并分析結(jié)果
5、硬件測試結(jié)果用照片的形式記錄下來。
提高部分:編寫能手動(dòng)控制交通燈通行時(shí)間的交通燈控制器。
指導(dǎo)教師:
學(xué)生:
日期:
第三篇:交通燈控制電路設(shè)計(jì)自動(dòng)化 數(shù)字電子技術(shù)課程設(shè)計(jì)
綜 述
本次設(shè)計(jì)主要分為四個(gè)部分,第一部分:信號(hào)產(chǎn)生電路;第二部分:電子示電路;第三部分:倒計(jì)時(shí)設(shè)計(jì),第四部分:交通燈及交通燈控制電路
在本次設(shè)計(jì)中采用555定時(shí)器產(chǎn)生CP=1Hz的脈沖信號(hào),經(jīng)過用741192設(shè)計(jì)的預(yù)置狀態(tài)為59的60進(jìn)制加計(jì)數(shù)器和預(yù)置狀態(tài)為29的30進(jìn)制計(jì)數(shù)器。并使進(jìn)位位作為脈沖輸出,實(shí)現(xiàn)5分頻,然后用芯片74161和74139實(shí)現(xiàn)南北干道和支東西干道紅,綠,黃色燈亮的時(shí)間控制,最后一部分的減計(jì)數(shù)器選用74193進(jìn)行級(jí)聯(lián)計(jì)數(shù),譯碼器選用cc4511,本人主要設(shè)計(jì)減計(jì)數(shù)器及數(shù)碼管顯示倒計(jì)時(shí)部分
一、設(shè)計(jì)任務(wù)與要求
1.東西方向綠燈亮,南北方向紅燈亮,時(shí)間30。2.東西方向與南北方向黃燈亮,時(shí)間5s。3.南北方向綠燈亮,東西方向紅燈亮,時(shí)間60。
二、方案設(shè)計(jì)與論證
根據(jù)設(shè)計(jì)任務(wù)與要求,我們可以知道這個(gè)交通燈的設(shè)計(jì)是分南北干道和東西干道的,兩個(gè)方面的時(shí)間是不同的,東西方向通行30s,南北方向60s,這就要求我們要有兩個(gè)計(jì)數(shù)器,根據(jù)我自己的經(jīng)驗(yàn),東西方向通行30s完,倒計(jì)時(shí)數(shù)字顯示器會(huì)顯示到0,然后切換到南北方向通行60s完之后, 倒計(jì)時(shí)數(shù)字顯示器也會(huì)顯示到0之后然后切換到南北方向,這樣如此循環(huán),由于黃燈是當(dāng)兩個(gè)計(jì)數(shù)器倒計(jì)時(shí)到5時(shí)開始閃,我們就可以在這時(shí)發(fā)出一個(gè)脈沖然后一直保持到0,或者是接收0~5這段時(shí)間的脈沖都可以控黃燈只在到了這段時(shí)間才亮;方案:
交通燈控制原理圖:
2.a 交通燈原理框圖
首先由555定時(shí)器產(chǎn)生1s的信號(hào)脈沖,通過由一些1k電阻和三片74LS245,兩片74LS192處理構(gòu)成定時(shí)電路處理,產(chǎn)生時(shí)間輸出信號(hào)作用電子顯示器,另一部分的1s的信號(hào)脈沖通過由兩片74LS112的JK觸發(fā)器組成的路燈控制電路的對1s的信號(hào)處理,產(chǎn)生對交通路燈有控制作用的電子邏輯信號(hào),從而實(shí)現(xiàn)按要求的對路燈的正??刂?。
2三、單元電路設(shè)計(jì)
3.1時(shí)間脈沖產(chǎn)生電路
由 555 定時(shí)器和外接元件 R1、R2、C 構(gòu)成多諧振蕩器,腳 2 與腳 6 直接相連。電路沒有穩(wěn)態(tài),僅存在兩個(gè)暫穩(wěn)態(tài),電路亦不需要外接 觸發(fā)信號(hào),利用電源通過 R1、R2 向 C 充電,以及 C 通過 R2 向放電端 放電,使電路產(chǎn)生振蕩。電容 C 在 和 之間充電和放電,從而在輸出端得到一系列的矩形波,且通過調(diào)節(jié)參數(shù),使得產(chǎn)生的矩形波為1hz的也就是周期為1s的脈沖發(fā)生電路。
3.1a 1s脈沖信號(hào)產(chǎn)生電路
3.2電子顯示電路
一個(gè)LED數(shù)碼管可用來顯示一位0~9十進(jìn)制數(shù)和一個(gè)小數(shù)點(diǎn)。小型數(shù)碼管(0.5寸和0.36寸)每段發(fā)光二極管的正向壓降,隨顯示光(通常為紅、綠、黃、橙色)的顏色不同略有差別,通常約為2~2.5V,每個(gè)發(fā)光二極管的點(diǎn)亮電流在5~10mA。LED數(shù)碼管要顯示BCD碼所表示的十進(jìn)制數(shù)字就需要有一個(gè)專門的譯碼器,該譯碼器不但要完成譯碼功能,還要有相當(dāng)?shù)尿?qū)動(dòng)能力。
3.2a BCD碼顯示電路
3.3計(jì)時(shí)器電路
計(jì)數(shù)器
倒計(jì)時(shí)計(jì)數(shù)電路主要由計(jì)數(shù)器構(gòu)成,它在整個(gè)系統(tǒng)設(shè)計(jì)中的作用是實(shí)現(xiàn)計(jì)時(shí)計(jì)數(shù),在此我們選用減法計(jì)數(shù)器,因?yàn)楸驹O(shè)計(jì)說明時(shí)間可預(yù)置,所以需要可預(yù)置數(shù)的減計(jì)數(shù)器。目前,在實(shí)際工程應(yīng)用中,我們已經(jīng)很少使用小規(guī)模的觸發(fā)器去拼接成各種計(jì)數(shù)器,而是直接選用集成計(jì)數(shù)器產(chǎn)品。3.3a 74LS192 74LS193引腳圖
本次課程設(shè)計(jì)需要50進(jìn)制和30進(jìn)制減計(jì)數(shù)器各一個(gè),所以采用兩個(gè)74193級(jí)聯(lián)計(jì)數(shù),將表示個(gè)位的計(jì)數(shù)芯片借位端BO連接后一級(jí)的CPD即可進(jìn)行級(jí)聯(lián)計(jì)數(shù),后一級(jí)輸出為十位位。以下為設(shè)計(jì)中用到的50和30進(jìn)制減計(jì)數(shù)器。以下為計(jì)數(shù)器的邏輯電路圖:
3.3b 范圍為49~0的50進(jìn)制減計(jì)數(shù)器
3.3c計(jì)數(shù)范圍為29~0的30進(jìn)減制計(jì)數(shù)器
3.4交通燈控制電路與交通燈
3.4,1交通燈控制電路
交通信號(hào)燈轉(zhuǎn)換器其實(shí)就是由計(jì)數(shù)進(jìn)制轉(zhuǎn)換器來實(shí)現(xiàn),即一個(gè)JK觸發(fā)器,其中J、K端都同時(shí)接高電平,即構(gòu)成了一個(gè)T’觸發(fā)器,目的就是實(shí)現(xiàn)翻轉(zhuǎn)功能,其時(shí)鐘輸入端是由倒計(jì)時(shí)計(jì)數(shù)器中的兩片74192的八個(gè)輸出端經(jīng)過一個(gè)或門然后經(jīng)過一個(gè)非門接入。
3.4.1a 交通燈控制電路
3.4,2交通燈模擬電路
S0:沒有打開電源的狀態(tài)。S1:東西方向綠燈亮,南北方向紅燈亮,時(shí)間30s。S0,S1,S2,S3中任一狀態(tài)下打開電源會(huì)進(jìn)入S1狀態(tài),數(shù)碼管初始值為60。數(shù)碼管最大顯示為60,出現(xiàn)“0”的瞬間進(jìn)入下一狀態(tài)。(S2)S2:東西方向與南北方向黃燈亮,時(shí)間5s。
數(shù)碼管最大顯示為30,出現(xiàn)“0”的瞬間進(jìn)入下一狀態(tài)。S3:南北方向綠燈亮,東西 方向紅燈亮,時(shí)間60s。數(shù)碼管最大顯示為60,出現(xiàn)“0”的瞬間進(jìn)入下一狀態(tài)。
3.4.2a 交通燈模擬電路
心得體會(huì)
經(jīng)過一周的努力,我終于完成關(guān)于交通燈控制電路的電子課程設(shè)計(jì),通過一周不斷的查資料讓我積累了許多實(shí)際操作經(jīng)驗(yàn),已初步掌握了數(shù)電的應(yīng)用技術(shù),以及數(shù)字電路的知識(shí)和有關(guān)器件的應(yīng)用,我深刻體會(huì)到了數(shù)子電路技術(shù)對當(dāng)今現(xiàn)代社會(huì)的重要作用。經(jīng)過這次設(shè)計(jì),我學(xué)會(huì)了許多東西,學(xué)會(huì)了嚴(yán)密的思考,構(gòu)想及怎樣把計(jì)劃付諸于實(shí)際行動(dòng)之中。同時(shí)與社會(huì)的不斷高速發(fā)展的步伐相比,我認(rèn)識(shí)到自己所學(xué)的知識(shí)和技能還遠(yuǎn)遠(yuǎn)不足,有些實(shí)際性的問題還不能夠解決,缺少很多有實(shí)際運(yùn)用價(jià)值的知識(shí)儲(chǔ)備,缺乏應(yīng)有的動(dòng)手解決實(shí)際問題的能力,缺乏些高效利用及篩選大量資料的能力,缺乏資源共享及應(yīng)有的團(tuán)隊(duì)合作精神,有待進(jìn)一步提高,我應(yīng)當(dāng)學(xué)好自己的專業(yè)知識(shí)以適應(yīng)不斷發(fā)展的社會(huì)。
在這次課程設(shè)計(jì)中,我學(xué)會(huì)了如何有效的利用網(wǎng)絡(luò)資源及圖書館的藏書,找到了幾個(gè)很不錯(cuò)的專業(yè)網(wǎng)站,為以后的查閱專業(yè)方面的信息和相互之間的交流打下了堅(jiān)實(shí)的基礎(chǔ),學(xué)會(huì)了如何看電路圖,識(shí)別電路圖,提高了自己的專業(yè)技能,同時(shí)也培養(yǎng)了自己獨(dú)立解決實(shí)際問題的能力,也培養(yǎng)了自己認(rèn)真和嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度,收到了很大的啟發(fā),為以后的工作積累了些寶貴的經(jīng)驗(yàn)。
參考文獻(xiàn)
[1]高吉祥.數(shù)字電子技術(shù).北京:電子工業(yè)出版社
[2]梁宗善.電子技術(shù)基礎(chǔ)課程設(shè)計(jì)[M].武漢:華中理工大學(xué)出版社 [3]李玲遠(yuǎn),范綠蓉,陳小宇.電子技術(shù)基礎(chǔ)實(shí)驗(yàn).北京:科學(xué)出版社 [4]彭介華.電子技術(shù)課程設(shè)計(jì)指導(dǎo)[M].北京:高等教育出版社 [5]康光華
電子技術(shù)基礎(chǔ)(數(shù)電部分)華中理工大學(xué)電子學(xué)教研室
第四篇:交通燈控制邏輯電路設(shè)計(jì)與總結(jié)報(bào)告
交通燈控制邏輯電路設(shè)計(jì)與總結(jié)報(bào)告
一、設(shè)計(jì)任務(wù)
用CPLD設(shè)計(jì)路口交通燈控制器
二、設(shè)計(jì)要求
1、滿足一下時(shí)序要求:南北方向紅燈亮,東西方向綠燈亮;南北方向綠燈亮,東西方向紅燈亮;
2、每一方向的紅(綠)黃燈總共維持30秒;
3、十字路口要有時(shí)間顯示,具體為:當(dāng)某一方向綠燈亮?xí)r,置顯示器為30秒,然后以每秒減一技術(shù)方式工作,直至減到數(shù)為4秒時(shí),紅綠燈熄滅,黃燈開始間隙閃耀4秒,減到0時(shí),紅綠燈交換,一次工作循環(huán)結(jié)束,進(jìn)入下一步另一方向的工作循環(huán);
4、紅綠燈均采用發(fā)光二極管;
5、設(shè)計(jì)由晶振電路產(chǎn)生1Hz標(biāo)準(zhǔn)秒信號(hào)的單元電路(實(shí)際秒脈沖由開發(fā)箱提供);
6、要求對整體電路進(jìn)行仿真,觀察并記錄下仿真波形;
7、選作部分:
a、手動(dòng)調(diào)整和自動(dòng)控制,夜間為黃燈閃耀;
b、白天黃燈亮?xí)r,以2Hz的速度閃爍點(diǎn)亮四秒; c、紅綠燈循環(huán)點(diǎn)亮?xí)r間可以自由修改。
三、設(shè)計(jì)設(shè)備
含有Quartus軟件的電腦一臺(tái),可下載的試驗(yàn)臺(tái);
四、設(shè)計(jì)方法
使用VHDL語言進(jìn)行程序的設(shè)計(jì)運(yùn)行和仿真,以及波形的運(yùn)行仿真,最后進(jìn)行下載仿真;
五、方案論證
方案1:把整個(gè)流程分成幾個(gè)進(jìn)程來做;
方案2:每個(gè)進(jìn)程都使用if和case語句實(shí)現(xiàn)功能的實(shí)現(xiàn); 方案3:使用狀態(tài)機(jī)來實(shí)現(xiàn)狀態(tài)間的轉(zhuǎn)換;
方案論證:
1、要實(shí)現(xiàn)整個(gè)流程,需要做的輸出內(nèi)容類型不同,如果放在一個(gè)進(jìn)程里面就比較容易混淆,產(chǎn)生混亂。而采用分成幾個(gè)進(jìn)程來做的方式就明確了每個(gè)模塊的內(nèi)容和分工,使其調(diào)理清晰,一目了然;
2、if語句是條件語句,是VHDL語言中常用的基本語句。該流程中的變量比較繁多,而使用case語句分情況列出來,簡潔明了。
3、狀態(tài)機(jī)的使用格式簡潔,使用簡單方便,特別是在進(jìn)行狀態(tài)的轉(zhuǎn)換時(shí)候。并行的狀態(tài)轉(zhuǎn)換不易出錯(cuò),可將狀態(tài)轉(zhuǎn)換、賦值、計(jì)數(shù)等多個(gè)功能封裝在某一個(gè)狀態(tài)中,并且更加便于為系統(tǒng)添加新的狀態(tài)功能。
方案選定:
通過以上分析,確定用以上方案為本次設(shè)計(jì)的方案。
六、工作原理
先對所給時(shí)鐘脈沖進(jìn)行分頻到標(biāo)準(zhǔn)時(shí)鐘脈沖;設(shè)計(jì)兩個(gè)時(shí)鐘控制倒計(jì)時(shí),倒計(jì)時(shí)的時(shí)間可自由修改,由輸入決定;設(shè)計(jì)另一個(gè)時(shí)鐘,用以控制白天與夜間模式的轉(zhuǎn)換;在白天時(shí),根據(jù)倒計(jì)時(shí)的數(shù)字進(jìn)行紅綠燈的狀態(tài)轉(zhuǎn)換;夜間時(shí),紅綠燈狀態(tài)改為夜間模式:黃燈閃爍。
七、程序設(shè)計(jì)
------交通燈控制系統(tǒng)所使用的庫和包
-------------------------library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
-------------------------------交通燈控制系統(tǒng)的實(shí)體
-------------------------entity jt is
port(clk,reset:in std_logic;
------------------時(shí)鐘脈沖clk由系統(tǒng)直接提供,需要進(jìn)行分
頻;reset是啟動(dòng)鍵,當(dāng)reset為1是,系統(tǒng)啟動(dòng)
t0:integer range 0 to30;
------------------紅綠燈循環(huán)點(diǎn)亮的時(shí)間,根據(jù)輸入的不同
系統(tǒng)運(yùn)行的不同
r1,y1,g1,r2,y2,g2:out std_logic;
------------------r1為東西方向紅燈,y1為東西方
向黃燈,g1為東西方向綠燈;r2為南北方向紅燈,y2為南北方向黃燈,g2為南北方向綠燈
ec0,ec1,nc0,nc1:out std_logic_vector(3 downto 0));
------------------ec0,ec1分別為東西方向的倒計(jì)時(shí)間的個(gè)位和十位;
nc0,nc1分別為南北方向的倒計(jì)時(shí)間的個(gè)位和十位
end jt;-------------------------------交通燈控制系統(tǒng)的結(jié)構(gòu)體(5個(gè)進(jìn)程)
-------------------------architecture one of jt is
type state_type is(s0,s1,s2,s3);
------------------定義狀態(tài)的類型
signal state:state_type;
------------------使用狀態(tài)機(jī)
signal k:std_logic;
------------------分頻后的1Hz的標(biāo)準(zhǔn)時(shí)鐘脈沖
signal c1,c2:integer range 0 to 30;
------------------定義東西、南北方向的兩個(gè)
倒計(jì)時(shí)的計(jì)數(shù)
signal t1:integer range 0 to 3600;
signal t2:integer range 0 to 24;------------------定義一個(gè)時(shí)鐘,用以控制白天與夜間模式 Begin------該進(jìn)程用以分頻
-------------------------q0:process(clk)
variable tt:std_logic_vector(9 downto 0);
------------------中間變量
begin
if clk'event and clk='1' then
if tt=“1111101000” then
----------------------把所給1kHz分頻成1Hz的脈沖
k,10000分頻,仿真值用“ 0000000100”八分頻
tt:=(others=>'0');
k<='1';
else
tt:=tt+1;k<='0';
end if;
end if;end process q0;-------------------------
------該進(jìn)程用以設(shè)計(jì)時(shí)鐘
-------------------------q1:process(k,reset)
begin
if reset='1' then
------------------啟動(dòng)開關(guān)為1時(shí),系統(tǒng)開始運(yùn)行
t1<=0;t2<=0;
------------------從0點(diǎn)開始 elsif k='1' and k'event then if t1=3599 then
------------------一個(gè)t1循環(huán)是一個(gè)秒,仿真值用“35” if t2=23 then
-------------------一個(gè)t1循環(huán)是一個(gè)小時(shí),一天24小時(shí) t2<=0;
else t2<=t2+1;end if;t1<=0;else t1<=t1+1;end if;end if;end process q1;-------------------------------該進(jìn)程用以控制白天黑天模式和紅綠燈狀態(tài)轉(zhuǎn)換
-------------------------q2:process(k,reset,t2)
begin
if t2>=5 and t2<=22 then
-------------------白天模式5:00到22:00之間
if reset='1' then
-------------------啟動(dòng)開關(guān)為1時(shí),系統(tǒng)開始運(yùn)
行,進(jìn)行狀態(tài)轉(zhuǎn)換
r1<='0';y1<='0';g1<='1';-------------------東西方向綠燈亮 r2<='1';y2<='0';g2<='0';-------------------南北方向紅燈亮 state<=s0;-------------------紅綠燈處于初始狀態(tài)s0 c1<=t0;
c2<=t0;-------------------倒計(jì)時(shí)從自由輸入值開始遞減 elsif k='1' and k'event then
case state is
when s0=>-------------------當(dāng)處于第1狀態(tài)時(shí),討論
if c1=5 then
--------------由于進(jìn)程內(nèi)部的并列進(jìn)
行,當(dāng)?shù)褂?jì)時(shí)第4秒時(shí),進(jìn)入到第2狀態(tài)s1
state<=s1;
c1<=c1-1;
c2<=c2-1;
--------------倒計(jì)時(shí)遞減
elsif c2=0 then
------------倒計(jì)時(shí)減到0時(shí),再從
初始值開始
c1<=t0;
c2<=t0;
else
----------------否則繼續(xù)保持第1狀態(tài)s0
state<=s0;
c1<=c1-1;
c2<=c2-1;
end if;
when s1=>-------------------當(dāng)處于第2狀態(tài)時(shí),討論
if c1=1 then--------------由于進(jìn)程內(nèi)部的并列進(jìn)行,當(dāng)
倒計(jì)時(shí)第t0秒時(shí),進(jìn)入到第3狀態(tài)s2
state<=s2;
c1<=c1-1;
c2<=c2-1;
else----------------否則繼續(xù)保持第2狀態(tài)
state<=s1;
c1<=c1-1;
c2<=c2-1;
end if;
when s2=>-------------------當(dāng)處于第3狀態(tài)時(shí),討論
if c2=5 then--------------由于進(jìn)程內(nèi)部的并列進(jìn)行,當(dāng)?shù)褂?jì)時(shí)第4秒時(shí),進(jìn)入到第4狀態(tài)s3
state<=s3;
c1<=c1-1;
c2<=c2-1;
elsif c1=0 then
------------倒計(jì)時(shí)減到0時(shí),再從初
始值開始
c1<=t0;
c2<=t0;
else
----------------否則繼續(xù)保持第3狀態(tài)
state<=s2;
c1<=c1-1;
c2<=c2-1;
end if;
when s3=>-------------------當(dāng)處于第4狀態(tài)時(shí),討論 if c2=1 then--------------由于進(jìn)程內(nèi)部的并列進(jìn)行,當(dāng)?shù)?/p>
計(jì)時(shí)第t0秒時(shí),進(jìn)入到第1狀態(tài)s0
state<=s0;
c1<=c1-1;
c2<=c2-1;
else----------------否則繼續(xù)保持第4狀態(tài)
state<=s3;
c1<=c1-1;
c2<=c2-1;
end if;
when others=> state<=s0;
end case;if state=s0 then
r1<='0';y1<='0';g1<='1';
r2<='1';y2<='0';g2<='0';elsif state=s1 then
r1<='0';g1<='0';
r2<='1';y2<='0';g2<='0';
if c1=4 or c1=2 then y1<='1';
else y1<='0';
end if;elsif state=s2 then
r1<='1';y1<='0';g1<='0';
r2<='0';y2<='0';g2<='1';elsif state=s3 then
r1<='1';y1<='0';g1<='0';
r2<='0';g2<='0';
if c2=4 or c2=2 then y2<='1';
else y2<='0';
end if;end if;
--各個(gè)狀態(tài)的紅綠燈變量的賦值,‘1’亮‘0’熄 end if;else-------------------夜間模式22:00到次日5:00之間
c2<=0;c1<=0;r1<='0';r2<='0';g1<='0';g2<='0';y1<=k;y2<=k----------------紅綠燈的狀態(tài):脈沖k賦給黃燈變量,黃燈閃爍
end if;end process q2;-------------------------------該進(jìn)程用于東西方向倒計(jì)時(shí)的譯碼顯示
-------------------------q3:process(c1)
begin case c1 is when 0=>ec0<=“0000”;ec1<=“0000”;when 1=>ec0<=“0001”;ec1<=“0000”;when 2=>ec0<=“0010”;ec1<=“0000”;when 3=>ec0<=“0011”;ec1<=“0000”;when 4=>ec0<=“0100”;ec1<=“0000”;when 5=>ec0<=“0101”;ec1<=“0000”;when 6=>ec0<=“0110”;ec1<=“0000”;when 7=>ec0<=“1000”;ec1<=“0000”;when 9=>ec0<=“1001”;ec1<=“0000”;when 10=>ec0<=“0000”;ec1<=“0001”;when 11=>ec0<=“0001”;ec1<=“0001”;when 12=>ec0<=“0010”;ec1<=“0001”;when 13=>ec0<=“0011”;ec1<=“0001”;when 14=>ec0<=“0100”;ec1<=“0001”;when 15=>ec0<=“0101”;ec1<=“0001”;when 16=>ec0<=“0110”;ec1<=“0001”;when 17=>ec0<=“0111”;ec1<=“0001”;when 18=>ec0<=“1000”;ec1<=“0001”;when 19=>ec0<=“1001”;ec1<=“0001”;when 20=>ec0<=“0000”;ec1<=“0010”;when 21=>ec0<=“0001”;ec1<=“0010”;when 22=>ec0<=“0010”;ec1<=“0010”;when 23=>ec0<=“0011”;ec1<=“0010”;when 24=>ec0<=“0100”;ec1<=“0010”;when 25=>ec0<=“0101”;ec1<=“0010”;when 26=>ec0<=“0110”;ec1<=“0010”;when 27=>ec0<=“0111”;ec1<=“0010”;when 28=>ec0<=“1000”;ec1<=“0010”;when 29=>ec0<=“1001”;ec1<=“0010”;when 30=>ec0<=“0000”;ec1<=“0011”;----------------------------當(dāng)在設(shè)定范圍內(nèi)時(shí),分別為個(gè)位十位譯碼并顯示
when others=>ec0<=“0000”;ec1<=“0000”;
-------------------------否則,LED燈顯示0
end case;
end process q3;-------------------------------該進(jìn)程用于南北方向倒計(jì)時(shí)的譯碼顯示
-------------------------q4:process(c2)
begin
case c2 is when 0=>nc0<=“0000”;nc1<=“0000”;when 1=>nc0<=“0001”;nc1<=“0000”;when 2=>nc0<=“0010”;nc1<=“0000”;when 3=>nc0<=“0011”;nc1<=“0000”;when 4=>nc0<=“0100”;nc1<=“0000”;when 5=>nc0<=“0101”;nc1<=“0000”;when 6=>nc0<=“0110”;nc1<=“0000”;when 7=>nc0<=“0111”;nc1<=“0000”;when 8=>nc0<=“1000”;nc1<=“0000”;when 9=>nc0<=“1001”;nc1<=“0000”;when 10=>nc0<=“0000”;nc1<=“0001”;when 11=>nc0<=“0001”;nc1<=“0001”;when 12=>nc0<=“0010”;nc1<=“0001”;when 13=>nc0<=“0011”;nc1<=“0001”;when 14=>nc0<=“0100”;nc1<=“0001”;when 15=>nc0<=“0101”;nc1<=“0001”;when 16=>nc0<=“0110”;nc1<=“0001”;when 17=>nc0<=“0111”;nc1<=“0001”;when 18=>nc0<=“1000”;nc1<=“0001”;when 19=>nc0<=“1001”;nc1<=“0001”;when 20=>nc0<=“0000”;nc1<=“0010”;when 21=>nc0<=“0001”;nc1<=“0010”;when 22=>nc0<=“0010”;nc1<=“0010”;when 23=>nc0<=“0011”;nc1<=“0010”;when 24=>nc0<=“0100”;nc1<=“0010”;when 25=>nc0<=“0101”;nc1<=“0010”;when 26=>nc0<=“0110”;nc1<=“0010”;when 27=>nc0<=“0111”;nc1<=“0010”;when 28=>nc0<=“1000”;nc1<=“0010”;when 29=>nc0<=“1001”;nc1<=“0010”;when 30=>nc0<=“0000”;nc1<=“0011”;---------------------------當(dāng)在設(shè)定范圍內(nèi)時(shí),分別為個(gè)位十位譯碼并顯示
when others=>nc0<=“0000”;nc1<=“0000”;
end process q4;-------------------------end architecture one;
----所有進(jìn)程結(jié)束-------------------------
八、仿真結(jié)果
1、clk為輸入脈沖;開始令reset為’1’,啟動(dòng)系統(tǒng),系統(tǒng)正常工作后值為’0; t0為紅綠燈循環(huán)時(shí)間,可自由修改,如果輸入值為’0010000’,則為16秒倒計(jì)時(shí)。如下圖:系統(tǒng)從0點(diǎn)開始運(yùn)行,處于夜間模式時(shí),倒計(jì)時(shí)都為“00”,兩個(gè)方向都為黃燈閃爍,紅綠燈都熄滅。
---------------------------否則,LED燈顯示0
end case;2、5:00之后,進(jìn)入到白天模式:從第1狀態(tài)(東西方向綠燈亮、南北方向紅燈)開始,倒計(jì)時(shí)從16秒開始遞減。倒計(jì)時(shí)第4秒后進(jìn)入第2 狀態(tài)(東西方向黃燈閃爍,南北方向紅燈亮)。
3、倒計(jì)時(shí)第0秒后進(jìn)入第3 狀態(tài)(東西方向紅燈亮,南北方向綠燈亮),倒計(jì)時(shí)再從16秒開始遞減;倒計(jì)時(shí)第4秒后進(jìn)入第4 狀態(tài)(東西方向紅燈亮,南北方向黃燈閃爍);倒計(jì)時(shí)第0秒后進(jìn)入第1 狀態(tài)(東西方向綠燈亮,南北方向紅燈亮),倒計(jì)時(shí)再從16秒開始遞減
。如此循環(huán)。
4、當(dāng)計(jì)時(shí)器到22:00時(shí),再次進(jìn)入夜間模式:東西南北方向黃燈閃爍;到次日5:00時(shí)又回到白天模式。如此循環(huán)。
九、討論與改進(jìn)
特點(diǎn):
1、在整個(gè)設(shè)計(jì)過程中,分進(jìn)程實(shí)現(xiàn)整個(gè)功能,簡單明了;
2、狀態(tài)機(jī)的功能和優(yōu)點(diǎn)得到了較為完整的體現(xiàn);
3、分夜間和白天模式不同,系統(tǒng)自動(dòng)調(diào)節(jié);
4、黃燈以閃爍的形式亮;系統(tǒng)運(yùn)行后紅綠燈循環(huán)點(diǎn)亮的時(shí)間也可自由修改。不足:
1、整個(gè)系統(tǒng)啟動(dòng)后從夜間0點(diǎn)開始運(yùn)行,而不能隨意調(diào)為哪個(gè)時(shí)間的交通燈狀態(tài),只能從程序中改,不能手動(dòng)調(diào)節(jié);
2、整個(gè)功能還是比較簡單,未能分左右轉(zhuǎn)和直行的情況;
3、緊急情況處理時(shí)也無特殊處理的設(shè)置。
改進(jìn):
1、在進(jìn)程中可增加一個(gè)輸入量,用以控制系統(tǒng)的時(shí)鐘時(shí)間,方便調(diào)節(jié)模式和交通燈狀態(tài);
2、在進(jìn)程中可加入幾個(gè)紅綠燈狀態(tài)來分別控制東西方向和南北方向的左轉(zhuǎn)、右轉(zhuǎn)和直行的紅綠燈狀態(tài);
3、在原有程序的基礎(chǔ)上,可通過增加一個(gè)輸入量來控制一種特殊狀態(tài),用以控制特殊情況的處理,視該特殊情況而定。
二○一○年九月三日
第五篇:基于FPGA的交通燈控制電路設(shè)計(jì)
基于FPGA的交通燈控制電路設(shè)計(jì)
關(guān)鍵字: 交通信號(hào)機(jī) FPGA 脈沖發(fā)生器
目前交通燈廣泛應(yīng)用于道路交通建設(shè)中。本文設(shè)計(jì)一個(gè)十字路口交通燈控制電路,要求東西、南北兩條干道的紅、綠、黃交通燈按要求循環(huán)變化,并以倒計(jì)時(shí)方式指示干道通行或禁止的維持時(shí)間。在QuartusⅡ軟件環(huán)境中設(shè)計(jì)、仿真,并在FPGA實(shí)驗(yàn)板上實(shí)現(xiàn)所設(shè)計(jì)電路的功能。
系統(tǒng)概述
1.1 設(shè)計(jì)思想
基于FPGA的交通燈系統(tǒng)控制設(shè)計(jì)包括4大模塊,分別為脈沖發(fā)生、狀態(tài)定時(shí)、交通燈閃爍的控制、閃爍時(shí)間的控制,基本原理如圖1所示。
1.2 總體工作情況
交通燈控制要求如表1所示。
該設(shè)計(jì)的交通燈控制分為6個(gè)狀態(tài)。由于各狀態(tài)持續(xù)時(shí)間不同,所以電路的核心控制部分是狀態(tài)機(jī)和定時(shí)器,狀態(tài)機(jī)在定時(shí)器觸發(fā)下周期性循環(huán),狀態(tài)碼控制6個(gè)燈以一定的規(guī)律變化。變化情況如圖2所示。
系統(tǒng)脈沖由FPGA開發(fā)板晶振經(jīng)過分頻電路實(shí)現(xiàn)。狀態(tài)定時(shí)由74190可逆十進(jìn)制計(jì)數(shù)器和T’觸發(fā)器實(shí)現(xiàn),只要置數(shù)合理,翻轉(zhuǎn)信號(hào)到位,就可以使電路在東西(I)、南北(J)兩個(gè)控制狀態(tài)間翻轉(zhuǎn)。紅、黃、綠燈的閃爍由7485數(shù)字比較器和組合邏輯控制,其中7485數(shù)字比較器用于比較計(jì)數(shù)器當(dāng)前持續(xù)狀態(tài)和所需要的狀態(tài)全部時(shí)間,并做出相應(yīng)的變化。組合邏輯控制由AHDL文件編寫真值表實(shí)現(xiàn)。時(shí)間顯示由AHDL文件編寫真值表實(shí)現(xiàn),輸入正確的邏輯,七段譯碼電路即能得到正確的時(shí)間顯示。
1.3 各功能的組成
整個(gè)電路可以分為4大部分,包括脈沖發(fā)生、狀態(tài)定時(shí)、時(shí)間顯示和數(shù)字比較一組合邏輯控制。
1.3.1 脈沖發(fā)生
脈沖發(fā)生器為整個(gè)系統(tǒng)提供驅(qū)動(dòng),將輸入端分配給FPGA實(shí)驗(yàn)板的PIN55引腳,則會(huì)由實(shí)驗(yàn)板上產(chǎn)生頻率為10 MHz的輸入脈沖,用7片7490,每一級(jí)都構(gòu)成10分頻電路,使頻率從10 MHz降低為1Hz。
1.3.2 狀態(tài)定時(shí)
狀態(tài)定時(shí)可由預(yù)置BCD碼初值的74190級(jí)聯(lián)實(shí)現(xiàn),構(gòu)成減計(jì)數(shù)器。級(jí)聯(lián)原則是:低位計(jì)數(shù)器從全0狀態(tài)變?yōu)樽畲蟠a值狀態(tài)時(shí)可使高位計(jì)數(shù)器減1。級(jí)聯(lián)方式分為異步和同步兩種,本文采取的是異步級(jí)聯(lián)方式,即低位計(jì)數(shù)器溢出信號(hào)控制高位計(jì)數(shù)器的記數(shù)脈沖輸入端??筛鶕?jù)計(jì)數(shù)器的時(shí)鐘觸發(fā)方式,在低位計(jì)數(shù)器狀態(tài)碼從全“0”變?yōu)樽畲蟠a值的瞬間,為高位計(jì)數(shù)器提供有效的計(jì)數(shù)脈沖邊沿。具體做法是將低片位的溢出信號(hào)RCON端口接到高片位的計(jì)數(shù)脈沖CLK,實(shí)現(xiàn)兩位BCD碼的置數(shù)、翻轉(zhuǎn)和借位,使系統(tǒng)表示的數(shù)字能在22~16之間循環(huán)。
74190功能說明:
(1)GN為計(jì)數(shù)器使能控制端,低電平有效。當(dāng)GN為高電平時(shí),禁止計(jì)數(shù)。
(2)DNUP為計(jì)數(shù)方式控制,接高電平為減計(jì)數(shù),接低電平為加計(jì)數(shù)。
(3)LDN為異步預(yù)置數(shù)控制。當(dāng)LDN為低電平時(shí),計(jì)數(shù)器狀態(tài)QD,QC,QB,QA分別等于D,C,B,A。
(4)計(jì)數(shù)器位序由高至低順序?yàn)镼D,QC,QB,QA。QD為最高位MSB,QA為最低位LSB。
(5)計(jì)數(shù)脈沖CLK上升沿有效。
(6)當(dāng)計(jì)數(shù)器輸出QDQCQBQA為十進(jìn)制加計(jì)數(shù)的最大狀態(tài)碼“1001”或?yàn)闇p計(jì)數(shù)的最小狀態(tài)碼全“0”時(shí),極值狀態(tài)碼指示MAX/MIN輸出為高電平。
(7)當(dāng)極值狀態(tài)碼指示MAX/MIN為高電平且CLK為低電平時(shí),溢出信號(hào)RCON為低電平,即RCON與計(jì)數(shù)脈沖同步。
系統(tǒng)記數(shù)脈沖為1 Hz時(shí),如表2所示,當(dāng)I狀態(tài)(東西控制狀態(tài))的定時(shí)時(shí)間為22 s,計(jì)數(shù)器應(yīng)該先預(yù)置22的BCD碼;同理,J狀態(tài)(南北控制狀態(tài))之前應(yīng)該預(yù)置16的BCD碼。
狀態(tài)計(jì)時(shí)電路由兩片74190級(jí)聯(lián)而成,構(gòu)成22和16自翻轉(zhuǎn)的電路。其要解決的核心問題包括置數(shù),翻轉(zhuǎn)和借位。根據(jù)74190芯片的特點(diǎn),可分析其實(shí)現(xiàn)原理如圖4所示,通過溢出信號(hào)RCON的上升沿實(shí)現(xiàn)借位,使得數(shù)字能夠從20到19,個(gè)位向十位借位,順利過渡。
置數(shù)和翻轉(zhuǎn)之間有先后關(guān)系,即須先置數(shù)后翻轉(zhuǎn)。如表3所示,分析兩個(gè)BCD碼各位特點(diǎn),可知兩者D7D6D3D0位均為1,D1位均為0,而D5D4D2位不同,如圖5,D5D4D2位由狀態(tài)電平S來控制,當(dāng)為I狀態(tài)時(shí),計(jì)數(shù)器的預(yù)置的數(shù)為D5=0,D4=D2=1,而為J狀態(tài)時(shí),計(jì)數(shù)器的預(yù)置的數(shù)為D5=1,D4=D2=0,根據(jù)74190的功能,將2片74190的MAX/MIN引出,通過與非門,分別連在高位和低位的LDN置數(shù)端,通過分析可知,當(dāng)計(jì)數(shù)器從01減到00時(shí)候,高低位的MAX/MIN均為高電平,經(jīng)過與非門以后為低電平,74190被置數(shù),其置數(shù)值由狀態(tài)S來決定,S是由LDN端信號(hào)經(jīng)過一個(gè)T’觸發(fā)器決定的,即LDN信號(hào)每置數(shù)一次,S翻轉(zhuǎn)1次,從而區(qū)分16和22狀態(tài)。按這個(gè)結(jié)構(gòu),可分別置數(shù)16和22,使其實(shí)現(xiàn)自翻轉(zhuǎn)。
圖5為狀態(tài)定時(shí)模塊的實(shí)際連接圖。
1.3.3 時(shí)間顯示
時(shí)間顯示要用到7段顯示譯碼電路,由于是兩位BCD碼,故用二選一數(shù)據(jù)選擇器。選擇端S接一個(gè)頻率很高的方波(如1 kHz);數(shù)據(jù)比較器的輸出和1 Hz脈沖作為AHDL模塊的輸入,即可正確顯示時(shí)間。
為正確顯示時(shí)間,用AHDL文件自編譯碼真值表如下:
1.3.4 數(shù)字比較一組合邏輯控制
該模塊將狀態(tài)定時(shí)模塊輸出的時(shí)間與時(shí)間節(jié)點(diǎn)進(jìn)行比較,從而確定電路處于22 s或者16 s的具體的某個(gè)狀態(tài)。由表1可知,東西(I)或南北(J)的控制狀態(tài)都有3個(gè)階段的控制邏輯,分別對應(yīng)3個(gè)時(shí)間段:1~3 s,4~6 s和大于6 s,因此,采用數(shù)字比較器進(jìn)行比較,確定定時(shí)值小于4 s或大于6 s,方法如圖7所示,采用4片7485數(shù)字比較器,兩兩級(jí)聯(lián),其中一個(gè)由狀態(tài)定時(shí)模塊的輸出與4即二進(jìn)制0100比較;另一個(gè)由狀態(tài)定時(shí)模塊的輸出與6即二進(jìn)制0110比較。
編寫組合邏輯真值表,將狀態(tài)信號(hào)S,兩個(gè)數(shù)字比較器的輸出Y1,Y2和1 Hz脈沖作為輸入,各個(gè)燈的狀態(tài)作為輸出。從而根據(jù)邏輯關(guān)系得出對應(yīng)時(shí)間電路的狀態(tài),控制紅、黃、綠燈處于不同的狀態(tài)。S判斷電路處于22 s狀態(tài)還是16 s狀態(tài),Y1,Y2區(qū)分東西、南北六個(gè)階段狀態(tài),1 Hz脈沖實(shí)現(xiàn)綠燈閃爍。電路的組構(gòu)與調(diào)試
來用QuartusⅡ軟件設(shè)計(jì)各個(gè)模塊,并進(jìn)行仿真。確認(rèn)結(jié)果后,下載至FPGA實(shí)驗(yàn)板中,進(jìn)行相應(yīng)的硬件調(diào)試,調(diào)試結(jié)果與仿真結(jié)果相一致。圖8為仿真波形,系統(tǒng)上電需要調(diào)整的過程,因此電路正常工作前重復(fù)了22s的狀態(tài)。