已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
黃岡職業(yè)技術(shù)學(xué)院應(yīng)用電子技術(shù)專業(yè)畢業(yè)論文 十字路口交通燈設(shè)計(jì) 學(xué)生姓名: 學(xué) 號: 專 業(yè):應(yīng)用電子 指導(dǎo)老師: 完成時(shí)間: 摘要 本系統(tǒng)主要由 51單片機(jī),顯示模塊,鍵盤模塊,語音模塊,傳感器模塊,恒流源模塊,穩(wěn)壓源模塊等組成。該系統(tǒng)可以設(shè)定每只路燈的開關(guān)燈時(shí)間,還可以通過傳感器來識別外部環(huán)境的明暗變化和有無物體通過,來自動控制路燈的開關(guān),并且路燈的亮度可以通過自制可調(diào)恒流源按需要進(jìn)行自動調(diào)節(jié);同時(shí)系統(tǒng)還能檢測路燈是否發(fā)生故障,若發(fā)生故障則及時(shí)報(bào)警并顯示故障路燈 的地址編號。 目錄 引言 1 1 單片機(jī)概述 2 2 芯片簡介 2 2.1 MSC-51芯片簡介 2 2.2 8255芯片簡介 5 2.3 74LS373 簡介 6 3 系統(tǒng)硬件設(shè)計(jì) 6 3.1交通管理的方案論證 6 3.2 系統(tǒng)硬件設(shè)計(jì) 7 4控制器的軟件設(shè)計(jì) 10 4.1每秒鐘的設(shè)定 10 4.2計(jì)數(shù)器硬件延時(shí) 10 4.3 軟件延時(shí) 11 4.4 時(shí)間及信號燈的顯示 12 4.5 程序設(shè)計(jì) 13 謝辭 20 參考文獻(xiàn) 21 引言 在當(dāng)今,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車輛最常最有效的手段。但這一技術(shù)在 19世紀(jì)就已出現(xiàn)了。 1858 年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。 1868 年,英國機(jī)械工程師納伊特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉(zhuǎn)式方形玻璃 提燈組成,紅色表示停止,綠色表示注意。 1869年 1月 2日,煤氣燈爆炸,使警察受傷,遂被取消。 電氣啟動的紅綠燈出現(xiàn)在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成, 1914年始安裝于紐約市 5號大街的一座高塔上。紅燈亮表示停止,綠燈亮表示通行。 1918 年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴(kuò)音器來啟動紅綠燈,司機(jī)遇紅燈時(shí)按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當(dāng)行人踏上對壓力敏感的路面時(shí),它就能察覺到有人要過 馬路。紅外光束能把信號燈 的紅燈延長一段時(shí)間,推遲汽車放行,以免發(fā)生交通事故。 信號燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。 1968 年,聯(lián)合國道路交通和道路標(biāo)志信號協(xié)定對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線 ,但車輛已十分接近停車線而不能安全停車時(shí)可以進(jìn)入交叉路口。 1 單片機(jī)概述 單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡 稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲器和 I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。 單片機(jī)經(jīng)過 1、 2、 3、 3 代的發(fā)展,目前單片機(jī)正朝 著高性能和多品種方 向發(fā)展,它們的 CPU功能在增強(qiáng),內(nèi)部資源在增多,引角的多功能化,以及低電壓底功耗 。 2 芯片簡介 2.1 MSC-51芯片簡介 MCS-51單片機(jī)內(nèi)部結(jié)構(gòu) 8051是 MCS-51 系列單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。 8051 單片機(jī)包含中央處理器、程序存儲器 (ROM)、數(shù)據(jù)存儲器 (RAM)、定時(shí) /計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明: 中央處理器 : 中央處理器 (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ù)存儲器 (RAM) 8051內(nèi)部有 128 個(gè) 8位用戶數(shù)據(jù)存儲單元和 128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的 RAM 只有 128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。 圖 1 程序存儲器 (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口 (P0、 P1、 P2 或 P3),用于對外部數(shù)據(jù)的傳輸。 全雙工串行口: 8051 內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。 中斷系統(tǒng) : 8051具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí) /計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同 的控制要求,并具有 2級的優(yōu)先級別選擇。 時(shí)鐘電路 : 8051 內(nèi)置最高頻率達(dá) 12MHz 的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但 8051 單片機(jī)需外置振蕩電容。 單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程序存儲器和數(shù)據(jù)存儲器分開的形式,即哈佛 (Harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲器與數(shù)據(jù)存儲器合二為一的結(jié)構(gòu),即普林斯頓 (Princeton)結(jié)構(gòu)。 INTEL 的 MCS-51 系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品 16 位的 MCS-96 系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。 下圖是 MCS-51 系列 單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖 2。 圖 2 MCS-51的引腳說明: MCS-51 系列單片機(jī)中的 8031、 8051 及 8751 均采用 40Pin 封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置, 40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根, 4組 8位共 32個(gè) I/O 口,中斷口線與 P3口線復(fù)用?,F(xiàn)在我們對這些引腳的功能加以說明: MCS-51的引腳說明: MCS-51 系列單片機(jī)中的 8031、 8051 及 8751 均采用 40Pin 封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置, 40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根, 4組 8位共 32個(gè) I/O 口,中斷口線與 P3口線復(fù)用。現(xiàn)在我們對這些引腳的功能加以說明:如圖 3 圖 3 Pin9:RESET/Vpd復(fù)位信號復(fù)用腳,當(dāng) 8051 通電,時(shí)鐘電路開始工作,在 RESET引腳上出現(xiàn) 24 個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器 PC指向 0000H, P0-P3輸出口全部為高電平,堆棧指針寫入 07H,其它專用寄存器被清 0。 RESET 由高電平下降為低電平后,系統(tǒng)即從 0000H 地址開始執(zhí)行程序。然而,初始復(fù)位不改變 RAM(包括工作寄存器 R0-R7)的狀態(tài), 8051的初始態(tài)。 8051 的復(fù)位方式可以是自動復(fù)位,也可以是手動復(fù)位,見下圖 4。此外,RESET/Vpd 還是一復(fù)用腳, Vcc 掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部 RAM的數(shù)據(jù)不丟失。 圖 4 Pin30:ALE/ 當(dāng)訪問外部程序器時(shí), ALE(地址鎖存 )的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序 存儲器時(shí), ALE 端將有一個(gè) 1/6時(shí)鐘頻率的正脈沖信號,這個(gè)信號可以用于識別單片機(jī)是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪問外部程序存儲器, ALE 會跳過一個(gè)脈沖。 如果單片機(jī)是 EPROM,在編程其間, 將用于輸入編程脈沖。 Pin29: 當(dāng)訪問外部程序存儲器時(shí),此腳輸出負(fù)脈沖選通信號, PC的 16位地址數(shù)據(jù)將出現(xiàn)在 P0和 P2口上,外部程序存儲器則把指令數(shù)據(jù)放到 P0口上,由 CPU讀入并執(zhí)行。 Pin31:EA/Vpp程序存儲器的內(nèi)外部選通線, 8051 和 8751 單片機(jī),內(nèi)置有4kB 的程序存儲器,當(dāng) EA 為高電平并且程序地址小于 4kB 時(shí),讀取內(nèi)部程序存儲器指令數(shù)據(jù),而超過 4kB 地址則讀取外部指令數(shù)據(jù)。如 EA 為低電平,則不管地址大小,一律讀取外部程序存儲器指令。 顯然,對內(nèi)部無程序存儲器的 8031,EA 端必須接地。 在編程時(shí), EA/Vpp腳還 需加上 21V的編程電壓。 2.2 8255 芯片簡介 8255可編程并行接口芯片簡介 : 8255可編程并行接口芯片有三個(gè)輸入輸出端口,即 A口、 B口和 C口,對應(yīng)于引腳 PA7 PA0、 PB7 PB0和 PC7 PC0。其內(nèi)部還有一個(gè)控制寄存器,即控制口。通常 A口、 B口作為輸入輸出的數(shù)據(jù)端口。 C口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成 4位的端口,每個(gè)端口包含一個(gè) 4位鎖存器。它們分別與端口 A配合使用,可以用作 控制信號輸出或作為狀態(tài)信號輸入。 8255可編程并行接口芯片方式控制字格式說明 : 8255 有兩種控制命令字;一個(gè)是方式選擇控制字;另一個(gè)是 C 口按位置位復(fù)位控制字。其中 C口按位置位復(fù)位控制字方式使用較為繁難,說明也較冗長,故在此不作敘述,需要時(shí)用戶可自行查找有關(guān)資料。 方式控制字格式說明如表 1: 表 1 D7:設(shè)定工作方式標(biāo)志, 1有效。 D6、 D5: A口方式選擇 0 0 方式 0 0 1 方式 1 1 方式 2 D4: A口功能 ( 1=輸入, 0=輸出) D3: C口高 4位功能 ( 1=輸入, 0=輸出) D2: B口方式選擇 ( 0=方式 0, 1=方式 1) D1: B口功能 ( 1=輸入, 0=輸出) D0: C口低 4位功能 ( 1=輸入, 0=輸出) 8255可編程并行接口芯片工作方式說明 : 方式 0:基本輸入輸出方式。適用于三個(gè)端口中的任何一個(gè)。每一個(gè)端口都可以用作輸入或輸出。輸出可被鎖存, 輸入不能鎖存。 方式 1:選通輸入輸出方式。這時(shí) A 口或 B口的 8位外設(shè)線用作輸入或輸出, C口的 4條線中三條用作數(shù)據(jù)傳輸?shù)穆?lián)絡(luò)信號和中斷請求信號。 方式 2 :雙向總線方式。只有 A口具備雙向總線方式, 8位外設(shè)線用作輸入或輸出,此時(shí) C口的 5條線用作通訊聯(lián)絡(luò)信號和中斷請求信號。 2.3 74LS373 簡介 74LS373 是一種帶三態(tài)門的 8D鎖存器,其管腳示意圖如下示: D7 D6 D5 D4 D3 D2 D1 D0 其中: 1D-8D為 8個(gè)輸入端。 1Q-8Q為 8個(gè)輸出端。 LE為數(shù)據(jù)打入端:當(dāng) LE為 1時(shí),鎖存器輸 出 狀態(tài)同輸入狀態(tài);當(dāng) LE由 1變 0時(shí),數(shù)據(jù) 打入鎖存器 OE為輸出允許端:當(dāng) OE=0時(shí),三態(tài)門打開; 當(dāng) OE=1時(shí),三態(tài)門關(guān)閉,輸出高阻。 3 系統(tǒng)硬件設(shè)計(jì) 3.1交通管理的方案論證 東西、南北兩干道交于一個(gè)十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮?xí)r間為東西、南北兩干道的公共停車時(shí)間。設(shè)東西道比南北道的車流量大,指示燈燃亮的方案如 表 2。 表 2 表 2說明: ( 1)當(dāng)東西方向?yàn)榧t燈,此道車輛禁止通行,東西道行人可通過;南北道為綠燈,此道車輛通過,行人禁止通行。時(shí)間為 60秒。 ( 2)黃燈閃爍 5秒,警示車輛和行人 紅、綠燈的狀態(tài)即將切換。 ( 3)當(dāng)東西方向?yàn)榫G燈,此道車輛通行;南北方向?yàn)榧t燈,南北道車輛禁止 通過,行人通行。時(shí)間為 80秒。 東西方向車流大 通行時(shí)間長。 ( 4)這樣如上表的時(shí)間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車輛就能安全暢通的通行。 ( 5)此表可根據(jù)車流量動態(tài)設(shè)定紅綠燈初始值。 3.2系統(tǒng)硬件設(shè)計(jì) 選用設(shè)備 8031 單片機(jī)一片 選用設(shè)備: 8031彈片機(jī)一片, 8255 并行通用接口芯片一片, 74LS07兩片, MAX692看門狗一片, 共陰極的七段數(shù)碼管兩個(gè)雙向晶閘管若干, 7805三端穩(wěn)壓電源一個(gè),紅、黃、綠交通燈各兩個(gè),開關(guān)鍵盤、連線若干 。 3 2 1 系統(tǒng)總框圖如下: 60S 5S 80S 5S 東西道 紅燈亮 黃燈亮 綠燈亮 黃燈亮 南北道 綠燈亮 黃燈亮 紅燈亮 黃燈亮 圖 6 3 2 2 交通燈硬件線路圖 P1_0 (TIM2)2P1_1 (TIM2EX)3P1_24P1_35P1_46P1_5 (MOSI)7P1_6 (MISO)8P1_7 (SCK)9RESET10P3_0 (RXD)11P3_1 (TXD)13P3_2 (INT0)14P3_3 (INT1)15P3_4 (TIM0)16P3_5 (TIM1)17P3_6 ( WR )18P3_7 ( RD )19X2 (OUT)20X1 (IN)21GND22P2_0 (A8)24P2_1 (A9)25P2_2 (A10)26P2_3 (A11)27P2_4 (A12)28P2_5 (A13)29P2_6 (A14)30P2_7 (A15)31PSEN32ALE / PROG33VPP / EA35P0_7 (AD7)36P0_6 (AD6)37P0_5 (AD5)38P0_4 (AD4)39P0_3 (AD3)40P0_2 (AD2)41P0_1 (AD1)42P0_0 (AD0)43VCC44NC12NC23NC34NC1AT89S52-24JI0.43Kwhite black0.1K0.1K5V1211.0592MHz30pF30pFS10.3K22uF5VS24.3K1 2 3 4 5 6 7 816 15 14 13 12 11 1090.3K123456781615141312111090.3K1 2 3 4 5 6 7 816 15 14 13 12 11 1095VD27O15O39GND10O515D38O412O719D03D718D514O02D413D14VCC20D617OE1O26LE11O616SN74LS373N5VRED1GREEN2YELLOW2RED2YELLOW1GREEN10.3KA11A26f2g3e4d5c8DP7b9a10f2g3e4d5c8DP7b9a101OE11A121A241A361A48GND101Y4121Y3141Y2161Y118VCC202Y432Y352Y272Y192A1112A2132A3152A4172OE195V5V31 2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2040 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2PB3PB4PB5PB6PB7VccD7D6D5D4D3D2D1D0RESETWRPA7PA6PA5PA482555VA11A26RED5VVCC 3 2 3 系統(tǒng)工作原理 ( 1)開關(guān)鍵盤輸入交通燈初始時(shí)間,通過 8051單片機(jī) P1輸入到系統(tǒng) (2) 由 8051 單片機(jī)的定時(shí)器每秒鐘通過 P0口向 8255的數(shù)據(jù)口送信息,由8255的 PA 口顯示紅、綠、黃燈的燃亮情況;由 8255的 PC口顯示每個(gè)燈的燃亮?xí)r間。 (3)8051 通過 設(shè)置 各個(gè)信號等的燃亮?xí)r間、通過 8031 設(shè)置,綠、紅時(shí)間分別為 60秒、 80 秒循環(huán)由 8051的 P0口向 8255的數(shù)據(jù)口輸出。 ( 4) 通過 8051 單片 機(jī)的 P3.0位來控制系統(tǒng)是工作或設(shè)置初值,當(dāng) .牌位 0就對系統(tǒng)進(jìn)行初始化,為 1系統(tǒng)就開始工作。 ( 5)紅燈倒計(jì)時(shí)時(shí)間, 當(dāng)有車輛闖紅燈時(shí),啟動蜂鳴器進(jìn)行報(bào)警, 3S 后然后恢復(fù)正常。 ( 6)增加每次綠燈時(shí)間車流量檢測的功能,并且通過查詢 P2.0 端口的電平是否為低,開關(guān)按下為低電平,雙位數(shù)碼管顯示車流量,直到下一次綠燈時(shí)間重新記入。 ( 7)綠燈時(shí)間倒計(jì)時(shí)完畢,重新循環(huán)。 4控制器的軟件設(shè)計(jì) 4.1每秒鐘的設(shè)定 延時(shí)方法可以有兩種一中是利用 MCS-51 內(nèi)部定時(shí)器才生溢出中斷來確定 1秒的時(shí)間,另一種是采用軟延時(shí) 的方法。 4.2計(jì)數(shù)器硬件延時(shí) 4.2.1 計(jì)數(shù)器初值計(jì)算 定時(shí)器工作時(shí)必須給計(jì)數(shù)器送計(jì)數(shù)器初值,這個(gè)值是送到 TH 和 TL中的。他是以加法記數(shù)的,并能從全 1到全 0時(shí)自動產(chǎn)生溢出中斷請求。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值設(shè)定為 C和計(jì)數(shù)初值設(shè)定為 TC 可得到如下計(jì)算通式 : TC=M-C 式中, M為計(jì)數(shù)器摸值,該值和計(jì)數(shù)器工作方式有關(guān)。在方式 0時(shí) M 為 213 ;在方式 1時(shí) M的值為 216;在方式 2和 3為 28 4.2.2 計(jì)算公式 T=( M TC) T 計(jì)數(shù) 或 T 計(jì) 數(shù) T 計(jì)數(shù) 是單片機(jī)時(shí)鐘周期 的倍;為定時(shí)初值 如單片機(jī)的主脈沖頻率為 ,經(jīng)過分頻 方式 213 微秒毫秒 方式 216 微秒毫秒 顯然秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時(shí)間,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題 4.2.3 秒的方法 我們采用在主程序中設(shè)定一個(gè)初值為的軟件計(jì)數(shù)器和使定時(shí)毫秒這樣每當(dāng)?shù)胶撩霑r(shí)就響應(yīng)它的溢出中斷請求,進(jìn)入他的中斷服務(wù)子 程序。在中斷服務(wù)子程序中,先使軟件計(jì)數(shù)器減,然后判斷它是否為零。為零表示秒已到可以返回到輸出時(shí)間顯示程序。 4.2.4相應(yīng)程序代碼 ()主程序 定時(shí)器需定時(shí)毫秒,故工作于方式。 初值: T 計(jì)數(shù) ms/1us=15536=3CBOH ORG 1000H START: MOV TMOD, #01H ; 令為定時(shí)器方式 MOV TH0, #3CH ;裝入定時(shí) 器初值 MOV TL0, #BOH ; MOV IE, #82H ;開中斷 SEBT T O ;啟動計(jì)數(shù)器 MOV RO, #14H ;軟件計(jì)數(shù)器賦初值 LOOP: SJMP $ ;等待中斷 ()中斷服務(wù)子程序 : DJNZ , AJMP TIME ; 跳轉(zhuǎn)到時(shí)間及信號燈顯示子程序 DJNZ: , ;恢復(fù)值 MOV TH0, #3CH ;重裝入定時(shí)器初值 MOV TL0, #BOH ; MOV IE, #82H 4.3 軟件延時(shí) MCS-51的工作頻率為 2-12MHZ,我們選用的 8031單片機(jī)的工作頻率為 6MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的 12 倍,所以一個(gè)機(jī)器周期的時(shí)間為 12*( 1/6M) =2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定 1秒的時(shí)間。 具體的延時(shí)程序分析: DELAY:MOV R4,#08H 延時(shí) 1秒子程序 DE2:LCALL DELAY1 DJNZ R4,DE2 RET DELAY1:MOV R6,#0 延時(shí) 125ms 子程序 MOV R5,#0 DE1: DJNZ R5,$ DJNZ R6,DE1 RET MOV RN, #DATA 字節(jié)數(shù)數(shù)為 2 機(jī)器周期數(shù)為 1 所以此指令的執(zhí)行時(shí)間為 2ms DELAY1 為 一個(gè) 雙重循 壞 循 環(huán)次 數(shù)為 256*256=65536 所 以延 時(shí) 時(shí) 間=65536*2=131072us 約為 125us DELAY R4設(shè)置的初值為 8 主延時(shí)程序循環(huán) 8次,所以 125us*8= 1 秒 由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)。 4.4 時(shí)間及信號燈的顯示 4.4.1 8051 并行口的擴(kuò)展 8051雖然有 4個(gè) 8位 I/O端口 ,但真正能提供借用的只有 P1口 ,因?yàn)?P2和 P0口通常用于傳送外部傳送地址和數(shù)據(jù) ,P3口也有它的第二功能。因此, 8031通常需要擴(kuò)展。由于我們用外部輸入設(shè)定紅綠燈倒計(jì)時(shí)初值、數(shù)碼管的輸出顯示、紅綠黃信號燈的顯示都要用到一個(gè) I/O端口,顯然 8031的端口是不夠,需要擴(kuò)展。 擴(kuò)展的方法有兩種:( 1)借用外部 RAM 地址來擴(kuò)展 I/O 端口;( 2)采用 I/O接口新片來擴(kuò)充。我們用 8255并行接口信片來擴(kuò)展 I/O端口。 4.4.2 顯示原理: 當(dāng)定時(shí)器定時(shí)為 1 秒,時(shí)程 序跳轉(zhuǎn)到時(shí)間顯示及信號燈顯示子程序,它將依次顯示信號燈時(shí)間 ,同時(shí)一直顯示信號燈的顏色,這時(shí)在返回定時(shí)子程序定時(shí)一秒,在顯示黃燈的下一個(gè)時(shí)間,這樣依次把所有的燈色的時(shí)間顯示完后在重新給時(shí)間計(jì)數(shù)器賦初值 ,重新進(jìn)入循環(huán)。 4.4.3 8255PA 口輸出信號接信號燈 : 由于發(fā)光二極管為共陽極接法,輸出端口為低電平,對應(yīng)的二極管發(fā)光,所以可以用置位方法點(diǎn)亮紅,綠,黃發(fā)光二極管。 4.4.4 8255 輸出信號與數(shù)碼管的連接: LED 燈的顯示原理 :通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點(diǎn) 量而顯示不同的字形如 SP, g,f,e,d,c,b,a 管角上加上所以 上為伏,不亮其余為高電平,全亮則顯示為 采用共陰級連接 : 其中 PC0PB0-a, PC1PB1-b, PC2PB2-c, PC3PB3-d, PC4PB4-e, PC5PB5-f, PC6PB6-g PC7PB7 -SP接地 顯示數(shù)值 dop g f e d c b a 驅(qū)動代碼( 16 進(jìn)制) 0 0 0 1 1 1 1 1 1 3FH 1 0 0 0 0 0 1 1 0 06H 2 0 1 0 1 1 0 1 1 5BH 3 0 1 0 0 1 1 1 1 4FH 4 0 1 1 0 0 1 1 0 66H 5 0 1 1 0 1 1 0 0 6DH 6 0 1 1 1 1 1 0 0 7DH 7 0 0 0 0 0 1 1 1 07H 8 0 1 1 1 1 1 1 1 7FH 表 3 驅(qū)動代碼表 4.4.5 8255 與 8051 的連接 : 用 8051 的 P0 口的 p0.7 連接 8255 的片選信號 cs 我們用 8031 的地址采用全譯碼方式,當(dāng) p0.7 =0 時(shí)片選有效, 其他無效, p0.1 p0.1 用于選擇8255端口 P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0 A7 A6 A5 A4 A3 A2 A1 A0 1 X X X X X 0 0 00H 為 8255 的 PA 口 1 X X X X X 0 1 01H 為 8255的 PB 口 1 X X X X X 1 0 02H 為 8255的 PC 口 1 X X X X X 1 1 03H 為 8255的控制口 由于 8051是分時(shí)對 8255和儲存器進(jìn)行訪問所以 8051的 P0口不會發(fā)生沖突 4.5 程序設(shè)計(jì) 4.5.1 流程圖如圖所示 開始 初始化 等待鍵盤事件 圖 8 圖 9 程序流程圖 4.5.2 程序源代碼 鍵盤事件處理 顯示程序處理 ORG 0000H ;主程序的入口地址 LJMP MAIN ;跳轉(zhuǎn)到主程序的開始處 ORG 0003H ;外部中斷 0的中斷程序入口地址 ORG 000BH ;定 時(shí)器 0的中斷程序入口地址 LJMP T0_INT ;跳轉(zhuǎn)到中斷服務(wù)程序處 ORG 0013H ;外部中斷 1的中斷程序入口地址 MAIN : MOV SP,#50H MOV IE,#8EH ;CPU 開中斷,允許 T0 中斷, T1 中斷和外部中斷 1中斷 MOV TMOD,#51H ;設(shè)置 T1 為計(jì)數(shù)方式 ,T0 為定時(shí)方式,且都工作于模式 1 MOV TH1,#00H ;T1 計(jì)數(shù)器清零 MOV TL1,#00H SETB TR1 ;啟動 T1計(jì)時(shí)器 SETB EX1 ;允許 INT1中斷 SETB IT1 ;選擇邊沿觸發(fā)方式 MOV DPTR ,#0003H MOV A, #80H ;給 8255賦初值, 8255工作于方式 0 MOVX DPTR, A AGAIN: JB P3.1,N0 ;判斷是否要設(shè)定東西方向紅綠燈時(shí)間 的初值,若P3.1為 1 則跳轉(zhuǎn) MOV A,P1 JB P1.7,RED ;判斷 P1.7是否為 1,若為 1則設(shè)定紅燈時(shí)間,否則設(shè)定綠燈時(shí)間 MOV R0,#00H ;R0 清零 MOV R0,A ;存入東西方向綠燈初始時(shí)間 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAIN RED: MOV A,P1 ANL A,#7FH ;P1.7 置 0 MOV R7,#00H ;R7 清零 MOV R7,A ;存入東西方向紅燈初始時(shí)間 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAIN ;- N0: SETB TR0 ;啟動 T0計(jì)時(shí)器 MOV 76H,R7 ;紅燈時(shí)間存入 76H N00: MOV A,76H ;東西方向禁止,南北方向通行 MOV R3,A MOV DPTR,#0000H ;置 8255A口,東西方向紅燈亮,南北方向綠燈亮 MOV A,#0DDH MOVX DPTR, A N01: JB P2.0,B0 N02: SETB P3.0 CJNE R3,#00H,N01 ;比較 R3 中的值是否為 0,不為 0 轉(zhuǎn)到當(dāng)前 指令處執(zhí)行 ;-黃燈閃爍 5 秒程序 - N1: SETB P3.0 MOV R3,#05H MOV DPTR,#0000H ;置 8255A口,東西,南北方向黃燈亮 MOV A,#0D4H MOVX DPTR,A N11: MOV R4,#00H N12: CJNE R4,#7DH,$ ;黃燈持續(xù)亮 0.5 秒 N13: MOV DPTR,#0000H ; 置 8255A口,南北方向黃燈滅 MOV A,#0DDH MOVX DPTR,A N14: MOV R4,#00H CJNE R4,#7DH,$ ;黃燈持續(xù)滅 0.5 秒 CJNE R3,#00H,N1 ;閃爍時(shí)間達(dá) 5 秒則退出 ;- N2: MOV R7,#00H MOV A,R0 ;東西通行,南北禁止 MOV R3,A MOV DPTR,#0000H ; 置 8255A口,東西方向綠燈亮,南北方向紅燈亮 MOV A,#0EBH MOVX DPTR,A N21: JB P2.0,T03 N22: CJNE R3,#00H,N21 ;-黃燈閃爍 5 秒程序 - N3: MOV R3,#05H MOV DPTR,#0000H ;置 8255A口,東西,南北方向黃燈亮 MOV A,#0E2H MOVX DPTR,A N31: MOV R4,#00H CJNE R4,#7DH,$ ;黃燈持續(xù)亮 0.5秒 N32: MOV DPTR,#0000H ; 置 8255A口,南北方向黃燈滅 MOV A,#0EBH MOVX DPTR,A N33: MOV R4,#00H CJNE 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,R3 JZ N1 ;若倒計(jì)時(shí)完畢,不再報(bào)警 CLR P3.0 ;報(bào)警 CJNE R2,#00H,B01 ;判斷 3秒是否結(jié)束 SJMP N02 ;-1秒延時(shí)子程序 - N7: RETI T0_INT:MOV TL0,#9AH ;給定時(shí)器 T0 送定時(shí) 10ms的初值 MOV TH0,#0F1H INC R4 INC R5 CJNE R5,#0FAH,T01 ;判斷延時(shí)是否夠一秒,不夠則調(diào)用顯示子程序 MOV R5,#00H ;R5 清零 DEC R3 ;倒計(jì)時(shí)初值減一 DEC R2 ;報(bào)警初值減一 T01: ACALL DISP ;調(diào)用顯示子程序 RETI ;中斷返回 ;-顯示子程序 - DISP: JNB P2.4,T02 DISP1: MOV B,#0AH MOV A,R3 ;R3 中值二轉(zhuǎn)十顯示轉(zhuǎn)換 DIV AB MOV 79H,A MOV 7AH,B DIS: MOV A,79H ;顯示十位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《硫酸工藝學(xué)》課件
- 二尿素裝置安全課課件
- 《燒傷基礎(chǔ)知識》課件
- 《湖南鄉(xiāng)土地理》課件
- 《孕婦學(xué)校講課》課件
- 單位管理制度集合大合集職工管理
- 單位管理制度集粹匯編人員管理篇十篇
- 單位管理制度分享匯編【人力資源管理篇】十篇
- 單位管理制度分享大全職員管理篇十篇
- 2024教師安全責(zé)任協(xié)議書(28篇)
- 2025年國家圖書館招聘筆試參考題庫含答案解析
- 機(jī)器人課程課程設(shè)計(jì)
- 南充市市級事業(yè)單位2024年公招人員擬聘人員歷年管理單位遴選500模擬題附帶答案詳解
- 9.2溶解度(第2課時(shí))-2024-2025學(xué)年九年級化學(xué)人教版(2024)下冊
- 安全知識考試題庫500題(含答案)
- 2024-2025學(xué)年上學(xué)期南京小學(xué)數(shù)學(xué)六年級期末模擬試卷
- 中國重癥患者腸外營養(yǎng)治療臨床實(shí)踐專家共識(2024)解讀
- 我的專業(yè)成長故事
- 公司管理制度-公司管理制度
- 井用潛水泵的安裝
- 疫情索賠公式及相應(yīng)表格模板Excel
評論
0/150
提交評論