《單片機(jī)原理及應(yīng)用》課件第6章_第1頁
《單片機(jī)原理及應(yīng)用》課件第6章_第2頁
《單片機(jī)原理及應(yīng)用》課件第6章_第3頁
《單片機(jī)原理及應(yīng)用》課件第6章_第4頁
《單片機(jī)原理及應(yīng)用》課件第6章_第5頁
已閱讀5頁,還剩256頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第6章51單片機(jī)的接口與應(yīng)用16.1按鍵、鍵盤及其接口6.2LED顯示器及其接口6.3LCD顯示器及其接口6.4A/D轉(zhuǎn)換器接口6.5D/A轉(zhuǎn)換器接口6.6行程開關(guān)、晶閘管、繼電器與單片機(jī)的接口

6.1按鍵、鍵盤及其接口

在單片機(jī)應(yīng)用系統(tǒng)中,為了控制系統(tǒng)的工作狀態(tài)以及向系統(tǒng)輸入數(shù)據(jù),應(yīng)用系統(tǒng)一般都設(shè)有按鍵或鍵盤。例如,復(fù)位用的復(fù)位鍵,功能轉(zhuǎn)換用的功能鍵以及數(shù)據(jù)輸入用的數(shù)字鍵盤等。6.1.1鍵輸入過程與軟件結(jié)構(gòu)

單片機(jī)應(yīng)用系統(tǒng)中,按鍵或鍵盤的每一鍵都被賦予特定的功能,它們通過接口電路與單片機(jī)相連接,通過軟件了解按鍵的狀態(tài)及鍵信息的輸入,并轉(zhuǎn)去執(zhí)行該鍵的功能處理程序。鍵盤的接口方法有多種,但鍵輸入過程與軟件結(jié)構(gòu)基本是一樣的。所以,在具體介紹鍵盤接口之前,先介紹鍵輸入過程與軟件結(jié)構(gòu),這樣能更好地理解鍵盤的接口方法。圖6.1是51單片機(jī)應(yīng)用系統(tǒng)的鍵輸入軟件框圖。對一組鍵或鍵盤上的每一個(gè)鍵都有一個(gè)編號(稱為鍵號),CPU可以采用中斷方式或查詢方式了解有無鍵輸入,并檢查是哪一個(gè)鍵按下,將該鍵號送入累加器A,然后通過散轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,最后返回到原始狀態(tài)。JMP@A+DPTR可以看成是鍵信息輸入的軟件接口。圖6.151單片機(jī)鍵輸入過程6.1.2鍵盤接口和鍵輸入軟件中應(yīng)解決的幾個(gè)問題

1.消除鍵抖動(dòng)

按鍵的合斷都存在一個(gè)抖動(dòng)的暫態(tài)過程,如圖6.2所示。這種抖動(dòng)的暫態(tài)過程大約經(jīng)過5~10ms的時(shí)間,人的肉眼是覺察不到的,但對高速的CPU是有反應(yīng)的,可能產(chǎn)生誤處理。為了保證鍵動(dòng)作一次,僅作一次處理,必須采取措施以消除抖動(dòng)。圖6.2鍵合斷時(shí)的電壓抖動(dòng)消除抖動(dòng)的措施有兩種:硬件消抖和軟件消抖。

硬件消除抖動(dòng)可用簡單的R-S觸發(fā)器或單穩(wěn)電路構(gòu)成,如圖6.3所示。

從圖可知,當(dāng)鍵閉合時(shí),R-S觸發(fā)器輸出為“0”,將與非門1封鎖,即使鍵抖動(dòng),不會把抖動(dòng)狀態(tài)反應(yīng)到輸出上。

軟件消除抖動(dòng)是用延時(shí)來躲過暫態(tài)抖動(dòng)過程,執(zhí)行一段大于10ms的延時(shí)程序后,再讀取穩(wěn)定的鍵狀態(tài)。

圖6.3消除抖動(dòng)電路

2.鍵編碼及鍵值

一組按鍵或鍵盤都要通過I/O線查詢按鍵的開關(guān)狀態(tài)。根據(jù)鍵盤結(jié)構(gòu)不同,采用不同的編碼方法。但無論有無編碼,以及采用什么編碼,最后都要轉(zhuǎn)換成為與累加器中的數(shù)值相對應(yīng)的鍵值,以實(shí)現(xiàn)按鍵功能程序的散轉(zhuǎn)。

(1)用鍵盤連接的I/O線的二進(jìn)制組合表示鍵碼。例如

用4行、4列線構(gòu)成的16個(gè)鍵的鍵盤,可使用一個(gè)8位I/O口

線的高、低4位口線的二進(jìn)制數(shù)的組合表示16個(gè)鍵的編碼,如圖6.4(a)所示。各鍵相應(yīng)的鍵值為88H、84H、82H、81H、48H、44H、42H、41H、28H、24H、22H、21H、18H、14H、12H、11H。這種鍵值編碼軟件較為簡單直觀,但離散性大,不便安排散轉(zhuǎn)程序的入口地址。

(2)順序排列鍵編碼,如圖6.4(b)所示。在這種方法中,鍵值的形成要根據(jù)I/O線的狀態(tài)作相應(yīng)處理。鍵碼可按下式形成:

鍵碼=行首鍵碼+列號

3.鍵盤的監(jiān)測方法

對于計(jì)算機(jī)應(yīng)用系統(tǒng),鍵盤掃描只是CPU工作的一部分,鍵盤處理只是在有鍵按下時(shí)才有意義。對是否有鍵按下的信息輸入方式有中斷方式與查詢方式兩種。圖6.4行列式鍵盤的編碼與鍵值(a)二進(jìn)制組合編碼;(b)順序排列編碼6.1.3獨(dú)立式按鍵

1.獨(dú)立式按鍵接口結(jié)構(gòu)

獨(dú)立式按鍵是指直接用一根I/O口線構(gòu)成的單個(gè)按鍵接口方式。每個(gè)獨(dú)立式按鍵單獨(dú)占用一根I/O口線,每根I/O口線上的按鍵的工作狀態(tài)不會影響其他I/O口線的工作狀態(tài)。獨(dú)立式按鍵電路如圖6.5所示。圖6.5獨(dú)立式按鍵的接口示意圖(a)中斷方式;(b)查詢方式獨(dú)立式按鍵接口電路配置靈活,軟件結(jié)構(gòu)簡單,但每個(gè)按鍵必須占用一根I/O口線,在按鍵數(shù)量較多時(shí),I/O口線浪費(fèi)較大。故在按鍵數(shù)量不多時(shí),常采用這種按鍵結(jié)構(gòu)。

圖6.5(a)為中斷方式的獨(dú)立式按鍵接口電路,圖6.5(b)為查詢方式接口電路。通常按鍵輸入都采用低電平有效。上拉電阻保證了按鍵斷開時(shí),I/O口線上有確定的高電平。

2.獨(dú)立式按鍵的軟件結(jié)構(gòu)

下面是查詢方式的鍵盤程序。K0~K7為功能程序入口地址標(biāo)號,其地址間隔應(yīng)能容納JMP指令字節(jié),PROM0~PROM7分別為每個(gè)按鍵的功能程序。設(shè)I/O為P1口。6.1.4行列式鍵盤

1.行列式鍵盤的接口

行列式鍵盤的接口方法有許多。例如:直接接口于單片機(jī)的I/O口上;利用擴(kuò)展的并行I/O接口;用串行口擴(kuò)展并行I/O口接口;利用一種可編程的鍵盤、顯示接口芯片8279進(jìn)行接口等。其中,利用擴(kuò)展的并行I/O接口方法方便靈活,在單片機(jī)應(yīng)用系統(tǒng)中比較常用。本節(jié)針對這種方法介紹行列式鍵盤的接口原理。圖6.6是在擴(kuò)展的8155的PA口和PC口上組成4×8鍵盤的示例。PA口作為列線,PC0~PC3作為行線。圖6.68155擴(kuò)展I/O口組成的行列式鍵盤

2.鍵盤工作原理

按鍵設(shè)置在行、列線的交點(diǎn)上,行和列線分別連接到按鍵開關(guān)的兩端。行線通過上拉電阻接?+5V電源,被箝位在高電平狀態(tài)。

鍵盤的工作過程可分兩步:第一步是CPU首先檢測鍵盤上是否有鍵按下;第二步識別是哪一鍵按下。

檢測鍵盤上有無鍵按下,可采用查詢工作方式、定時(shí)掃描工作方式和中斷工作方式。

1)查詢工作方式

鍵盤中有無鍵按下是由列線送出全掃描字,讀入行線狀態(tài)來判別的。其方法是:PA口輸出00H,即所有列線置成低電平,然后從PC口讀取行線值。如果有鍵按下,總會有一根行線電平被拉至低電平,從而使行輸入不全為“1”。鍵盤中哪一個(gè)鍵按下是由列線逐列置低電平后,檢查行輸入狀態(tài),稱為逐列掃描。其方法是:從PA0開始,依次輸出“0”,置對應(yīng)的列線為低電平,然后從PC口讀入行線狀態(tài),如果全為“1”,則所按下之鍵不在此列;如果不全為“1”,則所按下的鍵必在此列,而且是與0電平行線交點(diǎn)上

的那個(gè)鍵。為求取鍵碼,在逐列掃描時(shí),可用計(jì)數(shù)器記錄下當(dāng)前掃描列的列號,然后用列線值為“0”的行首鍵碼加列號的辦法計(jì)算。

依此原理可編寫出鍵盤掃描子程序。鍵盤掃描子程序的流程框圖如圖6.7所示。圖6.7鍵盤掃描子程序流程圖調(diào)用鍵盤掃描子程序時(shí),應(yīng)在調(diào)用程序中對8155進(jìn)行初始化設(shè)置,使PA口為基本輸出口,PC口為基本輸入口。子程序的出口狀態(tài):(A)=鍵碼。

2)定時(shí)掃描工作方式

定時(shí)掃描工作方式是利用單片機(jī)內(nèi)部定時(shí)器產(chǎn)生定時(shí)中斷(例如10ms),CPU響應(yīng)中斷后,對鍵盤進(jìn)行掃描,再檢測是哪一鍵按下。定時(shí)掃描工作方式的鍵盤硬件電路與查詢工作方式相同。其軟件框圖如圖6.8所示。圖6.8定時(shí)掃描方式程序框圖定時(shí)掃描工作方式本質(zhì)上是中斷方式。因此,圖6.8是一個(gè)中斷服務(wù)程序框圖。KM、KP分別是在單片機(jī)片內(nèi)RAM位尋址區(qū)設(shè)置的消抖標(biāo)志和鍵處理標(biāo)志。當(dāng)鍵盤上無鍵按下,KM、KP置0,返回。由于定時(shí)剛開始一般不會立即有鍵按下,故KM、KP初始化置0。

當(dāng)鍵盤上有鍵按下時(shí),先檢查KM標(biāo)志,KM?=?0時(shí),表示尚未作消除抖動(dòng)處理,此時(shí)中斷返回同時(shí)KM置1。因?yàn)橹袛喾祷睾笠?jīng)10?ms才可能再次中斷,相當(dāng)于實(shí)現(xiàn)了10?ms延時(shí),因而程序中不需要延時(shí)。當(dāng)再次定時(shí)中斷后,再檢查KP標(biāo)志,由于開始時(shí)KP=0,程序進(jìn)入查找鍵碼,

并使KP置1,執(zhí)行鍵功能程序,然后返回。在KM、KP均為1時(shí),表示鍵處理完畢,再次定時(shí)中斷時(shí),都返回原來CPU狀態(tài)。

3)中斷工作方式

計(jì)算機(jī)應(yīng)用系統(tǒng)工作時(shí),并不經(jīng)常需要鍵輸入。但無論是查詢工作方式還是定時(shí)掃描工作方式,CPU經(jīng)常處于空掃描狀態(tài)。為了提高CPU的效率,可采用中斷工作方式。這種工作方式是當(dāng)鍵盤上有鍵按下時(shí),向CPU發(fā)一個(gè)中斷請求信號,CPU響應(yīng)中斷后,在中斷服務(wù)程序中掃描鍵盤。中斷請求信號的接口電路可參考圖6.5(a)。中斷服務(wù)中掃描鍵盤的程序基本和查詢工作方式鍵盤程序相同。

6.2LED顯示器及其接口

發(fā)光二極管(LED,LightEmittingDiode)顯示器是單片機(jī)應(yīng)用系統(tǒng)中常用的顯示器,它們具有成本低廉、配置靈活和與單片機(jī)接口方便的特點(diǎn)。本節(jié)主要介紹LED顯示原理與接口方法。6.2.1LED顯示器結(jié)構(gòu)與原理

LED顯示器是由發(fā)光二極管顯示字段組成的顯示器件。在單片機(jī)應(yīng)用系統(tǒng)中通常使用的是七段LED。這種顯示器有共陰極和共陽極兩種,如圖6.9所示。共陰極LED顯示器的結(jié)構(gòu)如圖6.9(a)所示。其陰極并接在一起,構(gòu)成公共端,由陽極控制字段點(diǎn)亮或熄滅。當(dāng)發(fā)光二極管的陽極為高電平時(shí),發(fā)光二極管點(diǎn)亮。

共陽極LED顯示器的結(jié)構(gòu)如圖6.9(b)所示。其陽極并接在一起,作為公共選通端,由陰極控制字段點(diǎn)亮或熄滅。當(dāng)發(fā)光二極管的陰極為低電平時(shí),發(fā)光二極管點(diǎn)亮。在應(yīng)用中,公共端用于控制某一位顯示器是否選通,也稱為位選通端。圖6.9七段顯示塊管腳與結(jié)構(gòu)圖(a)共陰極;(b)共陽極;(c)管腳配置通常的七段LED顯示器中有八個(gè)發(fā)光二極管,其中七個(gè)發(fā)光二極管構(gòu)成七筆字形“8”,一個(gè)發(fā)光二極管構(gòu)成小數(shù)點(diǎn)。七段LED顯示塊的管腳如圖6.9(c)所示。從g~a管腳輸出一個(gè)8位二進(jìn)制碼,可顯示對應(yīng)字符。譬如,在共陰極顯示器上顯示字符“1”,應(yīng)是b、c段點(diǎn)亮,其他段熄滅,對應(yīng)的二進(jìn)制碼為00000110(06H)。通常把顯示一個(gè)字符對應(yīng)的8位二進(jìn)制碼稱為段碼。共陽極與共陰極的段碼互為反碼,如表6.1所示。6.2.2LED顯示器的顯示方式

在單片機(jī)應(yīng)用系統(tǒng)中可利用LED顯示器靈活地構(gòu)成所要求位數(shù)的顯示器。

N位LED顯示器有N根位選線和8×N根段碼線。根據(jù)顯示方式的不同,位選線和段碼線的連接方法不同。

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

LED工作在靜態(tài)顯示方式下,公共端不受控,共陰極接地或共陽極接?+5V;每一位的段選線(dp、g~a)與一個(gè)8位并行I/O口相連。圖6.10是一個(gè)4位靜態(tài)LED顯示器接口示例。顯示器的每一位可獨(dú)立顯示,只要從段碼口輸出一個(gè)段碼,該位就保持顯示相應(yīng)字符。由于每一位由一個(gè)8位輸出口輸出段碼,故在同一時(shí)刻各位可以顯示不同的字符。圖6.104位LED靜態(tài)顯示接口示例

N位靜態(tài)顯示器要求有N×8根I/O口線,占用I/O口線較多。故在位數(shù)較多時(shí),往往采用動(dòng)態(tài)顯示方式。

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

LED動(dòng)態(tài)顯示是將所有位的段碼線并接在一個(gè)I/O口上,共陰極端或共陽極端分別由相應(yīng)的I/O口線控制。圖6.11是一個(gè)8位LED動(dòng)態(tài)顯示器接口示意圖。圖6.118位LED動(dòng)態(tài)顯示接口示例由于每一位的段碼線都接在一個(gè)I/O口上,所以每送一個(gè)段碼,如果公共端不受控制,則8位就顯示同一個(gè)字符,這種顯示器是不能用的。解決此問題的方法是利用人的視覺滯留,從段碼I/O口上按位次分別送顯示字符的段碼,在位選控制口也按相應(yīng)的次序分別選通對應(yīng)的位(共陰極低電平選通,共陽極高電平選通),選通位就顯示相應(yīng)字符,并保持幾毫秒的延時(shí),未選通位不顯示字符(保持熄滅)。這樣,對各位顯示就是一個(gè)循環(huán)過程。從計(jì)算機(jī)的工作來看,在一個(gè)瞬時(shí)只有一位顯示字符,而其他位都是熄滅的,但因?yàn)槿说囊曈X滯留,這種動(dòng)態(tài)變化是覺察不到的。從效果上看,各位顯示器能連續(xù)而穩(wěn)定的顯示不同的字符。這就是動(dòng)態(tài)顯示。6.2.3LED顯示器接口

1.硬件譯碼顯示器接口

硬件譯碼是采用專門的轉(zhuǎn)換器件芯片來實(shí)現(xiàn)字母、數(shù)字的二進(jìn)制數(shù)值到段碼的轉(zhuǎn)換。這種轉(zhuǎn)換芯片有許多,下面僅以MC14495介紹其接口方法。

MC14495是Motorola公司生產(chǎn)的CMOSBCD—七段十六進(jìn)制鎖存、譯碼驅(qū)動(dòng)芯片。單片機(jī)應(yīng)用系統(tǒng)中常要求LED顯示十六進(jìn)制及十進(jìn)制帶小數(shù)點(diǎn)的數(shù),使用MC14495是非常方便的。圖6.12是MC14495的內(nèi)部邏輯及引腳圖。圖6.12MC14495內(nèi)部邏輯與引腳圖圖6.13是使用MC14495構(gòu)成的多位LED靜態(tài)顯示接口電路,該電路可直接顯示多位十六進(jìn)制數(shù)。若要顯示帶小數(shù)點(diǎn)的十進(jìn)制數(shù),只要在LED的dp端另加驅(qū)動(dòng)控制即可。LED顯示塊采用共陰極形式。由于MC14495有輸出限流電阻,故LED不須外加限流電阻。圖6.13使用MC14495的多位LED靜態(tài)顯示接口

2.軟件譯碼顯示器接口

軟件譯碼是把各字符的段碼組織在一個(gè)表中,要顯示某字符時(shí),先查表得到其段碼,然后送往顯示器的段碼線。

單片機(jī)應(yīng)用系統(tǒng)中,多采用軟件譯碼的動(dòng)態(tài)顯示。圖6.14是51單片機(jī)通過8155擴(kuò)展I/O口控制的8位LED動(dòng)態(tài)顯示的接口。圖中PB口輸出段碼,PA口輸出位選碼。位選碼占用輸出口線數(shù)取決于顯示器位數(shù)。BIC-8718為8位集成驅(qū)動(dòng)芯片。圖6.14通過擴(kuò)展8155I/O口控制的8位LED動(dòng)態(tài)顯示接口

3.動(dòng)態(tài)顯示程序設(shè)計(jì)

對于圖6.14所示的動(dòng)態(tài)顯示接口,設(shè)51單片機(jī)片內(nèi)RAM的78H~7FH單元為顯示緩沖區(qū),從低到高依次存放

8個(gè)顯示數(shù)據(jù),以非壓縮的BCD碼存放。其動(dòng)態(tài)顯示程序

如下:6.2.4鍵盤、顯示器組合接口

根據(jù)鍵盤和顯示器的工作原理,可將二者組合與單片機(jī)接口。這樣既可簡化接口電路,節(jié)省單片機(jī)的I/O口線,同時(shí)掃描程序可交替工作,提高程序執(zhí)行效率。在鍵盤掃描程序中,為消除抖動(dòng)而要調(diào)用一個(gè)延時(shí)子程序,組合接口后,可利用調(diào)用顯示子程序來實(shí)現(xiàn)消抖延時(shí),可達(dá)到一舉兩得的效果。

1.鍵盤、顯示組合接口電路

圖6.15是一個(gè)采用8155并行擴(kuò)展口構(gòu)成的鍵盤、顯示組合接口電路。圖中設(shè)置了32個(gè)鍵。LED顯示器采用共陰極。顯示器段碼線接8155PA口,位選線接PB口。鍵盤的列線

接PB口,與顯示器的位選線公用,行線接PC0~PC3。顯然,因?yàn)殒I盤與顯示器公用了PB口,比單獨(dú)接口節(jié)省了一個(gè)I/O口。圖6.15擴(kuò)展8155I/O口的鍵盤、顯示接口

2.軟件設(shè)計(jì)

由于鍵盤與顯示組合成一個(gè)接口電路,因此在軟件中合并考慮鍵盤查詢與動(dòng)態(tài)顯示,鍵盤消抖的延時(shí)子程序可用顯示子程序替代。AJMPKEY1

LK2:MOVR2,#0FEH

MOVR4,#00H

LK4:MOVDPTR,#7F01H

MOVA,R2

MOVX@DPTR,A

INCDPTR

INCDPTR

MOVXA,@DPTR

JBACC.0,LONE

MOVA,#00H

AJMPLKP

LONE: JBACC.1,LTWO

MOVA,#08H

AJMPLKP

LTWO: JBACC.2,LTHR

MOVA,#10H

AJMPLKP

LHR: JBACC.3,NEXT

MOVA,#18H

LKP: ADDA,R4

PUSHACC

LK3:ACALLDISPLAY

ACALLKS1

JNZLK3

POPACC

RET

NEXT: INCR4

MOVA,R2

JNBACC.7,KEND

RLA

MOVR2,A

AJMPLK4

KEND:AJMPKEY1

KS1: MOVDPTR,#7F01H

MOVA,#00H

MOVX@DPTR,A

INCDPTR

INCDPTR

MOVXA,@DPTR

CPLA

ANLA,#0FH

RET

DISPLAY:見6.2.3節(jié)8155擴(kuò)展動(dòng)態(tài)掃描子程序。

6.3LCD顯示器及其接口

液晶顯示器(LCD,LiquidCrystalDisplay)是一種低功耗顯示器件,具有顯示內(nèi)容豐富、體積小、重量輕、壽命長、使用方便、安全省電等優(yōu)點(diǎn),在計(jì)算器、萬用表、袖珍式儀表和低功耗微機(jī)應(yīng)用系統(tǒng)中得到廣泛使用。6.3.1液晶顯示器簡介

液晶顯示器的基本結(jié)構(gòu)如圖6.16所示。在兩塊透明電極板間夾持液晶材料,當(dāng)液晶厚度小于數(shù)百微米時(shí),界面附近的液晶分子發(fā)生取向并保持有序性,當(dāng)電極板上施加受控的電場方向后就產(chǎn)生一系列電光效應(yīng),液晶分子的規(guī)則取向隨即相應(yīng)改變。液晶分子的規(guī)則取向形態(tài)有平行取向、垂直取向、傾斜取向三種,液晶分子的取向改變,即發(fā)生了折射率的異向性,從而產(chǎn)生光散射效應(yīng)、旋光效應(yīng)、雙折射效應(yīng)等光學(xué)效應(yīng)。這就是LCD顯示器的基本原理。圖6.16液晶顯示器的原理結(jié)構(gòu)液晶顯示器件的種類很多,實(shí)際應(yīng)用中并非需要從原理、結(jié)構(gòu)上去區(qū)分,而更多是從產(chǎn)品角度、驅(qū)動(dòng)方式、顯示顏色、顯示方式上區(qū)分。從產(chǎn)品形式上液晶顯示器可分為兩大類:液晶顯示器件(LCD)和液晶顯示模塊(LCM);從驅(qū)動(dòng)方式上可分為內(nèi)置驅(qū)動(dòng)控制器的液晶顯示模塊和無控制器的液晶顯示器件兩種;從顯示顏色上可分為單色、彩色等;從顯示方式上可分為正性顯示、負(fù)性顯示、段性顯示、點(diǎn)陣顯示、字符顯示、圖形顯示、圖像顯示、非存儲型顯示、存儲型顯示等。實(shí)際應(yīng)用中,可根據(jù)不同的顯示要求選擇合適的液晶顯示器。6.3.2字符型液晶顯示模塊LCM的組成原理

1.液晶顯示模塊LCM簡介

液晶顯示器件是一種高新技術(shù)的基礎(chǔ)元器件,其使用和裝配比較復(fù)雜。為方便用戶使用,將液晶顯示器件與控制、驅(qū)動(dòng)電路集成在一起,形成一個(gè)功能部件,提供一個(gè)標(biāo)準(zhǔn)的LCD控制驅(qū)動(dòng)接口,用戶只需按照接口要求進(jìn)行操作就可控制LCD正確顯示。這樣就形成了實(shí)際應(yīng)用中的液晶顯示模塊(LCDModule,LCM)。實(shí)際使用中的通用液晶顯示模塊主要有通用段式液晶顯示模塊、通用段式液晶顯示屏、點(diǎn)陣字符型液晶顯示模塊、點(diǎn)陣圖形液晶顯示模塊等幾種。通用段式液晶顯示模塊一般做成多個(gè)8段數(shù)碼位和一些通用的提示符,使用比較簡單,成本較低,一般用于數(shù)字化儀表。通用段式液晶顯示屏本身不帶控制器和驅(qū)動(dòng)電路,顯示內(nèi)容只有比較簡單的數(shù)碼位,相對成本較低,必須使用具有液晶驅(qū)動(dòng)能力的電路,一般用于電子產(chǎn)品,如電話機(jī)、計(jì)算器等。點(diǎn)陣字符型液晶顯示模塊可顯示西文字符、數(shù)字、符號等,顯示內(nèi)容比較豐富,字符由5×7或5×11點(diǎn)陣塊實(shí)現(xiàn),但無法顯示漢字和復(fù)雜圖形。點(diǎn)陣字符型液晶顯示模塊的通用性好,一方面是它可適用各種領(lǐng)域,另一方面是不同的廠家、不同的型號的模塊所用控制器相同或相互兼容。它們的主要區(qū)別僅是可顯示字符數(shù)、屏幕大小、點(diǎn)陣大小不同,使用方法和軟件基本相同。點(diǎn)陣圖形液晶顯示模塊可以混合顯示西文字符、符號、漢字、圖形等,靈活性好,一般用于要求顯示漢字、圖形、人機(jī)交互界面等內(nèi)容復(fù)雜的儀器設(shè)備。不同廠家、不同型號的點(diǎn)陣圖形液晶顯示模塊所使用的控制器可能不同,因而相應(yīng)的接口特性、指令系統(tǒng)也有所不同,使用時(shí)除需選擇點(diǎn)陣數(shù)、尺寸外,還要注意所選控制器的型號。

從上面介紹可看出,不同的液晶顯示模塊其顯示性能和顯示控制是有較大區(qū)別的,應(yīng)用中應(yīng)根據(jù)不同的顯示要求靈活選取。本節(jié)僅以點(diǎn)陣字符型液晶顯示模塊為例介紹其組成原理和應(yīng)用。

2.字符型LCM的組成原理

點(diǎn)陣字符型液晶顯示模塊包括液晶顯示器件、控制器、字符發(fā)生器、譯碼驅(qū)動(dòng)器等部分。字符型液晶顯示模塊上常采用內(nèi)置式HD44780驅(qū)動(dòng)控制器的集成電路。下面針對HD44780介紹字符型液晶顯示模塊的組成及工作原理。

HD44780集成電路的內(nèi)部結(jié)構(gòu)如圖6.17所示。在HD44780內(nèi)部集成了輸入輸出緩存器、指令寄存器(IR)、

指令解碼器(ID)、地址計(jì)數(shù)器(AC)、數(shù)據(jù)寄存器(DR)、80×8位數(shù)據(jù)顯示RAM(DDRAM)、192×8位字符產(chǎn)生

器ROM(CGROM)、光標(biāo)閃爍控制器、并行串行轉(zhuǎn)換等11

個(gè)單元電路。圖6.17HD44780集成電路的內(nèi)部結(jié)構(gòu)圖

(1)數(shù)據(jù)顯示RAM(DataDisplayRAM,DDRAM)。這個(gè)存儲器用來存放所要顯示的數(shù)據(jù),只要將字符的ASCII碼放入DDRAM中,內(nèi)部控制電路就會自動(dòng)將數(shù)據(jù)傳送到顯示器上。例如,要顯示字符“C”,只需將ASCII碼43H存入DDRAM中就可以了。DDRAM有80字節(jié)空間,總共可顯示80個(gè)字(每個(gè)字占1個(gè)字節(jié)),其存儲地址與實(shí)際顯示位置的排列順序與字符型液晶顯示模塊的型號有關(guān)。不同類型的字符型液晶顯示模塊顯示位置、地址之間的對應(yīng)關(guān)系見表6.2。

(2)字符產(chǎn)生器ROM(CharacterGeneratorROM,CGROM)。這個(gè)存儲器儲存了192個(gè)5×7點(diǎn)陣字符,CGROM中的字符要經(jīng)過內(nèi)部轉(zhuǎn)換才會傳到顯示器上,只能讀出不能寫入。字符的排列方式及字符碼與標(biāo)準(zhǔn)的ASCII碼相同,例如,字符碼31H為字符“1”,字符碼43H為字符“C”。

(3)字符產(chǎn)生器RAM(CharacterGeneratorRAM,CGRAM)。這個(gè)存儲器是供用戶儲存自己設(shè)計(jì)的特殊字符碼,CGRAM共有512位(64×8位)。一個(gè)5×7點(diǎn)陣字型為8×8位,所以CGRAM最多可存8個(gè)字符。

(4)指令寄存器(InstructionRegister,IR)。指令寄存器用于存儲微處理器寫給字符型液晶顯示模塊的指令碼。

(5)數(shù)據(jù)寄存器(DataRegister,DR)。數(shù)據(jù)寄存器是存儲微處理器與CGRAM、DDRAM之間傳送數(shù)據(jù)的緩沖器,即微處理器與CGRAM、DDRAM傳送數(shù)據(jù)時(shí)必須經(jīng)DR。

(6)忙碌信號(BusyFlag,BF)。BF是內(nèi)部的一個(gè)標(biāo)志位,可通過指令讀取,進(jìn)行查詢。BF=1,表示LCM內(nèi)部正在處理數(shù)據(jù),不能接受微處理器送來的指令或數(shù)據(jù);BF=

0,表示LCM空閑,可以接受微處理器的指令或數(shù)據(jù)。微處理器向LCM傳送指令或數(shù)據(jù)之前,必須先查看BF是否為0。

(7)地址計(jì)數(shù)器(AddressCounter,AC)。地址計(jì)數(shù)器用于指示CGROM或CGRAM或DDRAM的地址,也對應(yīng)著顯示器的顯示位置。使用地址設(shè)定指令寫到指令寄存器后,地址數(shù)據(jù)會經(jīng)過指令解碼器存入地址記數(shù)器中。當(dāng)微處理器從DDRAM或CGROM或CGRAM讀取數(shù)據(jù)時(shí),地址計(jì)數(shù)器按照微處理器對LCM的設(shè)定值自動(dòng)進(jìn)行修改。

3.內(nèi)置HD44780的LCM引腳信號

內(nèi)置HD44780驅(qū)動(dòng)控制器的字符型液晶顯示模塊提供了標(biāo)準(zhǔn)接口信號,可方便地與單片機(jī)連接,其引腳信號如圖6.18所示。HD44780是字符型液晶顯示模塊控制器的典型集成電路,目前內(nèi)置該驅(qū)動(dòng)控制器的液晶顯示模塊的生產(chǎn)廠家和具體型號都較多,如北京精電蓬遠(yuǎn)顯示技術(shù)有限公司的MDL(S)-16263、深圳航通科技有限公司的HT162A、EPSON公司的EA-D16025等,它們的引腳數(shù)和封裝都相同。圖6.18內(nèi)置HD44780的LCM引腳信號

DB7~DB0:8條數(shù)據(jù)線,用于微處理器與字符型液晶顯示模塊之間交換數(shù)據(jù)或命令。

VO:對比度調(diào)整電壓輸入端。在使用中接可調(diào)電壓,如電位器的滑動(dòng)端,用來調(diào)整液晶顯示屏的對比度。

VDD:電源電壓輸入端。接?+5?V單電源電壓。

VSS:參考地端。接工作電源參考地。

RS:寄存器選擇輸入端。當(dāng)輸入高電平時(shí),選擇數(shù)據(jù)寄存器;輸入低電平時(shí)選擇指令寄存器。

R/W:讀/寫選通信號輸入端。當(dāng)輸入高電平時(shí),對液晶顯示模塊進(jìn)行讀操作;當(dāng)輸入低電平時(shí),對液晶顯示模塊進(jìn)行寫操作。

E:使能信號輸入端。當(dāng)輸入高電平時(shí),可對液晶顯

示模塊進(jìn)行讀/寫操作;當(dāng)輸入低電平時(shí),液晶顯示模塊不工作。

目前常用的字符型液晶顯示模塊的類型用16字×1行、16字×2行、20字×2行和40字×2行,它們都具有相同的輸入/輸出接口。6.3.3LCM的命令字

在應(yīng)用LCM進(jìn)行顯示控制時(shí),通過其引腳線發(fā)送相應(yīng)命令和數(shù)據(jù)到內(nèi)部指令寄存器或數(shù)據(jù)寄存器中,控制LCM完成相應(yīng)的顯示功能。內(nèi)置HD44780驅(qū)動(dòng)控制器的字符型液晶顯示模塊可以使用的指令共有11條,其指令格式如表6.3所示。

1.清屏指令

該指令的功能是清除液晶顯示器(即將DDRAM的內(nèi)容全部填入“空白”的ASCII代碼20H),光標(biāo)撤回到液晶顯示屏的左上方,將地址計(jì)數(shù)器(AC)的值設(shè)為0。指令執(zhí)行時(shí)間為1.64μs。

2.光標(biāo)歸位指令

該指令的功能是將光標(biāo)撤回到液晶顯示屏的左上方,地址計(jì)數(shù)器(AC)的值設(shè)為0,保持DDRAM的內(nèi)容不變。指令執(zhí)行時(shí)間為1.64μs。

3.模式設(shè)置指令

該指令的功能是設(shè)定每次寫入1個(gè)數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫入的一個(gè)字符是否移動(dòng)。指令執(zhí)行時(shí)間為40μs。根據(jù)指令表6.3中模式設(shè)置指令的I/D、S位的不同狀態(tài)組合,可設(shè)定如表6.4所示的4種模式操作。

4.顯示器ON/OFF控制指令

該指令的功能是控制顯示器開/關(guān),光標(biāo)開/關(guān),決定光標(biāo)是否閃爍。由指令表6.3中定義的D、C、B三位來設(shè)定。

D位控制顯示器開(ON)或關(guān)(OFF)。D=1時(shí),顯示;D=0時(shí),不顯示。

C位控制光標(biāo)開(ON)或關(guān)(OFF)。C=1時(shí),顯示光標(biāo);C=0時(shí),不顯示光標(biāo)。

B位控制光標(biāo)是否閃爍。B=1時(shí),光標(biāo)閃爍;B=0時(shí),光標(biāo)不閃爍。

指令執(zhí)行時(shí)間為40?μs。

5.設(shè)定顯示器或光標(biāo)移動(dòng)方向指令

該指令的功能是控制光標(biāo)移位或使整個(gè)顯示字幕移位。指令執(zhí)行時(shí)間為40μs。

根據(jù)表6.3定義的S/C、R/L兩位編碼,有表6.5所示的四種設(shè)定情況。

6.功能設(shè)定指令

通過該指令可設(shè)定數(shù)據(jù)長度、顯示行數(shù)和字型。由表6.3中定義的DL、N、F三位來設(shè)定。

DL用于設(shè)定數(shù)據(jù)的長度。DL=1時(shí),數(shù)據(jù)為8位;DL=0時(shí),數(shù)據(jù)為四位。

N用于設(shè)定顯示行數(shù)。N=1時(shí),顯示2行;N=0時(shí),顯示一行。

F用于設(shè)定字型。F=1時(shí),選定5×10點(diǎn)陣字型;F=0時(shí),選定5×7點(diǎn)陣字型。

功能的指令執(zhí)行時(shí)間為40μs。

7.設(shè)定CGRAM地址指令

設(shè)定下一個(gè)存入數(shù)據(jù)的CGRAM地址。從表6.3中的指令格式定義可知,指令的最高2位為01,作該指令的標(biāo)志,低6位用來設(shè)定地址。指令執(zhí)行時(shí)間為40μs。

8.設(shè)定DDRAM地址指令

設(shè)定下一個(gè)存入數(shù)據(jù)的DDRAM地址,即設(shè)定字符在顯示器上的顯示位置。從表6.3中的指令格式定義可知,指令的最高位為1,作該指令的標(biāo)志,低7位用來設(shè)定地址。指令執(zhí)行時(shí)間為40μs。不同顯示方式,顯示字符在DDRAM的地址與顯示位置的影響關(guān)系如表6.6所示。

9.讀取忙碌狀態(tài)和AC地址指令

通過該指令可讀取忙碌信號和AC地址,指令執(zhí)行時(shí)間為40μs。

由表6.3中的指令格式定義可知,從LCM數(shù)據(jù)寄存器讀取的8位數(shù)據(jù)的最高位DB7表示忙碌狀態(tài),低7位是地址計(jì)數(shù)器(AC)的地址。當(dāng)最高位BF=1時(shí),表示在忙碌中,LCM無法接收數(shù)據(jù);當(dāng)BF=0時(shí),表示空閑,LCM可以接收數(shù)據(jù)。

10.?dāng)?shù)據(jù)寫入到DDRAM或CGRAM中的指令

通過該指令可將字符碼寫入DDRAM中,以使液晶顯示屏顯示出相應(yīng)字符,或?qū)⑹褂谜咦约涸O(shè)計(jì)的圖形碼存入CGRAM中。從表6.3中的指令格式定義可知,只要使LCM的控制信號線有效(RS=1、R/W=?0、E=1),就可將8位數(shù)據(jù)寫入到DDRAM或CGRAM的指定地址單元中。指令執(zhí)行時(shí)間為40μs。

11.從CGRAM或DDRAM讀取數(shù)據(jù)指令

從表6.3中的指令格式定義可知,只要使LCM的控制信號線有效(RS=1、R/W=1、E=1),就可讀出DDRAM或CGRAM中指定地址單元的8位數(shù)據(jù)。指令執(zhí)行時(shí)間為40μs。6.3.4字符型LCM的接口及應(yīng)用舉例

1.內(nèi)置HD44780的字符型LCM與51單片機(jī)的接口電路

在設(shè)計(jì)字符型LCM與單片機(jī)的接口電路時(shí),一般是將LCM與單片機(jī)的并行I/O口連接,通過并行口產(chǎn)生LCM的控制信號、輸出相應(yīng)命令,控制LCM實(shí)現(xiàn)顯示要求。在設(shè)計(jì)接口電路和應(yīng)用程序時(shí),應(yīng)特別注意以下問題:

(1)對字符型LCM進(jìn)行讀/寫操作不是利用單片機(jī)的讀/寫信號,而是通過對LCM引腳信號線(RS、R/W、E)的控制來完成的。

(2)字符型LCM的數(shù)據(jù)總線不是三態(tài)總線,所以在調(diào)試階段,R/W引腳為低電平,以保證LCM處于寫狀態(tài);如果R/W引腳為高電平,則LCM處于讀狀態(tài),會造成數(shù)據(jù)總線混亂,形成死機(jī)現(xiàn)象。

(3)由于51單片機(jī)復(fù)位后4個(gè)并行口都為FFH,所以,與R/W的連接線要經(jīng)過反相器反相連接,以保證上電復(fù)位時(shí),LCM處在正確的初始狀態(tài)。圖6.19是51系列單片機(jī)驅(qū)動(dòng)字符型液晶顯示模塊的接口示例。單片機(jī)通過并行接口P0和P1口的操作,間接地實(shí)現(xiàn)對字符型LCM的控制。在編制程序時(shí),對LCM控制信號(RS、R/W、E)的要求是:寫操作時(shí),使能信號E的下降沿有效。讀操作時(shí),使能信號E在高電平有效;在控制順序上,先設(shè)置RS、R/狀態(tài),再設(shè)置E信號為高電平。圖6.1951單片機(jī)與字符型LCM的接口

2.LCM初始化

對LCM初始化,就是通過所連接的并行接口產(chǎn)生所要求的控制信號和指令,實(shí)現(xiàn)顯示要求。LCM驅(qū)動(dòng)控制器的指令是通過接口電路設(shè)置相應(yīng)命令碼,主要通過相應(yīng)程序模擬來實(shí)現(xiàn)。單片機(jī)對液晶顯示模塊的操作可分為四種情況:讀“忙”狀態(tài)、寫指令、讀數(shù)據(jù)、寫數(shù)據(jù)。因此在LCM應(yīng)用程序中通常包括查看忙碌信號、寫指令到指令寄存器IR、將數(shù)據(jù)寫到數(shù)據(jù)寄存器DR、清除液晶顯示器、啟動(dòng)字符型液晶顯示模塊等5個(gè)初始化子程序。這樣在LCM顯示控制應(yīng)用程序中,通過調(diào)用這5個(gè)初始化子程序,可很方便地設(shè)計(jì)各種顯示功能的應(yīng)用程序。下面針對圖6.19所示接口電路,說明5個(gè)初始化子程序。

1)查看忙碌信號的子程序

對單片機(jī)來說,LCM是一個(gè)慢速的外部設(shè)備,單片機(jī)每發(fā)送一個(gè)指令到LCM,至少要40μs時(shí)間才能完成相應(yīng)操作。當(dāng)單片機(jī)要對LCM送指令以前,必須先檢查LCM是否空閑,在確定LCM空閑時(shí),才能發(fā)送指令。檢查忙碌信號的子程序(CheckBusy):

4)清除顯示器的子程序(CLS)

由于清除顯示器指令是屬于寫數(shù)據(jù)到IR指令寄存器中

的一個(gè),所以在編寫程序時(shí),只需將消除指令00000001B

即01H存入ACC,再調(diào)用WriteInstruction子程序。

5)啟動(dòng)字符型LCM的子程序(Initial)

只要字符型LCM供電電源符合圖6.20所示的要求,打開電源后會自動(dòng)清除顯示器。在一般情況下,電源打開的時(shí)序都是足以符合要求的。

加電啟動(dòng)后還需根據(jù)顯示的功能要求,依次下達(dá)設(shè)定功能指令、顯示器ON/OFF控制指令與設(shè)定進(jìn)入模式指令,顯示器才能正確工作。圖6.20使字符型LCM產(chǎn)生自動(dòng)啟動(dòng)的電源要求在將指令碼寫到IR指令寄存器的子程序(WriteInstruction)的基礎(chǔ)上,只要根據(jù)表6.3中的命令字格式設(shè)定功能、顯示器ON/OFF控制、模式設(shè)置指令,調(diào)用WriteInstruction子程序,即可對字符型LCM進(jìn)行設(shè)置。例如,要讓字符型LCM設(shè)定數(shù)據(jù)長度為8位、顯示兩行、使用5×7點(diǎn)陣的字型字符、光標(biāo)要顯示但不閃爍、每顯示一個(gè)字符,光標(biāo)向右移動(dòng)一格。下面是啟動(dòng)字符型液晶顯示模塊的子程序。

3.應(yīng)用舉例

下面用三個(gè)應(yīng)用程序來說明內(nèi)置HD44780的字符型LCM在使用中的編程問題。這三個(gè)程序分別是讓字符型液晶顯示模塊顯示字符“C”、讓字符型液晶顯示模塊顯示2行字串“WELLCOME”與“TESTLCD”和顯示“WELLCOMETOUSETHELCM”。在編寫程序時(shí),例1和例2是通過反復(fù)調(diào)用字符型LCM的5個(gè)初始化子程序來實(shí)現(xiàn)顯示要求,而例3則是根據(jù)單片機(jī)對字符型LCM的顯示控制流程來編寫的,可加深對字符型LCM的理解和使用。例1讓字符型LCM顯示“C”字符。

程序如下:

例2

讓字符型液晶顯示模塊顯示2行字串“WELLCOME”和“TESTLCD”。

2行字串“WELLCOME”和“TESTLCD”的顯示格式和要求如下:

例3

讓字符型液晶顯示模塊按要求顯示“WELLCOMETOUSETHELCM”。

要求顯示格式如下:例1和例2是通過反復(fù)調(diào)用字符型LCM的5個(gè)初始化子程序來實(shí)現(xiàn)顯示要求的,其特點(diǎn)是程序比較簡練且通用性較好,但必須了解字符型LCM初始化過程及其初始化子程序的編寫。為加深初學(xué)者對字符型LCM的理解和使用,本例結(jié)合單片機(jī)對字符型LCM的具體顯示控制流程來編寫應(yīng)用程序。對于圖6.19所示的LCM接口,設(shè)單片機(jī)片內(nèi)RAM的40H~5FH共32個(gè)單元為顯示緩沖區(qū),其中40H~4FH這16個(gè)單元對應(yīng)液晶顯示模塊的第一行,50H~5FH這16個(gè)單元對應(yīng)液晶顯示模塊的第二行。其顯示控制程序清單如下:

6.4A/D轉(zhuǎn)換器接口

6.4.1A/D轉(zhuǎn)換器概述

在單片機(jī)測控應(yīng)用系統(tǒng)中,被采集的實(shí)時(shí)信號有許多是連續(xù)變化的物理量。由于計(jì)算機(jī)只能處理數(shù)字量,所以就需要將連續(xù)變化的物理量轉(zhuǎn)換成數(shù)字量,即A/D轉(zhuǎn)換。這就涉及到A/D轉(zhuǎn)換的接口問題。在設(shè)計(jì)A/D轉(zhuǎn)換器與單片機(jī)接口之前,往往要根據(jù)A/D轉(zhuǎn)換器的技術(shù)指標(biāo)選擇A/D轉(zhuǎn)換器。為此,先介紹一下A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)。

量化間隔和量化誤差是A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)之一。量化間隔可用下式表示:其中:n為A/D轉(zhuǎn)換器的位數(shù)。量化誤差有兩種表示方法:一種是絕對誤差;另一種是相對誤差。

A/D轉(zhuǎn)換器芯片種類很多,按其轉(zhuǎn)換原理可分為逐次逼近式、雙重積分式、量化反饋式和并行式A/D轉(zhuǎn)換器;按其分辨率可分為8~16位的A/D轉(zhuǎn)換器芯片。目前最常用的是逐次逼近式和雙重積分式。

逐次逼近式轉(zhuǎn)換器的常用產(chǎn)品有ADC0801~ADC0805、ADC0808/0809、ADC0816/0817型8位MOSA/D轉(zhuǎn)換器、AD574型快速12位A/D轉(zhuǎn)換器。

雙重積分式轉(zhuǎn)換器的常用產(chǎn)品有ICL7106/ICL7107/

ICL7126、MC14433/5G14433、ICL7135等。

A/D轉(zhuǎn)換器與單片機(jī)接口具有硬、軟件相依性。一般來說,A/D轉(zhuǎn)換器與單片機(jī)的接口主要考慮的是數(shù)字量輸出線的連接、ADC啟動(dòng)、轉(zhuǎn)換結(jié)束信號以及時(shí)鐘的連接等。

A/D轉(zhuǎn)換器數(shù)字量輸出線與單片機(jī)的連接方法與其內(nèi)

部結(jié)構(gòu)有關(guān)。對于內(nèi)部帶有三態(tài)鎖存數(shù)據(jù)輸出緩沖器的ADC(如ADC0809、AD574等),可直接與單片機(jī)相連。對于內(nèi)部不帶鎖存器的ADC,一般通過鎖存器與單片機(jī)相連。還有,隨著位數(shù)的不同,ADC與單片機(jī)的連接方法也不同。對于8位ADC,其數(shù)字輸出線可與8位單片機(jī)數(shù)據(jù)線對應(yīng)相接。對于8位以上的ADC,與8位單片機(jī)相接就不那么簡單了,此時(shí)必須增加讀取控制邏輯,把8位以上的數(shù)據(jù)分兩次或多次讀取。一個(gè)ADC開始轉(zhuǎn)換時(shí),必須加一個(gè)啟動(dòng)轉(zhuǎn)換信號,這一啟動(dòng)信號要由單片機(jī)提供。不同型號的ADC,對于啟動(dòng)轉(zhuǎn)換信號的要求也不同,一般分為脈沖啟動(dòng)和電平啟動(dòng)兩種。對于脈沖啟動(dòng)型ADC,只要給其啟動(dòng)控制端上加一個(gè)符合要求的脈沖信號即可,如ADC0809、ADC574等。通常用單片機(jī)的和地址譯碼器的輸出經(jīng)一定的邏輯電路進(jìn)行控制。對于電平啟動(dòng)型ADC,當(dāng)把符合要求的電平加到啟動(dòng)控制端上時(shí),立即開始轉(zhuǎn)換,在轉(zhuǎn)換過程中,必須保持這一電平,否則會終止轉(zhuǎn)換的進(jìn)行。因此,在這種啟動(dòng)方式下,單片機(jī)的控制信號必須經(jīng)過鎖存器保持一段時(shí)間,一般采用鎖存器或并行I/O接口等來實(shí)現(xiàn)。AD570、AD571等都屬于電平啟動(dòng)型ADC。當(dāng)ADC轉(zhuǎn)換結(jié)束時(shí),ADC輸出一個(gè)轉(zhuǎn)換結(jié)束標(biāo)志信號,通知單片機(jī)讀取轉(zhuǎn)換結(jié)果。單片機(jī)檢查A/D轉(zhuǎn)換結(jié)束的方法一般有中斷和查詢兩種。對于中斷方式,可將轉(zhuǎn)換結(jié)束標(biāo)志信號接到單片機(jī)的中斷請求輸入線上或允許中斷的I/O接口的相應(yīng)引腳,作為中斷請求信號;對于查詢方式,可把轉(zhuǎn)換結(jié)束標(biāo)志信號經(jīng)三態(tài)門送到單片機(jī)的某一位I/O口線上,作為查詢狀態(tài)信號。

A/D轉(zhuǎn)換器的另一個(gè)重要連接信號是時(shí)鐘,其頻率是決定芯片轉(zhuǎn)換速度的基準(zhǔn)。整個(gè)A/D轉(zhuǎn)換過程都是在時(shí)鐘的作用下完成的。A/D轉(zhuǎn)換時(shí)鐘的提供方法有兩種:一種是由芯片內(nèi)部提供(如AD574),一般不需外加電路;另一種是由外部提供,有的用單獨(dú)的振蕩電路產(chǎn)生,更多的則把單片機(jī)輸出時(shí)鐘經(jīng)分頻后,送到A/D轉(zhuǎn)換器的相應(yīng)時(shí)鐘端。

本節(jié)只選兩種典型的8位和12位A/D轉(zhuǎn)換芯片介紹與單片機(jī)的接口技術(shù)。6.4.2A/D轉(zhuǎn)換器ADC0809與單片機(jī)的接口

1.?ADC0809芯片簡介

ADC0809是8位逐次比較式A/D轉(zhuǎn)換芯片,具有8路模擬量輸入通道。其內(nèi)部邏輯結(jié)構(gòu)與芯片引腳如圖6.21所示。圖6.21ADC0809芯片的內(nèi)部結(jié)構(gòu)與引腳圖(a)結(jié)構(gòu)圖;(b)引腳圖圖6.21中8路模擬開關(guān)用于選通8個(gè)模擬通道,允許8

路模擬量分時(shí)輸入,并共用一個(gè)A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。IN0~I(xiàn)N7為8路模擬量輸入端,模擬量輸入電壓的范圍是0~5V,對應(yīng)的數(shù)字量為00H~FFH,轉(zhuǎn)換時(shí)間為100μs。ADDA、ADDB、ADDC為通道尋址線,用于選擇通道。其通道尋址如表6.7所示。

ALE是通道地址鎖存信號,其上出現(xiàn)脈沖上升沿時(shí),

把ADDA、ADDB、ADDC地址狀態(tài)送入地址鎖存器中。VREF(+)、VREF(-)接基準(zhǔn)電源,在精度要求不太高的情況下,供電電源就可用作基準(zhǔn)電源。START是啟動(dòng)引腳,其上脈沖的下降沿啟動(dòng)一次新的A/D轉(zhuǎn)換。EOC是轉(zhuǎn)換結(jié)束信號,可用于向單片機(jī)申請中斷或供單片機(jī)查詢。CLK是時(shí)鐘端,典型的時(shí)鐘頻率為640?kHz。DB0~DB7是數(shù)字量輸出。

ADC0809工作時(shí)的定時(shí)關(guān)系如圖6.22所示。從圖可以看出,在進(jìn)行A/D轉(zhuǎn)換時(shí),通道地址應(yīng)先送到ADDA~ADDC輸入端。然后在ALE上加一個(gè)正跳變脈沖,將通道地址鎖存到ADC0809內(nèi)部的地址鎖存器中。這樣對應(yīng)的模擬電壓輸入就和內(nèi)部變換電路接通。為了啟動(dòng),必須在START端加一個(gè)負(fù)跳變信號,此后變換工作就開始進(jìn)行,標(biāo)志ADC0809工作的狀態(tài)信號EOC由高電平(空閑狀態(tài))變?yōu)榈碗娖?工作狀態(tài))。一旦變換結(jié)束,EOC信號就又由低電平變成高電平,此時(shí)只要在OE端加一個(gè)高電平,即可打開數(shù)據(jù)線的三態(tài)緩沖器從D0~D7數(shù)據(jù)線讀得一次變換后的數(shù)據(jù)。圖6.22ADC0809轉(zhuǎn)換工作時(shí)序

2.ADC0809與單片機(jī)接口

圖6.23是ADC0809與51單片機(jī)的接口示例。

ADC0809的轉(zhuǎn)換時(shí)鐘由單片機(jī)的ALE提供。因ADC0809的典型轉(zhuǎn)換頻率為640kHz,ALE信號頻率與晶

振頻率有關(guān),如果晶振頻率取12MHz,則ALE的頻率為

2MHz,所以ADC0809的時(shí)鐘端CLK與單片機(jī)的ALE相接時(shí),要考慮分頻。圖6.23ADC0809與51單片機(jī)的接口連接示例

51單片機(jī)通過地址線P2.0和讀、寫控制信號線RD、WR來控制轉(zhuǎn)換器的模擬輸入通道地址鎖存、啟動(dòng)和輸出允許。因ADC0809具有通道地址鎖存功能,所以P0.0~P0.2不須經(jīng)鎖存器接入ADDA~ADDC。根據(jù)P2.0和P0.0~P0.2的連接方法,通道0的地址應(yīng)為:XXXXXXX0XXXXX000,取FEF8H,則其余7個(gè)通道IN1~I(xiàn)N7的地址依次為FEF9H~FEFFH。

3.?A/D轉(zhuǎn)換應(yīng)用程序舉例

設(shè)圖6.23所示接口電路用于一個(gè)8路模擬量輸入的巡回檢測系統(tǒng),使用中斷方式采樣數(shù)據(jù),把采樣轉(zhuǎn)換所得的數(shù)字量按次序存于片內(nèi)RAM的30H~37H單元中。采樣完一遍后停止采集。其數(shù)據(jù)采集的初始化程序和中斷服務(wù)程序如下:

MOVR0,#30H;設(shè)立數(shù)據(jù)存儲區(qū)指針

MOVR2,#08H;設(shè)置8路采樣計(jì)數(shù)值

SETBIT0;設(shè)置外部中斷0為邊沿觸發(fā)方式

SETBEA;CPU開放中斷

SETBEX0;允許外部中斷0中斷

MOVDPTR,#0FEF8H;使DPTR指向IN0LOOP:MOVX@DPTR,A;啟動(dòng)A/D轉(zhuǎn)換,A的值無意義HERE:SJMPHERE ;等待中斷中斷服務(wù)程序:

ORG0003H

MOVXA,@DPTR ;讀取轉(zhuǎn)換后的數(shù)字量

MOV@R0,A ;存入片內(nèi)RAM單元

INCDPTR ;指向下一模擬通道

INCR0 ;指向下一個(gè)數(shù)據(jù)存儲單元

DJNZR2,INT0 ;8路未轉(zhuǎn)換完,則繼續(xù)

CLREA ;已轉(zhuǎn)換完,則關(guān)中斷

CLREX0 ;禁止外部中斷0中斷

RETI ;中斷返回圖6.24AD574引腳信號

INT0:MOVX@DPTR,A ;再次啟動(dòng)A/D轉(zhuǎn)換

RETI ;中斷返回6.4.3單片機(jī)與A/D轉(zhuǎn)換器AD574的接口

1.AD574芯片簡介

AD574是一種快速的12位逐次比較式A/D轉(zhuǎn)換芯片。片內(nèi)有三態(tài)輸出鎖存器,無需外接元器件就可獨(dú)立完成A/D轉(zhuǎn)換功能。一次轉(zhuǎn)換時(shí)間為25μs。28腳雙插直列式芯片引腳如圖6.24所示。圖6.24AD574引腳信號

AD574的引腳定義如下:

REOUT:內(nèi)部參考電源輸出(+10?V);

REFIN:參考電壓輸入。

BIP:偏置電壓輸入。

10VIN:±5V或0~10V模擬輸入。

20VIN:±10V或0~20V模擬輸入。

DB0~DB11數(shù)字量輸出,高字節(jié)為DB8~DB11,低字節(jié)為DB0~DB7。

STS:工作狀態(tài)指示端。STS=1時(shí),表示轉(zhuǎn)換器正處于轉(zhuǎn)換狀態(tài),STS返回到低電平時(shí),表示轉(zhuǎn)換完畢。該信號可作為單片機(jī)的中斷請求或狀態(tài)查詢信號。

12/8:變換輸出字長選擇控制端,輸入為高電平時(shí),轉(zhuǎn)換結(jié)果12位輸出,輸入低電平時(shí),按8位輸出。

CS、CE:片選信號。當(dāng)CS=0、CE=1同時(shí)滿足時(shí),AD574才能處于工作狀態(tài)。

R/C數(shù)據(jù)讀出或轉(zhuǎn)換啟動(dòng)控制。當(dāng)R/C=1時(shí),控制讀取轉(zhuǎn)換結(jié)果數(shù)據(jù);當(dāng)R/C=?0時(shí),啟動(dòng)轉(zhuǎn)換。

A0:字節(jié)地址控制。它有兩個(gè)作用,在啟動(dòng)AD574

(R/C=0)時(shí),用來控制轉(zhuǎn)換長度,A=0時(shí),按完整的12位轉(zhuǎn)換方式工作;A=1時(shí),按8位A/D轉(zhuǎn)換方式工作。在AD574處于數(shù)據(jù)讀出工作狀態(tài)(R/C=?1)時(shí),A0和12/8成為輸出數(shù)據(jù)格式控制。12/8=?1時(shí),對應(yīng)12位并行輸出;12/8=?0時(shí),對應(yīng)8位雙字節(jié)輸出,A0=0時(shí),輸出高8位,A0=1時(shí),輸出低4位,高4位填充0。A0在數(shù)據(jù)輸出期間不能變化。

上述有關(guān)引腳的控制功能的狀態(tài)組合關(guān)系如表6.8所示。

2.?AD574模擬輸入電路的極性選擇

AD574有兩個(gè)模擬電壓輸入引腳10VIN和20VIN,具有10?V和20?V模擬量的動(dòng)態(tài)范圍。這兩個(gè)引腳的輸入電壓可以是單極性的,也可以是雙極性的,可由用戶改變輸入電路的連接形式來進(jìn)行選擇,如圖6.25所示。圖6.25AD574模擬輸入電路(a)單極性輸入;(b)雙極性輸入

3.AD574與51單片機(jī)的接口

圖6.26是AD574與51單片機(jī)的接口示例。

對于51單片機(jī)來說,如果AD574啟動(dòng)為12位轉(zhuǎn)換方式,則對轉(zhuǎn)換結(jié)果只能按雙字節(jié)分時(shí)讀入,所以12/接地;AD574的高8位數(shù)據(jù)線順次連接到單片機(jī)的數(shù)據(jù)線上,低4位數(shù)據(jù)線接單片機(jī)的低4位數(shù)據(jù)線;AD574的CE與WR和RD通過“與非”邏輯連接,不論單片機(jī)執(zhí)行輸出或是輸入指令,都能使CE為高電平有效;STS信號接單片機(jī)的一根I/O線,通過查詢方式讀取轉(zhuǎn)換結(jié)果。圖6.26AD574與51單片機(jī)接口示例

4.轉(zhuǎn)換程序設(shè)計(jì)舉例

設(shè)要求AD574進(jìn)行12位轉(zhuǎn)換,讀取轉(zhuǎn)換結(jié)果的高8位和低4位分別存于片內(nèi)RAM的31H和30H單元。其轉(zhuǎn)換子程序如下: MOV@R1,A;送存高8位轉(zhuǎn)換結(jié)果

DECR1 ;R1指向低4位轉(zhuǎn)換結(jié)果存放地址

INCR0

INCR0 ;(R0)=7FH,使CS=0、A0=1,R/C=1

MOVXA,@R0 ;讀取低4位轉(zhuǎn)換結(jié)果

ANLA,#0FH ;只取低4位結(jié)果

MOVX@R1,A ;送存低4位結(jié)果

RET6.4.4串行A/D轉(zhuǎn)換器與單片機(jī)的接口

串行A/D轉(zhuǎn)換器與并行A/D轉(zhuǎn)換器相比,具有使用引線少、電路簡單、芯片體積小、低功耗等優(yōu)點(diǎn),同時(shí)可與遠(yuǎn)端的CPU進(jìn)行串行數(shù)字通信,可大大減少數(shù)據(jù)傳送過程中的干擾。因此,它在遠(yuǎn)程數(shù)據(jù)采集中獲得了日益廣泛的應(yīng)用。串行A/D轉(zhuǎn)換器件的類型較多,如德州儀器公司生產(chǎn)的8位串行轉(zhuǎn)換器TLC0831/TLC0832、4通道8位串行A/D轉(zhuǎn)換器TLC0834/TLC0838、帶自動(dòng)關(guān)斷功能的10位高速串行A/D轉(zhuǎn)換器TLV1572等系列。本節(jié)以TLC0831/TLC0832為例來介紹串行A/D轉(zhuǎn)換器的接口技術(shù)。

TLC0831C/I、TLC0832C/I是8位逐次逼近式模數(shù)轉(zhuǎn)換器,單+5V供電,模擬量輸入范圍為0~5V,其中TLC0831有一個(gè)輸入通道,TLC0832有兩個(gè)輸入通道。后者的前級可用軟件配置為單端或者差分輸入。兩種器件的輸出均為串行方式,易于和微處理器接口或獨(dú)立使用。輸入和輸出與TTL和CMOS兼容,在串行時(shí)鐘為250kHz時(shí),轉(zhuǎn)換時(shí)間為32μs,總的調(diào)整誤差為?±1LSB,使用非常方便。

TLC0831C/TLC0832C的內(nèi)部工作溫度范圍為0℃~70℃,TLC0831I/TLC0832I的工作溫度范圍為-40℃~85℃。它們的封裝采用標(biāo)準(zhǔn)的8腳表貼和DIP結(jié)構(gòu),可與美國國家半導(dǎo)體公司的ADC0831和ADC0832互換。

1.功能與使用說明

TLC0831/TLC0832內(nèi)部為采樣—數(shù)據(jù)—比較結(jié)構(gòu),以逐次逼近流程轉(zhuǎn)換差分模擬輸入信號。TLC0831只有一個(gè)差分(IN+,IN-)輸入端,當(dāng)不需要差分輸入時(shí),IN-?可接地,模擬信號連到IN+,作為單端輸入。TLC0832的輸入(CH0,CH1)可通過DI地址選擇腳配置為差分(IN+,IN-)輸入。當(dāng)連到IN+?端的輸入電壓低于IN-?端的輸入電壓時(shí),轉(zhuǎn)換結(jié)果為0。TLC0831的REF端為基準(zhǔn)電壓端,一般可Vcc(TLC0832的基準(zhǔn)由內(nèi)部設(shè)定)。

TLC0831/TLC0832引腳如圖6.27所示。圖6.27TLC0831/0832引腳信號(a)TLC0831封裝;(b)TLC0832封裝各引腳含義如下:

CS:片選端。當(dāng)CS為低電平時(shí),啟動(dòng)A/D轉(zhuǎn)換,在整個(gè)轉(zhuǎn)換過程中CS必須始終為低電平。連續(xù)輸入10個(gè)脈沖完成一次轉(zhuǎn)換,數(shù)據(jù)從第2個(gè)脈沖開始輸出。轉(zhuǎn)換結(jié)束后應(yīng)將CS置為高電平,當(dāng)CS重新拉低時(shí)將開始新的一次轉(zhuǎn)換。

IN+:為正輸入端。

IN-:為負(fù)輸入端,ADC0831(TLC0831)可以接入差分信號,如果輸入單端信號,IN-應(yīng)接地。

GND:電源地端。

VCC:電源正端。

CLK:時(shí)鐘信號端。

DO:數(shù)據(jù)輸出端。

REF:參考電壓輸入端,使用中應(yīng)接參考電壓或直接接VCC端。

CH0、CH1:TLC0832的模擬量輸入引腳。

DI:TLC0832的多路地址選擇輸入端。

TLC0831/TLC0832通過串行接口與單片機(jī)相連來傳送控制命令或數(shù)據(jù)??捎密浖νǖ篮洼斎攵诉M(jìn)行選擇和配置。轉(zhuǎn)換開始后,器件從單片機(jī)接收時(shí)鐘,在一個(gè)時(shí)鐘的時(shí)間間隔前導(dǎo)下,以保證輸入多路器穩(wěn)定。在轉(zhuǎn)換過程中,轉(zhuǎn)換數(shù)據(jù)同時(shí)從DO端輸出,以最高位(MSB)開頭,經(jīng)過8個(gè)時(shí)鐘后,轉(zhuǎn)換完成。當(dāng)變高時(shí),內(nèi)部所有寄存器清0。此時(shí),輸出電路變?yōu)楦咦锠顟B(tài)。如果希望開始另一個(gè)轉(zhuǎn)換,端必須有一個(gè)從高到低的跳變,后面緊接地址、數(shù)據(jù)等操作。

TLC0832在輸出以最高位(MSB)開頭的數(shù)據(jù)流后,又以最低位(LSB)開頭重新輸出一遍(前面的)數(shù)據(jù)流。DI和DO端可以連在一起,通過一根線連到單片機(jī)的一個(gè)雙向I/O口進(jìn)行控制。TLC0832的地址是通過DI端移入,來選擇模擬輸入通道,同時(shí)也決定輸入是單端還是差分輸入。當(dāng)輸入為差分時(shí),要分配輸入通道的極性。另外,在選擇差分輸入模式時(shí),極性也可以選擇。輸入通道的兩個(gè)輸入端的任何一個(gè)都可以作為正極或負(fù)極。圖6.28TLC0831工作時(shí)序

TLC0831的工作時(shí)序如圖6.28所示,TLC0832的工作時(shí)序如圖6.29所示。圖6.29TLC0832工作時(shí)序

2.?TLC0831/TLC0832與單片機(jī)的接口

TLC0831/TLC0832模數(shù)轉(zhuǎn)換器與51單片機(jī)接口時(shí),一般將其、CLK、DO、DI引腳線與單片機(jī)的I/O口線連接,通過I/O線產(chǎn)生工作時(shí)序信號來控制轉(zhuǎn)換并得到轉(zhuǎn)換結(jié)果。圖6.30所示是一種連接示例。圖6.30TLC0831/0832與單片機(jī)的接口(a)TLC0831的連接;(b)TLC0832的連接

3.?TLC0831/TLC0832A/D轉(zhuǎn)換應(yīng)用程序舉例

TLC0831/TLC0832A/D轉(zhuǎn)換程序就是在連接的I/O口

線上產(chǎn)生圖6.28或圖6.29的工作時(shí)序。針對圖6.30(a)啟動(dòng)TLC0831的轉(zhuǎn)換程序如下:

6.5D/A轉(zhuǎn)換器接口

6.5.1D/A轉(zhuǎn)換器概述

1.D/A轉(zhuǎn)換器的性能指標(biāo)及類型

在設(shè)計(jì)D/A轉(zhuǎn)換器與單片機(jī)接口之前,一般要根據(jù)D/A轉(zhuǎn)換器的技術(shù)指標(biāo)選擇D/A轉(zhuǎn)換器芯片。因此,先介紹一下D/A轉(zhuǎn)換器的主要技術(shù)指標(biāo)。

1)分辨率

分辨率是D/A轉(zhuǎn)換器對輸入量變化敏感程度的描述。D/A轉(zhuǎn)換器的分辨率定義為:當(dāng)輸入數(shù)字量發(fā)生單位數(shù)碼變化時(shí),即LSB位產(chǎn)生一次變化時(shí),所對應(yīng)輸出模擬量的變化量。對于線性D/A轉(zhuǎn)換器來說,其分辨率Δ與輸入數(shù)字量輸出的位數(shù)n呈現(xiàn)下列關(guān)系:在實(shí)際使用中,表示分辨率高低的更常用的方法是采用輸入數(shù)字量的位數(shù)或最大輸入碼的個(gè)數(shù)。例如,8位二進(jìn)制D/A轉(zhuǎn)換器,其分辨率為8位,Δ=1/256=0.39%。BCD碼輸入的,用其最大輸入碼個(gè)數(shù)表示,例如4字位9999D/A轉(zhuǎn)換器,其分辨率為Δ=1/9999=0.01%。顯然,位數(shù)越多,分辨率越高。

2)建立時(shí)間

建立時(shí)間是描述D/A轉(zhuǎn)換速率快慢的一個(gè)重要參數(shù),一般所指的建立時(shí)間是輸入數(shù)字量變化后,模擬輸出量達(dá)到終值誤差?±1/2LSB(最低有效位)時(shí)所經(jīng)歷的時(shí)間。根據(jù)建立時(shí)間的長短,把D/A轉(zhuǎn)換器分成以下幾檔:

超高速<?100?ns

較高速1?μs~100?ns

高速10?μs~1?μs

中速100?μs~10?μs

低速≥100?μs

D/A轉(zhuǎn)換器的品種繁多、性能各異,按輸入數(shù)字量的位數(shù)來分,有8位、10位、12位和16位等;按輸入的數(shù)碼形式分,有二進(jìn)制碼和BCD碼等;按轉(zhuǎn)送數(shù)字量的方式分,有并行式的和串形式的D/A轉(zhuǎn)換器兩類;按輸出形式分,有電流輸出和電壓輸出兩種形式,而電壓輸出又有單極性電壓輸出和雙極型電壓輸出之別;從與單片機(jī)接口的角度看,又有帶輸入鎖存器和不帶輸入鎖存器兩類。下面列出常用的幾種D/A轉(zhuǎn)換芯片。

(1)?DAC0830系列。DAC0830系列是美國NationalSemiconductor公司生產(chǎn)的具有兩個(gè)數(shù)據(jù)寄存器的8位D/A轉(zhuǎn)換芯片,該系列產(chǎn)品包括DAC0830、DAC0831、DAC0832,管腳完全相容,為20腳雙列直插式封裝。

(2)?DAC82。DAC82是B-B公司生產(chǎn)的8位能完全與微處理器兼容的D/A轉(zhuǎn)換器芯片,片內(nèi)帶有基準(zhǔn)電壓和調(diào)節(jié)電阻,無需外接器件及微調(diào)即可與單片機(jī)8位數(shù)據(jù)線相連。芯片工作電壓為?±15V,可以直接輸出單極性或雙極性的電壓(0~+10V,±10V)和電流(0~1.6mA,±0.8mA)。

(3)?DAC1020/AD7520和DAC1220/AD7521系列。DAC1020/AD7520為10位分辨率的D/A轉(zhuǎn)換集成系列芯片,DAC1020系列是美國NationalSemiconductor公司產(chǎn)品,包

括DAC1020、DAC1021、DAC1022,與美國AnalogDevices公司的AD7520及其后繼產(chǎn)品AD7530、AD7533完全兼容,單電源工作,電源電壓為?+5V~+15V,電流建立時(shí)間為

500ns,16線雙列直插式封裝。

(4)?DAC1220/AD7521系列。DAC1220/AD7521系列為12位分辨率的D/A轉(zhuǎn)換集成芯片,DAC1220系列包括DAC1220、DAC1221、DAC1222產(chǎn)品,與AD7521及其后

繼產(chǎn)品AD7531管腳完全兼容,18線雙列直插封裝。

(5)DAC1208和DAC1230系列。DAC1208和DAC1230系列均為美國NationalSemiconductor公司產(chǎn)品,12位分辨率,兩者不同之處是DAC1230數(shù)據(jù)輸入引腳線只有8根,而DAC1208有12根引腳線。DAC1208系列為24線雙列直插式封裝,而DAC1230系列為20線雙列直插式封裝。DAC1208系列包括DAC1208、DAC1209、DAC1210;DAC1230系列包括DAC1230、DAC1231、DAC1232。

2.D/A轉(zhuǎn)換器與單片機(jī)接口的一般方法

D/A轉(zhuǎn)換器與單片機(jī)接口也具有硬、軟件相依性。各種D/A轉(zhuǎn)換器與單片機(jī)接口的方法有些差異,但就其基本連接方法來看,還是有共同之處:都要考慮到數(shù)據(jù)線、地址線和控制線的連接。就數(shù)據(jù)線來說,D/A轉(zhuǎn)換器與單片機(jī)的接口要考慮到兩個(gè)問題:一是位數(shù),當(dāng)高于8位的D/A轉(zhuǎn)換器與8位數(shù)據(jù)總線的51單片機(jī)接口時(shí),51單片機(jī)的數(shù)據(jù)必須分時(shí)輸出,這時(shí)必須考慮數(shù)據(jù)分時(shí)傳送的格式和輸出電壓的“毛刺”問題;二是D/A轉(zhuǎn)換器的內(nèi)部結(jié)構(gòu),當(dāng)D/A轉(zhuǎn)換器內(nèi)部沒有輸入鎖存器時(shí),必須在單片機(jī)與D/A轉(zhuǎn)換器之間增設(shè)鎖存器或I/O接口。最常用也是最簡單的連接是8位帶鎖存器的D/A轉(zhuǎn)換器和8位單片機(jī)的接口,這時(shí)只要將單片機(jī)的數(shù)據(jù)總線直接和D/A轉(zhuǎn)換器的8位數(shù)據(jù)輸入端一一對應(yīng)連接即可。就地址線來說,一般的D/A轉(zhuǎn)換器只有片選信號,而沒有地址線。這時(shí)單片機(jī)的地址線采用全譯碼或部分譯碼,經(jīng)譯碼器輸出控制片選信號,也可用由某一位I/O線來控制片選信號。也有少數(shù)D/A轉(zhuǎn)換器有少量的地址線,用于選中片內(nèi)獨(dú)立的寄存器或選擇輸出通道(對于多通道D/A轉(zhuǎn)換器),這時(shí)單片機(jī)的地址線與D/A轉(zhuǎn)換器的地址線對應(yīng)連接。就控制線來說,D/A轉(zhuǎn)換器主要有片選信號、寫信號及啟動(dòng)轉(zhuǎn)換信號等,一般由單片機(jī)的有關(guān)引腳或譯碼器提供。一般來說,寫信號多由單片機(jī)的信號控制;啟動(dòng)信號常由片選信號與寫信號的組合形成,當(dāng)單片機(jī)執(zhí)行一條輸出指令時(shí),傳送的地址使轉(zhuǎn)換器的片選信號有效,由實(shí)現(xiàn)啟動(dòng)。

本節(jié)只選兩種典型的8位和12位D/A轉(zhuǎn)換芯片介紹與單片機(jī)的接口方法。6.5.2

8位D/A轉(zhuǎn)換器與單片機(jī)的接口下面以8位D/A轉(zhuǎn)換器DAC0830/DAC0831/DAC0832為例,來說明8位D/A轉(zhuǎn)換器與51單片機(jī)的接口方法。

1.DAC0830/DAC0831/DAC0832的結(jié)構(gòu)與引腳功能

DAC0830/DAC0831/DAC0832內(nèi)部主要由8位輸入鎖存器、8位DAC鎖存器、8位D/A轉(zhuǎn)換器和控制邏輯四部分組成,其結(jié)構(gòu)框圖如圖6.31所示。圖6.31DAC0832系列內(nèi)部結(jié)構(gòu)及引腳信號

DAC0830/DAC0831/DAC0832是20腳雙列直插式封裝芯片。其引腳功能定義如下:

DI0~DI7:8位數(shù)據(jù)輸入線。

ILE:數(shù)據(jù)鎖存允許控制輸入線,高電平有效。

CS:片選信號輸入線,低電平有效。

WR1:輸入鎖存器寫選通輸入線,負(fù)脈沖有效。輸入鎖存器的鎖存信號LE1由ILE、CS、WR1的邏輯組合產(chǎn)生,即LE1=ILE·CS·WR1,LE1上的負(fù)跳變將使數(shù)據(jù)線上的數(shù)據(jù)鎖進(jìn)輸入鎖存器。

XFER:數(shù)據(jù)傳送控制信號輸入線,低電平有效。

WR2:DAC寄存器寫選通信號輸入線,負(fù)脈沖有效。DAC寄存器的鎖存信號LE2由XFER和WR2的邏輯組合產(chǎn)生,即LE2=XFER·WR2,LE2上的負(fù)跳變將使輸入鎖存器中鎖存的數(shù)據(jù)被鎖存到DAC鎖存器中,同時(shí)進(jìn)入D/A轉(zhuǎn)換器并開始轉(zhuǎn)換。

IOUT1:模擬電流輸出線。

IOUT2:模擬電流輸出線。采用單極性輸出時(shí),IOUT2

常常接地。

RFB:反饋信號輸入線。反饋電阻被制作在芯片內(nèi),用作外接的運(yùn)算放大器的反饋電阻,為D/A轉(zhuǎn)換器提供電壓輸出。

VREF:參考電壓輸入線。要求外接一精密電壓源,電壓范圍為-10~+10V。通過改變VREF的符號來改變輸出極性。

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論