單片機(jī)控制交通燈的電路設(shè)計(jì)_第1頁(yè)
單片機(jī)控制交通燈的電路設(shè)計(jì)_第2頁(yè)
單片機(jī)控制交通燈的電路設(shè)計(jì)_第3頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Anhui Vocactional & Technical College of Industry & Trade論文題目:姓 名專 業(yè):指導(dǎo)教師:提交日期:?jiǎn)纹瑱C(jī)控制交通燈的電路設(shè)計(jì)摘要:和單片機(jī)的連接方法及其軟件編程, 且涉及到單片機(jī)內(nèi)部 I/O 口和外部中斷的使 用方法和軟件編程實(shí)現(xiàn)。包括主機(jī)電路設(shè)計(jì), 緊急放行電路及軟件設(shè)計(jì),可編程并行接 口 8255 電路設(shè)計(jì)。本系統(tǒng)實(shí)用性強(qiáng)、操作簡(jiǎn)單、擴(kuò)展功能強(qiáng)。在現(xiàn)代城市中,人口和 汽車(chē)日益增長(zhǎng),市區(qū)交通也日益擁擠,人們的安全問(wèn)題也日益重要。因此,紅綠交通信 號(hào)燈成為交管部門(mén)管理交通的重要工具之一。 有了交通燈人們的安全出行有了很

2、大的保 障。近年來(lái)隨著科技的飛速發(fā)展, 單片機(jī)的使用正在不斷的深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢 測(cè)技術(shù)的日益更新。 在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)使用系統(tǒng)中, 單片機(jī)往往作為一個(gè) 核心部件來(lái)使用,僅單片機(jī)方面知識(shí)是不夠的, 還應(yīng)該根據(jù)具體的硬件結(jié)構(gòu)軟硬件結(jié)合, 加以完善。十字路口車(chē)輛穿梭,行人熙攘,車(chē)行車(chē)道,人行人道,有條不紊。那靠什么實(shí)現(xiàn)這 井然有序呢?靠的就是交通信號(hào)燈的自動(dòng)指揮系統(tǒng)。 交通信號(hào)燈的控制方式很多本系統(tǒng) 采用MSC-5係列單片機(jī)ATSC5和可編程并行I/O接口芯片8255A為中心器件來(lái)設(shè)計(jì)交 通燈控制器,實(shí)現(xiàn)了能夠根據(jù)實(shí)際車(chē)流量通過(guò) 8051芯片P1 口設(shè)置紅、綠燈燃亮?xí)r間的 功能;紅

3、綠燈循環(huán)點(diǎn)亮,倒計(jì)時(shí)剩5秒時(shí)候黃燈閃爍警示(交通燈信號(hào)通過(guò)PA 口輸出, 顯示時(shí)間直接通過(guò)8255的PC口輸出至雙位數(shù)碼管);車(chē)輛闖紅燈報(bào)警;綠燈時(shí)間可檢 測(cè)車(chē)流量并可通過(guò)雙位數(shù)碼管顯示。 本次設(shè)計(jì)研究的是交通燈系統(tǒng), 主要介紹了如何機(jī) 設(shè)計(jì)交通燈控制系統(tǒng),并介紹了可編程并行接口部件 8255 關(guān)鍵字:?jiǎn)纹瑱C(jī),交通燈摘要 : 2引言 4第 1 章 單片機(jī)概述 5第 2 章 MSC-51 芯片簡(jiǎn)介 62.1 MCS-51 單片機(jī)內(nèi)部結(jié)構(gòu) 62.2 中斷系統(tǒng) 62.3 時(shí)鐘電路 72.4MCS-51 的引腳說(shuō)明 8第 3章 8255 芯片簡(jiǎn)介 103.1 8255 并行接口 103.2 8255

4、并行接口芯片工作方式 103.3 74LS373 簡(jiǎn)介 10第 4 章 系統(tǒng)硬件設(shè)計(jì) 124.1 交通管理的方案論證 124.2 系統(tǒng)硬件設(shè)計(jì) 124.2.1 系統(tǒng)總框圖如(圖六) . 124.2.2 交通燈硬件線路圖 134.2.3 系統(tǒng)工作原理 . 135.4 時(shí)間及信號(hào)燈的顯示 165.4.1 8051 并行口的擴(kuò)展 165.4.2 顯示原理: 175.4.3 8255PA 口輸出信號(hào)接信號(hào)燈 175.4.4 8255 輸出信號(hào)和數(shù)碼管的連接 185.4.5 8255 和 8051 的連接 185.5 程序設(shè)計(jì) 195.5.1 流程圖如圖所示 195.5.2 程序源代碼 . 20第 6章

5、 總結(jié) 29參考文獻(xiàn) 30引言當(dāng)今,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車(chē)輛最常見(jiàn)和最有效的手段。 但這一技術(shù)在 19 世紀(jì)就已出現(xiàn)了。1858 年,在英國(guó)倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式 信號(hào)燈,用以指揮馬車(chē)通行。這是世界上最早的交通信號(hào)燈。 1868 年,英國(guó)機(jī)械工程 師(納伊特)在倫敦威斯敏斯特區(qū)的議會(huì)大廈前的廣場(chǎng)上,安裝了世界上最早的煤氣紅 綠燈。它由紅綠燈以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止” ,綠色表示“注意” 1869年 1月 2日,煤氣燈爆炸,使警察受傷,遂被取消。電氣啟動(dòng)的紅綠燈出現(xiàn)在美國(guó),這種紅綠燈由紅、綠、黃三色圓形的投光器組成, 1914

6、年始安裝于紐約市 5 號(hào)大街的一座高塔上。紅燈亮表示“停止” ,綠燈亮表示“通 行”。1918 年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把 壓力探測(cè)器安在地下, 車(chē)輛接近紅燈便變?yōu)榫G燈; 另一種是用擴(kuò)音器來(lái)啟動(dòng)紅綠燈,司 機(jī)遇紅燈時(shí)按一下喇叭, 就使紅燈變?yōu)榫G燈。 紅外線紅綠燈當(dāng)行人踏上壓力敏感的路面 時(shí),它就能察覺(jué)到有人要過(guò)馬路。 紅外光的光束把信號(hào)燈的紅燈延長(zhǎng)一段時(shí)間,推遲汽 車(chē)放行,以免發(fā)生交通事故。信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減 少交通事故有明顯效果。 1968 年,聯(lián)合國(guó)道路交通和道路標(biāo)志信號(hào)協(xié)定對(duì)各種信 號(hào)燈的含義作

7、了規(guī)定。綠燈是通行信號(hào),面對(duì)綠燈的車(chē)輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎, 除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。 左右轉(zhuǎn)彎車(chē)輛都必須讓合法地正在路口內(nèi)行駛的車(chē)輛 和過(guò)人行橫道的行人優(yōu)先通行。 紅燈是禁行信號(hào), 面對(duì)紅燈的車(chē)輛必須在交叉路口的停 車(chē)線后停車(chē)。黃燈是警告信號(hào), 面對(duì)黃燈的車(chē)輛不能越過(guò)停車(chē)線,但車(chē)輛已十分接近停 車(chē)線而不能安全停車(chē)時(shí)可以進(jìn)入交叉路口。第 1 章 單片機(jī)概述單片機(jī)( Single Chip Microcomputer ),直譯為單片微型計(jì)算機(jī),它將 CPU、RAM、 ROM定時(shí)器/計(jì)數(shù)器、輸入/輸出(I/O )接口電路、中斷、串行通信接口等主要計(jì)算機(jī) 部件集成在一塊大規(guī)模集成電路芯片上

8、,組成單片微型計(jì)算機(jī),簡(jiǎn)稱單片機(jī)。雖然單片機(jī)的形態(tài)只是一塊芯片,但是它已經(jīng)具有了微型計(jì)算機(jī)的組成結(jié)構(gòu)和功 能。由于單片機(jī)的結(jié)構(gòu)特點(diǎn),在實(shí)際使用中常常將它完全融入使用系統(tǒng)中,故而有時(shí)也 單片機(jī)稱為嵌入式微控制器( Embedded Microcon troller )。單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支, 也是頗具生命力的機(jī)種。 單片機(jī) 微型計(jì)算機(jī) ,特別適用于控制領(lǐng)域。單片機(jī)經(jīng)過(guò) 1、 2、 3、 3 代的發(fā)展,目前單片機(jī)正 朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引腳的多功 能化,以及低電壓底功耗。單片機(jī)有兩種基本結(jié)構(gòu)形式: 一種是在通用微型計(jì)算機(jī)中廣泛采

9、用的將程序存儲(chǔ)器 和數(shù)據(jù)存儲(chǔ)器合用一個(gè)存儲(chǔ)空間的結(jié)構(gòu),稱為普林斯頓 (Princeton) 結(jié)構(gòu)或稱馮。諾依 曼結(jié)構(gòu);另一種是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開(kāi)而分別尋址的結(jié)構(gòu), 稱為哈佛結(jié) 構(gòu)。In tel公司的MCS-51和80C51系列單片機(jī)采用的是哈佛結(jié)構(gòu)。目前的單片機(jī)以采 用哈佛結(jié)構(gòu)的較多。按內(nèi)部數(shù)據(jù)總線的寬度,單片機(jī)分為 4位、 8位、 16位及 32位等。單片機(jī)的中央 處理器(CPU和通用微處理器基本相同,只是增設(shè)了“面向控制”的處理功能,例如 位處理、查表、多種跳轉(zhuǎn)、乘除法運(yùn)算、狀態(tài)檢測(cè)、中斷處理功能等,增強(qiáng)了控制的實(shí) 用性和靈活性。第2章MSC-51芯片簡(jiǎn)介2.1 MCS-51

10、單片機(jī)內(nèi)部結(jié)構(gòu)8051是MCS-51系列單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。 8051單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì) 數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等 三大總線,現(xiàn)在我們分別加以說(shuō)明:中央處理器: 中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是 8位數(shù)據(jù)寬度的處理器,能處理 8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn) 算和控制輸入輸出功能等操作。數(shù)據(jù)存儲(chǔ)器(RAM)8051內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是 統(tǒng)一編址的,專

11、用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問(wèn),而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAMR有128個(gè),可存放讀寫(xiě)的數(shù)據(jù),運(yùn)算的中間結(jié)果 或用戶定義的字型表。8051時(shí)鐘 U051內(nèi)部結(jié)構(gòu)1程序存儲(chǔ)器1 1數(shù)據(jù)存儲(chǔ)器1 1定時(shí)計(jì)數(shù)器1 im MilJ111211uu1r "iP! 1二r 并行時(shí)口口 I串行匾信口 I中斷生筑圖1程序存儲(chǔ)器(ROM)8051共有4096個(gè)8位掩膜ROM用于存放用戶程序,原始數(shù)據(jù)或表格。定時(shí)/計(jì)數(shù)器(ROM)8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程 序轉(zhuǎn)向。并行輸入輸出(I/O) 口:8051共有4組8位I/O

12、口(P0、P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。全雙工串行口:8051內(nèi)置一個(gè)全雙工串行通信口,用于和其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口 既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。2.2中斷系統(tǒng)8051具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有 2 級(jí)的優(yōu)先級(jí)別選擇。2.3 時(shí)鐘電路8051內(nèi)置最高頻率達(dá)12MHZ勺時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但 8051 單片機(jī)需外置振蕩電容。單片機(jī)的結(jié)構(gòu)有兩種類(lèi)型,一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)的形式,即哈佛 (Harvard) 結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程

13、序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器合二為 一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-5係列單片機(jī)采用的是哈佛結(jié) 構(gòu)的形式,而后續(xù)產(chǎn)品 16位的MCS-96系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。下圖是MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖2PO. ttP0. 7 P藝 0P2 T- 2.4MCS-51的引腳說(shuō)明II均采用|40Pin封裝的雙列直接DIP結(jié) 源和地線兩根,樣置石英振蕩器的時(shí) 3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的RAMMCS-51系列單.片機(jī)匚=J置T蹲f個(gè)引腳中 鐘線兩根,4組8位共32*1® '口,中斷I口線和P 功能加以說(shuō)明::備 MCS-51的引腳說(shuō)明:h|

14、_MCS-51系列單片機(jī)中的.構(gòu),右圖是它們的刪配配置v 的時(shí)鐘線兩根,盤(pán)組區(qū)扁共 咗個(gè)7 些引腳的功能加以說(shuō)明:如圖中的.8031、 8051 及 875構(gòu),右圖是它們的綁腳功能加以說(shuō)明:圖3 iPin9:RESET/Vp<J 復(fù) 鐘電路開(kāi)始工作,:在石 以上的高電平,系統(tǒng)即初扌 PC指向 0000H P0-P3 輸 入07H,其它專用寄存器 為低電平后,系統(tǒng)即從 初始復(fù)位不改變RAM包 8051的初始態(tài)。辰蕩器的時(shí)ITKP1805T及875槪均采用40個(gè)引腳中嚴(yán)正電源和地P1. 0C1Pl. 1E39P1. 2r3SP1. 3E37F1YE3&FI. 5C藥P1.6匚34F1

15、. 7C33RSTC52SKD/P5 0匸1031TKD/P3. 1E1180IWT0/P3. 2C122勺IITT1/P?. ?C1$T0/P3. 4C1427T1/P3. 51WP亂 GC1526U1625ED/PS. JC1724XT4L2Cie23ITU1E1522GHD匚?021稈序I計(jì)數(shù)器線封裝的勺根,外置 斷口線和p3口線復(fù)用1列直接DIP結(jié)石英振蕩器 現(xiàn)在我們對(duì)這Ili潮皆3段存劉 Vcc TO. O/ADO 5 PO. 1/ADll2 PO 2/AB23 PO. 3/1D3 PO. 4/1A4 TO 5/AD5 7 PO. 6/AM FO, gA/m3 ALE/jMiC2 P

16、ESN3 P2. 7/A1S F2. 6/114 P2. 5/il3 P2. 4/Al 23 P2, 3/ill P2. 2/110 n P2. i/M2 P2 0/A8I 醉信號(hào)復(fù)用腳,當(dāng)8051通電,時(shí) -RESE引腳上出現(xiàn)24個(gè)時(shí)鐘周期 始復(fù)位。初始化后,程序計(jì)數(shù)器 出口全部為高電平,堆棧指針寫(xiě) 被清“ 0”。RESET由高電平下降 0000H地址開(kāi)始執(zhí)行程序。然而, 括工作寄存器R0-R7)的狀態(tài),8051的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位,見(jiàn)下圖 4。此外,RESET/pd 還是一復(fù)用腳,V斷電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟 失。1nBESET80

17、51V z2211上電自動(dòng)復(fù)位S05147QKKESET手動(dòng)復(fù)位電蹄3Q51XI X260511號(hào)XTAL2吋鐘源18XTAL1外部時(shí)鐘方式內(nèi)部時(shí)鐘方式 Pin30:ALE/汀】;當(dāng)訪問(wèn)外部程序器時(shí),ALE(地址鎖存)的輸出用于鎖存地址的低位 字節(jié)。而訪問(wèn)內(nèi)部程序存儲(chǔ)器時(shí),ALE端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號(hào),這個(gè)信 號(hào)可以用于識(shí)別單片機(jī)是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪 問(wèn)外部程序存儲(chǔ)器,ALE會(huì)跳過(guò)一個(gè)脈沖。如果單片機(jī)是EPROM在編程其間,.b將用于輸入編程脈沖。 Pin29: 當(dāng)訪問(wèn)外部程序存儲(chǔ)器時(shí),此引腳輸出負(fù)脈沖選通信號(hào),PC的16位地 址數(shù)據(jù)將出現(xiàn)在P

18、0和P2 口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到 P0 口上,由CPU賣(mài) 入并執(zhí)行。 Pin31:EA/Vpp程序存儲(chǔ)器的內(nèi)外部選定線,8051和8751單片機(jī),內(nèi)置有4kB的程序存儲(chǔ)器,當(dāng)EA為高電平并且程序地址小于4kB時(shí),讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù), 而超過(guò)4kB地址則讀取外部指令數(shù)據(jù)。如 EA為低電平,則不管地址大小,一律讀取外 部程序存儲(chǔ)器指令。顯然,對(duì)內(nèi)部無(wú)程序存儲(chǔ)器的8031,EA端必須接地。在編程時(shí),EA/Vpp腳還需加上21V的編程電壓。第3章8255芯片簡(jiǎn)介3.1 8255并行接口8255 可編程并行接口芯片有三個(gè)輸入輸出端口,即 A 口、B 口和C口,對(duì)應(yīng)于引腳 PA&am

19、p;PA0 PB&PB0和PCT-PCQ其內(nèi)部還有一個(gè)控制寄存器,即控制口。通常 A 口、 B口作為輸入輸出的數(shù)據(jù)端口。 C口作為控制或狀態(tài)信息的端口,它在方式字的控制下, 可以分成4位的端口,每個(gè)端口包含一個(gè)4位鎖存器。它們分別和端口 A/E配合使用, 可以用作控制信號(hào)輸出或作為狀態(tài)信號(hào)輸入。8255可編程并行接口芯片方式控制字格式說(shuō)明:8255有兩種控制命令字;一個(gè)是方式選擇控制字;另一個(gè)是C 口按位置位/復(fù)位 控制字。其中C口按位置位/復(fù)位控制字方式使用較為繁難,說(shuō)明也較冗長(zhǎng),故在此不作敘述,需要時(shí)用戶可自行查找有關(guān)資料 方式控制字格式說(shuō)明如表1:表1D7D6D5D4D3D2D1

20、D0D7:設(shè)定工作方式標(biāo)志,1有效。D6、D5: A 口方式選擇0 0方式00 1方式 11x 方式2D4:A 口功能(仁輸入,0=輸出)D3:C口高4位功能(仁輸入,0=輸出)D2:B 口方式選擇(0=方式0,仁方式1)D1:B 口功能(仁輸入,0=輸出)D0C 口低4位功能(1=輸入,0=輸出)3.2 8255并行接口芯片工作方式方式0:基本輸入/輸出方式。適用于三個(gè)端口中的任何一個(gè)。每一個(gè)端口都可 以用作輸入或輸出。輸出可被鎖存,輸入不能被鎖存。方式1:選定輸入/輸出方式。這時(shí) A 口或B 口的8位外設(shè)線用作輸入或輸出,C 口的4條線中三條用作數(shù)據(jù)傳輸?shù)穆?lián)絡(luò)信號(hào)和中斷請(qǐng)求信號(hào)。方式2 :

21、雙向總線方式。只有 A口具備雙向總線方式,8位外設(shè)線用作輸入 或輸出,此時(shí)C口的5條線用作通訊的聯(lián)絡(luò)信號(hào)和中斷請(qǐng)求信號(hào)。3.3 74LS373 簡(jiǎn)介74LS373是一種帶三態(tài)門(mén)8D鎖存器,它的管腳示意圖如下示:甘出.acacMta不檢入治一32/、121< X V 2| n uu /o1DID2D3D4D5D6D7351Q-8Q 為8個(gè)輸出端。7Q2Q3Q4Q5Q6Q 了6LE為數(shù)據(jù)打入端:當(dāng)LE為“ 1”時(shí),鎖存器輸出891312狀態(tài)同輸入狀態(tài);當(dāng)LE由“T變“0”時(shí),數(shù)據(jù)14151716181911LEOE1打入鎖存器0E為輸出允許端:當(dāng) OE=0時(shí),三態(tài)門(mén)將打開(kāi); 當(dāng)OE=1時(shí),三

22、態(tài)門(mén)將關(guān)閉,輸出高阻。第4章系統(tǒng)硬件設(shè)計(jì)4.1交通管理的方案論證60S5S80S5S東西道紅燈亮黃燈亮綠燈亮黃燈亮南北道綠燈亮黃燈亮紅燈亮黃燈亮東西、南北兩干道交于一個(gè)十字路口,各干道有一組紅、黃、綠三色的指示燈,指 揮車(chē)輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、 綠燈的狀態(tài)即將切換,且黃燈點(diǎn)亮?xí)r間為東西、南北兩干道的公共停車(chē)時(shí)間。設(shè)東西道 比南北道的車(chē)流量大,指 示燈燃亮的方案如表2。 表2表2說(shuō)明:(1) 當(dāng)東西方向?yàn)?紅燈,此道車(chē)輛禁止通行,東西道行人可通過(guò);南北道為綠燈,此道車(chē)輛通過(guò),行人禁止通 行。時(shí)間為60秒。(2) 黃燈閃爍5秒,警示車(chē)輛和行人 紅、

23、綠燈的狀態(tài)即將切換。(3) 當(dāng)東西方向?yàn)榫G燈,此道車(chē)輛通行;南北方向?yàn)榧t燈,南北道車(chē)輛禁止 通過(guò),行人通行。時(shí)間為80秒。東西方向車(chē)流大 通行時(shí)間長(zhǎng)。(4) 這樣如上表的時(shí)間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車(chē)輛就 能安全暢通的通行。(5) 此表可以根據(jù)車(chē)流量動(dòng)態(tài)設(shè)定紅綠燈初始值。4.2系統(tǒng)硬件設(shè)計(jì)選用設(shè)備8031單片機(jī)一片選用設(shè)備:8031彈片機(jī)一片,8255并行通用接口芯片一 片,74LS07芯片兩片,MAX692'看門(mén)狗一片,共陰極的七段數(shù)碼管兩個(gè)雙向晶閘管 若干個(gè),7805三端穩(wěn)壓電源一個(gè),紅、黃、綠交通信號(hào)燈各兩個(gè),開(kāi)關(guān)鍵盤(pán)、連接導(dǎo) 線若干。4.2.1 系統(tǒng)總框圖如(圖

24、六)紅外對(duì)信號(hào)輸茸刪!IA4.2.2 交通燈硬件線路圖 (見(jiàn)下一頁(yè))4.2.3 系統(tǒng)工作原理(1) 開(kāi)關(guān)鍵盤(pán)輸入交通燈初始時(shí)間,通過(guò) 8051單片機(jī)P1輸入到系統(tǒng)8255(2) 由8051單片機(jī)的定時(shí)器每秒鐘通過(guò) P0 口向8255的數(shù)據(jù)口送信息, 的 PA 口顯示紅、綠、黃燈的燃亮情況;由8255的PC口顯示每個(gè)燈的燃亮?xí)r間。(3)8051通過(guò) 設(shè)置各個(gè)信號(hào)等的燃亮?xí)r間、通過(guò) 8031設(shè)置,綠、紅時(shí)間分別為 60秒、80秒循環(huán)由8051的P0 口向8255的數(shù)據(jù)口輸出。(4)通過(guò)8051單片機(jī)的P3.0位來(lái)控制系統(tǒng)是工作或設(shè)置初值,當(dāng).牌位0就對(duì)系 統(tǒng)進(jìn)行初始化,為1系統(tǒng)就開(kāi)始工作。(5)

25、紅燈倒計(jì)時(shí)時(shí)間,當(dāng)有車(chē)輛闖紅燈時(shí),啟動(dòng)蜂鳴器進(jìn)行報(bào)警,3S后然后恢復(fù) 正常。(6) 增加每次綠燈時(shí)間車(chē)流量檢測(cè)的功能,并且通過(guò)查詢P2.0端口的電平是否為低,開(kāi)關(guān)按下為低電平,雙位數(shù)碼管顯示車(chē)流量,直到下一次綠燈時(shí)間重新記入(7)綠燈時(shí)間倒計(jì)時(shí)完畢,重新循環(huán)0.121 .1 .1 .1 .1 .1 .1 .1 ppppppppX130yt1*0_I'7 6 5 4 3一 一一一 -. 33333333 pppppppp2 10DO1CDK/4 Ho f c r»Dbcdefgt T1I98 542 37 NIo654'3219 11 11 1I 11 91 71-5V

26、1_21 11 11 11 12 22 22 22 2G1_9 衛(wèi)_542J3-7P PPPPPPPRWCREGDADADPDPDPDPDPDPVPPPPPPPPPP8914333333333_3221119652 52o o oo oo O VDDDDDDD L O1!22222 222 oo oooooo pppppppp pppppppp76543 210 76 543210s PNNNN EEPS:L VASN7418一 7 4-3. 11AT89S錯(cuò)誤!第 5章 控制器的軟件設(shè)計(jì)5.1 每秒鐘的設(shè)定延時(shí)方法可以有兩種中的一種是利用 MCS-51內(nèi)部定時(shí)器才生溢出中斷來(lái)確 定 1 秒的

27、時(shí)間,另一種采用的是軟延時(shí)的方法。5.2 計(jì)數(shù)器硬件延時(shí)5.2.1 計(jì)數(shù)器初值計(jì)算定時(shí)器工作時(shí)必須給計(jì)數(shù)器送計(jì)數(shù)器初值, 這個(gè)值是送到TH和TL中的。他是 以加法記數(shù)的, 并能從全 1 到全 0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。 因此,我們可以把 計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值設(shè)定為 C和計(jì)數(shù)初值設(shè)定為T(mén)C可得到如下計(jì)算通 式:TC=M-C式中,M為計(jì)數(shù)器的末值,該值和計(jì)數(shù)器工作方式有關(guān)。在方式 0時(shí)M為213 ; 在方式1時(shí)M的值為216;在方式2和3為285.2.2 計(jì)算公式T=( M- TC T 計(jì)數(shù)或TC=MT/ T計(jì)數(shù)T計(jì)數(shù)是單片機(jī)時(shí)鐘周期TCLK的12倍;TC為定時(shí)初值 如單片機(jī)的主脈沖頻率為T(mén)

28、CLK12MHZ,經(jīng)過(guò)12分頻方式0TMAX= 213 * 1微秒=8.192毫秒方式1TMAX = 216 * 1微秒= 6 5.5 3 6毫秒顯然1秒鐘已經(jīng)超過(guò)了計(jì)數(shù)器的最大定時(shí)間, 所以我們只有采用定時(shí)器和軟件相 結(jié)合的辦法才能解決這個(gè)問(wèn)題.5.2.3 1秒的方法我們采用在主程序中設(shè)定一個(gè)初值為2 0的軟件計(jì)數(shù)器和使T0定時(shí)5 0毫 秒.這樣每當(dāng)T0到50毫秒時(shí)CPU就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計(jì)數(shù)器減1,然后判斷它是 否為零。為零表示1秒已到可以返回到輸出時(shí)間顯示程序。5.2.4 相應(yīng)程序代碼(1)主程序定時(shí)器需定時(shí)5 0毫秒,故T

29、0工作于方式1。初值:TC=MT/ T 計(jì)數(shù) =21650 ms/1us=15536=3CBOHORG 1000HSTART: MOV TMOD, #01H ;令TO為定時(shí)器方式1MOV TH0,#3CHJ裝入定時(shí)器初值MOV TL0,#BOHJMOV IE,#82H;開(kāi)T0中斷SEBTTR O;啟動(dòng)T0計(jì)數(shù)器MOVRO,#14H; 軟件計(jì)數(shù)器賦初值LOOP: SJMP $;等待中斷2)中斷服務(wù)子程序ORG000BHAJMPBRT0ORG00BHBRTO: DJNZ R0,NEXTAJMP TIME ; 跳轉(zhuǎn)到時(shí)間及信號(hào)燈顯示子程序DJNZ MOV RO,#14H;恢復(fù)RO值MOV TH0,

30、#3CH ; 重裝入定時(shí)器初值 MOV TL0, #BOH ;MOV IE, #82HRET1END5.3 軟件延時(shí)MCS-51的工作頻率為2-12MHZ我們選用的8031單片機(jī)的工作頻率為6MHZ 機(jī)器周期和主頻有關(guān), 機(jī)器周期是主頻的 12倍,所以一個(gè)機(jī)器周期的時(shí)間為 12*(1/6M)=2us。我們可以知道具體每條指令的周期數(shù), 這樣我們就可以通過(guò)指令 的執(zhí)行條數(shù)來(lái)確定 1 秒的時(shí)間。具體的延時(shí)程序分析:DELAY:MOV R4,#08H 延時(shí) 1 秒子程序 DE2:LCALL DELAY1DJNZ R4,DE2RET DELAY1:MOV R6,#0 延時(shí) 125ms 子程序MOV R

31、5,#0DE1: DJNZ R5,$DJNZ R6,DE1RETMOV RN , #DATA 字節(jié)數(shù)數(shù)為 2 機(jī)器周期數(shù)為 1 所以此指令的執(zhí)行時(shí)間為 2msDELAY1 為 一個(gè) 雙重循 壞 循環(huán)次 數(shù)為 256*256=65536 所以 延時(shí) 時(shí)間 =65536*2=131072us 約為 125usDELAY R4設(shè)置的初值為8 主延時(shí)程序循環(huán)8次,所以125us*8= 1秒 由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)。5.4 時(shí)間及信號(hào)燈的顯示5.4.1 8051 并行口的擴(kuò)展8051雖然有4個(gè)8位I/O端口,但真正能提供借用的只有 P1 口 ,因?yàn)镻2和 P0 口通常用于

32、傳送外部傳送地址和數(shù)據(jù) ,P3 口也有它的第二功能。因此, 8031 通常需要擴(kuò)展。由于我們用外部輸入設(shè)定紅綠燈倒計(jì)時(shí)初值、 數(shù)碼管的輸出顯示、 紅綠黃信號(hào)燈的顯示都要用到一個(gè) I/O 端口,顯然 8031 的端口是不夠,需要擴(kuò) 展。擴(kuò)展的方法有兩種:(1)借用外部RAM地址來(lái)擴(kuò)展I/O端口;(2)采用I/O接口 新片來(lái)擴(kuò)充。我們用 8255并行接口信片來(lái)擴(kuò)展 I/O 端口。5.4.2 顯示原理:號(hào)燈時(shí)間 ,同時(shí)一直顯示信號(hào)燈的顏色, 這時(shí)在返回定時(shí)子程序定時(shí)一秒, 在顯示黃燈的下一個(gè)時(shí)間,這樣依次把所有燈的色當(dāng)定時(shí)器定時(shí)為 1 秒時(shí),程 序跳轉(zhuǎn)到時(shí)間顯示及信號(hào)燈顯示子程序,它將依次顯示信時(shí)間

33、顯示完后在重新 給時(shí)間計(jì)數(shù)器賦初值 ,重新進(jìn)入循環(huán)。5.4.3 8255PA 口輸出信號(hào)接信號(hào)燈由于發(fā)光二極管為共陽(yáng)極接法,輸出端口為低電平,對(duì)應(yīng)的二極管發(fā)光, 所以可以用置位的方法點(diǎn)亮紅,綠,黃發(fā)光二極管。544 8255輸出信號(hào)和數(shù)碼管的連接LED燈的顯示原理:通過(guò)同名管腳上所加電平的高低來(lái)控制發(fā)光二極管是否點(diǎn)亮而顯示不同的字形如 SP, g、f、e、d、c,、b、a管腳上加上7F H所以 SP上為0伏,不亮的其余為T(mén)TL高電平,全亮的則顯示為8采用共陰極法連接:其中 PCOPBO-a,PC1PB1-b,PC2PB2-c,PC3PB3-d,PC4PB4-e,PC5PB5-f,PC6PB6-

34、gPC7PB7 -SP 接地顯示數(shù)值dop g f e d c b a驅(qū)動(dòng)代碼(16進(jìn)制)00 0 1 1 1 1 1 13FH10 0 0 0 0 1 1 006H20 1 0 1 1 0 1 15BH30 1 0 0 1 1 1 14FH40 1 1 0 0 1 1 066H50 1 1 0 1 1 0 06DH60 1 1 1 1 1 0 07DH70 0 0 0 0 1 1 107H80 1 1 1 1 1 1 17FH表3 驅(qū)動(dòng)代碼表5.4.5 8255 和 8051 的連接用8051的P0 口的p0.7連接8255的片選信號(hào)CS我們用8031的地址采 用全譯碼方式,當(dāng)p0.7 =0

35、 時(shí)片選有效, 其他無(wú)效,p0.1 P0.1 用于選擇 8255 端口P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0A7 A6 A5 A4 A3 A2 A1 A01 X X X X X 0 0 00H為 8255 的 PA 口1XXXXX01 01H為 8255 的 PB 口1XXXXX10 02H為 8255 的 PC 口1XXXXX11 03H為8255的控制口由于8051是分時(shí)對(duì)8255和儲(chǔ)存器進(jìn)行訪問(wèn)所以8051的P0 口不會(huì)發(fā)生沖突5.5程序設(shè)計(jì)流程圖如圖所示程序源代碼ORG 0000HLJMP MAINORG 0003HORG 000BHLJMP T

36、0 INTORG 0013HMAIN : MOV SP,#50H圖8圖9程序流程圖主程序的入口地址跳轉(zhuǎn)到主程序的開(kāi)始處外部中斷0的中斷程序入口地址定時(shí)器0的中斷程序入口地址跳轉(zhuǎn)到中斷服務(wù)程序處外部中斷1的中斷程序入口地址MOV IE,#8EH ;CPU開(kāi)中斷,允許T0中斷,T1中斷和外部中斷1中斷MOV TMOD,#51H設(shè)置T1為計(jì)數(shù)方式,T0為定時(shí)方式,且都工作于模式1MOV TH1,#00H;T1MOV TL1, #00H計(jì)數(shù)器清零SETB TR1SETB EX1SETB IT1啟動(dòng) T1 計(jì)時(shí)器允許 INT1 中斷 選擇邊沿觸發(fā)方式MOV DPTR, #0003HMOV A, #80H

37、 ;給8255賦初值, 8255工作于方式 0MOVX DPTR, AAGAIN: JB P3.1,N0 ; 判斷是否要設(shè)定東西方向紅綠燈時(shí)間的初值,若 P3.1 為 1 則跳轉(zhuǎn)MOV A, P1JB P1.7,RED ; 判斷 P1.7 是否為 1,若為 1 則設(shè)定紅燈時(shí)間,否則 設(shè)定綠燈時(shí)間MOV R0,#00H ;R0 清零MOV R0,A ; 存入東西方向綠燈初始時(shí)間MOV R3, ALCALL DISP1LCALL DELAYAJMP AGAINRED: MOV A, P1ANL A,#7FH ;P1.7 置 0MOV R7,#00H ;R7清零MOV R7,A ; 存入東西方向紅燈

38、初始時(shí)間MOV R3, ALCALL DISP1LCALL DELAYAJMP AGAINN0: SETB TR0 ;啟動(dòng) T0 計(jì)時(shí)器MOV 76H,R7 ;紅燈時(shí)間存入 76HN00: MOV A,76H ;MOV R3, A東西方向禁止,南北方向通行MOV DPTR,#0000H ;置 8255A 口,東西方向紅燈亮,南北方向綠燈亮 MOV A, #0DDHMOVX DPTR, AN01: JB P2.0, B0N02: SETB P3.0CJNE R3,#00H,N01 ; 比較R3中的值是否為0,不為0轉(zhuǎn)到當(dāng)前指令處執(zhí)行 黃燈閃爍 5 秒程序N1: SETB P3.0MOV R3,

39、#05HMOV DPTR,#0000H ;置8255A 口,東西,南北方向黃燈亮MOV A, #0D4HMOVX DPTR, AN11: MOV R4, #00HN12: CJNE R4,#7DH,$ ; 黃燈持續(xù)亮 0.5 秒N13: MOV DPTR,#0000H ; 置 8255A 口,南北方向黃燈滅MOV A, #0DDHMOVX DPTR, AN14: MOV R4, #00HCJNE R4,#7DH,$ ; 黃燈持續(xù)滅 0.5 秒CJNE R3,#00H,N1 ; 閃爍時(shí)間達(dá) 5 秒則退出N2: MOV R7, #00HMOV A,R0 ; 東西通行,南北禁止MOV R3, AMO

40、V DPTR,#0000H ; 置 8255A 口,東西方向綠燈亮,南北方向紅燈亮MOV A, #0EBHMOVX DPTR, AN21: JB P2.0, T03N22: CJNE R3, #00H,N21; 黃燈閃爍 5 秒程序 N3: MOV R3, #05HMOV DPTR,#0000H ;置 8255A 口,東西,南北方向黃燈亮MOV A, #0E2HMOVX DPT, AN31: MOV R4, #00HCJNE R4,#7DH,$ ; 黃燈持續(xù)亮 0.5 秒N32: MOV DPTR,#0000H ; 置 8255A 口,南北方向黃燈滅MOV A, #0EBHMOVX DPTR,

41、 AN33: MOV R4, #00HCJNE R4,#7DH,$ ; 黃燈持續(xù)滅 0.5 秒CJNE R3,#00H,N3 ; 閃爍時(shí)間達(dá) 5 秒則退出SJMP N00; 闖紅燈報(bào)警程序 B0: MOV R2,#03H ; 報(bào)警持續(xù)時(shí)間 3 秒B01: MOV A, R3JZ N1 ; 若倒計(jì)時(shí)完畢,不再報(bào)警CLR P3.0; 報(bào)警CJNE R2,#00H,B01SJMP N02-1 秒延時(shí)子程序判斷 3 秒是否結(jié)束給定時(shí)器TO送定時(shí)10ms的初值N7: RETIT0_INT:MOV TL0,#9AH MOV TH0, #0F1H INC R4判斷延時(shí)是否夠一秒,不夠則調(diào)用顯示子程序清零倒計(jì)

42、時(shí)初值減 1INC R5CJNE R5,#0FAH,T01 ;MOV R5,#00H ;R5 DEC R3 ;DEC R2報(bào)警初值減 1T01: ACALL DISP調(diào)用顯示子程序RETI中斷返回顯示子程序DISP: JNB P2.4, T02DISP1: MOV B, #0AHMOV A,R3;R3中值二轉(zhuǎn)十顯示轉(zhuǎn)換DIV ABMOV 79H,AMOV 7AH,BDIS: MOV A,79H; 顯示十位MOV DPTR, #TABMOVC A, A+DPTRMOV DPTR, #0002HMOVX DPTR, AMOV DPTR, #0001HMOV A, #0F7HMOVX DPTR ,

43、ALCALL DELAYDS2: MOV A,7AH ; 顯示個(gè)位MOV DPTR, #TABMOVC A, A+DPTRMOV DPTR, #0002H MOVX DPTR, AMOV DPTR, #0001HMOV A, #0FBHMOVX DPTR, ARET; 東西方向車(chē)流量檢測(cè)程序 T03: MOV A, R3 SUBB A,#00H; 若綠燈倒計(jì)時(shí)完畢,不再檢測(cè)車(chē)流量JZ N3JB P2.0, T03INC R7CJNE R7, #64H,E1MOV R7,#00H ;中斷到 100 次則清零E1: SJMP N22; 東西方向車(chē)流量顯示程序 T02: MOV B, #0AHMOV A,R7 ;R7 中值二轉(zhuǎn)十顯示轉(zhuǎn)換DIV ABMOV 79H,AMOV 7AH,BDIS3: MOV A,79H顯示十位MOV DPTR, #TABMOVC A, A+DPTRMOV DPTR, #0002HMOVX DPTR, AMOV DPTR, #0001HMOV A, #0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論