新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 交通燈信號(hào)控制器方案設(shè)計(jì)

        交通燈信號(hào)控制器方案設(shè)計(jì)

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

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

        南北方向

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

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


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

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 承德市| 富民县| 海宁市| 开远市| 安福县| 定西市| 合阳县| 乌兰察布市| 甘谷县| 鄂温| 南宫市| 武强县| 海盐县| 龙游县| 文登市| 平邑县| 大丰市| 淳安县| 卢氏县| 阿拉善右旗| 鞍山市| 和顺县| 措美县| 南陵县| 金湖县| 雅安市| 泰宁县| 子长县| 绥滨县| 湘西| 济宁市| 视频| 泉州市| 云南省| 通榆县| 南康市| 白银市| 民和| 策勒县| 怀宁县| 平邑县|