單片機的外部基本擴展與應(yīng)用_第1頁
單片機的外部基本擴展與應(yīng)用_第2頁
單片機的外部基本擴展與應(yīng)用_第3頁
單片機的外部基本擴展與應(yīng)用_第4頁
單片機的外部基本擴展與應(yīng)用_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

7單片機的外部基本擴展與應(yīng)用任務(wù)與知識點任務(wù)單片機片外擴展單片數(shù)據(jù)存儲器單片機片外擴展多片數(shù)據(jù)存儲器單片機片外擴展簡單I/O接口單片機采用8255芯片外擴展I/O接口知識點單片機系統(tǒng)擴展總線片外擴展芯片是如何被訪問的介紹利用KEIL軟件如何查看各種存儲器中的數(shù)據(jù)、講解MOV、MOVX、MOVC三類傳送指令及數(shù)據(jù)的尋址方式一些常用擴展芯片的接口方法和訪問控制方法多位數(shù)據(jù)碼靜態(tài)顯示及動態(tài)顯示知識7.1 單片機系統(tǒng)擴展的基本概念在由單片機構(gòu)成的實際測控系統(tǒng)中,最小應(yīng)用系統(tǒng)往往不能滿足要求,就要在設(shè)計系統(tǒng)時進行相應(yīng)的系統(tǒng)擴展。在單片機系統(tǒng)總體設(shè)計時,必須綜合考慮接口器件的電氣參數(shù)、時序要求、功能、體積、成本等方面因素,選擇合適外部擴展方式,適當(dāng)預(yù)留擴展空間,還要兼顧系統(tǒng)改進設(shè)計、產(chǎn)品升級等方面的要求。7.1.1 系統(tǒng)擴展總線所謂總線,就是連接系統(tǒng)中各擴展部件的一組公共信號線。以單片機為核心,通過總線把各擴展部件連接起來,各擴展部件“掛”在總線上,主要形式有存儲器擴展、I/O口的擴展,以及人機接口所必須的鍵盤與顯示器件接口擴展等,如圖7-1所示。在圖中,按總線接口的類型可分為傳統(tǒng)的并行傳送數(shù)據(jù)的三總線結(jié)構(gòu)(控制總線、數(shù)據(jù)總線和地址總線),以及后來發(fā)展起來的串行傳送數(shù)據(jù)的SPI總線、I2C總線和單總線等總線形式。本章只討論傳統(tǒng)的并行傳送總線結(jié)構(gòu)。7.1.2 片外擴展芯片是如何被訪問的當(dāng)單片機片外擴展了存儲器、I/O接口等外圍接口芯片之后,如何用地址來表示這些芯片位置,以及通過地址來訪問它們,就是接下來要考慮的問題了。圖7?2存儲器單元示意圖從圖中,可以看出由地址總線通過譯碼器決定訪問四個存儲單元的哪一個,由控制總線給出讀寫控制信號,由數(shù)據(jù)總線來傳送數(shù)據(jù)。在并行總線結(jié)構(gòu)外部擴展芯片時,所有外部芯片都看做為一個或多個存儲單元,通過系統(tǒng)三總線進行訪問。而51單片機中的程序和數(shù)據(jù)是按哈佛結(jié)構(gòu)分別存儲,所以要進一步區(qū)別芯片中的內(nèi)容是程序和數(shù)據(jù)了。如果外部芯片存放的是程序指令,PC指針會自動訪問,此芯片是程序存儲器如果存放的是數(shù)據(jù),則通過相關(guān)指令進行訪問,此芯片是或看做數(shù)據(jù)存儲器了7.1.3 51單片機對片外芯片的訪問通常情況下,微機的CPU外部都有單獨的并行地址總線、數(shù)據(jù)總線和控制總線,而AT89S51單片機由于受引腳的限制,數(shù)據(jù)線和地址線是復(fù)用的,而且由I/O口線兼用。為了將它們分離出來,以便同單片機片外的芯片正確地連接,需要在單片機外部增加地址鎖存器,從而構(gòu)成與一般CPU相類似的片外三總線,如圖7-3所示。從圖中可以看出,以P0口的8位口線作地址線低8位/數(shù)據(jù)線,通過8位鎖存器進行數(shù)據(jù)信號和地址信號的分離;以P2口的口線作高8位地址線,可以訪問外部程序和數(shù)據(jù)存儲最大空間分別為64KB。除了地址線和數(shù)據(jù)線之外,在擴展系統(tǒng)中還需要一些控制信號線,以構(gòu)成擴展系統(tǒng)的控制總線。這些信號有的是單片機引腳的第一功能信號,有的則是第二功能信號。其中包括:使用ALE作為地址鎖存的選通信號,以實現(xiàn)低8位地址的鎖存;以PSEN信號作為擴展程序存儲器的讀選通信號;以EA信號作為內(nèi)、外程序存儲器的選擇信號;以RD和WR作為擴展數(shù)據(jù)存儲器和I/O端口的讀/寫選通信號。想一想,做一做?1、如果片外擴展的存儲器并沒有64KB空間,是不是可以用少于16根地址線進行訪問?7.2 單片機片外擴展單片數(shù)據(jù)存儲器RAM是用來存放各種數(shù)據(jù)的,51單片機內(nèi)部有128字節(jié)RAM,但當(dāng)單片機用于實時數(shù)據(jù)采集或處理大批量數(shù)據(jù)時,就必須進行單片機的外部數(shù)據(jù)存儲器擴展?!纠?-1】單片機的外存儲器與內(nèi)存儲器進行數(shù)據(jù)傳送以上程序代碼的作用是:(1)先將“STUDYHARD”這一個字符串逐行代碼送入內(nèi)存儲器30H單元地址開始的內(nèi)存空間;(2)然后將這一字符串以循環(huán)結(jié)構(gòu)代碼形式送入外部SRAM的200H地址開始的存儲空間;(3)內(nèi)存中的這一字符串要連續(xù)送100趟次。圖7?4外部擴展一片數(shù)據(jù)存儲器6264電路原理圖電路原理圖7.2.1 并行擴展總線連接說明地址總線的連接說明:P0口引腳輸出的8位信號,作地址總線送74HC373地址鎖存器,為6264提供低8位地址信號;P2口的21~25腳直接與6264的A12~A8腳相連接,提供了高5位地址。數(shù)據(jù)總線的連接說明:P0口引腳作數(shù)據(jù)總線,直接與6264相連接,用于傳送8位數(shù)據(jù)信號??刂瓶偩€的連接說明:地址鎖存信號ALE與74HC373地址鎖存器輸入選通端LE相連,用于鎖存P0口的送出的低8位地址信號; 讀信號()與6264的輸出使能端()相連,用于單片機讀數(shù)據(jù)控制;寫信號()與6264的輸入使能端()相連,用于單片機寫數(shù)據(jù)控制。由于片外只擴展了一片芯片,故不存在片選問題,6264的片選信號()直接接地,保持常通。7.2.2 利用KEIL軟件如何查看各種存儲器中的數(shù)據(jù)通過PROTEUS軟件硬件仿真可以看到內(nèi)或外數(shù)據(jù)存儲器中的數(shù)據(jù),但無法查看程序存儲器的指令或表格數(shù)據(jù)。利用KEIL軟件的存儲器窗口可以顯示系統(tǒng)中各種存儲器中的值,只要在地址(Address)后的編緝框內(nèi)輸入“字母:數(shù)字”即可顯示相應(yīng)內(nèi)存值。圖7?5查看程序存儲器中的指令或表格數(shù)據(jù)說明如下:其中字母可以是C、D、I、X,分別代表代碼存儲空間、直接尋址的片內(nèi)存儲空間、間接尋址的片內(nèi)存儲空間、擴展的外部RAM空間,數(shù)字代表想要查看的地址該窗口的顯示值能以各種形式顯示,默認以“無符號單字節(jié)方式“顯示??衫糜益I快捷菜單選擇,如圖7-6所示。說明如下:該菜單用分隔條分成二部份,其中第一部份與第二部份的三個選項為同一級別。選中第一部份的任一選項,窗口中的值以整數(shù)形式顯示。如:“Decimal”項是一個開關(guān),選中它,表示窗口中的值將以十進制形式顯示,否則按默認的十六進制顯示?!癠nsigned”和“Signed”分別代表無符號形式和有符號形式,各有三個選項:Char、Int、Long,分別代表以單字節(jié)字符形式、雙字節(jié)整數(shù)形式、四字節(jié)長整數(shù)形式顯示。選中第二部份的“Ascii碼”項則將以字符形式顯示,選中“Float”項將相鄰四字節(jié)組成的浮點數(shù)形式顯示,選中“Double”項則將相鄰八字節(jié)組成雙精度形式顯示。7.2.3 外部存儲器存儲單元地址編碼常用的外部數(shù)據(jù)存儲器有靜態(tài)RAM和動態(tài)RAM兩種。一般情況下,SRAM用于僅需要小于64KB數(shù)據(jù)存儲器的小系統(tǒng),DRAM經(jīng)常用于需要大于64KB的大系統(tǒng)。6264是8K×8位的靜態(tài)RAM芯片,采用CMOS工藝制造,為28引腳雙列直插式封裝,如圖7-7所示。圖7?76264SRAM的引腳圖和邏輯符號圖從圖7-7可以看出,只需要13根地址線即可表示該芯片的所有存儲單元。而51系列單片機的地址總線是16位,從圖7-4中可以看出單片機的26~28引腳沒有使用,則存儲器的某個存儲單元就存在多個地址同時與之相對應(yīng)的關(guān)系,如下表所示。A15A14A13A12——————————A016位地址編碼0006264SRAM的0200H單元用13位二進制表示為(0001000000000)20200H0012200H0104200H0116200H1008200H101A200H110C200H111E200H表7?16264SRAM某個單元地址編碼想一想,試一試?1、我們是否可以將源代碼中的下列代碼行,如下所示:將首地址0200H換成表7-1中的最右邊一列中的任意一個16位地址編碼是否都可以?MOV DPTR,#0200H;設(shè)置外存儲器的首個存儲地址7.3 單片機片外擴展多片數(shù)據(jù)存儲器【例7-2】將程序存儲器的表格數(shù)據(jù)送給片外的數(shù)據(jù)存儲器程序功能將程序中的表格數(shù)據(jù)送給片外存儲器。需要注意程序中表格數(shù)據(jù)的訪問和片外存儲器單元的訪問都要用到DPTR數(shù)據(jù)指針,本例通過堆棧保護方式加以區(qū)分。電路原理圖電路分析如下:當(dāng)PROTEUS仿真執(zhí)行完成后,D1燈會點亮,可以通過DEBUG菜單查看外存中的數(shù)據(jù)。7.3.1 并行擴展總線連接說明地址總線的連接說明:P0口引腳輸出的8位信號,作地址總線送74HC373地址鎖存器,為6264提供低8位地址信號;P2口的21~25腳直接與6264的A12~A8腳相連接,提供了高5位地址;P2口的26~28腳做為138譯碼器的輸入信號。數(shù)據(jù)總線的連接說明:P0口引腳作數(shù)據(jù)總線,直接與6264相連接,用于傳送8位數(shù)據(jù)信號。控制總線的連接說明:地址鎖存信號ALE與74HC373地址鎖存器輸入選通端LE相連,用于鎖存P0口的送出的低8位地址信號;讀信號()與6264的輸出使能端()相連,用于單片機讀數(shù)據(jù)控制;寫信號()與6264的輸入使能端()相連,用于單片機寫數(shù)據(jù)控制。由于片外擴展了兩片芯片,必須進行芯片選擇,故片選信號()通過譯碼器74HC138進行片選,在某一時刻只有一片可以工作。7.3.2 多個存儲器擴展的片選問題多個存儲器擴展時,為了找到確切的存儲器單元,必須考慮兩個方面的的問題:存儲芯片的選擇和芯片內(nèi)部存儲單元的選擇。芯片內(nèi)部存儲單元的選擇在上一節(jié)里,我們已經(jīng)做了介紹。存儲芯片的選擇一般采用兩種方法:線選法和譯碼法。在大容量多芯片擴展時,一般采用譯碼法。常用的譯碼芯片有:74HC139(雙2-4譯碼器)、74HC138(3-8譯碼器)和74HC154〔4-16譯碼器)等。電路原理圖使用了74HC138譯碼器,下面做一介紹。74HC138譯碼器具有3個選擇輸入端,可組成8種輸入狀態(tài);具有8個輸出端,分別對應(yīng)8種輸入狀態(tài),且0電平有效,即:對應(yīng)于每種輸入狀態(tài),僅允許1個輸出端為0電平,其余全為1。74HC138譯碼器還有3個使能端E3、和,必須同時輸入有效電平,譯碼器才能被選通;否則譯碼器的輸出全為高。很明顯,采用譯碼器尋址可節(jié)省單片機的I/O口線,其引腳圖和邏輯功能真值表如圖7-9所示。圖7?974HC138譯碼器的引腳圖與真值表結(jié)合電路原理圖7-8可知,U3芯片的尋址空間固定在0000H~1FFFH之間,而U4芯片的尋址空間固定在2000H~3FFFH之間。如果此時再將MOVDPTR,#0200H;設(shè)置外存儲器的首地址代碼中的外部存儲器首地址0200H換成表7-1中的最右邊一列中的任意一個16位地址編碼,則結(jié)果就會發(fā)生變化了,同學(xué)們可以試一試?7.3.3 對數(shù)據(jù)進行訪問的MOV、MOVX和MOVC指令比較通過前兩例程序代碼的學(xué)習(xí),我們知道單片機要進行處理的數(shù)據(jù)可能存在于三種存儲空間:內(nèi)部數(shù)據(jù)存儲器(包括工作寄存器區(qū)、位尋址區(qū)、通用工作區(qū),以及一些特殊功能寄存器SFR),外部數(shù)據(jù)存儲器和程序存儲器。如果我們要對它們進行訪問,就涉及了MOV、MOVX和MOVC三種指令。當(dāng)數(shù)據(jù)是在內(nèi)部數(shù)據(jù)存儲器或指令隊列中,我們將使用MOV指令進行訪問。指令的訪問形式多種多樣,非常靈活。如圖7-10所示。當(dāng)數(shù)據(jù)是在片外的數(shù)據(jù)存儲器或I/O接口時,我們將使用MOVX指令進行訪問,指令格式簡單易記,只有四種,如下圖7-11所示。當(dāng)數(shù)據(jù)是在程序存儲器中的常量數(shù)據(jù),我們將使用MOVC指令進行訪問,指令只有兩種,如圖7-12所示。想一想,做一做?1、在電路原理圖7-4和7-8中,片外沒有擴展程序存儲器。為什么片外不去擴展程序存儲器?如果要擴展,則相應(yīng)的硬件電路連線要注意什么事項?會不會和片外數(shù)據(jù)存儲器的存儲單元地址發(fā)生沖突?7.4 單片機片外擴展簡單I/O接口【例7-3】按鍵控制LED燈的亮滅程序說明:51單片機的P0~P3口具有輸入數(shù)據(jù)可以緩沖,輸出數(shù)據(jù)可以鎖存的功能,并有一定的負載能力,可以直接與外設(shè)相接(詳見第2章示例),如:開關(guān)、發(fā)光二極管等。但有時出于節(jié)省I/O端口使用或需要提高系統(tǒng)帶負載能力的情況下,常采用“輸入三態(tài),輸出鎖存”原則進行片外擴展簡單I/O口芯片,這是單片機應(yīng)用系統(tǒng)設(shè)計中常采用的方法。電路原理圖:

電路功能說明:當(dāng)PROTEUS仿真執(zhí)行時,按下八個按鍵中的任意一個或多個,與之位置相呼應(yīng)的LED燈將會點亮。7.4.1 并行擴展總線的連接說明電路中使用了74HC244、74HC273兩種芯片。74HC273為8D鎖存器,MR引腳為清除端,為低電平時,鎖存器的輸出與輸入端無關(guān),全為0;CLK引腳為時鐘端,上升沿時,D端輸入數(shù)據(jù)傳送到Q輸出端。其中74HC244為單向8位緩沖驅(qū)動器,數(shù)據(jù)傳送方向為,有兩個低電平有效的使能端,對8位數(shù)據(jù)傳送分兩組進行控制。74HC244和74HC273相當(dāng)于只有一個存儲單元的存儲器,都是在P2.0為0時被選通的,所以二者的口地址都為FEFFH(這個地址不是唯一的,只要保證P2.0=0,其它地址位無關(guān))。讀者可能會但心地址沖突了,但74HC244的作用是從外設(shè)讀數(shù)據(jù),而74HC273的作用是向外設(shè)寫數(shù)據(jù),故將單片機讀寫控制信號分別與P2.0相“或”后,與74HC244和74HC273的控制端相連(如圖7-13所示),就可以區(qū)別開了。P0口作為雙向8位數(shù)據(jù)線,既能夠從74LS244輸入數(shù)據(jù),又能夠從74LS273輸出數(shù)據(jù)。7.4.2 如何理解指令格式信息我們這章學(xué)習(xí)內(nèi)容都和數(shù)據(jù)傳送有關(guān),數(shù)據(jù)可以存放于內(nèi)RAM、外RAM和ROM中,我們通過MOV、MOVX或MOVC指令可以知道。但指令如何書寫才是規(guī)范的,接下來就了解一下51匯編指令的基本格式。通過查看附錄A指令表,可以發(fā)現(xiàn)指令翻譯成機器碼后,所占字節(jié)數(shù)是不相同的,可以分為以下三種:我們可以看到指令是由操作碼、數(shù)據(jù)或?qū)ぶ贩绞浇M成的,51單片機指令系統(tǒng)包括49條單字節(jié)指令、46條雙字節(jié)指令和16條三字節(jié)指令。為了方便學(xué)習(xí),采用助記符表示的匯編語言指令格式如下:標號是程序員根據(jù)編程需要給指令設(shè)定的符號地址,可有可無;由1~8個字符組成,第一個字符必須是英文字母,不能是數(shù)字或其它符號;標號后必須用冒號。操作碼表示指令的操作種類,如MOV表示數(shù)據(jù)傳送操作、ADD表示加法操作等。操作碼以空格符來分隔后面的操作數(shù)。操作數(shù)或操作數(shù)地址表示參加運算的數(shù)據(jù)或數(shù)據(jù)的有效地址。操作數(shù)可以是0、1、2或3個,操作數(shù)之間以逗號相隔。例如MOVA,@R0指令,有2個操作數(shù),左邊的稱為“目的操作數(shù)”(表示操作結(jié)果存放單元),而右邊的稱為“源操作數(shù)”(指出操作數(shù)的來源)。注釋是對指令的解釋說明,用以提高程序的可讀性;注釋前必須加分號。7.4.3操作數(shù)的表示方式指令的一個重要組成部分是操作數(shù),它指出了在指令中參與運算的數(shù)或數(shù)所在的地址(包括存儲器單元、寄存器、I/O接口芯片等)。51指令有關(guān)操作數(shù)的符號表示及含義如表7-2所示。為了更好地表述操作數(shù)本身及其所在地址,方便學(xué)習(xí)、與人交流。51單片機指令系統(tǒng)使用了包括有寄存器尋址、直接尋址、立即數(shù)尋址、寄存器間接尋址、變址尋址、相對尋址和位尋址等七種尋址方式來代表如何進行操作數(shù)查找。下面將操作數(shù)的尋址方式、操作數(shù)符號描述、操作數(shù)所在存儲位置的表述,以及指令示例進行列表,如表7-3所示。符號含義Rn表示操作數(shù)據(jù)存放在當(dāng)前寄存器組的工作寄存器(R0~R7)中Ri地址指針R0~R1,指向內(nèi)或外RAM00H~FFH存儲單元中的操作數(shù)@與Ri、DPTR配合使用,表示地址指針,指向內(nèi)或外RAM存儲單元A表示操作數(shù)據(jù)存放在累加器中B表示操作數(shù)據(jù)存放在輔助運算寄存器中,只用于乘、除法C特殊功能寄存器PSW的CY進位標志位,可用于位操作。#data表示8位操作數(shù),即00H~FFH#data16表示16位操作數(shù),即0000H~FFFFHaddr16表示程序在64K范圍內(nèi)跳轉(zhuǎn)到的地址addr11表示程序在2K范圍內(nèi)跳轉(zhuǎn)到的地址DPTR數(shù)據(jù)指針,指向外RAM64K范圍內(nèi)的存儲單元PC程序指針,表示程序執(zhí)行位置,指向ROM64K范圍內(nèi)的存儲單元SP堆棧指針,指向堆棧區(qū)內(nèi)最后保護的數(shù)據(jù)所在位置direct表示為內(nèi)RAM存儲單元地址或SFR特殊功能寄存器名或地址rel表示程序跳轉(zhuǎn),相對當(dāng)前PC指針的8位偏移量(-128~+127)bit內(nèi)RAM位尋址區(qū)的128個位地址或部分特殊功能寄存器的位地址(X)用于指令注釋,表示X存儲單元中存放的是操作數(shù)((X))用于指令注釋,表示X中存放的是地址,操作數(shù)在該地址單元中←用于指令注釋,表示數(shù)據(jù)傳送方向,將←

后面的內(nèi)容傳送到前面去表7-2操作數(shù)據(jù)尋址方式操作數(shù)符號操作數(shù)存儲位置指令示例(看源操作數(shù))寄存器尋址Rn、A、DPTR、B將操作數(shù)存放于相應(yīng)的寄存器中MOVP1,AMOVA,R0直接尋址Direct、SFR將操作數(shù)存放內(nèi)部RAM區(qū)和特殊功能寄存器SFR區(qū)MOVA,P1MOV30H,40H立即數(shù)尋址#data、#data16無需查找,立即處理MOV30H,#17HMOVDPTR,#1234H寄存器間接尋址@Ri、@DPTR將存放操作數(shù)的內(nèi)存單元的地址放在寄存器中,指令中只給出該寄存器名MOVA,@R0MOVXA,@DPTR變址尋址@A+DPTR、@A+PC將基址寄存器與變址寄存器的內(nèi)容相加,結(jié)果作為操作數(shù)的地址MOVCA,@A+PCJMP@A+DPTR相對尋址rel程序計數(shù)器PC的當(dāng)前內(nèi)容與指令中的操作數(shù)相加,其結(jié)果作為跳轉(zhuǎn)指令的轉(zhuǎn)移地址SJMP$DJNZR1,REL位尋址bit、C指按位進行的操作,位操作數(shù)存放在內(nèi)RAM位尋址區(qū)、部分SFR可進行位操作SEBTP1.0MOVC,20HCLRRS1表7-3操作數(shù)尋址簡要說明想一想,做一做?1、如何將外RAM單元2000H中的數(shù)據(jù),傳送到外RAM單元3000H中?2、訪問內(nèi)部RAM單元、外部RAM單元、外ROM、特殊功能寄存器SFR可以分別采用哪些尋址方式?7.5 單片機采用8255芯片外擴展I/O接口可編程接口指的是指其功能可由微處理機的指令來加以改變的接口芯片,利用編程的方法,可以使一個接口芯片執(zhí)行不同的接口功能。諸如8255A、8155、定時/計數(shù)器8253、串行接口8250、中斷控制8259芯片等等,下面就以8255A芯片做一示例?!?-4】8255芯片控制數(shù)據(jù)管動態(tài)顯示程序功能說明:通過T0定時器每3ms產(chǎn)生一次中斷,進入中斷服務(wù)程序,在中斷服務(wù)程序中進行數(shù)據(jù)管動態(tài)掃描,顯示相應(yīng)的數(shù)據(jù)。電路工作原理電路功能說明:當(dāng)PROTEUS仿真執(zhí)行時,我們可以看到第1-7個數(shù)碼管顯示內(nèi)容不變,分別是數(shù)字1~7;而第8個數(shù)碼管顯示數(shù)字在0-9之間循環(huán)變化。7.5.1 電路連線說明單片機與8255A之間以存儲器擴展形式進行擴展,前面章節(jié)已經(jīng)介紹了很多,不再累述。只需注意的是,由于8255A只有一個控制寄存器和三個并行輸出口寄存器,故只需要兩根地址線即可尋址區(qū)分;考慮到8255A驅(qū)動能力不足,故8255A與外設(shè)(8個組合數(shù)碼管)之間加上了緩沖驅(qū)動器74HC244和74HC240。74HC240的輸出信號與輸入信號相反,用于位選通碼輸出。而芯片選通則通過74HC138譯碼器實現(xiàn)。74HC244的輸入信號與輸出信號是一致的,用于字形碼輸出;數(shù)碼管是共陰的7.5.2組合數(shù)碼管及其動態(tài)顯示接口前面第五章介紹過單個數(shù)碼管的工作原理,使其正常工作需要至少8個引腳。但實際應(yīng)用中,往往必須連接多個LED數(shù)碼管,如果按單個數(shù)碼管方式工作,單片機的引腳是不夠用的。故此,市場上出現(xiàn)了組合式數(shù)碼管,外形如上圖所示。組合式數(shù)碼管接口電路把所有顯示器的8個筆段A~H分別并聯(lián)在一起,構(gòu)成“字段口”;每一個顯示器的公共端COM各自獨立地受I/O線控制,稱為“位掃描口”。以4位組合式數(shù)碼管為例,需要8+4=12個引腳;而如果每個數(shù)碼管都單獨引腳,至少需要4×9=36個引腳。CPU向“字段口”送出字形碼時,所有顯示器的筆段都同時接收到,但究竟點亮哪一只顯示器,取決于“位掃描口”接通了哪個或哪些顯示器的公共端,一般情況只有一個顯示器的公共端能夠被選通,這樣就可以實現(xiàn)不同的數(shù)據(jù)在不同的數(shù)碼管中顯示了。哪為什么我們又能看到數(shù)碼管同時點亮呢?基本原理是利用人眼的“視覺暫留”效應(yīng)。所謂“動態(tài)”,就是利用循環(huán)掃描,輪流選通各個顯示器的公共端;只要掃描速度達到一定程度,人眼就分辨不出來了,認為各個顯示器同時發(fā)光。7.5.3 8255A的內(nèi)部結(jié)構(gòu)和引腳圖7?158255的內(nèi)部結(jié)構(gòu)和引腳圖8255A內(nèi)部結(jié)構(gòu)由4個邏輯結(jié)構(gòu)組成:(1)A口、B口和C口均為8位I/O數(shù)據(jù)口,負責(zé)傳送外設(shè)的輸入/輸出數(shù)據(jù)或控制信息;(2)A、B組控制電路根據(jù)CPU的命令字控制8255工作方式的電路,A組控制A口及C口的高4位,B組控制B口及C口的低4位;(3)數(shù)據(jù)緩沖器用于和單片機的數(shù)據(jù)總線相連,傳送數(shù)據(jù)或控制信息;(4)讀寫控制邏輯接收51單片機送來的讀寫命令和選口地址,用于控制對8255的讀寫。8255A共有40個引腳:(1)數(shù)據(jù)總線:D0~D7引腳為8位數(shù)據(jù)線,用于傳送CPU和8255之間的數(shù)據(jù)、命令和狀態(tài)字;(2)控制總線:RESET(復(fù)位信號)引腳輸入高電平有效。復(fù)位后,8255所有內(nèi)部寄存器清0,所有口都為輸入方式;和引腳接讀寫信號線,輸入低電平有效;引腳接片選信號,輸入低電平有效;(3)地址總線:A0、A1地址輸入線。這兩位的4種組合00、01、10、11分別用于選擇A、B、C口和控制寄存器。(4)I/O口線:PA0~PA7、PB0~PB7、PC0~PC7為32條雙向三態(tài)I/O總線,分別和A、B、C口相對應(yīng),用于8255和外設(shè)之間傳送數(shù)據(jù);7.5.4 8255A的工作方式8255的三個端口具體工作在什么方式下,是通過CPU對控制口寫入控制字來決定的。如圖7-16所示。方式選擇控制字C口置/復(fù)位控制字8255有兩個控制字:方式選擇控制字和C口置/復(fù)位控制字。8255有3種工作方式:(1)方式0(基本輸入/輸出方式):A口、B口及C口高4位、低4位都可以設(shè)置輸入或輸出,不需要選通信號。單片機可以對8255進行I/O數(shù)據(jù)的無條件傳送,外設(shè)的I/O數(shù)據(jù)在8255的各端口能得到鎖存和緩沖。(2)方式1(選通輸入/輸出方式):A口和B口都可以獨立的設(shè)置為方式1,在這種方式下,8255的A口和B口通常用于傳送和它們相連外設(shè)的I/O數(shù)據(jù),C口作為A口和B口的握手聯(lián)絡(luò)線,以實現(xiàn)中斷方式傳送I/O數(shù)據(jù)。C口作為聯(lián)絡(luò)線的各位分配是在設(shè)計8255時規(guī)定的。分配表見表7-4所示。(3)方式2(雙向總線方式):只有A口才能設(shè)定。C口的PC3~PC7作為聯(lián)絡(luò)信號。設(shè)置工作方式時,必須將D7置1。當(dāng)

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論