利用8255和5單片機實現(xiàn)數(shù)碼管顯示按鍵值的試驗共21_第1頁
利用8255和5單片機實現(xiàn)數(shù)碼管顯示按鍵值的試驗共21_第2頁
利用8255和5單片機實現(xiàn)數(shù)碼管顯示按鍵值的試驗共21_第3頁
利用8255和5單片機實現(xiàn)數(shù)碼管顯示按鍵值的試驗共21_第4頁
利用8255和5單片機實現(xiàn)數(shù)碼管顯示按鍵值的試驗共21_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、物理與電子工程學(xué)院單片機原理及其應(yīng)用期中大作姓名:專業(yè):學(xué)號:課題:使用8255和51單片機實現(xiàn)對數(shù)碼管顯示案件數(shù)值控制要求:從0-15,數(shù)碼管上分別顯示 0-9,A-F,4*4矩陣鍵盤芯片資料8255一、簡介8255是In tel公司生產(chǎn)的可編程并行I/O接口芯片,有3個8位并行I/O 口。具有3個通道3種工作方式的可編程并行接口芯片(40引腳)。其各 口功能可由軟件選擇,使用靈活,通用性強。8255可作為單片機與多種外設(shè)連接時的中間接口電路。二、內(nèi)部結(jié)構(gòu)8255作為主機與外設(shè)的連接芯片,必須提供與主機相連的3個總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時必須具有與外設(shè)連接的接口A、B、C

2、口。由于8255可編程,所以必須具有邏輯控制部分, 因而8255內(nèi)部結(jié)構(gòu)分為3個部分:與CPU連接部分、與外設(shè)連接部分、控制部分。1 )與CPU連接部分根據(jù)定義,8255能并行傳送8位數(shù)據(jù),所以其數(shù)據(jù)線為 8根DOD7。 由于8255具有3個通道A B、C,所以只要兩根地址線就能尋址 A B C 口及控制寄存器,故地址線為兩根A0A1。此外CPU要對8255進行讀、寫與片選操作,所以控制線為片選、復(fù)位、讀、寫信號。各信號的引腳編 號如下:(1) 數(shù)據(jù)總線DB:編號為DOD7,用于8255與CPU傳送8位數(shù)據(jù)。(2) 地址總線AB:編號為A0A1,用于選擇 A B、C 口與控制寄存 器。(3)

3、控制總線 CB片選信號、復(fù)位信號 RST寫信號、讀信號。當 CPU要對8255進行讀、寫操作時,必須先向8255發(fā)片選信號選中8255芯 片,然后發(fā)讀信號或?qū)懶盘枌?8255 進行讀或?qū)憯?shù)據(jù)的操作。2)與外設(shè)接口部分根據(jù)定義,8255有3個通道A B、C與外設(shè)連接,每個通道又有 8根 線與外設(shè)連接, 所以 8255可以用 24 根線與外設(shè)連接, 若進行開關(guān)量控制, 則 8255可同時控制 24 路開關(guān)。各通道的引腳編號如下:(1) A 口:編號為PA(PA7,用于8255向外設(shè)輸入輸出8位并行數(shù) 據(jù)。(2) B 口:編號為PB(PB7,用于8255向外設(shè)輸入輸出8位并行數(shù) 據(jù)。(3) C 口:

4、編號為PC(PC7用于8255向外設(shè)輸入輸出8位并行數(shù) 據(jù),當8255工作于應(yīng)答I/O方式時,C 口用于應(yīng)答信號的通信。3)控制器8255將3個通道分為兩組,即PAA PA7與PC/ PC7組成A組,PBAPB7與PCAPC3組成B組。如圖(1)所示,相應(yīng)的控制器也分為 A組控 制器與B組控制器,各組控制器的作用如下:(1)A組控制器:控制 A 口與上C 口的輸入與輸出。(2)B組控制器:控制 B 口與下C 口的輸入與輸出。圖(1)三、工作方式8255芯片有三種工作方式:基本輸入 /輸出方式(方式 0)、選通工作方式(方式 1 )、雙向傳送方式(方式 2)。1 )方式 0:相當于三個獨立的 8

5、位簡單接口,各端口既可設(shè)置為輸入口,也可設(shè)置為 輸出口,但不能同時實現(xiàn)輸入及輸出。C端口可以是一個8位的簡單接口,也可以分為兩個獨立的 4位端口。方式 0常用于連接簡單外設(shè)(適于無條 件或查詢方式) 。常使A端口和B端口作為8位數(shù)據(jù)的輸入或輸出口,使 C口的某些位作狀 態(tài)輸入。2)方式 1:利用一組選通控制信號控制 A端口和B端口的數(shù)據(jù)輸入輸出,其中 A 口、 B 口作輸入或輸出口, C 口的部分位用作選通控制信號,而 A 口、B 口在作 為輸入和輸出時的選通信號是不同的。方式1主要用于中斷控制方式下的輸入輸出,C 口的8位除用作選通信號外,其余位可工作于方式 0 下,作為輸入或輸出口。3)方

6、式 2:此方式為雙向輸入輸出方式可以既作為輸入口,又作為輸出口,而只有 A 端口可工作在方式 2 下。此種工作方式可使 A端口作為雙向端口所有,并且主要用于中斷控制方式,當A 口工作于方式2時,B 口可工作于方式1 (此時C口的所有位都用作 選通控制信號的輸入輸出),也可工作于方式0 (此時C 口的剩余位也可工 作于方式 0)。74LS37374ls373 是常用的地址鎖存器芯片,它實質(zhì)是一個是帶三態(tài)緩沖輸出的 8D 觸發(fā)器,在單片機系統(tǒng)中為了擴展外部存儲器,通常需要一塊 74ls373 芯 片, (1) .1腳是輸出使能(0E),是低電平有效,當1腳是高電平時,不管輸入3、4、7、8、13、

7、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 端再次有效。第 3 頁當三態(tài)門使能信號 0E為低電平時,

8、三態(tài)門導(dǎo)通,允許 Q0Q7俞出,0E為 高電平時,輸出懸空。當 74LS373用作地址鎖存器時,應(yīng)使 0E為低電平, 此時鎖存使能端C為高電平時,輸出Q0Q7狀態(tài)與輸入端D1D7狀態(tài)相同; 當C發(fā)生負的跳變時,輸入端D0D7數(shù)據(jù)鎖入Q0Q7 51單片機的ALE信 號可以直接與74LS373的C連接。74ls373與單片機接口:1D8D為8個輸入端1Q8C為8個輸出端G是數(shù)據(jù)鎖存控制端;當 G=1時,鎖存器輸出端同輸入端;當 G由“1”變 為“0”時,數(shù)據(jù)輸入鎖存器中。OE為輸出允許端;當 OE二“ 0”時,三態(tài)門打幵;當 OE二“ 1”時,三態(tài)門 關(guān)閉,輸出呈高阻狀態(tài)。在MCS-51單片機系統(tǒng)

9、中,常采用 74LS373作為地址鎖存器使用,其連接 方法如上圖所示。其中輸入端1D8D接至單片機的P0 口,輸出端提供的是低8位地址,G端接至單片機的地址鎖存允許信號 AL呂輸出允許端OE 接地,表示輸出三態(tài)門一直打開。74LS13874LS138 為 3 線 8 線譯碼器,共有 54/74S138 和 54/74LS138 兩種線 路結(jié)構(gòu)型式,其工作原理如下:當一個選通端(G1)為高電平,另兩個選通端(/(G2A)和/(G2B)為低電平時,可將地址端(A B、C)的二進 制編碼在一個對應(yīng)的輸出端以低電平譯出。利用G1、/(G2A)和/(G2B)可級聯(lián)擴展成 24 線譯碼器;若外接一個反 相

10、器還可級聯(lián)擴展成 32 線 譯碼器。若將選通端中的一個作為數(shù)據(jù)輸入端時,74LS138還可作數(shù)據(jù)分配器 用與非門組成的 3線-8 線譯碼器 74LS138 3 線-8 線譯碼器 74LS138 的功能表 無論從邏輯圖還是功能表我們都可以看到 74LS138 的八個輸出 引腳,任何時刻要么全為高電平1芯片處于不工作狀態(tài),要么只有一個為低電平 0,其余 7 個輸出引腳全為高電平 1。如果出現(xiàn)兩個輸出引腳同 時為 0 的情況,說明該芯片已經(jīng)損壞。 當附加控制門的輸出為高電平( S =1)時,可由邏輯圖寫出由上式可以看出,同時又是這三個變量的全部最小項的譯碼輸出, 所以也把這種譯碼器叫做最小項譯碼器。

11、 71LS138 有 三個附加的控制端、和。當、時,輸出為高電平(S= 1),譯碼器處于工作狀態(tài)。 否則, 譯碼器被禁止, 所有的輸出端被封鎖在高電平, 如表 3.3.5 所示。這三個控制端也叫做“片選”輸入端,利用片選的作用可以將多篇 連接起來以擴展譯碼器的功能。 帶控制輸入端的譯碼器又是一個完整的 數(shù)據(jù)分配器。在圖 3.3.8 電路中如果把作為“數(shù)據(jù)”輸入端(同時) ,而 將作為“地址”輸入端,那么從送來的數(shù)據(jù)只能通過所指定的一根輸出線 送出去。這就不難理解為什么把叫做地址輸入了。例如當=101時,門的 輸入端除了接至輸出端的一個以外全是高電平,因此的數(shù)據(jù)以反碼的形式從輸出,而不會被送到其

12、他任何一個輸出端上。【例332】 試用兩片3線-8線譯碼器74LS138組成4線-16線譯碼器,將輸入的4位二進制代 碼譯成16個獨立的低電平信號。解:由圖3.3.8可見,74LS138僅有3個地址輸入端。如果想對 4位二進制代碼,只能利用一個附加控制端(當 中的一個)作為第四個地址輸入端。取第(1)片74LS138的和作為它的第四個地址輸入端(同時令),取第(2)片的作為它的第四個地址輸入端(同時令),取兩片的、,并將第(1)片的和接至,將第(2)片的接至, 如圖3.3.9所示,于是得到兩片74LS138的輸出分別為 圖3.3.9用兩片 74LS138接成的4線16線譯碼器 式(3.3.8

13、)表明時第(1)片74LS138 工作而第(2)片74LS138禁止,將的00000111這8個代碼譯成8個低 電平信號。而式(3.3.9 )表明時,第(2)片74LS138工作,第(1)片 74LS138禁止,將的10001111這8個代碼譯成8個低電平信號。這樣就 用兩個3線-8線譯碼器擴展成一個 4線-16線的譯碼器了。同理,也可一用兩個帶控制端的 4線-16線譯碼器接成一個5線-32線譯碼器。例 2. 74LS138 3 8譯碼器的各輸入端的連接情況及第六腳()輸入信號A的波形如下圖所示。試畫出八個輸出引腳的波形。解:由74LS138的功能表知,當(A為低電平段)譯碼器不工作,8個輸出

14、引腳全為高電平, 當(A為高電平段)譯碼器處于工作狀態(tài)。因所以其余7個引腳輸出全為高電平,因此可知,在輸入信號A的作用下,8個輸出引腳的波形如下:即與A反相;其余各引腳的輸出恒等于(高電平)與A的波形無關(guān)。74LS138 引腳圖74LS138為3線8線譯碼器,共有 54/74S138和第7頁54/74LS138兩種線路結(jié)構(gòu)型式,其工作原理如下:當一個選通端(G1)為高電平,另兩個選通端(/(G2A)和/(G2B)為 低電平 時,可將地址端(A、B、Q的二進制編碼在一個對應(yīng)的輸出端以低電平譯出。利用G1、/(G2A)和/(G2B)可級聯(lián)擴展成24線譯碼器;若外接一個反相器還可級聯(lián)擴展成 32線譯

15、碼器。若將選通端中的一個作為數(shù)據(jù)輸入端時,74LS138還可作數(shù)據(jù)分配器80C51單片機引腳圖及引腳功能介紹首先我們來介紹一下單片機的引腳圖及引腳功能(如下圖所示),引腳的具體功能將在下面詳細介紹單片機的40個引腳大致可分為4類:電源、時鐘、控制和I/O引腳。1. 電源:VCC -芯片電源,接+5V;VSS -接地端;2. 時鐘:XTAL1 XTAL2 -晶體振蕩電路反相輸入端和輸出端。3. 控制線:控制線共有4根,ALE/PROG地址鎖存允許/片內(nèi)EPROMS程脈沖ALE功能:用來鎖存P0 口送出的低8位地址PROG功能:片內(nèi)有EPROMS芯片,在EPROM!程期間,此引腳輸入編 程脈沖。P

16、SEN:夕卜ROMS選通信號。RST/VPD復(fù)位/備用電源。 RST( Reset)功能:復(fù)位信號輸入端。 VPD功能:在Vcc掉電情況下,接備用電源。EA/Vpp:內(nèi)夕卜ROMS擇/片內(nèi)EPRO編程電源。 EA功能:內(nèi)外ROM選擇端。 Vpp功能:片內(nèi)有EPROI的芯片,在EPROM!程期間,施加編程電源Vpp。4. I/O 線80C51共有4個8位并行I/O端口: P0 P1、P2、P3 口,共32個引腳。P3 口還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)拿到一塊單片機,想要使用它,首先必須要知道怎樣去連線,我們用的一塊89C51的芯片為例,我們就看一下如何給它連線。1、

17、電源:這當然是必不可少的了。單片機使用的是5V 電源,其中正極 接 40 管腳,負極(地)接 20 管腳。2、振蒎電路: 單片機是一種時序電路, 必須供給脈沖信號才能正常工作, 在單片機內(nèi)部已集成了振蕩器,使用晶體振蕩器,接18、19 腳。只要買來晶體震蕩器,電容,連上就能了,按圖 1 接上即可。3、復(fù)位管腳:按圖 1 中畫法連好,至于復(fù)位是何含義及為何需要復(fù)要復(fù) 位,在單片機功能中介紹。4、EA管腳:EA管腳接到正電源端。至此,一個單片機就接好,通上電,單片機就開始工作了。我們的第一個任務(wù)是要用單片機點亮一只發(fā)光二極管LED,顯然,這個LED必須要和單片機的某個管腳相連,不然單片機就沒法控制

18、它了,那么和哪個管腳相連呢?單片機上除了剛才用掉的5 個管腳,還有 35個,我們將這個LED和1腳相連。(見圖1,其中R1是限流電阻)按照這個圖的接法,當1腳是高電平時,LED不亮,只有1腳是低電平時,LED才發(fā)亮。因此要1腳我們要能夠控制,也就是說,我們要能夠讓 1管 腳按要求變?yōu)楦呋虻碗娖?。即然我們要控?1 腳,就得給它起個名字,總 不能就叫它一腳吧?叫它什么名字呢?設(shè)計51芯片的INTEL公司已經(jīng)起好了,就叫它P1.0,這是規(guī)定,不能由我們來更改。圖 1 單片機簡易應(yīng)用電路圖單片機簡易編程名字有了,我們又怎樣讓它變 高 或變 低 呢?叫人做事,說一聲就能, 這叫發(fā)布命令,要計算機做事,

19、也得要向計算機發(fā)命令,計算機能聽得懂的命令稱之為計算機的指令。 讓一個管腳輸出高電平的指令是 SETB讓一 個管腳輸出低電平的指令是 CLR。因此,我們要P1.0輸出高電平,只要寫 SETB P1.0,要P1.0輸出低電平,只要寫 CLR P1.0就能了?,F(xiàn)在我們已經(jīng)有辦法讓單片機去將P10輸出高或低電平了,但是我們怎樣才能計算機執(zhí)行這條指令呢?總不能也對計算機也說一聲了事吧。要解決 這個問題,還得有幾步要走。第一,計算機看不懂 SETB CLR之類的指令,我們得把指令翻譯成計算機 能懂的方式,再讓計算機去讀。計算機能懂什么呢?它只懂一樣?xùn)|西 數(shù)字。因此我們得把 SETB P1.0變?yōu)椋―2H

20、,90H ),把CLR P1.0變?yōu)椋?C2H,90H ),至于為什么是這兩個數(shù)字,這也是由 51 芯片的設(shè)計者-INTEL 規(guī)定的,我們不去研究。第二步,在得到這兩個數(shù)字后,怎樣讓這兩個數(shù)字進入單片機的內(nèi)部呢? 這要借助于一個硬件工具 編程器 。如果你還不知道是什么是編程器,我 來介紹一下,就是把你在電腦上寫出來來的代碼用匯編器等編譯器生成的 一個目標燒寫到單片機的 eprom里面去的工具,80c51這種類型的單片機 編程是一件很麻煩的事情,必要要先裝到編程器上編程后才能在設(shè)備上使 用,而目前最新的 89s51 單片機居然在線編程( isp )功能,不用拔出來 利用簡單的電路就可以實現(xiàn)把代碼

21、寫入單片機內(nèi)部 .第 11 頁我們將編程器與電腦連好,運行編程器的軟件,然后在編緝區(qū)內(nèi)寫入(D2H,90H見圖2,寫入好,拿下片子,把片子插入做好的電路板, 接通電源什么?燈不亮?這就對了,因為我們寫進去的指令就是讓F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F圖2P10輸出高電平,燈當然不亮,要是亮就錯了。現(xiàn)在我們再撥下這塊芯片,重新放回到編程器上,將編緝區(qū)的內(nèi)容改為(C2H,90H),也就是CLRP1.0, 寫片,拿下片子,把片子插進電路板,接電,好,燈亮了。因為我們寫入 的()就是讓P10輸出低電平的指令。這樣我們看到,硬件電路的連線沒

22、有做任何改變,只要改變寫入單片機中的內(nèi)容, 就能改變電路的輸出效果。實驗電路圖實驗源程序時間:2013年11月2陶航航* 因為 8255 C 口是高位輸出,低位輸入,此處不可以用行列互換法進 行鍵盤掃描#include#include#define uchar unsigned char#define PA8255 XBYTE0x4000#define PB8255 XBYTE0x4001#define PC8255 XBYTE0x4002#define COM8255 XBYTE0x4003volatile uchar key;void display(uchar);/void displa

23、y1();int key_san();/*/void delay10ms(void) / 誤差 0usunsigned char a,b,c;for(c=1;c0;c-)for(b=38;b0;b-)for(a=130;a0;a-);void delay1ms(void) / 誤差 0usunsigned char a,b,c;for(c=1;c0;c-)for(b=142;b0;b-)for(a=2;a0;a-);void main(void)COM8255=0x81;PB8255=0xff;while(1)key_san();/display();int key_san()uchar co

24、de table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar scode,temp,i;PA8255=0x00;/PC8255=0xf0;/* if(PC8255&0xf0)!=0xf0)delay10ms();goto a;if(PC8255 & 0xf0)!=0xf0)/PB8255=table0;goto a;*/scode=0xef;i=4;while(i-)/循環(huán) 4 次PC8255=scode;if(PC8255&0x0f)!=0x0f) delay10m

25、s();temp=PC8255;switch(temp)case 0xee: PB8255=table15 ; break;/key=15; display(15)case 0xed: PB8255=table11;break;/key=11;display(11)case 0xeb:PB8255=table7;break;/key=7;display(7)case 0xe7:PB8255=table3;break;/key=3;display(3)case 0xde: PB8255=table14;break;/key=14;display(14)case 0xdd:PB8255=table

26、10;break;/key=10;display(10)case 0xdb:PB8255=table6;break;/key=6;display(6)case 0xd7: PB8255=table2;break;/key=2;display(2)case 0xbe:PB8255=table13;break;/key=13;display(13)case 0xbd:PB8255=table9;break;/key=9;display(9)case 0xbb: PB8255=table5;break; /key=5; display(5)case 0xb7: PB8255=table1;break; /key=1;display(1)case 0x7e: PB8255=table12;break;/key=12;display(12)case 0x7d: PB8255=table8;break; /key=8;display(8)case 0x7b:PB8255=table4;break;/key=4;display(4)case 0x77:PB8255=table0;break;/key=0;display(0)default : key=-1;while(PC8255!=temp);第 17

溫馨提示

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

評論

0/150

提交評論