国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于單片機(jī)AT89S51交通燈的仿真設(shè)計(jì)

2018-07-27 11:31:00王剛
價(jià)值工程 2018年17期

王剛

摘要: 本文設(shè)計(jì)了基于AT89S51單片機(jī)的交通燈控制系統(tǒng)。該系統(tǒng)由單片機(jī)最小系統(tǒng)、交通燈顯示電路、倒計(jì)時(shí)顯示電路、緊急和特殊情況處理電路組成。通過Proteus、Keil軟件搭建硬件仿真電路與軟件設(shè)計(jì)、軟硬聯(lián)調(diào),實(shí)現(xiàn)了交通燈的基本功能及緊急、特殊情況交通處理功能。仿真結(jié)果表明:本系統(tǒng)具有電路設(shè)計(jì)簡單,性價(jià)比高,穩(wěn)定性好,操作性強(qiáng)等特點(diǎn)。為進(jìn)一步擴(kuò)展交通燈功能的多樣化、智能化提供了參考方案,具有一定的實(shí)用價(jià)值。

Abstract: This paper designs a traffic light control system based on AT89S51 single-chip microcomputer. The system consists of a single-chip minimum system, a traffic light display circuit, a countdown display circuit, and emergency and special case processing circuits. Proteus and Keil software are used to build hardware simulation circuit and software design, hardware and software joint debugging, to achieve the basic functions of traffic lights and emergency and special circumstances of traffic handling. The simulation results show that this system has the characteristics of simple circuit design, high performance-to-price ratio, good stability, and strong operability, which provides a reference program for further diversification and intelligentization of traffic light functions, and has certain practical value.

關(guān)鍵詞: AT89S51;顯示電路;處理功能;硬件仿真

Key words: AT89S51;display circuit;processing function;hardware simulation

中圖分類號(hào):U491.5+1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-4311(2018)17-0131-02

0 引言

近年來,我國汽車數(shù)量增長迅速,大中型城市的交通壓力也日趨增大。隨著微控制器技術(shù)的不斷發(fā)展,功能日益完善,在工業(yè)控制、儀器儀表、武器裝備、通信等領(lǐng)域獲得廣泛應(yīng)用。在此背景下,采用單片機(jī)設(shè)計(jì)出智能化、人性化的交通燈控制電路,為緩解交通壓力提供了可行性的解決方案。

1 系統(tǒng)總體設(shè)計(jì)

根據(jù)系統(tǒng)的功能,本設(shè)計(jì)的硬件仿真分為三個(gè)模塊:單片機(jī)最小系統(tǒng)、交通燈顯示模塊、緊急、特殊情況處理模塊。最小系統(tǒng)采用核心芯片AT89S51;顯示模塊采用發(fā)光二極管為交通燈、四位一體七段數(shù)碼管為倒計(jì)時(shí)顯示;非自鎖按鍵構(gòu)成緊急和特殊情況處理電路。系統(tǒng)組成框圖如圖1所示。系統(tǒng)的軟件設(shè)計(jì)分為四個(gè)模塊:動(dòng)態(tài)顯示模塊、交通燈工作模塊、中斷模塊、定時(shí)/計(jì)數(shù)器模塊。

2 硬件仿真設(shè)計(jì)

本系統(tǒng)的硬件仿真采用Proteus軟件。Proteus軟件是EDA工具軟件,它是目前比較好的仿真單片機(jī)及外圍器件的工具。同時(shí)能與Keil軟件進(jìn)行軟硬聯(lián)調(diào),準(zhǔn)確展示單片機(jī)的仿真效果。

系統(tǒng)仿真電路主要由單片機(jī)最小系統(tǒng)、交通燈顯示電路、倒計(jì)時(shí)顯示電路、緊急、特殊情況處理電路部分組成,硬件仿真電路如圖2所示。

①單片機(jī)最小系統(tǒng):也稱單片機(jī)最小應(yīng)用系統(tǒng),是指用最少的元件組成,可以使單片機(jī)工作的系統(tǒng)。對(duì)51系列單片機(jī)來說,最小系統(tǒng)包括電源電路、單片機(jī)、復(fù)位電路、時(shí)鐘電路、程序存儲(chǔ)器選擇電路。

單片機(jī):選用8位單片機(jī)AT89S51,該單片機(jī)具有性能穩(wěn)定,硬件資源豐富,根據(jù)適用、夠用的原則,該芯片能夠作為交通燈的微控制器。

電源電路:由外部電源提供DC 5V,加在單片機(jī)VCC(40號(hào)引腳),VSS端(20號(hào)引腳)。

時(shí)鐘電路:為單片機(jī)工作提供基本時(shí)鐘。單片機(jī)須在時(shí)鐘信號(hào)控制下嚴(yán)格的按時(shí)序進(jìn)行工作。本設(shè)計(jì)的時(shí)鐘電路采用內(nèi)部時(shí)鐘方式,即通過兩個(gè)30pF電容及12MHz的晶體振蕩器實(shí)現(xiàn)單片機(jī)的時(shí)鐘電路的功能,具體電路連接參看圖2中XTAL1與XTAL2的連接部分。

復(fù)位電路:單片機(jī)復(fù)位是使CPU和系統(tǒng)中的其他功能部件都恢復(fù)到一個(gè)確定的初始狀態(tài),單片機(jī)的復(fù)位條件是必須使單片機(jī)的RST(第9引腳)加上持續(xù)2個(gè)機(jī)器周期以上的高電平。復(fù)位電路參看圖2所接RST端的電路。單片機(jī)上電時(shí),按下復(fù)位按鍵RESET鍵,在RST端產(chǎn)生一個(gè)復(fù)位高電平,單片機(jī)復(fù)位。具體電路連接參看圖2中RST端的連接方式。

程序存儲(chǔ)器選擇電路:單片機(jī)內(nèi)部有4KB的程序存儲(chǔ)器,能夠存放本次設(shè)計(jì)的交通燈控制程序,無需外擴(kuò)存儲(chǔ)器。單片機(jī)的(第31引腳)接VCC,即為高電平時(shí),單片機(jī)讀取程序從內(nèi)部程序存儲(chǔ)器讀取。具體連接方法參看圖2中單片機(jī)端的接線方式。

②交通燈顯示電路:采用6個(gè)發(fā)光二極管模擬兩個(gè)方向的紅黃綠交通燈,通過單片機(jī)的P0口控制,采用灌電流控制方式,對(duì)應(yīng)的P0口某一位為低電平時(shí)點(diǎn)亮該位對(duì)應(yīng)LED燈。所接6個(gè)200Ω電阻起到限流作用,防止電流過大燒壞發(fā)光二極管。具體連接方法參看圖2中P0.0~P0.5端的接線方式。

③倒計(jì)時(shí)顯示電路:四位一體的共陽數(shù)碼管分別模擬兩個(gè)方向的倒計(jì)時(shí)顯示器,每個(gè)方向2位,P2.0~P2.3連接數(shù)碼管的位選端,為數(shù)碼管提供的位選信號(hào)。P1.0~P1.7的連接數(shù)碼管的段選端,為數(shù)碼管提供段選信號(hào)。具體連接方法參看圖2中P1、P2口對(duì)應(yīng)端的連接方式。

④緊急和特殊情況處理電路:采用非自鎖按鍵S1、S2分別模擬緊急情況和特殊情況的發(fā)生,當(dāng)S1、S2沒有按鍵按下時(shí),表示正常情況。當(dāng)S1按下時(shí),表示緊急情況,將S1接至(P3.2引腳),即可實(shí)現(xiàn)外部中斷0的中斷請(qǐng)求。當(dāng)S2按下時(shí),表示特殊情況,將S2接至(P3.3引腳),即可實(shí)現(xiàn)外部中斷1的中斷請(qǐng)求。具體連接方式參看圖2中P3口對(duì)應(yīng)的連接方式。

3 軟件設(shè)計(jì)

倒計(jì)時(shí)交通燈的程序編寫采用C語言進(jìn)行設(shè)計(jì),C語言因執(zhí)行效率高、可移植性好,可以直接對(duì)硬件進(jìn)行操作等多種優(yōu)勢(shì)而被廣泛使用。單片機(jī)C語言的編譯軟件采用Keil μVision。該軟件是目前最流行的開發(fā)51單片機(jī)軟件,能將程序與硬件仿真軟件進(jìn)行系統(tǒng)聯(lián)調(diào),從而成功實(shí)現(xiàn)仿真。程序包括如下部分:主函數(shù)、中斷函數(shù)、定時(shí)函數(shù)、顯示函數(shù),6個(gè)用戶自定義狀態(tài)函數(shù)。

3.1 主函數(shù):包括兩個(gè)部分

①6個(gè)狀態(tài)函數(shù):nanbei50s();nanbei3s();nanbei2s();dongxi50s();dongxi3s();dongxi2s();交通燈系統(tǒng)正常工作時(shí),南北方向和東西方向自動(dòng)切換6個(gè)運(yùn)行狀態(tài)。狀態(tài)1至狀態(tài)3:東西方向紅燈亮(55s)、南北方向綠燈亮(50s);南北方向綠燈閃爍(3s)、南北方向黃燈亮(2s);狀態(tài)4到狀態(tài)6:南北方向紅燈亮(55s)、東西方向綠燈亮(50s)、東西方向綠燈閃爍(3s)、東西方向黃燈(2s)。正常情況下,交通燈從狀態(tài)1順序切換到狀態(tài)6,如此循環(huán)。主函數(shù)中通過調(diào)用六個(gè)狀態(tài)子函數(shù),使程序結(jié)構(gòu)清晰,便于糾錯(cuò)、調(diào)試。

②基于仿真電路的設(shè)計(jì),主函數(shù)中將外部中斷0和外部中斷1開中斷,利用自然優(yōu)先級(jí)使中外部中斷0為高優(yōu)先級(jí)。在調(diào)用中斷函數(shù)時(shí)采用外部中斷的下降沿觸發(fā)方式。主函數(shù)如下:

void main( )

{TMOD=0X01;IT0=1;EX0=1;IT1=1;EX1=1;EA=1;

While(1)

{nanbei50s();nanbei3s();nanbei2s();dongxi50s();dongxi3s();dongxi2s();}}

3.2 動(dòng)態(tài)顯示函數(shù):采用動(dòng)態(tài)掃描法實(shí)現(xiàn)四位數(shù)碼管的數(shù)值顯示。動(dòng)態(tài)掃描顯示過程:在某一時(shí)段只讓其中1位的LED位選口有效,并在段選口上送出相應(yīng)的字形顯示編碼。這時(shí),在選中的LED上顯示指定字符,其他位的LED處于熄滅狀態(tài);延時(shí)一段時(shí)間,下一時(shí)段按順序選通另外1位LED,并送出相應(yīng)的字形顯示編碼,依此規(guī)律循環(huán)下去,直到最后1位LED被選通,顯示指定字符。反復(fù)進(jìn)行以上LED動(dòng)態(tài)掃描過程,就能實(shí)現(xiàn)各位LED穩(wěn)定顯示字符的效果。以東西交通燈顯示程序?yàn)槔?,其中ew為全局變量,存放東西方向交通燈的倒計(jì)時(shí)數(shù)。南北交通燈顯示程序與東西方向類似。

void display()

{unsigned led[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

unsigned char wei[ ]={0xfe,0xfd,0xfb,0xf7};

unsigned char b; P2=wei[0];P1=led[ew/10];

for(b=0;b<100;b++);P1=0X00;P2=wei[1];P1=led[ew%10];

for(b=0;b<100;b++);P1=0X00;}

3.3 定時(shí)函數(shù):采用定時(shí)計(jì)數(shù)器0,工作方式1,定時(shí)50ms的時(shí)間作為基本時(shí)間單位。通過多次調(diào)用該函數(shù),實(shí)現(xiàn)1s的計(jì)時(shí)。定時(shí)函數(shù)如下:

void dingshi50ms(unsigned char i)

{unsigned char j; for(j=0;j

{TH0=(65536-50000)/256; TL0=(65536-50000)%256;

TR0=1;while(!TF0); TF0=0; }}

3.4 中斷處理函數(shù):當(dāng)按下按鍵S1后,進(jìn)入外部中斷0中斷處理函數(shù)。包括保護(hù)現(xiàn)場,兩個(gè)方向?yàn)榧t燈,持續(xù)20s,對(duì)應(yīng)交通的緊急情況。當(dāng)按下按鍵S2后,進(jìn)入外部中斷1的中斷處理函數(shù)。包括保護(hù)現(xiàn)場,南北方向綠燈,東西方向紅燈,持續(xù)10s,對(duì)應(yīng)交通的特殊情況。

4 仿真結(jié)果

將源程序在Keil軟件進(jìn)行編譯、鏈接后與Proteus仿真電路軟硬聯(lián)調(diào),成功展示了交通燈的正常運(yùn)行狀態(tài),分別按下按鍵S1,S2后,交通燈的緊急、特殊情況運(yùn)行正常。

5 結(jié)語

通過對(duì)系統(tǒng)的總體設(shè)計(jì)、搭建硬件仿真電路、軟件設(shè)計(jì)、軟硬聯(lián)調(diào),成功設(shè)計(jì)倒計(jì)時(shí)交通燈電路,該系統(tǒng)具備功能可靠、性價(jià)比高、結(jié)構(gòu)簡單等優(yōu)點(diǎn)。本設(shè)計(jì)的硬件仿真適合應(yīng)用于虛擬儀器的教學(xué)演示和實(shí)際的應(yīng)用系統(tǒng)設(shè)計(jì)等方面,為交通燈的智能化發(fā)展提供可行性參考方案。

參考文獻(xiàn):

[1]尹毅峰,劉龍江.單片機(jī)原理及應(yīng)用[M].北京:北京理工大學(xué)出版社,2010.

[2]倪志蓮.單片機(jī)應(yīng)用技術(shù)[M].北京:北京理工大學(xué)出版社,2010.

[3]王冬梅,張建秋,路敬.基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].佳木斯大學(xué)學(xué)報(bào):自然科學(xué)版,2009,27(1):94-96.

[4]彭偉.單片機(jī)C語言程序設(shè)計(jì)實(shí)訓(xùn)100例[M].北京:電子工業(yè)出版社,2012.

息烽县| 新津县| 仁怀市| 大荔县| 安康市| 双峰县| 榆社县| 遵义县| 罗田县| 富平县| 卢龙县| 兴国县| 宁河县| 平乐县| 拜城县| 苍梧县| 台南县| 乌兰察布市| 保德县| 怀远县| 乐平市| 湖州市| 治县。| 永丰县| 商都县| 连云港市| 张家口市| 白城市| 新宾| 文昌市| 玉田县| 新宁县| 奇台县| 武穴市| 昔阳县| 夹江县| 河北省| 上栗县| 襄城县| 永城市| 余江县|