標題: 交通燈電路設(shè)計(單片機開發(fā)案例),附程序代碼 [打印本頁]

作者: sindeer    時間: 2012-6-19 17:56
標題: 交通燈電路設(shè)計(單片機開發(fā)案例),附程序代碼

設(shè)計一個基于單片機的交通燈信號控制器。已知東、西、南、北四個方向各有紅黃綠色三個燈, 在東西方向有兩個數(shù)碼管,在南北方向也有兩個數(shù)碼管。要求交通燈按照表1 進行顯示和定時切換, 并要求在數(shù)碼管上分別倒計時顯示東西、南北方向各狀態(tài)的剩余時間。

模塊1:系統(tǒng)設(shè)計

(1)任務(wù)分析與整體設(shè)計思路試題要求實現(xiàn)的功能主要包括計時功能、動態(tài)掃描以及狀態(tài)的切換等幾部分。 計時功能:要實現(xiàn)計時功能則需要使用定時器來計時,通過設(shè)置定時器的初始值來控制溢出中 斷的時間間隔,再利用一個變量記錄定時器溢出的次數(shù),達到定時1 秒中的功能。當計時每到1 秒 鐘后,東西、南北信號燈各狀態(tài)的暫存剩余時間的變量減1。當暫存剩余時間的變量減到0 時,切 換到下一個狀態(tài),同時將下一個狀態(tài)的初始的倒計時值裝載到計時變量中。開始下一個狀態(tài),如此 循環(huán)重復(fù)執(zhí)行。動態(tài)掃描:需要使用4 個數(shù)碼管分別顯示東西、南北的倒計時數(shù)字,將暫存各狀態(tài)剩余時間的 數(shù)字從變量中提取出“十位”和“個位”,用動態(tài)掃描的方式在數(shù)碼管中顯示。 整個程序依據(jù)定時器的溢出數(shù)來計時,每計時1S 則相應(yīng)狀態(tài)的剩余時間減1,一直減到0 時觸 發(fā)下一個狀態(tài)的開始。
(2)單片機型號及所需外圍器件型號,單片機硬件電路原理圖 交通燈硬件電路原理圖選用MCS51 系列AT89S51 單片機作為微控制器,選擇兩個四聯(lián)的共陰極數(shù)碼管組成8 位顯示模 塊,由于AT89S51 單片機驅(qū)動能力有限,采用兩片74HC244 實現(xiàn)總線的驅(qū)動,一個74HC244 完成共 陰極數(shù)碼管位控線的控制和驅(qū)動,另一個74HC244 完成數(shù)碼管的7 段碼輸出,在7 段碼輸出口上各 串聯(lián)一個100 歐姆的電阻對7 段數(shù)碼管限流。用P3 口的P3.0-P3.5 完成發(fā)光二極管的控制,實現(xiàn) 交通燈信號的顯示,每個發(fā)光二極管串聯(lián)500 歐姆電阻起限流作用。硬件電路原理圖如圖3-5 所示。
3)程序設(shè)計思路,單片機資源分配以及程序流程
全文內(nèi)容請點擊:交通燈電路設(shè)計(單片機開發(fā)案例),附源代碼



作者: 的愛我    時間: 2013-12-18 11:49
亂來的,程序錯那么多
作者: 心雨微涼    時間: 2015-1-7 22:24





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1