單片機并行存儲器擴展-第7章_第1頁
單片機并行存儲器擴展-第7章_第2頁
單片機并行存儲器擴展-第7章_第3頁
單片機并行存儲器擴展-第7章_第4頁
單片機并行存儲器擴展-第7章_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第7章單片機并行I/O擴展7.1單片機I/O擴展基礎知識7.2可編程并行接口芯片82557.3鍵盤接口技術7.4LED顯示器接口技術7.5打印機接口技術7.1單片機I/O擴展基礎知識7.1.1I/O接口電路的功能外部設備的速度十分復雜,必須通過I/O接口電路實現(xiàn)。1.速度協(xié)調面對各種設備的速度差異,單片機無法按固定的時序以同步方式進行I/O操作,只能以異步方式進行,也就是只有在確認設備已為數(shù)據(jù)傳送做好準備的前提下才能進行I/O操作。為此需要接口電路產生狀態(tài)信號或中斷請求信號,表明設備是否做好準備。即通過接口電路來進行單片機與外部設備之間的速度協(xié)調。2.輸出數(shù)據(jù)鎖存由于CPU與外設速度的不一致,需要有接口電路把輸出數(shù)據(jù)先鎖存起來,待輸出設備為接收數(shù)據(jù)做好準備后,再傳送數(shù)據(jù)。這就是接口電路的數(shù)據(jù)鎖存功能。3.數(shù)據(jù)總線隔離線上可能連接著多個數(shù)據(jù)源(輸入設備)和多個數(shù)據(jù)負載(輸出設備)。一對源和負載的數(shù)據(jù)傳送正在進行時,所有其他不參與的設備在電性能上必須與總線隔開。這就是接口電路的總線隔離功能。為了實現(xiàn)總線隔離,需要有接口電路提供具有三態(tài)緩沖功能的三態(tài)緩沖電路。4.數(shù)據(jù)轉換外部設備種類繁多,不同設備之間的性能差異很大,信號形式也多種多樣。單片機只能使用數(shù)字信號,如果外部設備所提供或需要的不是電壓形式的數(shù)字信號,就需要有接口電路進行轉換,其中包括模/數(shù)轉換和數(shù)/模轉換等。5.增強驅動能力通過接口電路為輸出數(shù)據(jù)提供足夠的驅動功率,以保證外部設備能正常、平穩(wěn)地工作。7.1.2關于接口電路的更多說明1.接口與接口電路“接口”(Interface),具有界面、相互聯(lián)系等含義,通過接口能使兩個被連接的器件協(xié)同工作。單片機接口,則是研究單片機與外部設備之間的連接問題。單片機與外部設備之間接口界面的硬件電路稱為接口電路,或稱為I/O接口電路。2.口或端口為了實現(xiàn)I/O接口電路的界面功能,在接口電路中應包含一些寄存器,通常把接口電路中這些已編址并能進行讀或(和)寫操作的寄存器稱為端口或簡稱口(Port)。完整的接口功能是靠軟硬件相結合實現(xiàn)的,而口則是供用戶使用的硬件內容,用戶在進行擴展連接和編寫相關程序時,要用到接口電路中的各個口,為此就需要知道這些口的設置和編址情況。3.I/O接口的特點外部設備和I/O操作的復雜性,使接口電路成為單片機與外部設備之間必不可少的界面,通過接口電路居中協(xié)調和控制,保證外部設備的正常工作。有關I/O接口的特點可歸結為如下3點:①異步性。平時單片機與外部設備按各自的時序并行工作,只有在需要時外部設備才通過接口電路接受單片機的控制。②實時性。單片機對外部設備的控制以查詢或中斷方式進行,以便最大限度地實現(xiàn)控制的實時化。③與設備無關性。接口芯片不一定是專用的,同一個接口芯片通過軟件設置可為多種設備實現(xiàn)接口。4.并行接口與串行接口按數(shù)據(jù)傳輸方式的不同,接口有并行與串行之分,即并行接口與串行接口。本章重點是并行接口。7.1.3I/O編址技術為了對I/O接口電路中的寄存器(端口)進行讀/寫操作,就需要對它們進行編址,所以就出現(xiàn)了I/O編址問題。有兩種I/O編址方式:統(tǒng)一編址方式和獨立編址方式。在80C51單片機系統(tǒng)中,采用統(tǒng)一編址方式。所謂統(tǒng)一編址方式,就是把I/O接口中的寄存器與外擴展的數(shù)據(jù)存儲器中的存儲單元同等對待,合在一起使用同一個64KB的外擴展地址空間。I/O和存儲器的統(tǒng)一編址,使得I/O口也采用16位地址編址,并使用數(shù)據(jù)存儲器讀/寫指令進行I/O操作,而不需要專門的I/O指令.所謂獨立編址方式,就是把I/O與存儲器分開進行編址。這樣,在一個單片機系統(tǒng)中就形成了兩個獨立的地址空間:存儲器地址空間和I/O地址空間。獨立編址方式的優(yōu)點是兩個地址空間相互獨立界限分明,但同時也存在許多麻煩并增加系統(tǒng)開銷,所以獨立編址方式在單片機中較少采用。7.1.4單片機I/O控制方式1.無條件方式無條件傳送也稱為同步程序傳送。只有那些能一直為I/O操作作好準備的設備,才能使用無條件傳送方式。在進行無條件I/O操作時,無需測試設備的狀態(tài),可以根據(jù)需要隨時進行I/O操作。

無條件傳送適用于兩類設備的I/O操作。一類是具有常駐的或變化緩慢的數(shù)據(jù)信號的設備。例如,機械開關、指示燈、發(fā)光二極管、數(shù)碼管等,另一類則是工作速度非???,足以和單片機同步工作的設備,例如數(shù)/模轉換器(DAC)。2.查詢方式查詢方式又稱有條件傳送方式,在I/O操作前,要檢測設備的狀態(tài),只有在確認設備已“準備好”的情況下,單片機才能執(zhí)行I/O操作。檢測也稱為“查詢”,所以就把這種有條件的I/O控制方式稱為查詢方式。為實現(xiàn)查詢方式的I/O控制,需要由接口電路提供設備狀態(tài),接口電路中的狀態(tài)寄存器或狀態(tài)位就是為此而準備的。查詢方式只適用于規(guī)模比較小的單片機系統(tǒng)。3.中斷方式

中斷方式與查詢方式的主要區(qū)別在于如何知道外部設備是否為I/O操作做好準備。采用中斷方式進行I/O控制時,當設備做好準備之后,就向單片機發(fā)出中斷請求。單片機接收到中斷請求之后作出響應,暫停正在執(zhí)行的原程序,而轉去執(zhí)行中斷服務程序,通過執(zhí)行中斷服務程序完成一次I/O操作,然后程序返回,單片機再繼續(xù)執(zhí)行被中斷的原程序。中斷方式效率較高,所以在單片機系統(tǒng)中被廣泛采用。但中斷請求是一種不可預知的隨機事件,所以實現(xiàn)起來對單片機系統(tǒng)的硬件和軟件都有較高的要求。前提:接口電路能發(fā)出中斷請求電路。7.2可編程并行接口芯片82558255是Intel公司產品,因其工作方式和操作功能等可通過程序進行設置和改變,稱為可編程接口芯片。7.2.18255硬件邏輯結構8255的全稱是“可編程并行輸入/輸出接口芯片”,具有通用性強且使用靈活等優(yōu)點,可用于實現(xiàn)80C51系列單片機的并行I/O口擴展。7.28255可編程通用并行接口芯片

7.2.18255的外部引腳和內部結構1.外部引腳8255的外部引腳如圖7.1所示,其中::A口的輸入輸出信號線。該口是輸入還是輸出或雙向,由軟件決定。:B口的輸入輸出信號線。該口是輸入還是輸出,由軟件決定。:C口信號線。該口可作輸入、輸出、控制和狀態(tài)線使用,由軟件決定。:雙向數(shù)據(jù)信號線,用來傳送數(shù)據(jù)、控制字和狀態(tài)信息。:讀信號線。:寫信號線。

8255是一個40引腳的雙列直插式集成電路芯片,其引腳排列如下圖。8255芯片引腳圖

:片選信號線,低電平(有效)時,才選中該芯片,才能對8255進行操作。RESET:復位輸入信號,高電平有效時,復位8255。復位后8255的A口、B口和C口均被定為輸入。:口地址選擇信號線。8255內部共有三個口,A口、B口、C口和一個控制寄存器供用戶編程。的不同編碼可分別選擇上述三個口和一個控制寄存器。地址編碼如下表所示。

端口00A口01B口10C口11控制寄存器地址編碼

按功能可把8255的內部結構分為3個邏輯電路部分,分別為:口電路、總線接口電路和控制邏輯電路,如下圖所示。2.內部結構從圖可以看到,左邊的信號與系統(tǒng)總線相連。而右邊是與外設相連接的三個口。三個口均為8位。其中A口輸出有鎖存能力,輸入亦有鎖存能力。B口輸入輸出均有鎖存能力。C口輸出有鎖存能力,輸入沒有鎖存能力,在使用上要注意到這一點。為了控制方便,將8255的三個口分成A,B兩組。其中A組包括A口的8條口線和C口的高四位。B組包括B口的8條口線和C口的低四位。A組和B組分別由軟件編程來加以控制。3、8255的擴展邏輯電路

80C51單片機可以和8255直接連接,下圖給出了一種擴展電路。

圖8255的擴展邏輯電路

7.2.28255的工作方式8255共有三種工作方式,這些工作方式可用軟件編程來指定。工作方式0,又稱基本輸入輸出方式工作方式1,又稱選通輸入輸出方式工作方式2,又稱雙向數(shù)據(jù)傳送方式

1.方式0(基本輸入/輸出方式)方式0適用于無條件數(shù)據(jù)傳送。兩個8位口(A口和B口)和兩個4位口(C口高位部分和C口低位部分)都可以分別或同時設置為方式0。2.方式1(選通輸入/輸出方式)方式1是選通輸入/輸出方式。8255的“選通”是通過信號的“問”與“答”,以聯(lián)絡方式(或稱握手方式)實現(xiàn)的。所以這種數(shù)據(jù)傳送方式是有條件的,適用于以查詢或中斷方式進行控制。在方式1下,A口和B口是數(shù)據(jù)口,C口是控制口,用于傳送和保存數(shù)據(jù)口所需要的聯(lián)絡信號,都有具體的定義。圖A口和B口作輸出口時,C口提供的控制引線

(1)方式1下,A口和B口均為輸出

:輸出緩沖器滿信號,低電平有效。用來告訴外設,在規(guī)定的接口上CPU已輸出一個有效的數(shù)據(jù),外設可以從該口取走此數(shù)據(jù)。:外設響應信號,低電平有效。用來通知接口,外設已經將數(shù)據(jù)接收,并使。

INTR:中斷請求信號,高電平有效。當外設已從接口取走數(shù)據(jù),口的緩沖器變空,且接口允許中斷時,INTR有效。即,且允許中斷,則INTR=1。

(2)方式1下,A口和B口均為輸入

這種情況和兩口均為輸出類似。

圖A口和B口作輸出口時,C口提供的控制引線

圖A口和B口作輸入口時,C口提供的控制引線

各控制信號的含義如下::輸入選通信號,低電平有效。它由外設提供,利用該信號可以將外設數(shù)據(jù)鎖存于8255的口鎖存器中。

IBF:輸入緩沖器滿信號,高電平有效。當它有效時,表示已有一個有效的外設數(shù)據(jù)鎖存于8255的口鎖存器中??捎么诵盘柾ㄖ庠O數(shù)據(jù)已鎖存于接口中,尚未被CPU讀走,暫不能向接口輸入數(shù)據(jù)。

INTR:中斷請求信號,高電平有效。當外設將數(shù)據(jù)鎖存于接口之中,且又允許中斷請求發(fā)生時,就會產生中斷請求。3.工作方式2,又稱雙向數(shù)據(jù)傳送方式

只有A口才能工作在方式2。A口工作方式2時要利用C口的5條線才能實現(xiàn)。此時,B口只能工作在方式0或者方式1下,而C口剩余的3條線可作為輸入線、輸出線或B口方式1之下的控制線。C口提供的控制線如圖所示。圖

工作方式2時,C口提供的控制線C口聯(lián)絡信號定義C口位線方式1方式2輸入輸出輸入輸出PC7/OBFA/OBFAPC6/ACKA/ACKAPC5IBFAIBFAPC4/STBA/STBAPC3INTRAINTRAINTRAINTRAPC2/STBB/ACKBPC1IBFB/OBFBPC0INTRBINTRB7.2.38255的編程內容8255是可編程接口芯片,主要編程內容是兩條控制命令,即工作方式命令和C口位置位/復位命令。1.工作方式命令工作方式命令用于設定各數(shù)據(jù)口的工作方式及數(shù)據(jù)傳送方向。命令的最高位(D7)是標志位,其狀態(tài)固定為1。命令格式如下圖所示。對工作方式命令有如下兩點說明:A口有3種工作方式,而B口只有兩種工作方式;在方式1和方式2下,對C口的定義(輸入或輸出)不影響作為聯(lián)絡信號使用的C口各位的功能。8255工作方式命令格式2.C口位置位/復位命令在方式1和方式2下,C口用于定義控制信號和狀態(tài)信號,因此,C口的每一位都可以進行置位或復位。對C口各位的置位或復位是由位置位/復位命令進行的。8255的位置位/復位命令格式如下圖。3.初始化編程8255初始化的內容就是向控制字寄存器寫入命令。

例如,若對8255各口作如下設置:A口方式0輸入,B口方式1輸出,C口高位部分為輸出,低位部分為輸入。設控制寄存器地址為0003H。按各口的設置要求,工作方式命令字為10010101,即95H。則初始化程序段應為:

MOVR0,#03H MOVA,#95H MOVX@R0,AMOVDPTR,#0003H MOVA,#95H MOVX@DPTR,A7.2.48255接口應用1.8255的I/O控制方式(1)無條件方式以方式0進行數(shù)據(jù)輸入/輸出,就是無條件傳送方式。(2)查詢方式在方式1和方式2下,都可以使用查詢方式進行數(shù)據(jù)傳送。數(shù)據(jù)輸入時,供查詢的狀態(tài)信號是IBF(對應A口為IBFA,B口為IBFB),因為傳送這些信號的口線分別為PC5和PC1,所以查詢時就是對輸入這些口線的狀態(tài)進行測試。數(shù)據(jù)輸出時,供查詢的狀態(tài)信號是OBF(對應A口為OBFA,B口為OBFB),被測試的口線為PC7和PC1。

(3)中斷方式在方式1和方式2下,都可以使用中斷方式進行數(shù)據(jù)傳送。中斷請求信號是INTR(對應A口為INTRA,B口為INTRB),傳送中斷請求信號的口線分別為PC3和PC0。2.端口選擇及讀/寫控制8255共有4個可尋址端口:A口、B口、C口和控制寄存器,由CS和地址A0、A1的狀態(tài)組合進行選擇,由讀/寫信號RD和WR進行端口操作控制,具體設置見下表。8255端口選擇及讀/寫控制表/CSA1A0/RD/WR選擇端口端口操作00001A口讀端口A00101B口讀端口B01001C口讀端口C00010A口寫端口A00110B口寫端口B01010C口寫端口C01110控制寄存器寫控制命令1××××---數(shù)據(jù)總線緩沖器輸出端呈高阻抗鍵盤是單片機不可缺少的人機交互設備。7.3.1鍵掃描和鍵碼生成

1.鍵盤舉例為說明鍵盤的工作原理,以一個8行×4列的矩陣鍵盤為例,如下圖所示。鍵盤上有行線和列線之分,本鍵盤共有8條行線4條列線。在行線和列線的交點處有一個鍵,由于行線與列線分別與鍵的不同端相連,平時鍵處于斷開狀態(tài),所以行線和列線互不相通。接口時,行線一端接輸出口,另一端懸空;而列線一端經電阻接+5V電源,另一端接輸入口。由于列線通過電阻與+5V電源相連,所以列線的初始狀態(tài)為高電平。7.3鍵盤接口技術

鍵盤掃描示意圖鍵碼表2.鍵碼鍵盤上的每個鍵都擔負一項處理功能,而處理功能是通過軟件實現(xiàn)的,所以鍵盤接口必須有軟件配合。為此,鍵盤上每個鍵都對應有一個處理程序段,鍵的功能是通過運行這個程序段實現(xiàn)的。為了在程序中能順利地分支到鍵處理程序段,就需要對鍵進行編碼,稱為鍵碼,以便能按鍵碼進行程序分支。鍵的編碼沒有統(tǒng)一標準,存在多種多樣的鍵編碼方法。最常用的編碼方法是以鍵在鍵盤矩陣中的位置,從0開始按自然數(shù)順序進行編碼,鍵碼以十六進制數(shù)表示。

鍵碼表7FH1FH17H0FH07HBFH1EH16H0EH06HDFH1DH15H0DH05HEFH1CH14H0CH04HF7H1BH13H0BH03HFBH1AH12H0AH02HFDH19H11H09H01HFEH18H10H08H00HF7HFBHFDHFEH各行的掃描碼對應列有閉合鍵時的狀態(tài)碼(或稱返回碼)鍵盤掃描程序例如上圖所示的鍵號是按從下到上、從右向左的順序編排的。這樣安排,使鍵碼既可根據(jù)行號列號以查表求得,也可通過計算得到。上圖所示的鍵碼編排規(guī)律,各列首號依次是00H、08H、10H、18H,如行號按0~7順序,則鍵碼的計算公式為:

鍵碼=列首號+行號等待鍵釋放計算鍵碼后,再以延時后進行行掃描的方法等待鍵釋放。等待釋放是為了保證鍵的一次閉合僅進行一次處理。3.鍵盤掃描通常把鍵盤上被按下的鍵稱為閉合鍵。為了識別閉合鍵,有行掃描法和線反轉法兩種方法可供選用,在單片機中常用的是行掃描法,簡稱掃描法。這里介紹的鍵盤掃描是由軟件實現(xiàn)的。軟件方法鍵盤掃描是在掃描程序驅動下進行的,所以掃描過程也就是掃描程序的執(zhí)行過程。

開始前,通過程序反復不斷地進行閉合鍵查找,即看看鍵盤中是否有閉合鍵,為此,應先使行線輸出口輸出全0,再讀回列線狀態(tài),若列線狀態(tài)為全1,則表明沒有鍵被按下;若不為全1,則表明有鍵被按下。因為當有鍵被按下時,由于行線與列線在閉合鍵交點處接通,使穿過閉合鍵的那條列線變?yōu)榈碗娖健0l(fā)現(xiàn)閉合鍵后才接著進行鍵盤掃描,判定閉合的是哪個鍵;若無閉合鍵,就返回去重復進行閉合鍵的查找。

鍵盤掃描過程是依次使行線中的每一條輸出低電平,接著輸入列線狀態(tài)進行有無閉合鍵的判定。發(fā)現(xiàn)閉合鍵后,掃描并未結束。因為還要判定是否還有其他鍵被同時按下,所以掃描還應繼續(xù)下去,直至最后在行線上輸出7FH為止。例如:4.鍵盤掃描程序流程5.去抖動每當確認有鍵被按下后,都應當進行去抖動處理。因為鍵在被按下時,由于機械觸點的彈性以及電壓突跳等原因,在觸點閉合及釋放的瞬間將出現(xiàn)電壓抖動,如下圖。鍵閉合和斷開時的電壓抖動去抖動處理有軟件和硬件兩種方法。軟件去抖動方法是采用時間延遲以躲過抖動(延時時間為10~20ms即可);硬件方法是在鍵盤中附加去抖動電路,以抑制抖動的產生,具體可使用雙穩(wěn)態(tài)電路或濾波電路等,但硬件去抖動需增加成本。7.3.2用8255實現(xiàn)鍵盤接口1.接口電路邏輯圖以8255作8×4鍵盤的接口為例。A口為輸出口,接鍵盤行線。C口為輸入口,以PC3~PC0接鍵盤的4條列線。如下圖。假定A口地址為8000H,則B口地址為8001H,C口地址為8002H,控制寄存器地址為8003H。2.判斷有無閉合鍵的子程序判斷有無閉合鍵的子程序為KS,以供在鍵盤掃描程序中調用。執(zhí)行KS子程序的結果是:有閉合鍵,則(A)≠0;無閉合鍵,則(A)=0。程序如下:

KS: MOVDPTR,#8000H MOVA,#00H ;A口送00H MOVX@DPTR,A INCDPTR INCDPTR ;建立C口地址

MOVXA,@DPTR ;讀C口

CPLA ;A取反,若無鍵按下,則全為0 ANLA,#0FH ;屏蔽A高半字節(jié)

RET3.鍵盤掃描程序在單片機應用系統(tǒng)中常常是鍵盤和顯示器同時存在,因此,可以把鍵盤程序和顯示程序配合起來使用,即把顯示程序作為鍵盤程序中的一個延時子程序使用。這樣既不耽誤顯示驅動,又可以起到鍵盤定時掃描的作用。假定本系統(tǒng)中顯示器驅動程序為DIR,執(zhí)行時間約為6ms。鍵盤掃描程序如下,程序中R2為掃描碼寄存器,R4為行計數(shù)器。KEY:ACALLKS;檢查是否有鍵閉合

JNZLK1;A非0,則轉移

ACALLDIR;驅動顯示器(延時6ms)

AJMPKEYLK1:ACALLDIR;有鍵閉合2次驅動顯示器

ACALLDIR;延時12ms進行去抖動

ACALLKS;再檢查是否有鍵閉合

JNZLK2;有鍵閉合,轉LK2 ACALLDIR AJMPKEY;無鍵閉合,延時6ms后轉KEYLK2:MOVR2,#FEH;掃描初值送R2 MOVR4,#00H;掃描行號送R4LK4:MOVDPTR,#8000H;建立A口地址MOVA,R2MOVX@DPTR,A;掃描初值送A口,掃描開始INCDPTRINCDPTR;指向C口MOVXA,@DPTR;讀C口JBACC.0,LONE;ACC.0=1,第0列無鍵閉合,轉LONEMOVA,#00H;裝第0列狀態(tài)碼起始值AJMPLKPLONE:JBACC.1,LTWO;ACC.1=1,第1列無鍵閉合,轉LTWO MOVA,#08H;裝第1列狀態(tài)碼起始值

AJMPLKPLTWO:JBACC.2,LTHR;ACC.2=1,第2列無閉合,轉LTHR MOVA,#10H;裝第2列狀態(tài)碼起始值

AJMPLKPLTHR:JBACC.3,NEXT;ACC.3=1,第3列無鍵閉合,則轉NEXT MOVA,#18H;裝第3列狀態(tài)碼起始值LKP:ADDA,R4;計算鍵碼

PUSHACC;保護鍵碼LK3:ACALLDIR;延時6ms ACALLKS;查鍵是否繼續(xù)閉合,若閉合再延時

JNZLK3 POPACC;若鍵起,則鍵碼送A RETNEXT:INCR4;掃描行號加1 MOVA,R2 JNBACC.7,KND;第7位為0,已掃完最后一行,則轉KND RLA;掃描碼循環(huán)左移一位

MOVR2,AJMPLK4;進行上一行掃描KND:AJMPKEY;一輪掃描完畢,開始新的一輪掃描7.4LED顯示器接口技術在單片機應用系統(tǒng)中,最簡單、最常見的顯示器件是LED顯示器。7.4.1LED顯示器概述

LED是LightEmitingDiode(發(fā)光二極管)的縮寫,發(fā)光二極管是能將電信號轉換為光信號的電致發(fā)光器件。數(shù)碼管有7段數(shù)碼管和8段數(shù)碼管之分。7段數(shù)碼管由7個發(fā)光二極管組成,而8段數(shù)碼管則是在7段發(fā)光二極管的基礎上再加一個圓點型發(fā)光二極管(在圖中以dp表示),用于顯示小數(shù)點。8段數(shù)碼管中發(fā)光二極管的排列形狀如下圖(a)所示。

8段LED顯示器返回8段LED顯示器數(shù)碼管能夠被廣泛使用,與其具有的許多特點是分不開的,其中包括:①發(fā)光響應快,亮度強,高頻特性好;而且隨著材料的不同,數(shù)碼管還能發(fā)出紅、黃、綠、藍、橙等多種顏色的光。②機械性能好,體積小,重量輕,價格低廉;能與CMOS和TTL電路配合使用;使用壽命長,可達105~106h。③工作電壓低,驅動電流適中。每段工作電流為5~10mA,一只數(shù)碼管的7段LED全亮需要電流為35~70mA。這樣大的電流需要由驅動電路提供,因此,使用時要注意數(shù)碼管的驅動問題。在使用中,為了給發(fā)光二極管加驅動電壓,它們應有一個公共引腳,公共引腳共有如下兩種連接方法:①共陰極接法。把發(fā)光二極管的陰極連在一起構成陰極公共引腳,如上圖(b)所示。使用時陰極公共引腳接地,這樣陽極引腳上加高電平的發(fā)光二極管就導通點亮,而加低電平的則不點亮。②共陽極接法。把發(fā)光二極管的陽極連在一起作為陽極公共引腳,如上圖(c)所示。使用時陽極公共引腳接+5V。這樣陰極引腳上加低電平的發(fā)光二極管即可導通點亮,而加高電平的則不點亮。7.4.2LED顯示器顯示原理1.段碼

所謂段碼就是為數(shù)碼管顯示提供的各段狀態(tài)組合,字形代碼。7段數(shù)碼管的段碼為7位,8段數(shù)碼管的段碼為8位,用一個字節(jié)即可表示。在段碼字節(jié)中代碼位與各段發(fā)光二極管的對應關系如下:段碼D7D6D5D4D3D2D1D0段名dpgfedcba段碼的值與數(shù)碼管公共引腳的接法(共陽極和共陰極)有關。以8段數(shù)碼管為例,顯示十六進制數(shù)的段碼值在下表中。數(shù)字共陽極段碼共陰極段碼數(shù)字共陽極段碼共陰極段碼0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H滅FFH00H880H7FH2.LED顯示器動態(tài)顯示方式LED顯示器多采用動態(tài)顯示方式,全部數(shù)碼管共用一套段碼驅動電路。顯示時通過位控信號采用掃描的方法逐位地循環(huán)點亮各位數(shù)碼管。動態(tài)顯示雖然在任一時刻只有一位數(shù)碼管被點亮,但是由于人眼具有的視覺暫留效應,看起來與全部數(shù)碼管持續(xù)點亮的效果完全一樣。LED顯示器動態(tài)顯示需要為各位提供段碼以及相應的位控制,此即通常所說的段控和位控。

4位數(shù)碼管動態(tài)顯示示意圖通過并行口輸出相互獨立的位碼,用于選擇顯示位段碼輸出到公共信號線上,就是段控信號7.4.3LED顯示器接口1.8255實現(xiàn)LED顯示器接口下圖使用8255作6位LED顯示器接口的接口電路。其中PC口為位碼輸出口,以PC5~PC0輸出位控線。由于驅動電流較大,輸出加接74LS06進行反相并提高驅動能力。PA口為段碼輸出口,各段碼線的負載電流約為8mA,為提高顯示亮度,加接74LS244進行段控輸出驅動。使用8255作LED顯示器接口,8255只能輸出顯示段碼而不具有控制功能,動態(tài)控制要靠程序實現(xiàn)。對此有以下兩點說明。7.4.3LED顯示器接口①為了存放段碼,通常要在80C51的內部RAM中設置一個顯示緩沖區(qū),存儲單元個數(shù)與LED顯示器的位數(shù)相同,一個單元對應一個顯示位。②為了保證顯示亮度,在掃描過程中,應在每一位數(shù)碼管上都駐留一段時間(約1ms),以使數(shù)碼管穩(wěn)定地點亮一段時間,以保證其顯示亮度。為此在掃描過程中,位與位之間要加進一段時間延遲。LED5LED4LED3LED2LED1LED07EH7DH7CH7BH7AH79H自右向左動態(tài)顯示8255作6位LED顯示器接口電路2.LED顯示驅動程序DIR:MOVR0,#79H;建立顯示緩沖區(qū)首址

MOVR3,#01H;從右邊開始顯示

MOVA,R3;位控碼初值LD0:MOVDPTR,#8002H;位控口地址

MOVX@DPTR,A;輸出位控碼

MOVDPTR,#8000H;段控口地址

MOVA,@R0;取出顯示數(shù)據(jù)DIR0:ADDA,#0DH MOVCA,@A+PC;查表取字形代碼DIR1:MOVX@DPTR,A;輸出段控碼

ACALLDL;延時

INCR0;轉向下一緩沖單元

MOVA,R3 JBACC.5,LD1;判斷是否到最高位,到,則返回

RLA;不到,向顯示器高位移位

MOVR3,A;位控碼送R3保存

AJMPLD0;繼續(xù)掃描LD1:RETDSEG:DB3FH,06H,5BH……;共陰極字形代碼表

假定A口地址為8000H,B口地址為8001H,則C口地址為8002H,控制寄存器地址為8003H。則LED顯

溫馨提示

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

評論

0/150

提交評論