【正文】
結(jié)構(gòu) 及引腳 在實訓(xùn)電路中采用一種可編程的接口芯片 8155, Intel 公司研制的 8155 不僅具有兩個 8 位的 I/O 端口 (A 口、 B 口 )和一個 6 位的 I/O 端口 (C 口 ),而且還可以提供 256 B 的靜態(tài) RAM 存儲器和一個 14 位的定時 /計數(shù)器。 8155 有 40 個引腳,采用雙列直插封裝,其引腳圖和組成框圖如下圖所示。 (2) I/O 口總線( 22 條): PA0~ PA PB0~ PB7 分別為 A、 B 口線,用于和C B A AD0 12 PA0 21 AD1 13 PA1 22 AD2 14 PA2 23 AD3 15 PA3 24 AD4 16 PA4 25 AD5 17 PA5 26 AD6 18 PA6 27 AD7 19 PA7 28 PB0 29 CE 8 PB1 30 RD 9 PB2 31 WR 10 PB3 32 IO/M 7 PB4 33 ALE 11 PB5 34 PB6 35 PB7 36 TIMEROUT 6 PC0 37 PC1 38 TIMERIN 3 PC2 39 PC3 1 PC4 2 RESET 4 PC5 5 8155 256 字節(jié) 靜態(tài) RAM 14 位 定時 計數(shù)器 TIMER IN TIMER OUT VCC(163。5 V) VSS(GND) PA0161。PA7 IO/M CE ALE RD WR RESET AD0161。AD7 PB0161。PB7 PC0161。PC7 15 外設(shè)之間傳遞數(shù)據(jù); PC0~ PC5 為 C 端口線,既可與外設(shè)傳送數(shù)據(jù),也可以作為A、 B 口的控制聯(lián)絡(luò)線。 ? WR, RD:讀 /寫線,控 制 8155 的讀、寫操作。它常和單片機(jī)的 ALE 端相連,在 ALE的下降沿將單片機(jī) P0 口輸出的低 8 位地址信息鎖存到 8155 內(nèi)部的地址鎖存器中。 ? CS:片選線,低電平有效。當(dāng) =0 時,選中 8155 的 256 B RAM;當(dāng)=1 時,選中 8155 片內(nèi) 3 個 I/O 端口以及命令 /狀態(tài)寄存器和定時 /計數(shù)器。其尋址范圍由以及 AD0~ AD7 的接法決定,這和前面講到的片外 RAM 擴(kuò)展時討論的完全相同。對這 256 B RAM 的操作使用片外 RAM 的讀 /寫指令 “MOVX”。與 I/O 端口和計數(shù)器使用有關(guān)的內(nèi)部寄存器共有 6個,需要三位地址來區(qū)分 。 8155 控制字的格式如下圖所示。 16 ? 狀態(tài)寄存器中存放有狀態(tài)字,狀態(tài)字反映了 8155 的工作情況。 A 口中斷請求標(biāo)志: 0: 無。 1: 滿A 口中斷允許: 0: 禁止。 1: 有B 口緩沖器: 0: 空。 1: 允許定時器中斷標(biāo)志:1: 有定時器溢出中斷0: 讀狀態(tài)字后或硬件復(fù)位后I N T EBT I M E R B B F I N T RBI N T EAI N T RAA B F ? 狀態(tài)寄存器和命令寄存器是同一地址,狀態(tài)寄存器只能讀出不能寫入,也就是說,狀態(tài)字只能通過指令 MOVX A , DPTR 或 MOVX A, Ri 來讀出,以此來了解 8155 的工作狀態(tài)。 I/O 口的工作方式 當(dāng)使用 8155 的三個 I/O 端口時,它們可以工作于不同的方式,工作方式的選擇取決于寫入的控制字。 方式 2 時, A、 B、 C 口都工作于基本 I/O 方式,可以直接和外設(shè)相連,采用 “MOVX”類的指令 進(jìn)行輸入 /輸出操作。方式 4 時, A、B 口均為選通 I/O 方式, C 口作為 A、 B 口的聯(lián)絡(luò)線。 A,B 口為輸出驅(qū)動 16 個 LED, C口為輸入完成按鍵掃描功能。 當(dāng) TIMERIN 接外脈沖時為計數(shù)方式,接系統(tǒng)時鐘時為定時方式,實際使用時一定要注意芯片允許的最高計數(shù)頻率! 定時 /計數(shù)器的初始值和輸出方式由高、低 8 位寄存器的內(nèi)容決定,初始值 14 位,其余兩位定義輸出方式 。 8155 的控制字定時 / 計數(shù)器工作情況D7 D60 0 無操作,即不影響定時器的工作0 11 0立即停止定時器的計數(shù)定時器計滿回 0 后停止計數(shù)1 1若定時器不工作,則開始計數(shù);若定時器正在計數(shù),則計滿回 0 后按新輸入的長度值開始計數(shù)的控制字定時 計數(shù)器工作情況無操作,即不影響定時器的工作立即停止定時器的計數(shù)定時器計滿回 后停止計數(shù)若定時器不工作,則開始計數(shù);若定時器正在計數(shù),則計滿回 后按新輸入的長度值開始計數(shù)的控制字的控制字定時 計數(shù)器工作情況定時 計數(shù)器工作情況無操作,即不影響定時器的工作無操作,即不影響定時器的工作立即停止定時器的計數(shù)定時器計滿回 后停止計數(shù)立即停止定時器的計數(shù)定時器計滿回 后停止計數(shù)若定時器不工作,則開始計數(shù);若定時器正在計數(shù),則計滿回 后按新輸入的長度值開始計數(shù)若定時器不工作,則開始計數(shù);若定時器正在計數(shù),則計滿回 后按新輸入的長度值開始計數(shù) 8051 單片機(jī) 并行 I/O 擴(kuò)展 使用單片機(jī) 本身的 I/O 口,可以實現(xiàn)一些簡單的數(shù)據(jù)輸入 /輸出傳送,但是對于復(fù)雜的 I/O 操作,必須有接口電路的協(xié)調(diào)與 控制才能進(jìn)行。 1. 以 P0 口的 8 位口線充當(dāng)?shù)臀坏刂肪€ /數(shù)據(jù)線 由于 P0 口一線兩用,既傳送地址又傳送數(shù)據(jù),所以采用分時技術(shù)對它上面的地址和數(shù)據(jù)進(jìn)行分離。 2. 以 P2 口的口線作高位地址線。 8051 與 8155 地址、數(shù)據(jù)線連接方法是, 8051 P0 口與 8155 的 AD總線直接連接, 既作為低 8 位地址總線,又作為數(shù)據(jù)總線。如圖所示 T i t l eN um be r R e vi s i o nS iz eA4D a t e : 10 J un 20 09 S h e e t o f F il e : C : \ D oc um e n t s a nd S e t ti ng s \ A dm i n i s t r a t o r \ 桌面 \論文 \ B a c k up o f C op y o f M C U _8 1 55 .D D BD r a w n B y:R 11 210 KA D 012P A 021A D 113P A 122A D 214P A 223A D 315P A 324A D 416P A 425A D 517P A 526A D 618P A 627A D 719P A 728P B 029CE8P B 130RD9P B 231WR10P B 332I O / M7P B 433A L E11P B 534P B 635P B 736T M R O U T6P C 037P C 138T M R I N3P C 239P C 31P C 42R E S E T4P C 55U 10 281 55CEE A / V P31X119X218R E S E T9RD17WR16I N T 012I N T 113T014T115P 101P 112P 123P 134P 145P 156P 167P 178P 0039P 0138P 0237P 0336P 0435P 0534P 0633P 0732P 2021P 2122P 2223P 2324P 2425P 2526P 2627P 2728P S E N29A L E / P30T X D11R X D10U 10 180 51G N D 圖 8051與 8155的連接 8155 的 CE 接 ,IO/M 端與 相連。由此得到圖中 8155的地址編碼如下: 命令 /狀態(tài)口 7F00H A口 7F01H B口 7F02H C口 7F03H 定時器低字節(jié) 7F04H 19 定時器高字節(jié) 7F0。當(dāng)其內(nèi)部有一定電流通過時,它就會發(fā)光。 在這個設(shè)計里面我用的是 16 只燈 ,如圖 所示。我們只需要將初值( 0x7FFF)不斷地循環(huán)右移或左移那么就會看到 LED 輪流被點(diǎn)亮,也就實現(xiàn)了流水燈功能。 流水燈的幾個模式實現(xiàn)方法都是一樣的。幾種模式對應(yīng)的寄存器初值如下: 0x7FFF。 0x0FFF。 0x00FF。 如果我們把初值設(shè)定為 0x0FFF 那么同一時間內(nèi)就會有 4 只 LED 點(diǎn)亮,最終的效果就是四只 LED在跑。 此外我還設(shè)置了正轉(zhuǎn)和反轉(zhuǎn), 正轉(zhuǎn)和反轉(zhuǎn)其實就是循環(huán)左移和循環(huán)右移的區(qū)別。 獨(dú)立式按鍵是每個按鍵占用一根 I/O端線。 特點(diǎn):①各按鍵相互獨(dú)立,電路配置靈活;②按鍵數(shù)量較多時, I/O端線耗費(fèi)較多,電路結(jié)構(gòu)繁雜;③軟件結(jié)構(gòu)簡單。消除抖動不良后果的方法: 軟件去抖動 : 檢測到按鍵按下后,執(zhí)行延時 10ms子程序后再確認(rèn)該鍵是否確實按下,消除抖動影響。合理配合按鍵與狀態(tài)變量還可以實現(xiàn)一個按鍵多種功能。設(shè)初值為 0x7FFF,啟動 50MS 定時器,當(dāng)按下開始鍵后置位開始標(biāo)志,每隔 50MS 進(jìn)行循環(huán)移一位,第一次移位后 為 0xBFFF,第二次移位后為 0xDFFF…… 入 口初 始 化 8 1 5 5初 始 化 8 0 5 1延 時 消 抖把 鍵 碼 移 入 顯 存有 鍵 按 下讀 按 鍵Y 圖 按鍵掃描 流程圖 第五章 結(jié) 論 單片機(jī)將不斷的引導(dǎo)電子產(chǎn)品的創(chuàng)新,所以學(xué)好單片機(jī)的相關(guān)知識是十分必要的,例如單片機(jī)的組成及結(jié)構(gòu)知識,單片機(jī)的指令系統(tǒng),程序設(shè)計,還有相關(guān)的擴(kuò)展應(yīng)用知識,本設(shè)計就是一個很典型的 也很簡單的 單片機(jī)擴(kuò)展應(yīng)用,此外還有接口技術(shù)等等。 2. 介紹了并行擴(kuò)展芯片 8155,介紹了 8155 的 命令狀態(tài)寄存器, I/O 口的工作方式,以及計數(shù) /定時器的使用。 3. 介紹了單片機(jī) 8051 與并行接口芯片 8155 的接口設(shè)計的應(yīng)用 —— 流水燈(或叫跑馬燈)。 22 這是一個非常簡單的設(shè)計,通過本設(shè)計 ,本人對單片機(jī)與并行接口芯片的接口設(shè)計做了一些研究工作,并作 出了實物,積累了一定的經(jīng)驗,為以后的科研和工作打下了堅實的基礎(chǔ) 23 參考文獻(xiàn) 1. 南建輝,熊鳴,王軍茹 MCS51 單片機(jī)原理及應(yīng)用實例 清華大學(xué)出版社 2020年 3 月 2. 何立民 單片機(jī)原理及系統(tǒng)設(shè)計 ( 系統(tǒng)配置與接口技術(shù)) 北京航空航天大學(xué)出版社 1994 年 3. 張迎新 單片微型計算機(jī)原理、應(yīng)用及接口技術(shù) 國防工業(yè)出版社 1993 年 4. 陳粵初 單片機(jī)應(yīng)用系統(tǒng)設(shè)計與實踐 北京航空航天大學(xué)出版社 1993 年 5. 孫涵芳 ,徐愛卿 MCS51/96 系列單片機(jī)原理及應(yīng)用(修訂版) 北京航空航天大學(xué)出版社 2020 年 6. 李廣弟,朱月秀,冷祖祈 單片機(jī)基礎(chǔ)(第三版) 北京航空航天大學(xué)出版社 2020 年 畢業(yè)設(shè)計