




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
期中大作業(yè) 學院: 物理與電子信息工程學院 課題: 【利用8255和51單片機實現(xiàn)數(shù)碼管顯示按鍵數(shù)值的程序】要求: 【4*4矩陣鍵盤,按0到15,數(shù)碼管上分別顯示09,AF】芯片資料:8255:8255是Intel公司生產(chǎn)的可編程并行I/O接口芯片,有3個8位并行I/O口。具有3個通道3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可由軟件選擇,使用靈活,通用性強。8255可作為單片機與多種外設連接時的中間接口電路。8255作為主機與外設的連接芯片,必須提供與主機相連的3個總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時必須具有與外設連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個部分:與CPU連接部分、與外設連接部分、控制部分。8255特性:1.一個并行輸入/輸出的LSI芯片,多功能的I/O器件,可作為CPU總線與外圍的接口。2.具有24個可編程設置的I/O口,即3組8位的I/O口,分別為PA口、PB口和PC口。它們又可分為兩組12位的I/O口:A組包括A口及C口(高4位,PC4PC7),B組包括B口及C口(低4位,PC0PC3)。A組可設置為基本的I/O口,閃控(STROBE)的I/O閃控式,雙向I/O三種模式;B組只能設置為基本I/O或閃控式I/O兩種模式,而這些操作模式完全由控制寄存器的控制字決定. 引腳說明 RESET:復位輸入線,當該輸入端處于高電平時,所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。 CS:芯片選擇信號線,當這個輸入引腳為低電平時,即CS=0時,表示芯片被選中,允許8255與CPU進行通訊;CS=1時,8255無法與CPU做數(shù)據(jù)傳輸。 RD:讀信號線,當這個輸入引腳為低電平時,即CS=0且RD=0時,允許8255通過數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。 WR:寫入信號,當這個輸入引腳為低電平時,即CS=0且WR=0時,允許CPU將數(shù)據(jù)或控制字寫入8255。 D0D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當CPU 執(zhí)行輸入輸出指令時,通過它實現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。 PA0PA7:端口A輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個8位的數(shù)據(jù)輸入鎖存器。 PB0PB7:端口B輸入輸出線,一個8位的I/O鎖存器,一個8位的輸入輸出緩沖器。 PC0PC7:端口C輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個8位的數(shù)據(jù)輸入緩沖器。端口C可以通過工作方式設定而分成2個4位的端口, 每個4位的端口包含一個4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號輸出或狀態(tài)信號輸入端口。A1,A0:地址選擇線,用來選擇8255的PA口,PB口,PC口和控制寄存器。 當A1=0, A0=0時,PA口被選擇; 當A1=0, A0=1時,PB口被選擇; 當A1=1, A0=0時,PC口被選擇; 當A1=1. A0=1時,控制寄存器被選擇。74ls373芯片資料: 74ls373是常用的地址鎖存器芯片,它實質(zhì)是一個是帶三態(tài)緩沖輸出的8D觸發(fā)器,在單片機系統(tǒng)中為了擴展外部存儲器,通常需要一塊74ls373芯片.本文將介紹74ls373的工作原理,引腳圖(管腳圖),內(nèi)結(jié)構(gòu)圖、主要參數(shù)及在單片機系統(tǒng)中的典型應用電路.L低電平;H高電平;X不定態(tài);Q0建立穩(wěn)態(tài)前Q的電平;G輸入端,與8031ALE連高電平:暢通無阻低電平:關門鎖存。圖中OE使能端,接地。當G=“1”時,74LS373輸出端1Q8Q與輸入端1D8D相同;當G為下降沿時,將輸入數(shù)據(jù)鎖存。EG功能00直通Qi = Di01保持(Qi保持不變)1X輸出高阻774ls373在單片機系統(tǒng)中的應用電路圖:當74LS373用作地址鎖存器時,應使OE為低電平,此時鎖存使能端C為高電平時,輸出Q0Q7 狀態(tài)與輸入端D1D7狀態(tài)相同;當C發(fā)生負的跳變時,輸入端D0D7 數(shù)據(jù)鎖入Q0Q7。51單片機的ALE信號可以直接與74LS373的C連接。在MCS-51單片機系統(tǒng)中,常采用74LS373作為地址鎖存器使用,其連接方法如上圖所示。其中輸入端1D8D接至單片機的P0口,輸出端提供的是低8位地址,G端接至單片機的地址鎖存允許信號ALE。輸出允許端OE接地,表示輸出三態(tài)門一直打開。1D8D為8個輸入端。1Q8Q為8個輸出端。 G是數(shù)據(jù)鎖存控制端;當G=1時,鎖存器輸出端同輸入端;當G由“1”變?yōu)椤?”時,數(shù)據(jù)輸入鎖存器中。 OE為輸出允許端;當OE=“0”時,三態(tài)門打開;當OE=“1”時,三態(tài)門關閉,輸出呈高阻狀態(tài)。(1).1腳是輸出使能(OE),是低電平有效,當1腳是高電平時,不管輸入3、4、7、8、13、14、17、18如何,也不管11腳(鎖存控制端,G)如何,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈現(xiàn)高阻狀態(tài)(或者叫浮空狀態(tài));(2).當1腳是低電平時,只要11腳(鎖存控制端,G)上出現(xiàn)一個下降沿,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈現(xiàn)輸入腳3、4、7、8、13、14、17、18的狀態(tài). 鎖存端LE 由高變低時,輸出端8 位信息被鎖存,直到LE 端再次有效。 當三態(tài)門使能信號OE為低電平時,三態(tài)門導通,允許Q0Q7輸出,OE為高電平時,輸出懸空。74LS138:無論從邏輯圖還是功能表我們都可以看到74LS138的八個輸出引腳,任何時刻要么全為高電平1芯片處于不工作狀態(tài),要么只有一個為低電平0,其余7個輸出引腳全為高電平1。如果出現(xiàn)兩個輸出引腳同時為0的情況,說明該芯片已經(jīng)損壞。80C51單片機引腳圖及引腳功能介紹:單片機的40個引腳大致可分為4類:電源、時鐘、控制和I/O引腳。 電源: VCC - 芯片電源,接+5V; VSS - 接地端; 時鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。 控制線:控制線共有4根, ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖 ALE功能:用來鎖存P0口送出的低8位地址 PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。 PSEN:外ROM讀選通信號。 RST/VPD:復位/備用電源。 RST(Reset)功能:復位信號輸入端。 VPD功能:在Vcc掉電情況下,接備用電源。 EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。 EA功能:內(nèi)外ROM選擇端。 Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。 I/O線80C51共有4個8位并行I/O端口:P0、P1、P2、P3口,共32個引腳。P3口還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)。拿到一塊單片機,想要使用它,首先必須要知道怎樣去連線,我們用的一塊89C51的芯片為例,我們就看一下如何給它連線。1、 電源:這當然是必不可少的了。單片機使用的是5V電源,其中正極接40管腳,負極(地)接20管腳。 2、 振蒎電路:單片機是一種時序電路,必須供給脈沖信號才能正常工作,在單片機內(nèi)部已集成了振蕩器,使用晶體振蕩器,接18、19腳。只要買來晶體震蕩器,電容,連上就能了,按圖1接上即可。 3、 復位管腳:按圖1中畫法連好,至于復位是何含義及為何需要復要復位,在單片機功能中介紹。 4、 EA管腳:EA管腳接到正電源端。 至此,一個單片機就接好,通上電,單片機就開始工作了。 【實驗電路圖】【單片機源程序】#include /51單片機頭文件#include /該可使用其中定義的宏來訪問絕對地址#include #define uchar unsigned char /宏的定義變量類型 uchar 代替 unsigned char#define uint unsigned int /宏的定義變量類型 uint 代替 unsigned int#define PA8255 XBYTE0x4000 / 8255的A口地址#define PB8255 XBYTE0x4001 / 8255的B口地址#define PC8255 XBYTE0x4002 / 8255的C口地址#define PD8255 XBYTE0x4003 / 8255的控制口地址uchar temp,key; /定義變量temp,key為按鍵鍵值,無實際意義void delay(uint z) /延遲程序 uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); void ini_8255() /初始化8255函數(shù) PD8255 = 0x81; void display() /顯示函數(shù),不可刪除,刪除出現(xiàn)連閃情況 PB8255 = 0xff; / PB8255全部置1,數(shù)碼管清0 PA8255 = 0x00; / PA8255全部置0,對數(shù)碼管進行位選,選中六個數(shù)碼管 delay(100); /延遲 void keyscan(void) /按鍵掃描程序,讓數(shù)碼管顯示按鍵數(shù)值 PC8255 = 0xef; /PC8255選中JL1列,JL1置0,其他置1 if(temp != 0xef) delay(10); /延遲防抖 temp = PC8255; switch(temp) case 0xee: key = 0x0f; PB8255 = 0x8e; /第15按鍵鍵值,數(shù)碼管顯示F break; case 0xed: key = 0x0b; PB8255 = 0x83; /第11按鍵鍵值,數(shù)碼管顯示B break; case 0xeb: key = 0x07; PB8255 = 0xf8; /第7按鍵鍵值,數(shù)碼管顯示7 break; case 0xe7: key = 0x03; PB8255 = 0xb0; /第3按鍵鍵值,數(shù)碼管顯示3 break; while(temp != PC8255); PC8255 = 0xdf; if(temp != 0xdf)/PC8255選中JL2列,JL2置0,其他置1 delay(10); temp = PC8255; switch(temp) case 0xde: key = 0x0e; PB8255 = 0x86; /第14按鍵鍵值,數(shù)碼管顯示E break; case 0xdd: key = 0x0a; PB8255 = 0x88; /第10按鍵鍵值,數(shù)碼管顯示A break; case 0xdb: key = 0x06; PB8255 = 0x82; /第6按鍵鍵值,數(shù)碼管顯示6 break; case 0xd7: key = 0x02; PB8255 = 0xa4; /第2按鍵鍵值,數(shù)碼管顯示2 break; while(temp != PC8255); PC8255 = 0xbf; /PC8255選中JL3列,JL3置0,其他置1 if(temp != 0xbf) delay(10); temp = PC8255; switch(temp) case 0xbe: key = 0x0c; PB8255 = 0xa1; /第13按鍵鍵值,數(shù)碼管顯示C break; case 0xbd: key = 0x09; PB8255 = 0x90; /第9按鍵鍵值,數(shù)碼管顯示9 break; case 0xbb: key = 0x05; PB8255 = 0x92; /第5按鍵鍵值,數(shù)碼管顯示5 break; case 0xb7: key = 0x01; PB8255 = 0xf9; /第1按鍵鍵值,數(shù)碼管顯示1 break;while(temp != PC8255); PC8255 = 0x7f; /PC8255選中JL4列,JL4置0,其他置1 if(temp != 0x7f) delay(10); temp = PC8255; switch(temp) case 0x7e: key = 0x0b; PB8255 = 0xc6; /第12按鍵鍵值,數(shù)碼管顯示B break; case 0x7d: key = 0x08; PB8255 = 0x80;/第8按鍵鍵值 ,數(shù)碼管顯示8 break; case 0x7b: key = 0x04; PB8255 = 0x99;/第4按鍵鍵值 ,數(shù)碼管顯示4 break; case 0x77: key = 0x00; PB8255 = 0xc0;/第0按鍵鍵值 ,數(shù)碼管顯示0 break;while(temp != PC8255); void main() /主函數(shù) ini_8255(); /8255初始化子函數(shù) while(1) /不斷循環(huán)掃描矩陣鍵盤 temp != PC8255; keyscan(); 【實驗結(jié)果】【心得體會】 通過這次實驗,我對51單片機有了深刻理解,對書本上理論知識的運用,發(fā)現(xiàn)要學好和認識一種芯片,最快的就是去運用它,哪怕是做簡單的仿真。一直
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡直播營銷試題及答案
- 痛風考試題及答案
- 2025年房地產(chǎn)企業(yè)策劃合作保密協(xié)議
- 2025年雙邊貿(mào)易協(xié)議(現(xiàn)匯結(jié)算方式)
- 2025年房產(chǎn)所有權(quán)與交易協(xié)議
- 2025年綜合鋼結(jié)構(gòu)加工業(yè)務合作協(xié)議
- 企業(yè)法律合規(guī)管理經(jīng)濟效益和社會效益
- 2025年金融服務租賃協(xié)議
- 2025年物流中介公路貨物運輸協(xié)議
- 2025年貨車買賣合同規(guī)定協(xié)議
- 村民委員會管理制度
- 基于PLC的彩燈控制系統(tǒng)的設計
- 星辰大海合唱簡譜
- 2022年高考生物真題試卷(海南卷)168帶答案解析
- 2023高考真題24 三角形中基本量的計算問題
- 餐廳小票打印模板
- 鉻(六價)方法驗證方法證實報告
- 腦疝急救流程圖
- 單體液壓支柱檢修工藝及標準
- 臨床藥理學(完整課件)
- 人教部編版六年級下冊語文【選擇題】專項復習訓練真題100題(附答案解析)
評論
0/150
提交評論