【正文】
合肥學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系 微機(jī)原理與接口技術(shù) 課程設(shè)計(jì)報(bào)告 2020~ 2020學(xué)年第 1 學(xué)期 課程 微機(jī)原理與接口技術(shù) 課 程 設(shè) 計(jì) 名 稱 紅外控制交通燈的設(shè)計(jì)與實(shí)現(xiàn) 學(xué) 生 姓 名 張玉 學(xué)號(hào) 0904012045 專 業(yè) 班 級(jí) 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)( 09 計(jì)本 2) 指 導(dǎo) 教 師 龍夏,何立新 2020 年 12 月 紅外控制交通燈的設(shè)計(jì)與實(shí)現(xiàn) 一、題義分析與解決方案 1. 題意需求分析 本程序設(shè)計(jì)要求使用紅外發(fā)送裝置設(shè)計(jì)紅外控制交通燈裝置,通過(guò)紅外發(fā)送管,發(fā)出載波信號(hào),根據(jù)接收到的載波信號(hào) ,獲得紅外編碼,根據(jù)編碼,改變交通燈的控制模式。 本程序設(shè)計(jì)需應(yīng)用軟件控制并運(yùn)行接口電路,使連接在該接口上的紅、綠、黃發(fā)光二極管按交通紅、綠、黃燈形式閃爍。并通過(guò)人機(jī)交互輸入 1 或 2 來(lái)按照預(yù)先設(shè)定好的紅外編碼,最終得到紅外載波,并根據(jù)得到的低電平延時(shí)來(lái)判斷輸入的1還是 2。如果輸入 1則使用單行線無(wú)左轉(zhuǎn)模式,如果輸入的是 2則使用雙行線帶左轉(zhuǎn)和右轉(zhuǎn)。 程序一開(kāi)始,交通燈全熄滅,若接收到的數(shù)據(jù)為 1 則表示單行線,首先東西方向綠燈 ( 1號(hào)燈) 亮,南北方向紅燈 ( 7號(hào)燈) 亮持續(xù) 5S;然后東西方向綠燈( 1 號(hào)燈) 閃爍 6 次,延遲 3S,南北方向繼續(xù)紅燈 ( 7 號(hào)燈) ;接著東西方向黃燈 ( 2 號(hào)燈) 亮 3秒,南北方向繼續(xù)紅燈 ( 7 號(hào)燈) 。接著南北方向綠燈 ( 5號(hào)燈)亮,東西方向紅燈 ( 3號(hào)燈) 亮 持續(xù) 5S;然后南北方向綠燈 ( 5 號(hào)燈) 閃爍 6次,延遲 3S,東西方向 繼續(xù) 紅燈 ( 3 號(hào)燈) ;接著南北 方向 黃燈( 6 號(hào)燈)亮 3 秒,東西方向 繼續(xù) 紅燈( 3號(hào)燈),再跳到一開(kāi)始,如此循環(huán)。 若紅外接受到的數(shù)據(jù)為 2,則表示選擇的模式為雙行線帶左轉(zhuǎn)模式。首先東西方向直行綠燈 ( 1 號(hào)燈) 亮, 左轉(zhuǎn)紅燈( 4 號(hào)燈)亮, 南北方向 直行 紅燈 ( 7號(hào)燈) 亮 ,左轉(zhuǎn)紅燈( 8 號(hào)燈)亮 5秒;然后東西方向 直行 綠燈 ( 1 號(hào)燈) 閃爍6次,延遲 3S, 左轉(zhuǎn)紅燈( 4 號(hào)燈)亮, 南北方向繼續(xù)紅燈 ( 7 號(hào)燈和 8 號(hào)燈) ;之后東西方向左轉(zhuǎn) 綠 燈 ( 2 號(hào)燈) 亮 5 秒, 直行紅燈( 3 號(hào)燈)亮, 南北方向 直行 紅燈 左轉(zhuǎn)紅燈亮 ( 7號(hào)燈 和 8號(hào)燈);接著東西 方向 左轉(zhuǎn) 綠燈 ( 1號(hào)燈) 閃爍 6次,延遲 3S,南北方向繼續(xù)紅燈 ( 7號(hào)燈和 8號(hào)燈)。 接著 南北方向直行綠燈( 5號(hào)燈)亮,左轉(zhuǎn)紅燈( 8 號(hào)燈)亮, 東西方向 直行紅燈左轉(zhuǎn)紅燈( 3 號(hào)燈和 4 號(hào)燈) 亮, 持續(xù) 5秒 ; 接著南北方向直行綠燈 ( 5號(hào)燈)閃爍 6次,延遲 3S,東西方向 繼續(xù)直行 紅燈 左轉(zhuǎn)紅燈 ( 3 號(hào)燈和 4 號(hào)燈) 亮;接著南北方向左轉(zhuǎn)綠燈 (6號(hào)燈 )亮,東西方向 直行 紅燈 左轉(zhuǎn)紅燈 ( 3 號(hào)燈和 4 號(hào)燈) 亮 , 持續(xù) 5 秒 ;然后南北方向左轉(zhuǎn)綠燈 ( 6號(hào)燈) 閃爍 6次,延遲 3S,東西方向 繼續(xù)直行 紅燈 左轉(zhuǎn)紅燈( 3號(hào)燈和 4 號(hào)燈)亮 , 再跳到一開(kāi)始,如此循環(huán)。 2. 解決方法與思路 1) 硬件部分 使用到 STAR ES598PCI實(shí)驗(yàn)儀的模塊包括 : A3區(qū) : CPU總線、片選區(qū) B2區(qū):邏輯筆、單脈沖、頻率發(fā)生器 C1區(qū):電源區(qū) C5 區(qū): 825 8251 B4區(qū): 8255電路 D2區(qū): 0~ 5V電壓輸出 G2區(qū):紅外通訊 G6區(qū):發(fā)光管、按鍵、開(kāi)關(guān) CPU 通過(guò) 8251 的 TXD 端口 將紅外控制信息的發(fā)送到紅外通訊的 IN端口 ,經(jīng)過(guò)紅外無(wú)線通訊將控制信息輸出out端口,然后將信息送到 8251 的 RXD 端口。送到 CPU 進(jìn)行判斷,根據(jù)收到的信號(hào)選擇相應(yīng)的模式。 8255 是用來(lái)控制交通燈的,通過(guò) 8255 的 A 口來(lái)控制。需要 A3 區(qū)的 3 個(gè)端口用來(lái)接 825 825 8253。 B2區(qū)提供脈沖頻率。 D2 區(qū)提供電源。 G6區(qū)提供發(fā)光管用來(lái)模擬交通燈。 2) 軟件部分(匯編語(yǔ)言編寫(xiě)程序) ① 首先要對(duì) 8255進(jìn)行初始化設(shè)計(jì),設(shè)置 8255的工作方式并確定 8255的端口地址。 ② 編寫(xiě)發(fā)光二極管的編碼,交通燈控制 程序,兩種模式的選擇。 ③對(duì) 8253 進(jìn)行初始化,定時(shí)器的選擇,工作方式的選擇,以及編碼方式。 ④對(duì) 8251 進(jìn)行初始化,設(shè)置方式控制字及命令控制字。 ⑤編寫(xiě)紅外通訊設(shè)備的數(shù)據(jù)發(fā)送子程序。 二、硬件設(shè)計(jì) 1.選擇芯片 8255A 1) 8255A在本設(shè)計(jì)中的作用 8255用來(lái)并行的發(fā)送交通燈編碼,接發(fā)光二極管,用來(lái)控制程序所控制要求的交通燈閃爍 2) 8255A 的功能分析 CS: 片選信號(hào),低電平有效; A0、 A1: 地址信號(hào)。 JP52: PC口; JP53: PB口; JP56: PA 口。 11223344D DC CB BA AT i t l eN um be r R e vi s i onS i z eAD a t e : 2020 4 11 S he e t of F i l e : S he e t c hD oc D r a w n B y :D034D133D232D331D430D529D628D727P A 04P A 13P A 22P A 31P A 440P A 539P A 638P A 737P B 018P B 119P B 220P B 321P B 422P B 523P B 624P B 725P C 014P C 115P C 216P C 317P C 413P C 512P C 611P C 710RD5WR36A09A18R E S E T35CS68255U 36D0D1D2D3D4D5D6D7WRRDR S TA0A1P C 5P C 6P C 7P C 2P C 3P C 4P C 0P C 1CS12345678J P 5612345678J P 5312345678J P 52P A 0P A 1P A 2P A 3P A 4P A 5P A 6P A 7P B 0P B 1P B 2P B 3P B 4P B 5P B 6P B 7 圖 21 8255A的內(nèi)部框圖 8255A 是可編程并行接口,內(nèi)部有 3個(gè)相互獨(dú)立的 8位數(shù)據(jù)端口,即 A口、B口和C口。三個(gè)端口都可以作為輸入端口或輸出端口。A口有三種工作方式:即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作為聯(lián)絡(luò)信號(hào)使用。 8255A 的工作只有當(dāng)片選 CS 效時(shí)才能進(jìn)行。而控制邏輯端口實(shí)現(xiàn)對(duì)其他端口的控制。 8255A 的操作功能表 CS RD WR A1 A0 操 作 數(shù) 據(jù) 傳 送 方 式 0 0 1 0 0 讀 A 口 A 口數(shù)據(jù) → 數(shù)據(jù)總線 0 0 1 0 1 讀 B 口 B 口數(shù)據(jù) → 數(shù)據(jù)總線 0 0 1 1 0 讀 C 口 C 口數(shù)據(jù) → 數(shù)據(jù)總線 0 1 0 0 0 寫(xiě) A 口 數(shù)據(jù)總線數(shù)據(jù) → A口 0 1 0 0 1 寫(xiě) B 口 數(shù)據(jù)總線數(shù)據(jù) → B口 0 1 0 1 0 寫(xiě) C 口 數(shù)據(jù)總線數(shù)據(jù) → C口 0 1 0 1 1 寫(xiě)控制口 數(shù)據(jù)總線數(shù)據(jù) → 控制口 表 21 8255A的操作功能表 8255A 有三種工作方式,用戶可以通過(guò)編程來(lái)設(shè)置。本設(shè)計(jì)用到工作方式 0。 3) 8255A 的技術(shù)參數(shù) ① 與外設(shè)相連的 PA7~PA0: A口數(shù)據(jù)信號(hào)線。 PB7~PB0: B口數(shù)據(jù)信號(hào)線。 PC7~PC0: C口數(shù)據(jù)信號(hào)線。 ② 與 CPU相連的 RESET:復(fù)位信號(hào)。當(dāng)此信號(hào)來(lái)時(shí),所有寄存器都被清除。同時(shí)三個(gè)數(shù)據(jù) 端口被自動(dòng)置為輸入端口。 D7~D0:它們是 8255A的數(shù)據(jù)線和系統(tǒng)總線相連。 CS:片選信號(hào)。在系統(tǒng)中,一般根據(jù)全部接口芯片來(lái)分配,若低位地址(比如 A A A3)組成各種芯片選擇碼,當(dāng)這幾位地址組成某一個(gè)低電平, 8255A被選中。只有當(dāng)其有效時(shí),讀信號(hào)寫(xiě)才對(duì) 8255A進(jìn)行讀寫(xiě)。 RD:讀信號(hào)。當(dāng)此信號(hào)有效時(shí), CPU可從 8255A中讀取數(shù)據(jù)。 WR:寫(xiě)信號(hào)。當(dāng)此信號(hào)有效時(shí), CPU可向 8255A中寫(xiě)入數(shù)據(jù)。 A A0:端口選擇信號(hào)。 8255A內(nèi)部有 3個(gè)數(shù)據(jù)端口和 1個(gè)控制端口,共 4個(gè)端口。規(guī)定: A A0為 00時(shí),選中 A端口; A A0為 01時(shí),選中 B端口; A A0為 10時(shí),選中 C端口; A A0為 11時(shí),選中控制口。 ③ 參數(shù)說(shuō)明: 輸入最低電壓: min= , max= V 輸入最高電壓: V 輸出最低電壓: V 輸出最高電壓: V 錯(cuò)誤 !未找到引用源。 8255A的方式控制字 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 1 0 0 1 1:工作方式 A口方式 0輸出 B口方式 0輸出 C口高 4位輸入 C口低 4位輸入 圖 22 8255A的方式控制字表 方式 0的工作特點(diǎn):這種方式通常不用聯(lián)絡(luò)信號(hào),不使用中斷,三個(gè)通道中的每一個(gè)都有可以由程序選定作為輸入或輸出。 通道的功能為:兩個(gè) 8位通道:通道 A和 B。兩個(gè)四位通道:通道 C高 4位和低四位,任何一個(gè)通道可以作輸入 /輸出,輸入 是不鎖存的,輸出是鎖存的,在方式 0時(shí)各個(gè)通道的輸入 /輸出可有 16種不同的組合。 D7 D6 D5 D4 D3 D2 D1 D0 0 X X X 寫(xiě)入位編碼 寫(xiě)入內(nèi)容 寫(xiě)入位 編碼 0寫(xiě)入 0 D0D7 000111 1寫(xiě)入 1 圖 23 8255A的置位 /控制字表 2.選擇芯片 8253 1) 8253 在本設(shè)計(jì)中的作用 8253 在本實(shí)驗(yàn)中的用作方波發(fā)生器,可編程通信接口 8251A 串行發(fā)送和接受數(shù)據(jù)時(shí)需要脈沖時(shí)鐘, 8253 的作用是為 8251 提供收發(fā)時(shí)鐘。 2) 8253 的功能分析 CS:片選信號(hào),低電平有效; A0、 A1:地址信號(hào); 1122334455667788991010111112121313141415151616D DC CB BA AT i t l eN um be r R e vi s i onS i z eA0D a t e : 2020 12 19 S he e t of F i l e : F : \ I nova t i on\ ..\ S T A R .S