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