《單片機(jī)原理、接口與C51應(yīng)用程序設(shè)計(jì)》課件第9章_第1頁
《單片機(jī)原理、接口與C51應(yīng)用程序設(shè)計(jì)》課件第9章_第2頁
《單片機(jī)原理、接口與C51應(yīng)用程序設(shè)計(jì)》課件第9章_第3頁
《單片機(jī)原理、接口與C51應(yīng)用程序設(shè)計(jì)》課件第9章_第4頁
《單片機(jī)原理、接口與C51應(yīng)用程序設(shè)計(jì)》課件第9章_第5頁
已閱讀5頁,還剩99頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第9章單片機(jī)與鍵盤、顯示器的接口技術(shù)9.1單片機(jī)與鍵盤的接口

9.2單片機(jī)與LED顯示器的接口

9.3鍵盤/顯示接口芯片及其應(yīng)用

9.4單片機(jī)與LCD顯示器的接口

9.1單片機(jī)與鍵盤的接口

9.1.1按鍵電路和抖動(dòng)的消除

鍵盤一般由一組機(jī)械按鍵按一定的規(guī)律組成,其結(jié)構(gòu)與產(chǎn)生的波形如圖9.1所示。圖9.1開關(guān)按鍵及波形圖9.1(a)為鍵盤的工作原理,一般鍵盤通過I/O口與單片機(jī)相連,鍵的狀態(tài)通過讀入鍵值的高低電平來區(qū)分。正常狀況下,與鍵盤所連接的單片機(jī)的I/O端口被設(shè)置為高電平,當(dāng)有鍵按下時(shí),與之相連的單片機(jī)的I/O端口將被鉗位成低電平。圖9.1(b)為按鍵產(chǎn)生的波形,一般鍵盤采用機(jī)械彈性開關(guān)。由于機(jī)械觸點(diǎn)的彈性作用,在閉合和斷開瞬間會(huì)有抖動(dòng)發(fā)生,抖動(dòng)時(shí)間的長短一般在5ms~10ms之間。為確保按鍵不產(chǎn)生誤動(dòng)作,必須有防抖措施。防抖有硬件和軟件兩種實(shí)現(xiàn)方法。硬件防抖是指采用硬件電路的方法對(duì)鍵盤的按下抖動(dòng)和釋放抖動(dòng)進(jìn)行消除,經(jīng)過防抖電路后使按鍵的電平信號(hào)只有兩種穩(wěn)定的狀態(tài)。硬件防抖措施的典型做法是采用RS觸發(fā)器構(gòu)成雙穩(wěn)態(tài)消抖電路,如圖9.2所示。經(jīng)過RS觸發(fā)器后,輸出端的信號(hào)變?yōu)闃?biāo)準(zhǔn)的矩形波。

硬件防抖電路能消除鍵盤的抖動(dòng),但若系統(tǒng)中的按鍵數(shù)較多,則硬件防抖電路將變得較為復(fù)雜,成本也較高。硬件防抖一般用在按鍵數(shù)較少的系統(tǒng)中。當(dāng)系統(tǒng)中按鍵數(shù)較多時(shí),可以采用軟件防抖來消除鍵盤的抖動(dòng)。軟件防抖是指當(dāng)軟件檢測到第一次按鍵按下時(shí),執(zhí)行一個(gè)10ms的延時(shí)程序,之后再檢測該鍵電平是否仍維持在閉合狀態(tài),若仍然保持,則確認(rèn)此鍵是真正按下,從而消除了抖動(dòng)。圖9.2硬件防抖電路9.1.2獨(dú)立式鍵盤與單片機(jī)的接口

鍵盤接口有獨(dú)立式鍵盤接口和行列式鍵盤接口兩種。

獨(dú)立式鍵盤是每個(gè)按鍵獨(dú)立地占用一條I/O接口線,每條I/O接口線上按鍵的工作狀態(tài)不會(huì)影響其它I/O口線的工作狀態(tài)。通過檢測輸入線的電平狀態(tài)可以很容易地判斷哪個(gè)按鍵按下,如圖9.3所示。當(dāng)無按鍵按下時(shí),對(duì)應(yīng)的I/O線為高電平;當(dāng)某一按鍵按下時(shí),相應(yīng)的I/O線變?yōu)榈碗娖?。圖9.3獨(dú)立式按鍵接口電路9.1.3行列式鍵盤

行列式鍵盤也稱矩陣式鍵盤,通過I/O口線組成行、列結(jié)構(gòu),按鍵設(shè)置在行、列的交叉點(diǎn)上。如圖9.4所示,一個(gè)8×4的行、列結(jié)構(gòu)可組成32個(gè)鍵的鍵盤。這樣當(dāng)單片機(jī)系統(tǒng)的I/O口資源有限時(shí),可以大量節(jié)省I/O口線。圖9.48×4行列式鍵盤行列式鍵盤設(shè)置在行、列的交點(diǎn)上,行線、列線分別連接到按鍵開關(guān)的兩端,當(dāng)有按鍵按下時(shí),行線與列線相連。行列式鍵盤必須由軟件來判斷是否有鍵按下和按下鍵盤的鍵值。

1.是否有鍵按下的判別

首先由CPU從8155的PA口輸出一個(gè)全為0的數(shù)據(jù),此時(shí)PA7~PA0全部為低電平,如果有鍵按下,則PB0~PB3中總會(huì)有一根線被拉至低電平。當(dāng)CPU去讀8155的PB口時(shí),PB3~PB0不全為1,表明這時(shí)有鍵按下;相反,當(dāng)CPU去讀8155的PB口時(shí),PB3~PB0全為1,表明這時(shí)無鍵按下。

2.鍵值的判別

若第5行第4列的按鍵被按下(即圖中帶圓圈的鍵),則使第4根列線與第5根行線導(dǎo)通,原先處于高電平的第4根列線被第5根行線鉗位到低電平。所以CPU讀8155的PB口時(shí)PB3=0。

從硬件圖中可以看到,只要是第4列的鍵按下,CPU讀8155的PB口時(shí)PB3始終為0。PB口讀得的值為××××0111B。若讀得PB口的值為××××1101B,顯然可以斷定是第2列鍵被按下。行值的判斷可采用掃描法。首先使8155的PA口輸出僅PA0為0,其余位均為1,去讀PB口的值,如讀得PB3~PB0為全1,則按鍵肯定不在第一行;然后使PA1為0,其余位均為1,讀PB口,若仍為全1,則按鍵肯定不在第二行;之后繼續(xù)使PA2為0,其余位為1,讀PB口,以此類推,直到讀出PB3~PB0不全為1或PA7為0為止。當(dāng)PB3~PB0不全為1時(shí),對(duì)應(yīng)行的鍵一定被按下。若第5行第4列鍵按下,則在PA口輸出為11101111B時(shí),PB0~PB3不全為1,而是××××0111B。

行輸出(PA口)?數(shù)據(jù)和列輸入(PB口)?數(shù)據(jù)中“0”對(duì)應(yīng)的位置,表示該鍵的鍵值,即鍵值=行值×10H+列值。圖9.5中各個(gè)鍵的鍵值如表9.1所示。表9.1鍵值的表示(十六進(jìn)制)

9.2單片機(jī)與LED顯示器的接口

9.2.1LED顯示器的基本結(jié)構(gòu)和原理

LED顯示器就是由發(fā)光二極管構(gòu)成的顯示器,人們習(xí)慣上稱之為LED數(shù)碼管。單片機(jī)系統(tǒng)中經(jīng)常使用的是8段式LED數(shù)碼管顯示器,每一段對(duì)應(yīng)一個(gè)發(fā)光二極管,有共陽極和共陰極兩種結(jié)構(gòu),包含a、b、c、d、e、f、g七個(gè)字段和一個(gè)小數(shù)點(diǎn)dp,如圖9.5所示。圖9.58段式LED數(shù)碼管結(jié)構(gòu)

通常將控制發(fā)光二極管的8位二進(jìn)制編碼稱為字段碼。習(xí)慣上字段按dp、g、f、e、d、c、b、a順序排列。常見數(shù)字與字符的字段碼如表9.2所示,共陰極與共陽極的字段碼互為補(bǔ)碼,即兩數(shù)值相加等于FFH。字型和字段碼可以由設(shè)計(jì)者自行設(shè)定,不必拘于表9.2的形式,但習(xí)慣上還是以“a”段對(duì)應(yīng)字段碼的最低位,“dp”段對(duì)應(yīng)字段碼的最高位的形式編碼。表9.28段LED的字段碼9.2.2LED的顯示方式

1.靜態(tài)顯示方式

靜態(tài)顯示是指所有LED顯示器的段選線都與一個(gè)獨(dú)立的8位并行口相連接,公共端COM則根據(jù)LED的種類(共陰或共陽)連接到“地”或“Vcc”上。要顯示字符,直接在I/O口發(fā)送相應(yīng)的字段碼即可,如圖9.6所示。靜態(tài)顯示方式的特點(diǎn)是結(jié)構(gòu)簡單,編程容易,各位的顯示相互不影響,但功耗大,占用I/O口線較多(8×N),成本較高。當(dāng)數(shù)碼管數(shù)目較多時(shí),往往采用動(dòng)態(tài)顯示方式。圖9.6三位數(shù)碼管靜態(tài)顯示電路

2.動(dòng)態(tài)顯示方式

動(dòng)態(tài)顯示是將所有LED的段選線并聯(lián)之后連接在一個(gè)8位的并行I/O口上,每個(gè)LED的位選線COM接到一根獨(dú)立的I/O口線上,總共需要8+N個(gè)I/O端口,如圖9.7所示。圖9.7三位數(shù)碼管動(dòng)態(tài)顯示電路9.2.3LED的譯碼與驅(qū)動(dòng)

所謂譯碼方式,是指由顯示字符轉(zhuǎn)換得到對(duì)應(yīng)的字碼段的方式。例如,顯示字符“0”轉(zhuǎn)換成共陰極LED的字段碼為3FH。譯碼可以通過硬件或軟件兩種方式來實(shí)現(xiàn)。

硬件譯碼是采用硬件電路的方法完成由顯示字符到字段碼的轉(zhuǎn)換。集成硬件譯碼電路類型較多,有BCD-7段譯碼器、BCD-7段譯碼驅(qū)動(dòng)器、BCD-7段鎖存譯碼驅(qū)動(dòng)器等。表9.3給出了常見的硬件譯碼集成芯片。表9.3常用硬件譯碼集成芯片軟件譯碼是將要顯示的字符通過程序的方法譯成8段LED字段碼。軟件譯碼中二~十進(jìn)制碼(BCD)與七段碼的轉(zhuǎn)換是通過軟件查表實(shí)現(xiàn)的,這樣將增加程序的復(fù)雜度,而且還要占用CPU的時(shí)間。硬件譯碼器能將BCD碼譯成7段碼(g~a)。采用硬件譯碼器的最大好處是程序編制非常簡單。如果在接口電路中使用硬件譯碼器,只要把BCD碼直接從單片機(jī)相應(yīng)的端口輸出即可。

在單片機(jī)與LED顯示器的接口電路中,要使LED數(shù)碼管正常發(fā)光,顯示器驅(qū)動(dòng)芯片也很關(guān)鍵,特別是在大屏幕LED顯示器的驅(qū)動(dòng)電路中,驅(qū)動(dòng)芯片的選擇將顯得尤為重要。一般LED顯示器的驅(qū)動(dòng)通常采用7407、7406、75452等74型正向或反向驅(qū)動(dòng)芯片,也可用9013、8550等三極管組成達(dá)林頓管來驅(qū)動(dòng),如圖9.8所示。圖9.8LED驅(qū)動(dòng)電路 9.3鍵盤/顯示接口芯片及其應(yīng)用

9.3.1鍵盤/顯示并行接口芯片8279

8279是Intel公司為8位微處理器設(shè)計(jì)的通用可編程鍵盤/顯示接口芯片,有鍵盤輸入和顯示器輸出兩種功能。鍵盤輸入時(shí),提供自動(dòng)掃描,能與鍵盤或傳感器組成的矩陣相連,接收輸入信息,能自動(dòng)消除開關(guān)抖動(dòng)并能對(duì)多鍵同時(shí)按下提供保護(hù);顯示輸出時(shí),有一個(gè)16×8位顯示RAM,其內(nèi)容通過自動(dòng)掃描,可由8或16位LED顯示。8279采用40引腳DIP封裝,其引腳排列如圖9.9所示。圖9.98279引腳圖

1.引腳及其功能

DB0~DB7:數(shù)據(jù)總線,雙向、三態(tài)總線,和單片機(jī)的數(shù)據(jù)總線相連,用于在CPU和8279之間傳遞命令或數(shù)據(jù)。

CLK:系統(tǒng)時(shí)鐘輸入線,用于8279內(nèi)部定時(shí),以產(chǎn)生其工作所需的時(shí)序。

RESET:復(fù)位輸入線,高電平有效。當(dāng)復(fù)位信號(hào)RESET=1時(shí),8279被復(fù)位。復(fù)位后8279內(nèi)部狀態(tài)為:

(1)顯示為16字符格式,左入口。

(2)編碼掃描鍵盤,雙鍵鎖定。

(3)程序時(shí)鐘編程為31。

IRQ:中斷請(qǐng)求輸出線,高電平有效。在鍵盤工作方式中,當(dāng)FIFO/傳感器RAM中存有數(shù)據(jù)時(shí),IRQ為高電平,向CPU提出中斷申請(qǐng)。CPU每次從RAM中讀出一個(gè)字節(jié)數(shù)據(jù)時(shí),IRQ就變成低電平。如果RAM中還有未讀完的數(shù)據(jù),IRQ將再次變?yōu)楦唠娖?,再次提出中斷?qǐng)求。在傳感器工作方式中,每當(dāng)檢測到傳感器狀態(tài)變化時(shí),IRQ就出現(xiàn)高電平。

SHIFT:移位信號(hào)輸入線,高電平有效。該輸入信號(hào)是8279鍵盤數(shù)據(jù)的次高位D6,通常用來補(bǔ)充鍵盤開關(guān)的功能,可以用作鍵盤上、下?lián)醯墓δ苕I。在傳感器方式和選通方式中,SHIFT無效。

CNTL/STB:控制/選通輸入線,高電平有效。在鍵盤工作方式下,該輸入信號(hào)是鍵盤數(shù)據(jù)的最高位D7,通常用來擴(kuò)充鍵盤的控制功能,用作控制功能鍵;在傳感器方式下,CNTL信號(hào)無效;在選通輸入方式下,該信號(hào)的上升沿可將來自RL0~RL7的數(shù)據(jù)存入FIFORAM中。

RL0~RL7:掃描輸出回復(fù)線,是鍵盤矩陣或傳感器矩陣的列信號(hào)輸入線。

OUTA0~OUTA3:A組顯示信號(hào)輸出線。

OUTB0~OUTB3:B組顯示信號(hào)輸出線。

這兩組引線均是顯示信息輸出線,它們與多路數(shù)字顯示的掃描線SL0~SL3同步。這兩組輸出線可以獨(dú)立使用,也可以合并使用。

2.?8279內(nèi)部結(jié)構(gòu)

8279內(nèi)部結(jié)構(gòu)如圖9.10所示。

從圖9.10可以看出,8279由下列幾部分組成。圖9.108279內(nèi)部結(jié)構(gòu)

(1)輸入/輸出緩沖器:用來接收CPU送來的命令或數(shù)據(jù),是8279與CPU之間的數(shù)據(jù)通道。

(2)控制與定時(shí)寄存器:用來寄存顯示器與鍵盤的工作方式,并通過譯碼產(chǎn)生相應(yīng)的操作。

(3)掃描計(jì)數(shù)器:用于輸出鍵盤和顯示器的掃描輸出線SL0~SL3的掃描信號(hào)。在編碼方式下,該電路輸出二進(jìn)制計(jì)數(shù)器的代碼,此時(shí)外部必須使用一個(gè)譯碼器對(duì)其譯碼產(chǎn)生真正的掃描信號(hào)。這種方式的特點(diǎn)是可以產(chǎn)生多達(dá)16條掃描線。在譯碼方式下,電路直接輸出4選1的掃描信號(hào),外部不必使用譯碼器,這時(shí)只能產(chǎn)生4條掃描線的信號(hào)。

(4)回復(fù)緩沖器、鍵盤消抖及控制:通過RL0~RL7來接收鍵盤的數(shù)據(jù),并自動(dòng)加入10ms的延時(shí)進(jìn)行防抖。

(5)?FIFO/傳感器RAM:雙重功能的8×8位RAM。在鍵盤或選通方式中,它是FIFORAM,寫入和讀出數(shù)據(jù)是按FIFO規(guī)則進(jìn)行的。此時(shí)FIFO狀態(tài)字用來存放FIFORAM的工作狀態(tài)。每當(dāng)FIFO不空時(shí),IRQ?=?1向CPU發(fā)中斷申請(qǐng)。在傳感器矩陣方式中,它是傳感器RAM,用來存放每一個(gè)傳感器的狀態(tài),如果傳感器的狀態(tài)發(fā)生變化,則使IRQ=1,向CPU發(fā)中斷申請(qǐng)。

(6)顯示RAM和顯示地址寄存器:由16?×?8位RAM構(gòu)成,可以存放16個(gè)顯示數(shù)據(jù)。8279在動(dòng)態(tài)顯示數(shù)據(jù)時(shí),就是將此RAM單元中的數(shù)據(jù)輪流從顯示RAM中輸出。數(shù)據(jù)的輸出分為兩組,即OUTA、OUTB。它們可以單獨(dú)使用,也可以合并為8位。在輸出RAM中的數(shù)據(jù)時(shí),顯示RAM寄存器掃描與電路同步的輸出和與位對(duì)應(yīng)的顯示驅(qū)動(dòng)位掃描信號(hào),以實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)顯示。

顯示地址寄存器用來寄存CPU進(jìn)行讀/寫的顯示RAM地址,它可由命令字中的低4位來設(shè)定,也可以按照命令字中的AI的狀態(tài)自動(dòng)加一或自動(dòng)減一。

3.?8279的命令字

8279是可編程芯片,各種工作方式都要通過對(duì)命令寄存器的設(shè)置來實(shí)現(xiàn),共有8條控制命令。命令字為8位,格式如表9.4所示。

其中,D7~D5為命令特征位,用于控制命令類型,D7~D5三位的狀態(tài)可組合出8種形式,對(duì)應(yīng)8類命令,如表9.5所示;D4~D0五位是命令的具體內(nèi)容。表9.48279的命令字表9.58279的命令類型下面詳細(xì)說明各種命令類型以及D4~D0各位的設(shè)置方法。

1)鍵盤/顯示命令

特征位D7D6D5?=?000時(shí),為鍵盤/顯示命令。此時(shí)D4、D3兩位用來設(shè)定4種顯示方式,D2~D0三位用以設(shè)定8種鍵盤/顯示掃描方式,分別如表9.6和表9.7所示。表9.68279的顯示方式表9.78279的鍵盤/顯示掃描方式

2)時(shí)鐘編程命令

特征位D7D6D5?=?001時(shí)為時(shí)鐘編程命令。D4~D0用來設(shè)定分頻系數(shù),分頻系數(shù)范圍在0~31之間。8279內(nèi)部所需頻率為100kHz。有的設(shè)計(jì)會(huì)用單片機(jī)的ALE端接8279的CLK端,但ALE端輸出的脈沖頻率比8279所需時(shí)鐘頻率高出很多,通過對(duì)輸入時(shí)鐘CLK進(jìn)行分頻并設(shè)置分頻系數(shù)就可得到8279所需的時(shí)鐘頻率。

3)讀FIFO/傳感器RAM命令

特征位D7D6D5=010時(shí)為讀FIFO/傳感器RAM命令。D2~D0為8279中FIFO及傳感器RAM的首地址。D3位無效。D4控制RAM地址自動(dòng)加1,當(dāng)D4?=?1時(shí),CPU讀完一個(gè)數(shù)據(jù),RAM地址自動(dòng)加1,準(zhǔn)備讀下一個(gè)單元數(shù)據(jù);當(dāng)D4=?0時(shí),CPU讀完一個(gè)數(shù)據(jù),地址不變。

4)讀顯示RAM命令

特征位D7D6D5=011時(shí)為讀顯示RAM命令。D4?=?1時(shí)RAM地址自動(dòng)加1,D4?=?0時(shí)不加1。D3~D0為顯示RAM中的地址。

5)寫顯示RAM命令

特征位D7D6D5=100時(shí)為寫顯示RAM命令。D4是地址自動(dòng)加1控制位,D4?=?1時(shí),地址自動(dòng)加1;D4?=?0時(shí),地址不加1。D3~D0是欲寫入的RAM地址,若連續(xù)寫入則表示RAM首地址。該命令的格式同讀顯示RAM命令。

6)顯示器禁止寫入/熄滅命令

特征位D7D6D5?=?101時(shí)為顯示器禁止寫入/熄滅命令。利用該命令可以控制A、B兩組顯示器哪組繼續(xù)顯示,哪組被熄滅。具體控制方式如下:

D4:無用位。

D3:為1時(shí)表示禁止A組顯示RAM寫入。

D2:為1時(shí)表示禁止B組顯示RAM寫入。

D1:A組顯示熄滅控制,D1?=?1時(shí)熄滅,D1?=?0時(shí)恢復(fù)顯示。

D0:B組顯示熄滅控制,D0?=?1時(shí)熄滅,D0?=?0時(shí)恢復(fù)顯示。

7)清除命令

D7D6D5?=?110時(shí)清除顯示RAM和FIFO中的內(nèi)容,D0為總清除特征位,D0?=?1表示把顯示RAM和FIFO全部清除。D1?=?1時(shí)清除FIFO狀態(tài),使中斷輸出線復(fù)位,傳感器RAM的讀出地址清0。D4~D2用于設(shè)定清除顯示RAM的方式,如表9.8所示。表9.8顯示RAM的清除方式

8)結(jié)束中斷/出錯(cuò)方式設(shè)置命令

D7D6D5?=?111時(shí)是結(jié)束中斷/出錯(cuò)方式設(shè)置命令。D4=1時(shí),有以下兩種不同作用。

(1)在傳感器方式下,用此命令結(jié)束傳感器RAM的中斷請(qǐng)求。因?yàn)樵趥鞲衅鞴ぷ鞣绞綍r(shí),每當(dāng)傳感器狀態(tài)發(fā)生變化時(shí),掃描電路自動(dòng)將傳感器狀態(tài)寫入傳感器RAM,同時(shí)發(fā)出中斷申請(qǐng),即將IRQ置高電平,并禁止再寫入傳感器RAM。中斷響應(yīng)后,從傳感器RAM讀走數(shù)據(jù)進(jìn)行中斷處理,但中斷標(biāo)志IRQ的撤銷分兩種情況:若讀RAM地址自動(dòng)加1標(biāo)志位為“0”,則中斷響應(yīng)后IRQ自動(dòng)變低,撤銷中斷申請(qǐng);若讀RAM地址自動(dòng)加1標(biāo)志位為“1”,則中斷響應(yīng)后IRQ不能自動(dòng)變低,必須通過結(jié)束中斷命令來撤銷中斷請(qǐng)求。

(2)當(dāng)8279鍵盤工作在N鍵輪回方式時(shí),該命令為特定錯(cuò)誤方式設(shè)置命令,即在8279消抖周期內(nèi),如果發(fā)現(xiàn)多個(gè)按鍵同時(shí)按下,則將FIFO狀態(tài)字中的錯(cuò)誤特征位置“1”,并發(fā)出中斷請(qǐng)求,阻止寫入FIFORAM。

4.?8279的狀態(tài)字及其格式

狀態(tài)字顯示8279的工作狀態(tài)。狀態(tài)字和8種命令字共用一個(gè)地址口。當(dāng)端口A0?=?1時(shí),從8279命令/狀態(tài)口地址讀出的是狀態(tài)字,狀態(tài)字主要用于鍵盤和選通工作方式,以指示FIFORAM中的字符數(shù)及有無錯(cuò)誤發(fā)生。狀態(tài)字各位的意義如下:

D7:該位為1表示顯示無效,此時(shí)不能對(duì)顯示RAM寫入。

D6:該位為1表示至少有一個(gè)鍵閉合。

D5:該位為1表示FIFORAM已滿,再輸入一個(gè)字則溢出。

D4:該位為1表示FIFORAM中已空,無數(shù)據(jù)可讀。

D3:該位為1表示FIFORAM中數(shù)據(jù)已滿。

D2~D0:FIFORAM中的數(shù)據(jù)個(gè)數(shù)。

5.?8279數(shù)據(jù)輸入/輸出格式

對(duì)8279輸入/輸出數(shù)據(jù)不僅要先確定地址口,而且數(shù)據(jù)也要按一定格式存放,其格式在鍵盤掃描和傳感器方式下有所不同。

在鍵盤掃描方式時(shí)鍵盤的行號(hào)、列號(hào)及控制鍵組成的數(shù)據(jù)輸入格式如下:

D7:控制鍵“CNTL”的狀態(tài)。

D6:控制鍵“SHIFT”的狀態(tài)。

D5D4D3:被按鍵所在列號(hào),由SL2~SL0狀態(tài)確定。

D2D1D0:被按鍵所在行號(hào),由RL×的×確定。

在傳感器方式及選通方式時(shí),輸入的8位數(shù)據(jù)從高位到低位分別對(duì)應(yīng)RL7~RL0的值。

6.?8279與單片機(jī)的連接

8279與單片機(jī)、鍵盤和顯示器的連接如圖9.11所示。圖9.118279與單片機(jī)、鍵盤和顯示器的連接9.3.2鍵盤/顯示串行接口芯片ZLG7289B

ZLG7289B是廣州周立功單片機(jī)發(fā)展有限公司設(shè)計(jì)的數(shù)碼管顯示驅(qū)動(dòng)及鍵盤掃描管理芯片,可直接驅(qū)動(dòng)8位共陰式數(shù)碼管(或64只獨(dú)立LED),同時(shí)還可以掃描和管理多達(dá)64只按鍵。ZLG7289B內(nèi)部含有顯示譯碼器,可直接接受BCD碼或十六進(jìn)制碼,并同時(shí)具有2種譯碼方式。此外,還具有多種控制指令,如消隱﹑閃爍﹑左移﹑右移﹑段尋址等。ZLG7289B采用SPI串行總線與微控制器接口,僅占用少數(shù)幾根I/O口線。利用片選信號(hào),多片ZLG7289B還可以并接在一起使用,能夠方便地實(shí)現(xiàn)多于8位的顯示或多于64只按鍵的應(yīng)用。ZLG7289B芯片具有標(biāo)準(zhǔn)的DIP-28和SOP-28兩種封裝形式,其引腳排列如圖9.12所示。圖9.12ZLG7289B引腳圖

2.?ZLG7289B的純指令

ZLG7289B的控制指令分為單字節(jié)純指令和雙字節(jié)帶數(shù)據(jù)指令兩大類。

單字節(jié)純指令包括復(fù)位(清除)指令A(yù)4H、測試指令BFH、左移指令A(yù)0H、右移指令A(yù)1H、循環(huán)左移指令A(yù)2H、循環(huán)右移指令A(yù)3H等。

A4H:軟復(fù)位指令,執(zhí)行后會(huì)將數(shù)碼管所有的顯示內(nèi)容清除掉,原先設(shè)置的所有閃爍、消隱等屬性也一并被清除,就像硬件復(fù)位一樣。

BFH:該指令使所有的數(shù)碼管各段包括小數(shù)點(diǎn)在內(nèi)全部點(diǎn)亮,并處于不斷閃爍之中。

3.?ZLG7289B的雙字節(jié)帶數(shù)據(jù)指令

雙字節(jié)帶數(shù)據(jù)指令的長度都是2B。第1字節(jié)是命令字,第2字節(jié)是輸入或輸出的數(shù)據(jù)。雙字節(jié)帶數(shù)據(jù)指令如表9.9所示。表9.9雙字節(jié)帶數(shù)據(jù)指令

1)下載數(shù)據(jù)并且按方式0進(jìn)行譯碼指令

在指令格式中,高5位10000是命令字段;a2a1a0是數(shù)碼管顯示數(shù)據(jù)的位地址,位地址編號(hào)按從左到右的順序依次為0、1、2、3、4、5、6、7;dp控制小數(shù)點(diǎn)是否顯示,dp=0時(shí)該位的小數(shù)點(diǎn)被點(diǎn)亮,dp=1時(shí)該位的小數(shù)點(diǎn)熄滅;×××是無關(guān)位;d3d2d1d0是要顯示的數(shù)據(jù)。顯示數(shù)據(jù)按照表9.10進(jìn)行譯碼。表9.10方式0譯碼表

2)下載數(shù)據(jù)并且按方式1進(jìn)行譯碼指令

該指令與上一種指令基本相同。所不同的是,該指令的d3~d0對(duì)應(yīng)的數(shù)據(jù)位AH~FH分別為七段顯示中的A、B、C、D、E、F。

3)下載數(shù)據(jù)但不譯碼指令

該指令的命令字段高5位為10010,位地址和小數(shù)點(diǎn)控制與上述兩種指令相同。a、b、c、d、e、f、g對(duì)應(yīng)數(shù)碼管內(nèi)部的7個(gè)LED字段。不譯碼的數(shù)據(jù)下載方式給用戶提供了最大的靈活性,dp連同a、b、c、d、e、f、g一共有256種不同的組合,用戶可以隨意設(shè)置其顯示方式。

4)閃爍控制指令

該指令控制數(shù)碼管各位的閃爍屬性。在指令格式中,第1字節(jié)是命令字段;第2字節(jié)的d7~d0分別對(duì)應(yīng)數(shù)碼管的第7位至第0位,為0時(shí)閃爍,為1時(shí)不閃爍。復(fù)位后,所有位都不閃爍。

5)消隱控制指令

該指令控制數(shù)碼管各位的消隱屬性。在指令格式中,第1字節(jié)是命令字段;第2字節(jié)的d7~d0分別對(duì)應(yīng)數(shù)碼管的第0位至第7位,為0時(shí)消隱,為1時(shí)顯示。復(fù)位后,所有位都不消隱。當(dāng)數(shù)碼管的某一位被設(shè)置成消隱屬性后,ZLG7289B在進(jìn)行掃描顯示時(shí)將跳過該位,該位的掃描時(shí)間將分配給其它位。一旦某一位設(shè)置了消隱屬性,則無論對(duì)該位寫入什么樣的數(shù)據(jù)都不會(huì)被顯示出來。寫入的數(shù)據(jù)不是被丟棄,而是保存在內(nèi)部的數(shù)據(jù)寄存器中。如果去掉該位的消隱屬性,則最后一次寫入的數(shù)據(jù)有效并立即顯示出來。

6)段點(diǎn)亮指令

該指令可以單獨(dú)點(diǎn)亮數(shù)碼管中的某一指定的段,或者LED矩陣中某一指定的LED。在指令格式中,第1字節(jié)是命令字段;××表示無關(guān)位;d5~d0是6位段地址。在某位數(shù)碼管里,各段的點(diǎn)亮順序按照g、f、e、d、c、b、a、dp的順序進(jìn)行。

4.?SPI總線時(shí)序

ZLG7289B操作SPI總線的時(shí)序如圖9.13所示。圖9.13SPI總線時(shí)序

5.?ZLG7289B的應(yīng)用

ZLG7289B的典型應(yīng)用電路如圖9.14所示。圖9.14ZLG7289B的典型應(yīng)用電路 9.4單片機(jī)與LCD顯示器的接口

液晶顯示器(LiquidCrystalDisplay,LCD)是一種利用液晶(LiquidCrystal)的扭曲向列效應(yīng)制成的新型顯示器。液晶是一種介于晶體和液體之間的物質(zhì),當(dāng)被加熱時(shí),它會(huì)呈現(xiàn)液態(tài),有液體的流動(dòng)性和連續(xù)性,而冷卻時(shí)又會(huì)結(jié)晶成晶體,有晶體的各向異性。當(dāng)向液晶通電時(shí),液晶分子排列得井然有序,可以使光線通過;當(dāng)不通電時(shí),液晶分子排列混亂,阻止光線通過。

液晶顯示器的結(jié)構(gòu)如圖9.15所示。圖9.15液晶顯示器的結(jié)構(gòu)9.4.1字符點(diǎn)陣式液晶顯示器1602

1.引腳及其功能

1602點(diǎn)陣式液晶模塊是2行、每行16個(gè)字的5×7點(diǎn)陣圖形顯示字符的液晶顯示器,采用16腳接口,其外觀如圖9.16所示。圖9.161602外觀

2.內(nèi)部結(jié)構(gòu)

1602內(nèi)部由LCD控制器、LCD驅(qū)動(dòng)器、LCD顯示器三部分組成。控制器用HD44780,驅(qū)動(dòng)器用HD44100。HD44780集控制器、驅(qū)動(dòng)器于一體,是專用于字符顯示的控制、驅(qū)動(dòng)集成電路。HD44100用于擴(kuò)展顯示字符位。HD44780有80B的顯示緩沖區(qū),分兩行,地址分別是00H~27H、40H~67H,實(shí)際的顯示位置與LCD的型號(hào)有關(guān)。RT1602C的顯示位置如圖9.17所示。圖9.17RT1602C的顯示位置

HD44780內(nèi)部的字符發(fā)生器(ROM)已經(jīng)存儲(chǔ)了160個(gè)5×7點(diǎn)陣字符和32個(gè)5×10點(diǎn)陣字符,如表9.11所示。這些字符有阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)和日文等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H)。從表9.11可以看出,英文字母的代碼和ASCII編碼相同,顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。所以,將字庫中的字符在合適的位置顯示出來就完成了LCD的顯示。HD44780具有簡單而功能強(qiáng)大的指令集,可以實(shí)現(xiàn)字符的移動(dòng)、閃爍等顯示功能。表9.111602字符庫

3.指令格式及功能

HD44780內(nèi)部有多個(gè)寄存器。通常通過RS和R/引腳按照表9.12來選擇寄存器。表9.12HD44780內(nèi)部寄存器選擇表9.13HD44780的指令及功能圖9.181602讀操作時(shí)序圖9.191602寫操作時(shí)序

5.?1602與單片機(jī)的接口及軟件設(shè)計(jì)

1602液晶顯示模塊可以和單片機(jī)直接接口,如圖9.20所示。圖9.201602與單片機(jī)的接口電路

1)初始化

用戶在使用1602之前必須先對(duì)其進(jìn)行初始化。初始化可以通過LCM內(nèi)部的初始化電路來完成,也可以通過軟件來初始化。軟件初始化流程如圖9.21所示。圖9.211602初始化流程

2)寫顯示數(shù)據(jù)流程

1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論