利用8255和51單片機(jī)實(shí)現(xiàn)數(shù)碼管顯示按鍵數(shù)值的程序.docx_第1頁(yè)
利用8255和51單片機(jī)實(shí)現(xiàn)數(shù)碼管顯示按鍵數(shù)值的程序.docx_第2頁(yè)
利用8255和51單片機(jī)實(shí)現(xiàn)數(shù)碼管顯示按鍵數(shù)值的程序.docx_第3頁(yè)
利用8255和51單片機(jī)實(shí)現(xiàn)數(shù)碼管顯示按鍵數(shù)值的程序.docx_第4頁(yè)
利用8255和51單片機(jī)實(shí)現(xiàn)數(shù)碼管顯示按鍵數(shù)值的程序.docx_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

期中大作業(yè) 學(xué)院: 物理與電子信息工程學(xué)院 課題: 【利用8255和51單片機(jī)實(shí)現(xiàn)數(shù)碼管顯示按鍵數(shù)值的程序】要求: 【4*4矩陣鍵盤(pán),按0到15,數(shù)碼管上分別顯示09,AF】芯片資料:8255:8255是Intel公司生產(chǎn)的可編程并行I/O接口芯片,有3個(gè)8位并行I/O口。具有3個(gè)通道3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。8255可作為單片機(jī)與多種外設(shè)連接時(shí)的中間接口電路。8255作為主機(jī)與外設(shè)的連接芯片,必須提供與主機(jī)相連的3個(gè)總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時(shí)必須具有與外設(shè)連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個(gè)部分:與CPU連接部分、與外設(shè)連接部分、控制部分。8255特性:1.一個(gè)并行輸入/輸出的LSI芯片,多功能的I/O器件,可作為CPU總線與外圍的接口。2.具有24個(gè)可編程設(shè)置的I/O口,即3組8位的I/O口,分別為PA口、PB口和PC口。它們又可分為兩組12位的I/O口:A組包括A口及C口(高4位,PC4PC7),B組包括B口及C口(低4位,PC0PC3)。A組可設(shè)置為基本的I/O口,閃控(STROBE)的I/O閃控式,雙向I/O三種模式;B組只能設(shè)置為基本I/O或閃控式I/O兩種模式,而這些操作模式完全由控制寄存器的控制字決定. 引腳說(shuō)明 RESET:復(fù)位輸入線,當(dāng)該輸入端處于高電平時(shí),所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。 CS:芯片選擇信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),即CS=0時(shí),表示芯片被選中,允許8255與CPU進(jìn)行通訊;CS=1時(shí),8255無(wú)法與CPU做數(shù)據(jù)傳輸。 RD:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),即CS=0且RD=0時(shí),允許8255通過(guò)數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。 WR:寫(xiě)入信號(hào),當(dāng)這個(gè)輸入引腳為低電平時(shí),即CS=0且WR=0時(shí),允許CPU將數(shù)據(jù)或控制字寫(xiě)入8255。 D0D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時(shí),通過(guò)它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫(xiě)操作,控制字和狀態(tài)信息也通過(guò)數(shù)據(jù)總線傳送。 PA0PA7:端口A輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個(gè)8位的數(shù)據(jù)輸入鎖存器。 PB0PB7:端口B輸入輸出線,一個(gè)8位的I/O鎖存器,一個(gè)8位的輸入輸出緩沖器。 PC0PC7:端口C輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入緩沖器。端口C可以通過(guò)工作方式設(shè)定而分成2個(gè)4位的端口, 每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號(hào)輸出或狀態(tài)信號(hào)輸入端口。A1,A0:地址選擇線,用來(lái)選擇8255的PA口,PB口,PC口和控制寄存器。 當(dāng)A1=0, A0=0時(shí),PA口被選擇; 當(dāng)A1=0, A0=1時(shí),PB口被選擇; 當(dāng)A1=1, A0=0時(shí),PC口被選擇; 當(dāng)A1=1. A0=1時(shí),控制寄存器被選擇。74ls373芯片資料: 74ls373是常用的地址鎖存器芯片,它實(shí)質(zhì)是一個(gè)是帶三態(tài)緩沖輸出的8D觸發(fā)器,在單片機(jī)系統(tǒng)中為了擴(kuò)展外部存儲(chǔ)器,通常需要一塊74ls373芯片.本文將介紹74ls373的工作原理,引腳圖(管腳圖),內(nèi)結(jié)構(gòu)圖、主要參數(shù)及在單片機(jī)系統(tǒng)中的典型應(yīng)用電路.L低電平;H高電平;X不定態(tài);Q0建立穩(wěn)態(tài)前Q的電平;G輸入端,與8031ALE連高電平:暢通無(wú)阻低電平:關(guān)門(mén)鎖存。圖中OE使能端,接地。當(dāng)G=“1”時(shí),74LS373輸出端1Q8Q與輸入端1D8D相同;當(dāng)G為下降沿時(shí),將輸入數(shù)據(jù)鎖存。EG功能00直通Qi = Di01保持(Qi保持不變)1X輸出高阻774ls373在單片機(jī)系統(tǒng)中的應(yīng)用電路圖:當(dāng)74LS373用作地址鎖存器時(shí),應(yīng)使OE為低電平,此時(shí)鎖存使能端C為高電平時(shí),輸出Q0Q7 狀態(tài)與輸入端D1D7狀態(tài)相同;當(dāng)C發(fā)生負(fù)的跳變時(shí),輸入端D0D7 數(shù)據(jù)鎖入Q0Q7。51單片機(jī)的ALE信號(hào)可以直接與74LS373的C連接。在MCS-51單片機(jī)系統(tǒng)中,常采用74LS373作為地址鎖存器使用,其連接方法如上圖所示。其中輸入端1D8D接至單片機(jī)的P0口,輸出端提供的是低8位地址,G端接至單片機(jī)的地址鎖存允許信號(hào)ALE。輸出允許端OE接地,表示輸出三態(tài)門(mén)一直打開(kāi)。1D8D為8個(gè)輸入端。1Q8Q為8個(gè)輸出端。 G是數(shù)據(jù)鎖存控制端;當(dāng)G=1時(shí),鎖存器輸出端同輸入端;當(dāng)G由“1”變?yōu)椤?”時(shí),數(shù)據(jù)輸入鎖存器中。 OE為輸出允許端;當(dāng)OE=“0”時(shí),三態(tài)門(mén)打開(kāi);當(dāng)OE=“1”時(shí),三態(tài)門(mén)關(guān)閉,輸出呈高阻狀態(tài)。(1).1腳是輸出使能(OE),是低電平有效,當(dāng)1腳是高電平時(shí),不管輸入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).當(dāng)1腳是低電平時(shí),只要11腳(鎖存控制端,G)上出現(xiàn)一個(gè)下降沿,輸出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 由高變低時(shí),輸出端8 位信息被鎖存,直到LE 端再次有效。 當(dāng)三態(tài)門(mén)使能信號(hào)OE為低電平時(shí),三態(tài)門(mén)導(dǎo)通,允許Q0Q7輸出,OE為高電平時(shí),輸出懸空。74LS138:無(wú)論從邏輯圖還是功能表我們都可以看到74LS138的八個(gè)輸出引腳,任何時(shí)刻要么全為高電平1芯片處于不工作狀態(tài),要么只有一個(gè)為低電平0,其余7個(gè)輸出引腳全為高電平1。如果出現(xiàn)兩個(gè)輸出引腳同時(shí)為0的情況,說(shuō)明該芯片已經(jīng)損壞。80C51單片機(jī)引腳圖及引腳功能介紹:?jiǎn)纹瑱C(jī)的40個(gè)引腳大致可分為4類:電源、時(shí)鐘、控制和I/O引腳。 電源: VCC - 芯片電源,接+5V; VSS - 接地端; 時(shí)鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。 控制線:控制線共有4根, ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖 ALE功能:用來(lái)鎖存P0口送出的低8位地址 PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。 PSEN:外ROM讀選通信號(hào)。 RST/VPD:復(fù)位/備用電源。 RST(Reset)功能:復(fù)位信號(hào)輸入端。 VPD功能:在Vcc掉電情況下,接備用電源。 EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。 EA功能:內(nèi)外ROM選擇端。 Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。 I/O線80C51共有4個(gè)8位并行I/O端口:P0、P1、P2、P3口,共32個(gè)引腳。P3口還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線)。拿到一塊單片機(jī),想要使用它,首先必須要知道怎樣去連線,我們用的一塊89C51的芯片為例,我們就看一下如何給它連線。1、 電源:這當(dāng)然是必不可少的了。單片機(jī)使用的是5V電源,其中正極接40管腳,負(fù)極(地)接20管腳。 2、 振蒎電路:?jiǎn)纹瑱C(jī)是一種時(shí)序電路,必須供給脈沖信號(hào)才能正常工作,在單片機(jī)內(nèi)部已集成了振蕩器,使用晶體振蕩器,接18、19腳。只要買(mǎi)來(lái)晶體震蕩器,電容,連上就能了,按圖1接上即可。 3、 復(fù)位管腳:按圖1中畫(huà)法連好,至于復(fù)位是何含義及為何需要復(fù)要復(fù)位,在單片機(jī)功能中介紹。 4、 EA管腳:EA管腳接到正電源端。 至此,一個(gè)單片機(jī)就接好,通上電,單片機(jī)就開(kāi)始工作了。 【實(shí)驗(yàn)電路圖】【單片機(jī)源程序】#include /51單片機(jī)頭文件#include /該可使用其中定義的宏來(lái)訪問(wèn)絕對(duì)地址#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為按鍵鍵值,無(wú)實(shí)際意義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,對(duì)數(shù)碼管進(jìn)行位選,選中六個(gè)數(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)掃描矩陣鍵盤(pán) temp != PC8255; keyscan(); 【實(shí)驗(yàn)結(jié)果】【心得體會(huì)】 通過(guò)這次實(shí)驗(yàn),我對(duì)51單片機(jī)有了深刻理解,對(duì)書(shū)本上理論知識(shí)的運(yùn)用,發(fā)現(xiàn)要學(xué)好和認(rèn)識(shí)一種芯片,最快的就是去運(yùn)用它,哪怕是做簡(jiǎn)單的仿真。一直

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論