<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 交通燈信號控制器方案設計

交通燈信號控制器方案設計

作者: 時(shí)間:2012-09-14 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/170864.htm
設計一個(gè)基于單片機的。已知東、西、南、北四個(gè)方向各有紅黃綠色三個(gè)燈,在東西方向有兩個(gè)數碼管,在南北方向也有兩個(gè)數碼管。要求燈按照表1進(jìn)行顯示和定時(shí)切換,并要求在數碼管上分別倒計時(shí)顯示東西、南北方向各狀態(tài)的剩余時(shí)間。
表1 燈的狀態(tài)切換表

南北方向

東西方向
序號
狀態(tài)
序號
狀態(tài)
1
綠燈亮25秒,紅、黃燈滅
1
紅燈亮30秒,綠、黃燈滅
2
黃燈亮5秒,紅、綠燈滅
3
紅燈亮30秒,綠、黃燈滅
2
綠燈亮25秒,紅、黃燈滅
3
黃燈亮25秒,紅、綠燈滅
回到狀態(tài)1
回到狀態(tài)1

3.2.1模塊1:系統設計
(1)任務(wù)分析與整體設計思路
試題要求實(shí)現的功能主要包括計時(shí)功能、動(dòng)態(tài)掃描以及狀態(tài)的切換等幾部分。
計時(shí)功能:要實(shí)現計時(shí)功能則需要使用定時(shí)器來(lái)計時(shí),通過(guò)設置定時(shí)器的初始值來(lái)控制溢出中斷的時(shí)間間隔,再利用一個(gè)變量記錄定時(shí)器溢出的次數,達到定時(shí)1秒中的功能。當計時(shí)每到1秒鐘后,東西、南北燈各狀態(tài)的暫存剩余時(shí)間的變量減1。當暫存剩余時(shí)間的變量減到0時(shí),切換到下一個(gè)狀態(tài),同時(shí)將下一個(gè)狀態(tài)的初始的倒計時(shí)值裝載到計時(shí)變量中。開(kāi)始下一個(gè)狀態(tài),如此循環(huán)重復執行。
動(dòng)態(tài)掃描:需要使用4個(gè)數碼管分別顯示東西、南北的倒計時(shí)數字,將暫存各狀態(tài)剩余時(shí)間的數字從變量中提取出“十位”和“個(gè)位”,用動(dòng)態(tài)掃描的方式在數碼管中顯示。
整個(gè)程序依據定時(shí)器的溢出數來(lái)計時(shí),每計時(shí)1S則相應狀態(tài)的剩余時(shí)間減1,一直減到0時(shí)觸發(fā)下一個(gè)狀態(tài)的開(kāi)始。
(2)單片機型號及所需外圍器件型號,單片機硬件電路原理圖
圖3-5 交通燈硬件電路原理圖
選用MCS51系列AT89S51單片機作為微,選擇兩個(gè)四聯(lián)的共陰極數碼管組成8位顯示模塊,由于A(yíng)T89S51單片機驅動(dòng)能力有限,采用兩片74HC244實(shí)現總線(xiàn)的驅動(dòng),一個(gè)74HC244完成共陰極數碼管位控線(xiàn)的控制和驅動(dòng),另一個(gè)74HC244完成數碼管的7段碼輸出,在7段碼輸出口上各串聯(lián)一個(gè)100歐姆的電阻對7段數碼管限流。用P3口的P3.0-P3.5完成發(fā)光二極管的控制,實(shí)現交通燈的顯示,每個(gè)發(fā)光二極管串聯(lián)500歐姆電阻起限流作用。硬件電路原理圖如圖3-5所示。
(3)程序設計思路,單片機資源分配以及程序流程
①單片機資源分配
單片機P3口的P3.0-P3.1引腳用作輸出,控制發(fā)光二極管的顯示。在計時(shí)模塊中,需要定義兩個(gè)數組變量(init_sn[3],init_ew[3])來(lái)存儲東西、南北兩個(gè)方向在不同狀態(tài)中倒計時(shí)的初始值,題目中每個(gè)方向的交通燈共有3種顯示狀態(tài),因此數組元素個(gè)數為3。還需要定義兩個(gè)變量( cnt_ sn, cnt_ ew)暫存東西、南北兩個(gè)方向的倒計時(shí)剩余時(shí)間。
在狀態(tài)的切換中,為了明確當前處于哪種狀態(tài),東西、南北方向各設置一個(gè)狀態(tài)變量(state_val_sn, state_val_ew),當倒計時(shí)的剩余時(shí)間到零時(shí),狀態(tài)變量增1,表示啟動(dòng)下一個(gè)狀態(tài),當該變量增到3時(shí)變?yōu)?,回到序號為1的狀態(tài)。
②程序設計思路
在設計中,由于沒(méi)有鍵盤(pán)功能,因此只涉及定時(shí)計數和動(dòng)態(tài)掃描功能。主程序將變量初始化之
后,設置單片機定時(shí)器和中斷特殊功能寄存器的初始值,將定時(shí)器T1的工作方式設置為8位自動(dòng)
裝載模式,定時(shí)器每隔250us產(chǎn)生一次溢出。
在初始化變量與寄存器后,主程序進(jìn)入一個(gè)循環(huán)結構,在循環(huán)中只做動(dòng)態(tài)掃描的工作,根據東西、南北兩向的剩余時(shí)時(shí)間進(jìn)行動(dòng)態(tài)掃描顯示。
計時(shí)以及狀態(tài)的切換通過(guò)定時(shí)器的中斷服務(wù)程序來(lái)實(shí)現,在中斷服務(wù)程序中,每計時(shí)到一秒時(shí),則各方向當前狀態(tài)的剩余時(shí)間減1,一直減到0時(shí)觸發(fā)下一個(gè)狀態(tài)的開(kāi)始,改變交通燈的指示。
③程序流程


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 方案設計 控制器 信號 交通

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>