第六章鍵盤、顯示器裝置及功率接口_第1頁
第六章鍵盤、顯示器裝置及功率接口_第2頁
第六章鍵盤、顯示器裝置及功率接口_第3頁
第六章鍵盤、顯示器裝置及功率接口_第4頁
第六章鍵盤、顯示器裝置及功率接口_第5頁
已閱讀5頁,還剩70頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

熟悉編碼和非編碼鍵盤的概念,掌握獨立式和矩陣式鍵盤接口設計及編程方法。掌握LED、LCD顯示器的工作原理,與單片機的接口電路及程序設計方法。學習功率器件在工業控制中的應用、功率接口電路及編程方法。重點掌握鍵檢測、鍵掃描程序及顯示程序的設計和功率接口電路設計的方法。難點:鍵掃描程序、顯示程序和功率接口電路的設計與編程。第6章鍵盤、顯示器及功率接口

本章學習要點6.1鍵盤的接口

鍵盤是計算機不可缺少的輸入設備,是實現人機對話的紐帶。按其結構形式鍵盤可分為非編碼鍵盤和編碼鍵盤,前者用軟件方法產生鍵碼,而后者則用硬件方法產生鍵碼。在單片機中使用的都是非編碼鍵盤,因為非編碼鍵盤結構簡單成本低廉。按鍵型式有獨立式和矩陣式兩種:1、獨立式按鍵就是各按鍵相互獨立,每個按鍵各接一根輸入線,一根輸入線上的按鍵工作狀態不會影響其它輸入線上的工作狀態。因此,通過檢測輸入線的電平狀態可以容易判斷那個按鍵按下。2、矩陣式按鍵就是鍵盤上的鍵按行列構成矩陣,在行列的交叉點上都對應有一個鍵。所謂鍵實際上是一個機械彈性開關,被按下則其交點的行線和列線接通。非編碼鍵盤接口技術的主要內容就是如何確定被按鍵的行列位置,并據此產生鍵碼。這就是所謂鍵的識別問題。鍵盤輸入的抖動問題

鍵盤實質上是一組按鍵開關的集合,均利用機械觸點的合、斷作用。一個電壓信號通過機械觸點的斷開、閉合過程如圖6.1所示。圖6.1按鍵抖動信號波形

按鍵在閉合及斷開的瞬間均伴隨有一連串的抖動,抖動時間的長短由按鍵的機械特性決定,一般為5~10ms。按鍵穩定閉合期的長短則由操作人員的按鍵動作所決定的,一般為十分之幾秒到幾秒的時間。鍵的閉合與否,反應在電壓上就是呈現出高電平或低電平,如果高電平表示斷開的話,那低電平則表示閉合,通過電平的高低狀態的檢測,可確認按鍵按下與否。為了確保CPU對一次按鍵動作只確認一次,必須消除抖動的影響。6.1.2消除按鍵抖動的措施

通常有硬件、軟件兩種消除抖動的方法硬件消除抖動方法有一種雙穩態消抖電路如圖6-2所示,其兩個與非門構成一個RS觸發器。當按鍵未按下時,輸出為1;鍵按下時,輸出為0。鍵的機械性能,使按鍵因彈性抖動而產生瞬時不閉合,抖動跳開b,只要按鍵不返回原始狀態a,雙穩態電路的狀態就不改變,輸出保持為0,不會產生抖動的波形。即使b點的電壓波形是抖動的,但經雙穩態電路之后,其輸出為正規的矩形波形。圖6-2雙穩態消抖電路軟件消除抖動方法硬件消除抖動法需要增加電子元件,電路復雜,特別是按鍵較多時,實現起來有困難。而用軟件消除抖動法,不需要增加電子元件,只要編寫一段延時程序,就可以達到消除抖動的目的,在軟件消除抖動方法中,若CPU檢測到有鍵按下時,先執行一段延時程序后再檢測此按鍵,若仍為按下狀態,則CPU認為該鍵確實按下。同樣,當鍵從按下到再次松開時,CPU檢測到有鍵松開,并在延時一段時間后仍檢測到鍵在松開狀態,則認為鍵確實松開,這樣就消除了抖動的影響,實現了軟件消除抖動的目的圖6-3所示為軟件去抖動判別程序的流程圖圖6-3軟件消除抖動流程圖6.1.3非編碼鍵盤的接口方法

非編碼鍵盤分為獨立式非編碼鍵盤和矩陣式非編碼鍵盤。下面分別進行介紹。1.獨立式非編碼鍵盤結構獨立式非編碼鍵盤(又稱小鍵盤),是指直接用一條I/O線對應連接一個按鍵(一鍵一線)的鍵盤電路。由于每個按鍵單獨占有一條I/O口線,所以該口線的狀態只反映該按鍵是否按下,不會影響其它I/O線的狀態。因而獨立式按鍵電路配置靈活,軟件結構簡單,但在按鍵數量較多時,需要的I/O口線也較多。獨立式按鍵電路如圖6-4所示。當某一按鍵閉合時,相應的I/O線變為低電平。判斷是否有鍵下的方法是,查詢哪一根接按鍵的I/O線為低電平時,便知此鍵按下。獨立式非編碼鍵盤的優點是電路結構簡單。缺點是當鍵數較多時,占用的I/O口線多。例如編寫圖6-4所示的鍵處理程序如下:

圖6-4獨立式非編碼鍵盤程序清單

START:MOVA,#0FFH; 輸入時先置P1口為全1MOVP1,AMOVA,P1;鍵狀態輸入

JNBACC.0,P0F;0號鍵按下轉POF標號地址

JNBACC.1,P1F;1號鍵按下轉P1F標號地址

JNBACC.2,P2F;2號鍵按下轉P2F標號地址

JNBACC.3,P3F;3號鍵按下轉P3F標號地址

JNBACC.4,P4F;4號鍵按下轉P4F標號地址

JNBACC.5,P5F;5號鍵按下轉P5F標號地址

JNBACC.6,P6F;6號鍵按下轉P6F標號地址

JNBACC.7,P7F;7號鍵按下轉P7F標號地址

SJMPSTART;無鍵按下返回P0F:LJMPPROM0;轉至0號鍵功能程序P1F:LJMPPROM1;轉至1號鍵功能程序P2F:LJMPPROM2;轉至2號鍵功能程序P3F:LJMPPROM3;轉至3號鍵功能程序P4F:LJMPPROM4;轉至4號鍵功能程序P5F:LJMPPROM5;轉至5號鍵功能程序P6F:LJMPPROM6;轉至6號鍵功能程序P7F:LJMPPROM7;轉至7號鍵功能程序PROM0:......;0號鍵功能程序

LJMPSTART;0鍵執行完返回PROM1:......;1號鍵功能程序

LJMPSTART;1鍵執行完返回PROM2:...;2號鍵功能程序

LJMPSTART;2號鍵執行完返回PROM3:......;3號鍵功能程序

LJMPSTART;3號鍵執行完返回PROM4:......;4號鍵功能程序

LJMPSTART;4號鍵執行完返回PROM5:......;5號鍵功能程序

LJMPSTART;5號鍵執行完返回PROM6:......;6號鍵功能程序

LJMPSTART;6號鍵執行完返回PROM7:......;7號鍵功能程序

LJMPSTART;7號鍵執行完返回小測:設計51單片機通過8255H實現擴展8個獨立按鍵的電路,要求畫出原理圖,并編寫能夠識別是否有鍵按下的程序,要求有防抖程序。

2.矩陣式非編碼鍵盤結構矩陣式非編碼鍵盤適用于按鍵數量較多的場合。矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點上,一個由3行*8列構成24個按鍵的鍵盤如圖6-5所示。圖6-5矩陣式鍵盤結構

矩陣鍵盤的工作原理:按鍵設置在行、列線交點上,行、列線分別連接到按鍵開關的兩端。行線通過上拉電阻接到+5V上。無按鍵動作時,行線處于高電平狀態,當有鍵按下時,行線電平狀態將由與此行線相連的列線電平決定。列線電平為低,則行線電平為低;列線電平為高,則行線電平亦為高。這一點是識別矩陣鍵盤按鍵是否被按下的關鍵。由于矩陣鍵盤中行、列線為多鍵共用,各按鍵均影響該鍵所在行和列的電平。各按鍵彼此將相互發生影響,所以必須將行、列線信號配合起來并作適當的處理,才能確定閉合鍵的位置。

按鍵的識別方法:有掃描法和線反轉法。描法是常用的方法,現重點介紹掃描法,此方法分兩步進行:第一步,識別鍵盤有無鍵被按下。第二步,如果有鍵被按下,識別出具體的按鍵。識別鍵盤有無鍵被按下的方法是:讓所有列線均置為0電平,檢查各行線電平是否變化。如果有變化,說明有鍵被按下,如果沒有變化,則說明無鍵被按下。識別具體按鍵的方法(亦稱為掃描法);逐列置零電平,其它各列置位高電平,檢查各行線電平的變化,如果其行電平由高電平變為低電平,則可確定此行此列交叉點的按鍵被按下。單片機應用系統中,鍵盤掃描只是CPU的工作內容之一。CPU在忙于各項工作任務時,如何兼顧鍵盤的輸入,取決于鍵盤工作方式。通常鍵盤工作方式有三種,即編程掃描、定時掃描和中斷掃描。

下面以8031鍵盤實際矩陣電路分析說明鍵盤的編程掃描程序。一是KEY-SCAN鍵檢查子程序

二是KEY-GET鍵掃描取值子程序8031鍵盤接口電路如圖6-6所示。

在6000H接口地址的鎖存器74LS373鎖存低電平,此時讀入P1口狀態,在P1.0、P1.1、P1.2三條行線上,只要有一個不是高電平,求反后A中就不為零。此時說明有鍵按下了。否則無鍵按下。鍵檢查子程序:KEY-SCAN:MOVDPTR,#6000H;列口地址送數據指針

MOVA,#00H MOVX@DPTR,A;列線送低電平

MOVP1,#0FFH MOVA,P1;讀行線電平

CPLA;求反

ANLA,#07H;A=0無鍵按下,A≠0有鍵按下

RET

以上檢測程序只能判斷有無鍵按下,但在有鍵按下后再分析具體是哪個鍵按下,則需要用掃描鍵取值程序。KEY-GET:ACALLKEY-SCAN;調鍵檢測

JNZK-G1;有鍵按下

AJMPKEY-GETK-G1:LCALLDELAY;消除抖動延時,約18msLCALLKEY-SCAN;再調鍵檢測

JNZK-G2;有鍵按下

LCALLDELAYAJMPKEY-GETK-G2:MOVR2,#0FEH;R2存掃描信號

MOVR4,#00H;鍵值起始值

K-G3:MOVDPTR,#6000H;輸出列掃描信號

MOVA,R2MOVX@DPTR,AMOVA,P1;讀P1口

JBAcc.0,LINE1;判斷0行高?MOVA,#00H;0行起始值

AJMPK-G-ENDLINE1:JBAcc.1,LINE2;判斷1行高?MOVA,#08H;1行起始值

AJMPK-G-ENDLINE2:JBAcc.2,NEXT-COL;判斷2行高?高下一列

MOVA,#10H;2行起始值

K-G-END:ADDA,R4;計算鍵值

ENDNEXT-COL:INCR4;換列時加1MOVA,R2JNBAcc.7,KEY-NEXT;7列是低

RLA;移到下一行

MOVR2,AAJMPK-G3;返回輸出列信號KEY-NEXT:AJMPKEY-GET

在調用KEY-SCAN程序判明有鍵按下時,再進入此程序,否則將在此程序中等待按鍵。這里R2用來提供信號的低電平的位置,R4是用來記錄位線到哪一位,運行程序出口A中得到按鍵的鍵值。其鍵值表如表6-1,鍵值標注在鍵位下面園括弧內。表6-1鍵位和鍵值圖WRI(12)0(00)1(01)2(02)3(03)[F](16)4(04)5(05)6(06)7(07)MOV(10)8(08)9(09)A(0A)B(0B)USE(17)C(0C)D(0D)E(0E)F(0F)RESMON(11)EXE(14)RDS(13)EXA(15)

除了以上編程掃描工作方式外,定時掃描工作方式是利用單片機內部定時器產生定時中斷(例如10ms),CPU響應中斷后對鍵盤進行掃描,并在有鍵按下時識別出該鍵并執行相應鍵功能程序,定時掃描工作方式的鍵盤硬件電路與編程掃描工作方式相同。鍵盤工作于編程掃描狀態時,CPU要不間斷地對鍵盤進行掃描工作,以監視鍵盤輸入情況,直到有鍵按下為止。其間CPU不能干任何其他工作,如果CPU工作量較大,這種方式將不能適應。定時掃描進了一大步,除了定時監視一下鍵盤輸入情況外,其余時間可進行其他任務的處理,CPU效率提高了,為了進一步提高CPU工作效率,可采用中斷掃描工作方式即只有在鍵盤有鍵按下時,才執行鍵盤掃描并執行該鍵功能程序,如果無鍵按下,CPU將不理睬鍵盤,可以說前兩種掃描方式,CPU對鍵盤的監視是主動進行的,而后一種掃描方式,CPU對鍵盤的監視是被動進行的。6.1.4BCD碼撥盤接口BCD碼十進制撥盤是向單片機應用系統輸入數據的設備,是一種硬件設置數據的設備。使用撥盤輸入的數據具有不可變性,卻又易于修改。十進制輸入,BCD輸出的撥盤是最常使用的一種。圖6-7所示是一個4位BCD碼撥盤組結構和連接示意圖。每位撥盤有0~9十個撥動位置,每個位置有相應的數字表示,分別代表撥盤輸入的十進制數。所以,一位撥盤可以代表一位十進制數,可以根據設計的需要,用多位BCD碼撥盤組成多位十進制數。

圖6-74位BCD碼撥盤結構和連接BCD碼盤有一個輸入控制線A,4個BCD碼輸出信號線。撥盤的各個不同的位置,使輸入控制線A分別與4根BCD碼輸出線中的某幾根接通,使BCD碼輸出線的狀態與撥盤所顯示的值一致,并使該編碼信號輸入單片機的CPU。BCD碼撥盤的輸入輸出狀態如表6-2所示。

撥盤輸入控制端

A輸出狀態8421010000110001210010310011410100510101610110710111811000911001BCD碼撥盤與單片機相連的應用如圖6-8所示。撥盤的輸入控制線A接+5V,4根輸出線通過電阻接地并接單片機CPU的P1口。由表6.2可知,當撥盤在0~9的某個位置時,4根輸出線的8、4、2、1端有一組相應的電平狀態生成,CPU可以通過讀取P1口的端口狀態知道撥盤設置的數據。在這種情況下,撥盤輸出的BCD碼為正邏輯電平。如果BCD碼撥盤的輸入控制線A接地,4根輸入線通過電阻接+5V,那么撥盤輸出的BCD碼為負邏輯電平,如圖6-9所示圖6-8單片機與BCD碼盤的接口6-9BCD碼盤負邏輯接口串行鍵盤應用

除了利用并行輸入口設計鍵盤控制電路外,還可以用串行方式設計鍵盤控制電路。圖6-10為用單片機串行口設計的串行鍵盤控制電路。

CD4014是8位表態移位寄存器(同步并入),實現并行輸入串行輸出。如圖6.10所示,CD4014的P1~P8作為8個開關S1~S8的輸入端,輸入的開關量通過AT89C51的TXD端控制CD4014的CLK端,把輸入值逐次串行輸入AT89C51的RXD端口,并存入寄存器A中。圖6-10單片機串行口鍵盤控制電路

鍵盤電路程序如下:

S1:STBP1.0;置位CD4014的P/S端

CLRP1.0;清CD4014的P/S端,開始串行移位

MOVSCON,#10H;設置串行方式0,開始接收

W1:JNBRI,W1;判RI狀態

CLRRI;一次串行輸入完成

MOVA,SBUF;存放輸入的數據

RET

除了使用CD4014集成電路外,還可以使用74LS165等集成電路芯片設計串行鍵盤控制電路。6.2LED七段發光顯示器接口

發光二極管顯示器,簡稱LED(LightEmittingDiode),LED有七段和八段之分,也有共陰極和共陽極兩種。共陰極LED顯示塊的發光二極管的陰極連在一起,通常此公共陰極接地,當某個發光二極管的陽極為高電平時。發光二極管點亮,相應段被顯示。同樣共陽板LED顯示塊的發光二極管的陽極連在一起,通常此公共陽極接正電壓。當某個發光二極管的陰極接低電平時,發光二極管被點亮,相應的段被顯示。兩個顯示塊都有SP顯示段,用于顯示小數點。顯示器連接如圖6.11所示:

圖6.11LED原理及外形引腳圖

7段字型碼如表6.3所列,由于只有8個段發光二極管,所以字型碼為一個字節。“米”字段LED字型碼由于有15個段發光二極管,所以字型碼為兩個字節。一般由N片LED顯示塊可拼接成N位LED顯示器。N位LED顯示器有N根位選線和8*N根段選線。根據顯示方式不同,位選線和段選線的連接方法也各不相同。段選線控制顯示字符的字型,而位選線則控制顯示位的亮、暗。LED顯示器有靜態顯示和動態顯示兩種顯示方式。6.2.1靜態顯示接口及編程LED顯示器上工作于靜態顯示方式時,各位的共陰極(或陽極)連接在一起接地(或+5V);每位的段選線(a~sp),分別與一8位的鎖存器輸出相連。靜態顯示是由于顯示器中的各位相應獨立,而且各位的顯示字符一經確定,相應鎖存器的輸出將維持不變,直到顯示另一字符為止。靜態顯示器的亮度較高。由于各位分別由一個8位輸出口控制段選碼,在同一時間里,每一位顯示的字符可以各不相同。這種顯示方式接口,編程容易,管理簡單,付出的代價是占用口線資源較多。

在單片機應用系統中,常采用MCl4495芯片作為LED的靜態顯示接口,它可以和LED顯示器直接相連。MCl4495芯片的引腳和邏輯框圖如圖6.12所示。它是由4位鎖存器、地址譯碼和筆段ROM陣列以及帶有限流電阻的驅動電路(輸出電流為10mA)等三部分電路組成。圖6.12中A、B、C、D為二進制碼(或BCD碼)輸入端;為鎖存控制端,為低電平時可以輸入數據。為高電平時鎖存輸入數據,h+i為輸入數據大于等于10指示位,若輸入數據大于或等于10,則h+i輸出高電平,否則輸出為低電平;為輸入等于15指示位,若輸入數據等于15,則輸出高電平,否則為高阻狀態。圖6.12MC14495引腳和邏輯框圖

MCl4495芯片的作用是輸入被顯字符的二進制碼(或BCD碼),并把它自動轉換成相應字形碼,送給LED顯示。圖6.13為采用MCl4495芯片的4位靜態LED顯示器接口電路。圖中,P1.7~P1.4用于輸出欲顯示字符的二進制碼(或BCD碼),P1.2=0用于控制二~四譯碼器工作,P1.1和P1.0經譯碼器輸出后控制MCl4495中哪一位接收P1.7~P1.4上代碼。例:下面以靜態LED顯示器接口為例編程,編出能在圖6-13電路中自左到右顯示出來的程序。設8031單片機內部RAM的20H和21H單元中有四位十六進制數(20H中為高兩位)。

圖6.12MC14495引腳和邏輯框圖圖6.134位靜態LED顯示器接口圖6.12MC14495引腳和邏輯框圖

ORG1000HSDISPLAY:MOVA,20H ;20H中數送A ANLA,#0F0H ;截取高4 MOVP1,A ;送MC14495 MOVA,20H ;20H中數送A SWAPA ;低4位送高4位

ANLA,#0F0H ;去掉低4位

INCA;指向MC14495 MOVP1,A;送MC14495 MOVA,21H ;21H中數送A ANLA,#0F0H ;截取高4位

ADDA,#02H ;指向MC14495 MOVP1,A ;送MC14495 MOVA,21H ;21H中數送A SWAPA ;低4位送高4位

ANLA,#0F0H ;去掉低4位

ADDA,#03H ;指向MC14495 MOVP1,A ;送MC14495 RET

在本例中,被顯字符是由硬件MCl4495轉換成字形碼的,但也可采用軟件法轉換成字形碼。采用軟件法轉換時,圖6.13中MCl4495應由8位鎖存器替代。靜態顯示所需的硬件開鎖大,CPU也無法預先知道什么時候需要改變LED的被顯示字符。如顯示器位數增多,則靜態顯示方式更無法適應。在顯示位數較多的情況下,一般都采用動態顯示方式。6.2.2動態顯示接口及編程

在多位LED顯示時,為了簡化硬件電路,通常將所有位的段選線相應地并聯在一起,由一個(7段LED)8位I/O口控制,形成段選線的多路復用。而各位的共陽極或共陰極分別由相應的I/O口線控制,實現各位的分時選通。

其原理如圖6.14所示,6位7段LED動態顯示器電路中段選線占用一個8位I/O口,而位選線占用一個6位I/0口,由于各位的段選線并聯,段選碼的輸出對各位都是相同的。因此同一時刻,如果各位位選線都處于選通狀態的話,6位LED將顯示相同字符。若要各位LED能顯示出與本位相應的顯示字符,就必須采用掃描顯示方式,即在某一時刻,只讓某一位的位選線處于選通狀態,而其他各位的位選線都處于關閉狀態。同時在段選線上輸出相應位要顯示字符的字型碼,這樣同一時刻6位LED中只有選通的那一位顯示出字符,其他五位則是熄滅的。

同樣在下一時刻,只讓下一位的位選線處于選通狀態,而其他各位的位選線處于關閉狀態。同時,在段選線上輸出相應位將要顯示字符的字型碼,則同一時刻只有選通位顯示出相應的字符,而其他各位則是熄滅的。如此循環下去,就可以使各位顯示出將要顯示的字符,雖然這些字符是在不同時刻出現的,而在同一時刻,只要一位顯示,其他各位熄滅,但由于人眼有視覺暫留現象,只要每位顯示時間足夠短,則可造成多位同時亮的假象,達到顯示的目的。

圖6.14動態顯示器電路圖動態顯示接口實例

要使lED顯示器顯示出字符,必須提供段選碼和位選碼。段選碼(即字形碼)可以用硬件譯碼的方法得到,也可以用軟件譯碼的方法得到。以8031單片機6位LED動態顯示接口電路為實例分析說明顯示接口與編程。圖6-15所示,為6位LED顯示器的段選線分別并聯在一起,由一個74LS373鎖存器提供段選碼,由另一個74LS373鎖存器提供位選碼。這兩個鎖存器由1個74LSl38譯碼器的輸出4和3分別控制,而74LSl38譯碼器的選擇輸入端分別接到P2.7,P2.6,P2.5,最高的三位地址。因此可以得到段選碼鎖存器的接口地址是8000H,位選碼鎖存器的接口地址是6000H,在6位LED顯示器動態顯示程序中需要6個和6個LED相對應的存儲單元,用來存儲相應位要顯示字符。這6個單元稱為顯示緩沖區。

在8031單片機開發系統中7EH,7DH,7CH,7BH,7AH和79H片內數據存儲區,和6個LED顯示位由左到右一一對應,如圖6-16所示。DG6DG5DG4DG3DG2DG17EH7DH7CH7BH7AH79H圖6-16LED對應顯示緩沖區

圖6.156位LED動態顯示接口電路動態掃描顯示程序清單如下:DISPLAY:MOVR0,#79H;R0指向顯示緩沖區低位

MOVR3,#01H;R3指向位碼低位

MOVA,R3;輸出位碼DISPLAY1:MOVDPTR,#6000H;DPTR指向位口地址

MOVX@DPTR,AMOVA,@R0;輸出段碼

ADDA,#19H;加PC到TABLE偏移量

MOVCA,@A+PC;查表獲得對應的段碼

MOVDPTP,#8000H;DPTR指向段口地址

MOVX@DPTP,A;在段口輸出段碼

ACALLDELAY;延時lms左右

INCR0;指向下一個緩沖區地址

MOVA,R3;修改位碼

JBACC.5,DISPLAY2;已到最左位返回

RLA;移到下一位

MOVR3,AAJMPDISPLAY1;繼續循環

DISPLAY2:RETDELAY:MOVR7,#02H;延時程序約lmsDELAY1:MOVR6,#0FFHDELAY2:DJNZR6,DELAY2DJNZR7,DELAY1RETTABLE:DBC0H;0的段選碼

F9H;1A4H;2B0H;399H;492H;582H;6F8H;780H;890H;988H;A83H;BC6H;CA1H;D86H;E8EH;F

以上顯示程序是掃描程序,是把6個LED顯示塊從右到左逐個顯示一遍,每一個顯示時間約1ms,如果反復調用此顯示程序,循環下去,根據人眼的視覺暫留現象,使人感覺這6個LED好象同時在顯示,顯示的內容是預先放在對應顯示緩沖區的內容。6.2.38155作LED顯示器接口8155是可編程RAM/IO接口芯片,可與MCS-51單片機直接相接而不需要任何硬件,是單片機系統中最實用,最廣泛使用的接口芯片之一。為了實現LED顯示器的動態掃描,除了要給顯示器提供段(字形代碼)的輸入之外,還要對顯示器加位的控制。因此多位LED顯示器接口電路需要有二個輸出口,其中一個用于輸出8條段控線(有小數點顯示);另一個用于輸出位控線,位控線的數目等于顯示器的位數。圖6.17是使用8155作六位LED顯示器的接口電路。

圖6.178155作六位LED顯示器的接口電路

其中C口為輸出口(位控口),以PC5~PC0輸出位控線。由于位控線的驅動電流較大,8段全亮時約40~60mA,因此PC口輸出加74LS06進行反相和提高驅動能力,然后再接各LED顯示器的位控端。

A口也為輸出口(段控口),以輸出8位字形代碼(段控線)。段控線的負載電流約為8mA,為提高顯示亮度,通常加74LS244進行段控輸出驅動。顯示緩沖區為了存放顯示的數字或字符,通常在內部RAM中設置顯示緩沖區如圖6.16所示,其單元個數與LED顯示器位數相同。假定位控口地址0101H,段控口地址0102H。以R0存放當前位控值,DELAY為延時子程序。DIR:MOVR0,#79H;建立顯示緩沖區首址

MOVR3,#01H;從右數第一位顯示器開始

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

MOVX@DPTR,A;輸出位控碼

INCDPTR;得段控口地址

MOVA,@R0;取出顯示數據DIR0:ADDA,#0DHMOVCA,@A+PC;查表取字形代碼DIR1:MOVX@DPTR,A;輸出段控碼

ACALLDL;延時

INCR0;轉向下一緩沖單元

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

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

MOVR3,A;位控碼送R3保存

AJMPLD0;繼續掃描

LD1:RETDSEG:DB3FH;字形代表碼

DB06HDB5BH…

在動態掃描過程中,調用延時子程序DELAY,其延遲時間大約1ms。這是為了使掃描到的那位顯示器穩定地點亮一段時間,猶如掃描過程中在每一位顯示器上都有一段駐留時間,以保證其顯示亮度。本例接口電路是軟件為主的接口電路,對顯示數據以查表方法得到其字形代碼,為此在程序中有字形代碼表DSEG。從0開始依次寫入十六進制數的字形代碼。為了進行查表操作,使用查表指令MOVCA,@A+PC,由PC提供16位基址,由A提供變址。MOVC指令距DSEG表的地址間隔為0DH,因此顯示數據送A后,進行A-(A)+0DH操作,以求得變址值,然后進行查表操作。在實際的單片機系統中,LED顯示程序都是作為一個子程序供監控程序調用。因此各位顯示器都掃過一遍之后,就返回監控程序。返回監控程序后,經過一段時間間隔后,再調用顯示掃描程序。通過這種反復調用來實現LED顯示器的動態掃描。

小測:設計51單片機通過8155H實現擴展6位LED和32鍵鍵盤的電路,要求畫出原理圖,并編寫鍵盤識別和LED顯示的程序。鍵盤識別程序:

KEY:MOVDPTR,#7F01H______________MOVX@DPTR,AINCDPTRINCDPTR______________CPLAANLA,#0FHJZKEY…LED顯示程序:DIR:MOVR0,#79H;建立顯示緩沖區首址

MOVR3,#01H;從右數第一位顯示器開始

MOVA,R3;位控碼初值LD0:MOVDPTR,______;位控口地址

MOVX@DPTR,A;輸出位控碼

MOVDPTR,______;得段控口地址

MOVA,@R0;取出顯示數據DIR0:ADDA,#0DHMOVCA,@A+PC;查表取字形代碼DIR1:MOVX@DPTR,A;輸出段控碼

ACALLDL;延時

INCR0;轉向下一緩沖單元

MOVA,R3______________;判是否到最高位,到則返回

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

MOVR3,A;位控碼送R3保存

AJMPLD0;繼續掃描

LD1:RETDSEG:DB3FH;字形代表碼

DB06HDB5BH…6.4功率器件接口電路

在工業控制中,單片機的被控對象大多都是功率設備,需要高電壓大電流,單片機不能直接驅動,要通過相應的接口電路才能輸出一定的功率來驅動功率設備。常用的功率接口有繼電器型、晶閘管型、光電隔離型和功率晶體管型等多種形式。

6.4.1繼電器型驅動接口及編程

繼電器是通過線圈的電流來控制觸點的開與合,由于繼電器的線圈和觸點之間沒有電氣上的聯系,因此,可以使用繼電器來實現自動控制上的電氣隔離。圖6.25所示是繼電器的基本應用電路。

圖6.25所示,KA為繼電器線圈,KAl和KA2是繼電器的動合、動斷觸點,當晶體管T的基極輸入一個高電平,使T進入飽和狀態,Vc通過繼電器的線圈有電流流過,流過電流的線圈產生磁場力吸引觸點動作。R為晶體管基極限流電阻,二極管D用于對晶體管的保護。在平時,由于二極管為反向串接,沒有電流過,當繼電器線圈失電的瞬間會產生很大的反電動勢,有可能使晶體管擊穿,由于有二極管D的存在,提供了一個通路,使反電動勢不會損壞晶體管,從而起到了保護作用。在繼電器失電狀態下,動合觸點斷開,動斷觸點閉合,當繼電器得電后,動合觸點閉合,而動斷觸點斷開,利用繼電器的觸點開關作用可以控制設備或傳送邏輯電平信號。一般繼電器帶有一組或多組動合、動斷觸點供使用,繼電器的線圈電流也有大小,觸點的接觸電流也有大小,耐壓值也有高有低,用戶可以根據設計的要求選用相應的繼電器。

圖6.25繼電器基本應用1、繼電器驅動接口及電氣參數

在各種控制中,應用場合不同,需要選用的繼電器也不同。在設計繼電器接口電路時,要了解繼電器的一些參數,進行正確的設計,才能獲得好的控制效果。在電路設計時,應根據印制電路板的大小,選用合適的繼電器,要考慮它的體積、封裝形式。目前,有供印制電路板設計用的微小型繼電器,供電電壓為5V。

對于功率大的驅動繼電器,有必要在中間增加一級繼電器,如圖6.26所示。繼電器常用電氣參數有:

(1)額定工作電壓和電流

是指繼電器在正常工作狀態下,繼電器線圈兩端所加的電壓值或線圈中流過的電流值,是應用于設計的主要參數,是設計的依據。

(2)吸合電壓和電流

是指繼電器能產生吸合動作的最小電壓值或電流值,一般為額定值的75%左右。在設計中為保證繼電器可靠工作,應使控制電壓高于吸合電壓,

溫馨提示

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

評論

0/150

提交評論