【正文】
01 對計數(shù)器 1設(shè)置計數(shù)初值 0 1 0 10 對計數(shù)器 2設(shè)置計數(shù)初值 0 1 0 11 設(shè)置控制字或給一個命令 0 0 1 00 從計數(shù)器 0讀出計數(shù)值 0 0 1 01 從計數(shù)器 1讀出計數(shù)值 0 0 1 10 從計數(shù)器 2讀出計數(shù)值 當(dāng) A1A0=11 時,通過讀 /寫控制邏輯電路選中控制積存器,此時, CPU 可以寫入控制字。 計數(shù)器 0,計數(shù)器 1,計數(shù)器 2 這 3個計數(shù)器互相獨立,各自可按不同的方式工作。 每個計數(shù)器內(nèi)部都有1個 8位的控制寄存器,三個控制寄存器使用同一端口地址,在編程結(jié)構(gòu)圖中,畫為 1個控制寄存器;每個計數(shù)器內(nèi)部還有 1個計數(shù)初值寄存器、 1 個計數(shù)執(zhí)行部件 ,執(zhí)行部件( CE)是 1個 16位減法計數(shù)器,其起始值等于初值寄存器( CR)的值。 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 C H D O C D r a w n B y :D0D1D2D4D5D6D7WRRD8253D3D08O U T 010D17G A T E 011D26C L K 09D35D44D53D62O U T 113D71G A T E 114C L K 115CS21RD22WR23O U T 217A019G A T E 216A120C L K 2188253U 35CSA0A1O U T 0G A T E 0C L K 0O U T 1G A T E 1C L K 1O U T 2G A T E 2C L K 2 1片 8253 內(nèi)部有 3 個計數(shù)器,分別稱計數(shù)器 0、 2,其結(jié)構(gòu)完全相同,互相之間工作完全獨立。 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ò)信號,不使用中斷,三個通道中的每一個都有可以由程序選定作為輸入或輸出。 A A0:端口選擇信號。 RD:讀信號。 D7~D0:它們是 8255A的數(shù)據(jù)線和系統(tǒng)總線相連。 PC7~PC0: C口數(shù)據(jù)信號線。 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è)備的數(shù)據(jù)發(fā)送子程序。 2) 軟件部分(匯編語言編寫程序) ① 首先要對 8255進行初始化設(shè)計,設(shè)置 8255的工作方式并確定 8255的端口地址。需要 A3 區(qū)的 3 個端口用來接 825 825 8253。 接著 南北方向直行綠燈( 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)。 程序一開始,交通燈全熄滅,若接收到的數(shù)據(jù)為 1 則表示單行線,首先東西方向綠燈 ( 1號燈) 亮,南北方向紅燈 ( 7號燈) 亮持續(xù) 5S;然后東西方向綠燈( 1 號燈) 閃爍 6 次,延遲 3S,南北方向繼續(xù)紅燈 ( 7 號燈) ;接著東西方向黃燈 ( 2 號燈) 亮 3秒,南北方向繼續(xù)紅燈 ( 7 號燈) 。 合肥學(xué)院 計算機科學(xué)與技術(shù)系 微機原理與接口技術(shù) 課程設(shè)計報告 2020~ 2020學(xué)年第 1 學(xué)期 課程 微機原理與接口技術(shù) 課 程 設(shè) 計 名 稱 紅外控制交通燈的設(shè)計與實現(xiàn) 學(xué) 生 姓 名 張玉 學(xué)號 0904012045 專 業(yè) 班 級 計算機科學(xué)與技術(shù)專業(yè)( 09 計本 2) 指 導(dǎo) 教 師 龍夏,何立新 2020 年 12 月 紅外控制交通燈的設(shè)計與實現(xiàn) 一、題義分析與解決方案 1. 題意需求分析 本程序設(shè)計要求使用紅外發(fā)送裝置設(shè)計紅外控制交通燈裝置,通過紅外發(fā)送管,發(fā)出載波信號,根據(jù)接收到的載波信號 ,獲得紅外編碼,根據(jù)編碼,改變交通燈的控制模式。如果輸入 1則使用單行線無左轉(zhuǎn)模式,如果輸入的是 2則使用雙行線帶左轉(zhuǎn)和右轉(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號燈)。 8255 是用來控制交通燈的,通過 8255 的 A 口來控制。 G6區(qū)提供發(fā)光管用來模擬交通燈。 ④對 8251 進行初始化,設(shè)置方式控制字及命令控制字。 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口。而控制邏輯端口實現(xiàn)對其他端口的控制。 PB7~PB0: B口數(shù)據(jù)信號線。同時三個數(shù)據(jù) 端口被自動置為輸入端口。只有當(dāng)其有效時,讀信號寫才對 8255A進行讀寫。當(dāng)此信號有效時, CPU可向 8255A中寫入數(shù)據(jù)。 ③ 參數(shù)說明: 輸入最低電壓: min= , max= V 輸入最高電壓: V 輸出最低電壓: V 輸出最高電壓: V 錯誤 !未找到引用源。 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ā)時鐘。 OUT:輸出信號端。( CE)和 1個輸出鎖存器,它們都是 16 位的。 各計數(shù)器的外部輸入輸出信號如圖所示 。 (2)當(dāng) A1=A0 時,第一次寫入的一定作為控制字 ,此后寫入的作為命令。當(dāng) RD 為低電平時有效,此時,表示 CPU 正在對 8253 的一個計數(shù)器進行讀操作。只有在 CS 為持續(xù)低電平的情況下, RD 和 WR 才會受到確認,否則會被忽略 3) 8253的技術(shù)參數(shù) 因為 8253的控制積存器和 3個計數(shù)器分別具有 獨立的編程地址 ,并且控制字本身的內(nèi)容又確定了所控制的積存器序號 ,所以 ,隊 8253 的編程沒有太多嚴格的順序規(guī)定 ,可以非常靈活 .但是 ,編程有兩條原則必須嚴格遵守 : (1)對計數(shù)器設(shè)置初始值前必須先寫控制字 . (2)初始值設(shè)置時 ,要符合控制字中的格式規(guī)定 ,即只寫低位字節(jié)還是寫高位字節(jié) ,或者高低位字節(jié)都寫 ,控制字中一旦規(guī)定 ,具體初始值設(shè)定時就要一致 . 8253 有兩根地址線 A1A0,對應(yīng) 4 個端口地址,各寄存器的端口地址分配如下:( PC 機中口地址 B0HBFH)。 ① 不可重復(fù) ② 自動重復(fù) ③條件重復(fù) :計數(shù)器在 CLK 的下降沿使計數(shù)值減 1,計數(shù)值減至 0 時,“計數(shù)到”。 CLK: 時鐘。 : 對應(yīng)于編