一種基于CPLD的交通燈控制系統設計
撥動開關高電平位表示1,低電平表示0,復位信號占撥動開關的一位,有1、0兩種狀態;東西方向和南北方向的紅燈以及黃燈各占兩位,各有00、01、10、11四種狀態,相對應表1中的四種時間。設計框圖如下: 本文引用地址:http://www.104case.com/article/163467.htm
3 系統軟件設計及實現
3.1 頂層設計
根據交通燈控制系統的要求,我們將主控電路分為分頻器、信號控制器兩個模塊,在isplever開發平臺上,分別編譯這兩個模塊的VHDL程序,然后用原理圖輸入法做出項層設計模塊(見圖3),其中輸入的信號有16MHz的基準時鐘脈沖、設定值輸入及復位信號;輸出信號包括兩個方向的綠燈、黃燈、紅燈控制信號,倒計時計數器的十位、個位的8421BCD碼信號。
3.2 分頻器模塊
分頻器模塊是對輸入16MHz的脈沖進行分頻,把這個固定頻率的時鐘脈沖通過分頻轉化為低頻率的脈沖,得到的1Hz信號用作控制器的時鐘信號。圖4為分頻器模塊的框圖。下面為分頻主要程序:
3.3 控制器模塊
控制器模塊的功能是控制信號燈的亮滅和數碼管的顯示。對于控制器模塊,其輸入信號為1Hz的方波信號、復位信號、黃燈和東西方向紅燈和南北方向紅燈時間設定值。輸出信號包括東西方向和南北方向綠燈、黃燈、紅燈控制信號。圖5為控制器模塊的框圖。控制器模塊程序
圖中:cp、reset分別為時鐘脈沖和復位輸入信號。yellow_1,yellow_0,ew_red_l,ew_red_0,sn_red_1,sn_red_0分別為黃燈和東西方向紅燈和南北方向紅燈可調輸入變量。
r_ew,y_ew,g_ew,r_8n,y_sn,g_sn分別為東西方向和南北方向的紅綠燈控制信號。
qhew,qlew,qhsn,qlsn則是東西方向和南北方向的紅綠燈倒數計時顯示信號。
控制器模塊工作流程:
先由外部開關控制可調的南北方向紅燈、東西方向紅燈和黃燈時間的高位和低位。 (設南北方向紅燈通行時間為X、東西方向紅燈通行時間為Y、黃燈時間通行時間為Z,一個總周期的時間為X+Y)
首先東西方向通行,東西方向綠燈亮,南北方向紅燈亮,且兩個方向上的倒數計時顯示器由X向下作減法計時。當倒計時顯示器減法計時到Z時,東西方向黃燈亮,南北方向繼續紅燈。當兩個方向的的倒計時顯示器減法計時到1,然后由1變為Y后,轉為南北方向通行。
南北方向通行:東西方向紅燈亮,南北方向綠燈亮,且兩個方向上的倒計時顯示器由Y向下作減法計時。當倒計時顯示器減法計時到z時,南北方向黃燈亮,東西方向繼續紅燈。當兩個方向的的倒計時顯示器減法計時到1,然后由1變為X后,轉為東西方向通行。如此交替運行。
評論