版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章51單片機(jī)的接口與應(yīng)用16.1按鍵、鍵盤及其接口6.2LED顯示器及其接口6.3LCD顯示器及其接口6.4A/D轉(zhuǎn)換器接口6.5D/A轉(zhuǎn)換器接口6.6行程開(kāi)關(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鍵輸入過(guò)程與軟件結(jié)構(gòu)
單片機(jī)應(yīng)用系統(tǒng)中,按鍵或鍵盤的每一鍵都被賦予特定的功能,它們通過(guò)接口電路與單片機(jī)相連接,通過(guò)軟件了解按鍵的狀態(tài)及鍵信息的輸入,并轉(zhuǎn)去執(zhí)行該鍵的功能處理程序。鍵盤的接口方法有多種,但鍵輸入過(guò)程與軟件結(jié)構(gòu)基本是一樣的。所以,在具體介紹鍵盤接口之前,先介紹鍵輸入過(guò)程與軟件結(jié)構(gòu),這樣能更好地理解鍵盤的接口方法。圖6.1是51單片機(jī)應(yīng)用系統(tǒng)的鍵輸入軟件框圖。對(duì)一組鍵或鍵盤上的每一個(gè)鍵都有一個(gè)編號(hào)(稱為鍵號(hào)),CPU可以采用中斷方式或查詢方式了解有無(wú)鍵輸入,并檢查是哪一個(gè)鍵按下,將該鍵號(hào)送入累加器A,然后通過(guò)散轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,最后返回到原始狀態(tài)。JMP@A+DPTR可以看成是鍵信息輸入的軟件接口。圖6.151單片機(jī)鍵輸入過(guò)程6.1.2鍵盤接口和鍵輸入軟件中應(yīng)解決的幾個(gè)問(wèn)題
1.消除鍵抖動(dòng)
按鍵的合斷都存在一個(gè)抖動(dòng)的暫態(tài)過(guò)程,如圖6.2所示。這種抖動(dòng)的暫態(tài)過(guò)程大約經(jīng)過(guò)5~10ms的時(shí)間,人的肉眼是覺(jué)察不到的,但對(duì)高速的CPU是有反應(yīng)的,可能產(chǎn)生誤處理。為了保證鍵動(dòng)作一次,僅作一次處理,必須采取措施以消除抖動(dòng)。圖6.2鍵合斷時(shí)的電壓抖動(dòng)消除抖動(dòng)的措施有兩種:硬件消抖和軟件消抖。
硬件消除抖動(dòng)可用簡(jiǎn)單的R-S觸發(fā)器或單穩(wěn)電路構(gòu)成,如圖6.3所示。
從圖可知,當(dāng)鍵閉合時(shí),R-S觸發(fā)器輸出為“0”,將與非門1封鎖,即使鍵抖動(dòng),不會(huì)把抖動(dòng)狀態(tài)反應(yīng)到輸出上。
軟件消除抖動(dòng)是用延時(shí)來(lái)躲過(guò)暫態(tài)抖動(dòng)過(guò)程,執(zhí)行一段大于10ms的延時(shí)程序后,再讀取穩(wěn)定的鍵狀態(tài)。
圖6.3消除抖動(dòng)電路
2.鍵編碼及鍵值
一組按鍵或鍵盤都要通過(guò)I/O線查詢按鍵的開(kāi)關(guān)狀態(tài)。根據(jù)鍵盤結(jié)構(gòu)不同,采用不同的編碼方法。但無(wú)論有無(wú)編碼,以及采用什么編碼,最后都要轉(zhuǎn)換成為與累加器中的數(shù)值相對(duì)應(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。這種鍵值編碼軟件較為簡(jiǎn)單直觀,但離散性大,不便安排散轉(zhuǎn)程序的入口地址。
(2)順序排列鍵編碼,如圖6.4(b)所示。在這種方法中,鍵值的形成要根據(jù)I/O線的狀態(tài)作相應(yīng)處理。鍵碼可按下式形成:
鍵碼=行首鍵碼+列號(hào)
3.鍵盤的監(jiān)測(cè)方法
對(duì)于計(jì)算機(jī)應(yīng)用系統(tǒng),鍵盤掃描只是CPU工作的一部分,鍵盤處理只是在有鍵按下時(shí)才有意義。對(duì)是否有鍵按下的信息輸入方式有中斷方式與查詢方式兩種。圖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)不會(huì)影響其他I/O口線的工作狀態(tài)。獨(dú)立式按鍵電路如圖6.5所示。圖6.5獨(dú)立式按鍵的接口示意圖(a)中斷方式;(b)查詢方式獨(dú)立式按鍵接口電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須占用一根I/O口線,在按鍵數(shù)量較多時(shí),I/O口線浪費(fèi)較大。故在按鍵數(shù)量不多時(shí),常采用這種按鍵結(jié)構(gòu)。
圖6.5(a)為中斷方式的獨(dú)立式按鍵接口電路,圖6.5(b)為查詢方式接口電路。通常按鍵輸入都采用低電平有效。上拉電阻保證了按鍵斷開(kāi)時(shí),I/O口線上有確定的高電平。
2.獨(dú)立式按鍵的軟件結(jié)構(gòu)
下面是查詢方式的鍵盤程序。K0~K7為功能程序入口地址標(biāo)號(hà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é)針對(duì)這種方法介紹行列式鍵盤的接口原理。圖6.6是在擴(kuò)展的8155的PA口和PC口上組成4×8鍵盤的示例。PA口作為列線,PC0~PC3作為行線。圖6.68155擴(kuò)展I/O口組成的行列式鍵盤
2.鍵盤工作原理
按鍵設(shè)置在行、列線的交點(diǎn)上,行和列線分別連接到按鍵開(kāi)關(guān)的兩端。行線通過(guò)上拉電阻接?+5V電源,被箝位在高電平狀態(tài)。
鍵盤的工作過(guò)程可分兩步:第一步是CPU首先檢測(cè)鍵盤上是否有鍵按下;第二步識(shí)別是哪一鍵按下。
檢測(cè)鍵盤上有無(wú)鍵按下,可采用查詢工作方式、定時(shí)掃描工作方式和中斷工作方式。
1)查詢工作方式
鍵盤中有無(wú)鍵按下是由列線送出全掃描字,讀入行線狀態(tài)來(lái)判別的。其方法是:PA口輸出00H,即所有列線置成低電平,然后從PC口讀取行線值。如果有鍵按下,總會(huì)有一根行線電平被拉至低電平,從而使行輸入不全為“1”。鍵盤中哪一個(gè)鍵按下是由列線逐列置低電平后,檢查行輸入狀態(tài),稱為逐列掃描。其方法是:從PA0開(kāi)始,依次輸出“0”,置對(duì)應(yīng)的列線為低電平,然后從PC口讀入行線狀態(tài),如果全為“1”,則所按下之鍵不在此列;如果不全為“1”,則所按下的鍵必在此列,而且是與0電平行線交點(diǎn)上
的那個(gè)鍵。為求取鍵碼,在逐列掃描時(shí),可用計(jì)數(shù)器記錄下當(dāng)前掃描列的列號(hào),然后用列線值為“0”的行首鍵碼加列號(hào)的辦法計(jì)算。
依此原理可編寫(xiě)出鍵盤掃描子程序。鍵盤掃描子程序的流程框圖如圖6.7所示。圖6.7鍵盤掃描子程序流程圖調(diào)用鍵盤掃描子程序時(shí),應(yīng)在調(diào)用程序中對(duì)8155進(jìn)行初始化設(shè)置,使PA口為基本輸出口,PC口為基本輸入口。子程序的出口狀態(tài):(A)=鍵碼。
2)定時(shí)掃描工作方式
定時(shí)掃描工作方式是利用單片機(jī)內(nèi)部定時(shí)器產(chǎn)生定時(shí)中斷(例如10ms),CPU響應(yīng)中斷后,對(duì)鍵盤進(jìn)行掃描,再檢測(cè)是哪一鍵按下。定時(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)鍵盤上無(wú)鍵按下,KM、KP置0,返回。由于定時(shí)剛開(kāi)始一般不會(huì)立即有鍵按下,故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)志,由于開(kāi)始時(shí)KP=0,程序進(jìn)入查找鍵碼,
并使KP置1,執(zhí)行鍵功能程序,然后返回。在KM、KP均為1時(shí),表示鍵處理完畢,再次定時(shí)中斷時(shí),都返回原來(lái)CPU狀態(tài)。
3)中斷工作方式
計(jì)算機(jī)應(yīng)用系統(tǒng)工作時(shí),并不經(jīng)常需要鍵輸入。但無(wú)論是查詢工作方式還是定時(shí)掃描工作方式,CPU經(jīng)常處于空掃描狀態(tài)。為了提高CPU的效率,可采用中斷工作方式。這種工作方式是當(dāng)鍵盤上有鍵按下時(shí),向CPU發(fā)一個(gè)中斷請(qǐng)求信號(hào),CPU響應(yīng)中斷后,在中斷服務(wù)程序中掃描鍵盤。中斷請(qǐng)求信號(hào)的接口電路可參考圖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。這種顯示器有共陰極和共陽(yáng)極兩種,如圖6.9所示。共陰極LED顯示器的結(jié)構(gòu)如圖6.9(a)所示。其陰極并接在一起,構(gòu)成公共端,由陽(yáng)極控制字段點(diǎn)亮或熄滅。當(dāng)發(fā)光二極管的陽(yáng)極為高電平時(shí),發(fā)光二極管點(diǎn)亮。
共陽(yáng)極LED顯示器的結(jié)構(gòu)如圖6.9(b)所示。其陽(yáng)極并接在一起,作為公共選通端,由陰極控制字段點(diǎn)亮或熄滅。當(dāng)發(fā)光二極管的陰極為低電平時(shí),發(fā)光二極管點(diǎn)亮。在應(yīng)用中,公共端用于控制某一位顯示器是否選通,也稱為位選通端。圖6.9七段顯示塊管腳與結(jié)構(gòu)圖(a)共陰極;(b)共陽(yáng)極;(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)制碼,可顯示對(duì)應(yīng)字符。譬如,在共陰極顯示器上顯示字符“1”,應(yīng)是b、c段點(diǎn)亮,其他段熄滅,對(duì)應(yīng)的二進(jìn)制碼為00000110(06H)。通常把顯示一個(gè)字符對(duì)應(yīng)的8位二進(jìn)制碼稱為段碼。共陽(yáng)極與共陰極的段碼互為反碼,如表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)顯示方式下,公共端不受控,共陰極接地或共陽(yáng)極接?+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)極端分別由相應(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è)字符,這種顯示器是不能用的。解決此問(wèn)題的方法是利用人的視覺(jué)滯留,從段碼I/O口上按位次分別送顯示字符的段碼,在位選控制口也按相應(yīng)的次序分別選通對(duì)應(yīng)的位(共陰極低電平選通,共陽(yáng)極高電平選通),選通位就顯示相應(yīng)字符,并保持幾毫秒的延時(shí),未選通位不顯示字符(保持熄滅)。這樣,對(duì)各位顯示就是一個(gè)循環(huán)過(guò)程。從計(jì)算機(jī)的工作來(lái)看,在一個(gè)瞬時(shí)只有一位顯示字符,而其他位都是熄滅的,但因?yàn)槿说囊曈X(jué)滯留,這種動(dòng)態(tài)變化是覺(jué)察不到的。從效果上看,各位顯示器能連續(xù)而穩(wěn)定的顯示不同的字符。這就是動(dòng)態(tài)顯示。6.2.3LED顯示器接口
1.硬件譯碼顯示器接口
硬件譯碼是采用專門的轉(zhuǎn)換器件芯片來(lái)實(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ī)通過(guò)8155擴(kuò)展I/O口控制的8位LED動(dòng)態(tài)顯示的接口。圖中PB口輸出段碼,PA口輸出位選碼。位選碼占用輸出口線數(shù)取決于顯示器位數(shù)。BIC-8718為8位集成驅(qū)動(dòng)芯片。圖6.14通過(guò)擴(kuò)展8155I/O口控制的8位LED動(dòng)態(tài)顯示接口
3.動(dòng)態(tài)顯示程序設(shè)計(jì)
對(duì)于圖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ǎn)化接口電路,節(jié)省單片機(jī)的I/O口線,同時(shí)掃描程序可交替工作,提高程序執(zhí)行效率。在鍵盤掃描程序中,為消除抖動(dòng)而要調(diào)用一個(gè)延時(shí)子程序,組合接口后,可利用調(diào)用顯示子程序來(lái)實(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:見(jiàn)6.2.3節(jié)8155擴(kuò)展動(dòng)態(tài)掃描子程序。
6.3LCD顯示器及其接口
液晶顯示器(LCD,LiquidCrystalDisplay)是一種低功耗顯示器件,具有顯示內(nèi)容豐富、體積小、重量輕、壽命長(zhǎng)、使用方便、安全省電等優(yōu)點(diǎn),在計(jì)算器、萬(wàn)用表、袖珍式儀表和低功耗微機(jī)應(yīng)用系統(tǒng)中得到廣泛使用。6.3.1液晶顯示器簡(jiǎn)介
液晶顯示器的基本結(jié)構(gòu)如圖6.16所示。在兩塊透明電極板間夾持液晶材料,當(dāng)液晶厚度小于數(shù)百微米時(shí),界面附近的液晶分子發(fā)生取向并保持有序性,當(dāng)電極板上施加受控的電場(chǎ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)控制器的液晶顯示模塊和無(wú)控制器的液晶顯示器件兩種;從顯示顏色上可分為單色、彩色等;從顯示方式上可分為正性顯示、負(fù)性顯示、段性顯示、點(diǎn)陣顯示、字符顯示、圖形顯示、圖像顯示、非存儲(chǔ)型顯示、存儲(chǔ)型顯示等。實(shí)際應(yīng)用中,可根據(jù)不同的顯示要求選擇合適的液晶顯示器。6.3.2字符型液晶顯示模塊LCM的組成原理
1.液晶顯示模塊LCM簡(jiǎn)介
液晶顯示器件是一種高新技術(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ù)碼位和一些通用的提示符,使用比較簡(jiǎn)單,成本較低,一般用于數(shù)字化儀表。通用段式液晶顯示屏本身不帶控制器和驅(qū)動(dòng)電路,顯示內(nèi)容只有比較簡(jiǎn)單的數(shù)碼位,相對(duì)成本較低,必須使用具有液晶驅(qū)動(dòng)能力的電路,一般用于電子產(chǎn)品,如電話機(jī)、計(jì)算器等。點(diǎn)陣字符型液晶顯示模塊可顯示西文字符、數(shù)字、符號(hào)等,顯示內(nèi)容比較豐富,字符由5×7或5×11點(diǎn)陣塊實(shí)現(xiàn),但無(wú)法顯示漢字和復(fù)雜圖形。點(diǎn)陣字符型液晶顯示模塊的通用性好,一方面是它可適用各種領(lǐng)域,另一方面是不同的廠家、不同的型號(hào)的模塊所用控制器相同或相互兼容。它們的主要區(qū)別僅是可顯示字符數(shù)、屏幕大小、點(diǎn)陣大小不同,使用方法和軟件基本相同。點(diǎn)陣圖形液晶顯示模塊可以混合顯示西文字符、符號(hào)、漢字、圖形等,靈活性好,一般用于要求顯示漢字、圖形、人機(jī)交互界面等內(nèi)容復(fù)雜的儀器設(shè)備。不同廠家、不同型號(hào)的點(diǎn)陣圖形液晶顯示模塊所使用的控制器可能不同,因而相應(yīng)的接口特性、指令系統(tǒng)也有所不同,使用時(shí)除需選擇點(diǎn)陣數(shù)、尺寸外,還要注意所選控制器的型號(hào)。
從上面介紹可看出,不同的液晶顯示模塊其顯示性能和顯示控制是有較大區(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)控制器的集成電路。下面針對(duì)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è)存儲(chǔ)器用來(lái)存放所要顯示的數(shù)據(jù),只要將字符的ASCII碼放入DDRAM中,內(nèi)部控制電路就會(huì)自動(dòng)將數(shù)據(jù)傳送到顯示器上。例如,要顯示字符“C”,只需將ASCII碼43H存入DDRAM中就可以了。DDRAM有80字節(jié)空間,總共可顯示80個(gè)字(每個(gè)字占1個(gè)字節(jié)),其存儲(chǔ)地址與實(shí)際顯示位置的排列順序與字符型液晶顯示模塊的型號(hào)有關(guān)。不同類型的字符型液晶顯示模塊顯示位置、地址之間的對(duì)應(yīng)關(guān)系見(jiàn)表6.2。
(2)字符產(chǎn)生器ROM(CharacterGeneratorROM,CGROM)。這個(gè)存儲(chǔ)器儲(chǔ)存了192個(gè)5×7點(diǎn)陣字符,CGROM中的字符要經(jīng)過(guò)內(nèi)部轉(zhuǎn)換才會(huì)傳到顯示器上,只能讀出不能寫(xiě)入。字符的排列方式及字符碼與標(biāo)準(zhǔn)的ASCII碼相同,例如,字符碼31H為字符“1”,字符碼43H為字符“C”。
(3)字符產(chǎn)生器RAM(CharacterGeneratorRAM,CGRAM)。這個(gè)存儲(chǔ)器是供用戶儲(chǔ)存自己設(shè)計(jì)的特殊字符碼,CGRAM共有512位(64×8位)。一個(gè)5×7點(diǎn)陣字型為8×8位,所以CGRAM最多可存8個(gè)字符。
(4)指令寄存器(InstructionRegister,IR)。指令寄存器用于存儲(chǔ)微處理器寫(xiě)給字符型液晶顯示模塊的指令碼。
(5)數(shù)據(jù)寄存器(DataRegister,DR)。數(shù)據(jù)寄存器是存儲(chǔ)微處理器與CGRAM、DDRAM之間傳送數(shù)據(jù)的緩沖器,即微處理器與CGRAM、DDRAM傳送數(shù)據(jù)時(shí)必須經(jīng)DR。
(6)忙碌信號(hào)(BusyFlag,BF)。BF是內(nèi)部的一個(gè)標(biāo)志位,可通過(guò)指令讀取,進(jìn)行查詢。BF=1,表示LCM內(nèi)部正在處理數(shù)據(jù),不能接受微處理器送來(lái)的指令或數(shù)據(jù);BF=
0,表示LCM空閑,可以接受微處理器的指令或數(shù)據(jù)。微處理器向LCM傳送指令或數(shù)據(jù)之前,必須先查看BF是否為0。
(7)地址計(jì)數(shù)器(AddressCounter,AC)。地址計(jì)數(shù)器用于指示CGROM或CGRAM或DDRAM的地址,也對(duì)應(yīng)著顯示器的顯示位置。使用地址設(shè)定指令寫(xiě)到指令寄存器后,地址數(shù)據(jù)會(huì)經(jīng)過(guò)指令解碼器存入地址記數(shù)器中。當(dāng)微處理器從DDRAM或CGROM或CGRAM讀取數(shù)據(jù)時(shí),地址計(jì)數(shù)器按照微處理器對(duì)LCM的設(shè)定值自動(dòng)進(jìn)行修改。
3.內(nèi)置HD44780的LCM引腳信號(hào)
內(nèi)置HD44780驅(qū)動(dòng)控制器的字符型液晶顯示模塊提供了標(biāo)準(zhǔn)接口信號(hào),可方便地與單片機(jī)連接,其引腳信號(hào)如圖6.18所示。HD44780是字符型液晶顯示模塊控制器的典型集成電路,目前內(nèi)置該驅(qū)動(dòng)控制器的液晶顯示模塊的生產(chǎn)廠家和具體型號(hào)都較多,如北京精電蓬遠(yuǎn)顯示技術(shù)有限公司的MDL(S)-16263、深圳航通科技有限公司的HT162A、EPSON公司的EA-D16025等,它們的引腳數(shù)和封裝都相同。圖6.18內(nèi)置HD44780的LCM引腳信號(hào)
DB7~DB0:8條數(shù)據(jù)線,用于微處理器與字符型液晶顯示模塊之間交換數(shù)據(jù)或命令。
VO:對(duì)比度調(diào)整電壓輸入端。在使用中接可調(diào)電壓,如電位器的滑動(dòng)端,用來(lái)調(diào)整液晶顯示屏的對(duì)比度。
VDD:電源電壓輸入端。接?+5?V單電源電壓。
VSS:參考地端。接工作電源參考地。
RS:寄存器選擇輸入端。當(dāng)輸入高電平時(shí),選擇數(shù)據(jù)寄存器;輸入低電平時(shí)選擇指令寄存器。
R/W:讀/寫(xiě)選通信號(hào)輸入端。當(dāng)輸入高電平時(shí),對(duì)液晶顯示模塊進(jìn)行讀操作;當(dāng)輸入低電平時(shí),對(duì)液晶顯示模塊進(jìn)行寫(xiě)操作。
E:使能信號(hào)輸入端。當(dāng)輸入高電平時(shí),可對(duì)液晶顯
示模塊進(jìn)行讀/寫(xiě)操作;當(dāng)輸入低電平時(shí),液晶顯示模塊不工作。
目前常用的字符型液晶顯示模塊的類型用16字×1行、16字×2行、20字×2行和40字×2行,它們都具有相同的輸入/輸出接口。6.3.3LCM的命令字
在應(yīng)用LCM進(jìn)行顯示控制時(shí),通過(guò)其引腳線發(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è)定每次寫(xiě)入1個(gè)數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫(xiě)入的一個(gè)字符是否移動(dòng)。指令執(zhí)行時(shí)間為40μs。根據(jù)指令表6.3中模式設(shè)置指令的I/D、S位的不同狀態(tài)組合,可設(shè)定如表6.4所示的4種模式操作。
4.顯示器ON/OFF控制指令
該指令的功能是控制顯示器開(kāi)/關(guān),光標(biāo)開(kāi)/關(guān),決定光標(biāo)是否閃爍。由指令表6.3中定義的D、C、B三位來(lái)設(shè)定。
D位控制顯示器開(kāi)(ON)或關(guān)(OFF)。D=1時(shí),顯示;D=0時(shí),不顯示。
C位控制光標(biāo)開(kāi)(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è)定指令
通過(guò)該指令可設(shè)定數(shù)據(jù)長(zhǎng)度、顯示行數(shù)和字型。由表6.3中定義的DL、N、F三位來(lái)設(shè)定。
DL用于設(shè)定數(shù)據(jù)的長(zhǎng)度。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位用來(lái)設(shè)定地址。指令執(zhí)行時(shí)間為40μs。
8.設(shè)定DDRAM地址指令
設(shè)定下一個(gè)存入數(shù)據(jù)的DDRAM地址,即設(shè)定字符在顯示器上的顯示位置。從表6.3中的指令格式定義可知,指令的最高位為1,作該指令的標(biāo)志,低7位用來(lái)設(shè)定地址。指令執(zhí)行時(shí)間為40μs。不同顯示方式,顯示字符在DDRAM的地址與顯示位置的影響關(guān)系如表6.6所示。
9.讀取忙碌狀態(tài)和AC地址指令
通過(guò)該指令可讀取忙碌信號(hào)和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無(wú)法接收數(shù)據(jù);當(dāng)BF=0時(shí),表示空閑,LCM可以接收數(shù)據(jù)。
10.?dāng)?shù)據(jù)寫(xiě)入到DDRAM或CGRAM中的指令
通過(guò)該指令可將字符碼寫(xiě)入DDRAM中,以使液晶顯示屏顯示出相應(yīng)字符,或?qū)⑹褂谜咦约涸O(shè)計(jì)的圖形碼存入CGRAM中。從表6.3中的指令格式定義可知,只要使LCM的控制信號(hào)線有效(RS=1、R/W=?0、E=1),就可將8位數(shù)據(jù)寫(xiě)入到DDRAM或CGRAM的指定地址單元中。指令執(zhí)行時(shí)間為40μs。
11.從CGRAM或DDRAM讀取數(shù)據(jù)指令
從表6.3中的指令格式定義可知,只要使LCM的控制信號(hào)線有效(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口連接,通過(guò)并行口產(chǎn)生LCM的控制信號(hào)、輸出相應(yīng)命令,控制LCM實(shí)現(xiàn)顯示要求。在設(shè)計(jì)接口電路和應(yīng)用程序時(shí),應(yīng)特別注意以下問(wèn)題:
(1)對(duì)字符型LCM進(jìn)行讀/寫(xiě)操作不是利用單片機(jī)的讀/寫(xiě)信號(hào),而是通過(guò)對(duì)LCM引腳信號(hào)線(RS、R/W、E)的控制來(lái)完成的。
(2)字符型LCM的數(shù)據(jù)總線不是三態(tài)總線,所以在調(diào)試階段,R/W引腳為低電平,以保證LCM處于寫(xiě)狀態(tài);如果R/W引腳為高電平,則LCM處于讀狀態(tài),會(huì)造成數(shù)據(jù)總線混亂,形成死機(jī)現(xiàn)象。
(3)由于51單片機(jī)復(fù)位后4個(gè)并行口都為FFH,所以,與R/W的連接線要經(jīng)過(guò)反相器反相連接,以保證上電復(fù)位時(shí),LCM處在正確的初始狀態(tài)。圖6.19是51系列單片機(jī)驅(qū)動(dòng)字符型液晶顯示模塊的接口示例。單片機(jī)通過(guò)并行接口P0和P1口的操作,間接地實(shí)現(xiàn)對(duì)字符型LCM的控制。在編制程序時(shí),對(duì)LCM控制信號(hào)(RS、R/W、E)的要求是:寫(xiě)操作時(shí),使能信號(hào)E的下降沿有效。讀操作時(shí),使能信號(hào)E在高電平有效;在控制順序上,先設(shè)置RS、R/狀態(tài),再設(shè)置E信號(hào)為高電平。圖6.1951單片機(jī)與字符型LCM的接口
2.LCM初始化
對(duì)LCM初始化,就是通過(guò)所連接的并行接口產(chǎn)生所要求的控制信號(hào)和指令,實(shí)現(xiàn)顯示要求。LCM驅(qū)動(dòng)控制器的指令是通過(guò)接口電路設(shè)置相應(yīng)命令碼,主要通過(guò)相應(yīng)程序模擬來(lái)實(shí)現(xiàn)。單片機(jī)對(duì)液晶顯示模塊的操作可分為四種情況:讀“忙”狀態(tài)、寫(xiě)指令、讀數(shù)據(jù)、寫(xiě)數(shù)據(jù)。因此在LCM應(yīng)用程序中通常包括查看忙碌信號(hào)、寫(xiě)指令到指令寄存器IR、將數(shù)據(jù)寫(xiě)到數(shù)據(jù)寄存器DR、清除液晶顯示器、啟動(dòng)字符型液晶顯示模塊等5個(gè)初始化子程序。這樣在LCM顯示控制應(yīng)用程序中,通過(guò)調(diào)用這5個(gè)初始化子程序,可很方便地設(shè)計(jì)各種顯示功能的應(yīng)用程序。下面針對(duì)圖6.19所示接口電路,說(shuō)明5個(gè)初始化子程序。
1)查看忙碌信號(hào)的子程序
對(duì)單片機(jī)來(lái)說(shuō),LCM是一個(gè)慢速的外部設(shè)備,單片機(jī)每發(fā)送一個(gè)指令到LCM,至少要40μs時(shí)間才能完成相應(yīng)操作。當(dāng)單片機(jī)要對(duì)LCM送指令以前,必須先檢查L(zhǎng)CM是否空閑,在確定LCM空閑時(shí),才能發(fā)送指令。檢查忙碌信號(hào)的子程序(CheckBusy):
4)清除顯示器的子程序(CLS)
由于清除顯示器指令是屬于寫(xiě)數(shù)據(jù)到IR指令寄存器中
的一個(gè),所以在編寫(xiě)程序時(shí),只需將消除指令00000001B
即01H存入ACC,再調(diào)用WriteInstruction子程序。
5)啟動(dòng)字符型LCM的子程序(Initial)
只要字符型LCM供電電源符合圖6.20所示的要求,打開(kāi)電源后會(huì)自動(dòng)清除顯示器。在一般情況下,電源打開(kāi)的時(shí)序都是足以符合要求的。
加電啟動(dòng)后還需根據(jù)顯示的功能要求,依次下達(dá)設(shè)定功能指令、顯示器ON/OFF控制指令與設(shè)定進(jìn)入模式指令,顯示器才能正確工作。圖6.20使字符型LCM產(chǎn)生自動(dòng)啟動(dòng)的電源要求在將指令碼寫(xiě)到IR指令寄存器的子程序(WriteInstruction)的基礎(chǔ)上,只要根據(jù)表6.3中的命令字格式設(shè)定功能、顯示器ON/OFF控制、模式設(shè)置指令,調(diào)用WriteInstruction子程序,即可對(duì)字符型LCM進(jìn)行設(shè)置。例如,要讓字符型LCM設(shè)定數(shù)據(jù)長(zhǎng)度為8位、顯示兩行、使用5×7點(diǎn)陣的字型字符、光標(biāo)要顯示但不閃爍、每顯示一個(gè)字符,光標(biāo)向右移動(dòng)一格。下面是啟動(dòng)字符型液晶顯示模塊的子程序。
3.應(yīng)用舉例
下面用三個(gè)應(yīng)用程序來(lái)說(shuō)明內(nèi)置HD44780的字符型LCM在使用中的編程問(wèn)題。這三個(gè)程序分別是讓字符型液晶顯示模塊顯示字符“C”、讓字符型液晶顯示模塊顯示2行字串“WELLCOME”與“TESTLCD”和顯示“WELLCOMETOUSETHELCM”。在編寫(xiě)程序時(shí),例1和例2是通過(guò)反復(fù)調(diào)用字符型LCM的5個(gè)初始化子程序來(lái)實(shí)現(xiàn)顯示要求,而例3則是根據(jù)單片機(jī)對(duì)字符型LCM的顯示控制流程來(lái)編寫(xiě)的,可加深對(duì)字符型LCM的理解和使用。例1讓字符型LCM顯示“C”字符。
程序如下:
例2
讓字符型液晶顯示模塊顯示2行字串“WELLCOME”和“TESTLCD”。
2行字串“WELLCOME”和“TESTLCD”的顯示格式和要求如下:
例3
讓字符型液晶顯示模塊按要求顯示“WELLCOMETOUSETHELCM”。
要求顯示格式如下:例1和例2是通過(guò)反復(fù)調(diào)用字符型LCM的5個(gè)初始化子程序來(lái)實(shí)現(xiàn)顯示要求的,其特點(diǎn)是程序比較簡(jiǎn)練且通用性較好,但必須了解字符型LCM初始化過(guò)程及其初始化子程序的編寫(xiě)。為加深初學(xué)者對(duì)字符型LCM的理解和使用,本例結(jié)合單片機(jī)對(duì)字符型LCM的具體顯示控制流程來(lái)編寫(xiě)應(yīng)用程序。對(duì)于圖6.19所示的LCM接口,設(shè)單片機(jī)片內(nèi)RAM的40H~5FH共32個(gè)單元為顯示緩沖區(qū),其中40H~4FH這16個(gè)單元對(duì)應(yīng)液晶顯示模塊的第一行,50H~5FH這16個(gè)單元對(duì)應(yīng)液晶顯示模塊的第二行。其顯示控制程序清單如下:
6.4A/D轉(zhuǎn)換器接口
6.4.1A/D轉(zhuǎn)換器概述
在單片機(jī)測(cè)控應(yīng)用系統(tǒng)中,被采集的實(shí)時(shí)信號(hào)有許多是連續(xù)變化的物理量。由于計(jì)算機(jī)只能處理數(shù)字量,所以就需要將連續(xù)變化的物理量轉(zhuǎn)換成數(shù)字量,即A/D轉(zhuǎn)換。這就涉及到A/D轉(zhuǎn)換的接口問(wè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ù)。量化誤差有兩種表示方法:一種是絕對(duì)誤差;另一種是相對(duì)誤差。
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ī)接口具有硬、軟件相依性。一般來(lái)說(shuō),A/D轉(zhuǎn)換器與單片機(jī)的接口主要考慮的是數(shù)字量輸出線的連接、ADC啟動(dòng)、轉(zhuǎn)換結(jié)束信號(hào)以及時(shí)鐘的連接等。
A/D轉(zhuǎn)換器數(shù)字量輸出線與單片機(jī)的連接方法與其內(nèi)
部結(jié)構(gòu)有關(guān)。對(duì)于內(nèi)部帶有三態(tài)鎖存數(shù)據(jù)輸出緩沖器的ADC(如ADC0809、AD574等),可直接與單片機(jī)相連。對(duì)于內(nèi)部不帶鎖存器的ADC,一般通過(guò)鎖存器與單片機(jī)相連。還有,隨著位數(shù)的不同,ADC與單片機(jī)的連接方法也不同。對(duì)于8位ADC,其數(shù)字輸出線可與8位單片機(jī)數(shù)據(jù)線對(duì)應(yīng)相接。對(duì)于8位以上的ADC,與8位單片機(jī)相接就不那么簡(jiǎn)單了,此時(shí)必須增加讀取控制邏輯,把8位以上的數(shù)據(jù)分兩次或多次讀取。一個(gè)ADC開(kāi)始轉(zhuǎn)換時(shí),必須加一個(gè)啟動(dòng)轉(zhuǎn)換信號(hào),這一啟動(dòng)信號(hào)要由單片機(jī)提供。不同型號(hào)的ADC,對(duì)于啟動(dòng)轉(zhuǎn)換信號(hào)的要求也不同,一般分為脈沖啟動(dòng)和電平啟動(dòng)兩種。對(duì)于脈沖啟動(dòng)型ADC,只要給其啟動(dòng)控制端上加一個(gè)符合要求的脈沖信號(hào)即可,如ADC0809、ADC574等。通常用單片機(jī)的和地址譯碼器的輸出經(jīng)一定的邏輯電路進(jìn)行控制。對(duì)于電平啟動(dòng)型ADC,當(dāng)把符合要求的電平加到啟動(dòng)控制端上時(shí),立即開(kāi)始轉(zhuǎn)換,在轉(zhuǎn)換過(guò)程中,必須保持這一電平,否則會(huì)終止轉(zhuǎn)換的進(jìn)行。因此,在這種啟動(dòng)方式下,單片機(jī)的控制信號(hào)必須經(jīng)過(guò)鎖存器保持一段時(shí)間,一般采用鎖存器或并行I/O接口等來(lái)實(shí)現(xiàn)。AD570、AD571等都屬于電平啟動(dòng)型ADC。當(dāng)ADC轉(zhuǎn)換結(jié)束時(shí),ADC輸出一個(gè)轉(zhuǎn)換結(jié)束標(biāo)志信號(hào),通知單片機(jī)讀取轉(zhuǎn)換結(jié)果。單片機(jī)檢查A/D轉(zhuǎn)換結(jié)束的方法一般有中斷和查詢兩種。對(duì)于中斷方式,可將轉(zhuǎn)換結(jié)束標(biāo)志信號(hào)接到單片機(jī)的中斷請(qǐng)求輸入線上或允許中斷的I/O接口的相應(yīng)引腳,作為中斷請(qǐng)求信號(hào);對(duì)于查詢方式,可把轉(zhuǎn)換結(jié)束標(biāo)志信號(hào)經(jīng)三態(tài)門送到單片機(jī)的某一位I/O口線上,作為查詢狀態(tài)信號(hào)。
A/D轉(zhuǎn)換器的另一個(gè)重要連接信號(hào)是時(shí)鐘,其頻率是決定芯片轉(zhuǎn)換速度的基準(zhǔn)。整個(gè)A/D轉(zhuǎn)換過(guò)程都是在時(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芯片簡(jiǎn)介
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路模擬開(kāi)關(guān)用于選通8個(gè)模擬通道,允許8
路模擬量分時(shí)輸入,并共用一個(gè)A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。IN0~I(xiàn)N7為8路模擬量輸入端,模擬量輸入電壓的范圍是0~5V,對(duì)應(yīng)的數(shù)字量為00H~FFH,轉(zhuǎn)換時(shí)間為100μs。ADDA、ADDB、ADDC為通道尋址線,用于選擇通道。其通道尋址如表6.7所示。
ALE是通道地址鎖存信號(hào),其上出現(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é)束信號(hào),可用于向單片機(jī)申請(qǐng)中斷或供單片機(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)部的地址鎖存器中。這樣對(duì)應(yīng)的模擬電壓輸入就和內(nèi)部變換電路接通。為了啟動(dòng),必須在START端加一個(gè)負(fù)跳變信號(hào),此后變換工作就開(kāi)始進(jìn)行,標(biāo)志ADC0809工作的狀態(tài)信號(hào)EOC由高電平(空閑狀態(tài))變?yōu)榈碗娖?工作狀態(tài))。一旦變換結(jié)束,EOC信號(hào)就又由低電平變成高電平,此時(shí)只要在OE端加一個(gè)高電平,即可打開(kāi)數(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信號(hào)頻率與晶
振頻率有關(guān),如果晶振頻率取12MHz,則ALE的頻率為
2MHz,所以ADC0809的時(shí)鐘端CLK與單片機(jī)的ALE相接時(shí),要考慮分頻。圖6.23ADC0809與51單片機(jī)的接口連接示例
51單片機(jī)通過(guò)地址線P2.0和讀、寫(xiě)控制信號(hào)線RD、WR來(lái)控制轉(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路模擬量輸入的巡回檢測(cè)系統(tǒng),使用中斷方式采樣數(shù)據(jù),把采樣轉(zhuǎn)換所得的數(shù)字量按次序存于片內(nèi)RAM的30H~37H單元中。采樣完一遍后停止采集。其數(shù)據(jù)采集的初始化程序和中斷服務(wù)程序如下:
MOVR0,#30H;設(shè)立數(shù)據(jù)存儲(chǔ)區(qū)指針
MOVR2,#08H;設(shè)置8路采樣計(jì)數(shù)值
SETBIT0;設(shè)置外部中斷0為邊沿觸發(fā)方式
SETBEA;CPU開(kāi)放中斷
SETBEX0;允許外部中斷0中斷
MOVDPTR,#0FEF8H;使DPTR指向IN0LOOP:MOVX@DPTR,A;啟動(dòng)A/D轉(zhuǎn)換,A的值無(wú)意義HERE:SJMPHERE ;等待中斷中斷服務(wù)程序:
ORG0003H
MOVXA,@DPTR ;讀取轉(zhuǎn)換后的數(shù)字量
MOV@R0,A ;存入片內(nèi)RAM單元
INCDPTR ;指向下一模擬通道
INCR0 ;指向下一個(gè)數(shù)據(jù)存儲(chǔ)單元
DJNZR2,INT0 ;8路未轉(zhuǎn)換完,則繼續(xù)
CLREA ;已轉(zhuǎn)換完,則關(guān)中斷
CLREX0 ;禁止外部中斷0中斷
RETI ;中斷返回圖6.24AD574引腳信號(hào)
INT0:MOVX@DPTR,A ;再次啟動(dòng)A/D轉(zhuǎn)換
RETI ;中斷返回6.4.3單片機(jī)與A/D轉(zhuǎn)換器AD574的接口
1.AD574芯片簡(jiǎn)介
AD574是一種快速的12位逐次比較式A/D轉(zhuǎn)換芯片。片內(nèi)有三態(tài)輸出鎖存器,無(wú)需外接元器件就可獨(dú)立完成A/D轉(zhuǎn)換功能。一次轉(zhuǎn)換時(shí)間為25μs。28腳雙插直列式芯片引腳如圖6.24所示。圖6.24AD574引腳信號(hào)
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)換完畢。該信號(hào)可作為單片機(jī)的中斷請(qǐng)求或狀態(tài)查詢信號(hào)。
12/8:變換輸出字長(zhǎng)選擇控制端,輸入為高電平時(shí),轉(zhuǎn)換結(jié)果12位輸出,輸入低電平時(shí),按8位輸出。
CS、CE:片選信號(hào)。當(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í),用來(lái)控制轉(zhuǎn)換長(zhǎng)度,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í),對(duì)應(yīng)12位并行輸出;12/8=?0時(shí),對(duì)應(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è)引腳的輸入電壓可以是單極性的,也可以是雙極性的,可由用戶改變輸入電路的連接形式來(lái)進(jìn)行選擇,如圖6.25所示。圖6.25AD574模擬輸入電路(a)單極性輸入;(b)雙極性輸入
3.AD574與51單片機(jī)的接口
圖6.26是AD574與51單片機(jī)的接口示例。
對(duì)于51單片機(jī)來(lái)說(shuō),如果AD574啟動(dòng)為12位轉(zhuǎn)換方式,則對(duì)轉(zhuǎn)換結(jié)果只能按雙字節(jié)分時(shí)讀入,所以12/接地;AD574的高8位數(shù)據(jù)線順次連接到單片機(jī)的數(shù)據(jù)線上,低4位數(shù)據(jù)線接單片機(jī)的低4位數(shù)據(jù)線;AD574的CE與WR和RD通過(guò)“與非”邏輯連接,不論單片機(jī)執(zhí)行輸出或是輸入指令,都能使CE為高電平有效;STS信號(hào)接單片機(jī)的一根I/O線,通過(guò)查詢方式讀取轉(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)換器相比,具有使用引線少、電路簡(jiǎn)單、芯片體積小、低功耗等優(yōu)點(diǎn),同時(shí)可與遠(yuǎn)端的CPU進(jìn)行串行數(shù)字通信,可大大減少數(shù)據(jù)傳送過(guò)程中的干擾。因此,它在遠(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為例來(lái)介紹串行A/D轉(zhuǎn)換器的接口技術(shù)。
TLC0831C/I、TLC0832C/I是8位逐次逼近式模數(shù)轉(zhuǎn)換器,單+5V供電,模擬量輸入范圍為0~5V,其中TLC0831有一個(gè)輸入通道,TLC0832有兩個(gè)輸入通道。后者的前級(jí)可用軟件配置為單端或者差分輸入。兩種器件的輸出均為串行方式,易于和微處理器接口或獨(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),可與美國(guó)國(guó)家半導(dǎo)體公司的ADC0831和ADC0832互換。
1.功能與使用說(shuō)明
TLC0831/TLC0832內(nèi)部為采樣—數(shù)據(jù)—比較結(jié)構(gòu),以逐次逼近流程轉(zhuǎn)換差分模擬輸入信號(hào)。TLC0831只有一個(gè)差分(IN+,IN-)輸入端,當(dāng)不需要差分輸入時(shí),IN-?可接地,模擬信號(hào)連到IN+,作為單端輸入。TLC0832的輸入(CH0,CH1)可通過(guò)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引腳信號(hào)(a)TLC0831封裝;(b)TLC0832封裝各引腳含義如下:
CS:片選端。當(dāng)CS為低電平時(shí),啟動(dòng)A/D轉(zhuǎn)換,在整個(gè)轉(zhuǎn)換過(guò)程中CS必須始終為低電平。連續(xù)輸入10個(gè)脈沖完成一次轉(zhuǎn)換,數(shù)據(jù)從第2個(gè)脈沖開(kāi)始輸出。轉(zhuǎn)換結(jié)束后應(yīng)將CS置為高電平,當(dāng)CS重新拉低時(shí)將開(kāi)始新的一次轉(zhuǎn)換。
IN+:為正輸入端。
IN-:為負(fù)輸入端,ADC0831(TLC0831)可以接入差分信號(hào),如果輸入單端信號(hào),IN-應(yīng)接地。
GND:電源地端。
VCC:電源正端。
CLK:時(shí)鐘信號(hào)端。
DO:數(shù)據(jù)輸出端。
REF:參考電壓輸入端,使用中應(yīng)接參考電壓或直接接VCC端。
CH0、CH1:TLC0832的模擬量輸入引腳。
DI:TLC0832的多路地址選擇輸入端。
TLC0831/TLC0832通過(guò)串行接口與單片機(jī)相連來(lái)傳送控制命令或數(shù)據(jù)??捎密浖?duì)通道和輸入端進(jìn)行選擇和配置。轉(zhuǎn)換開(kāi)始后,器件從單片機(jī)接收時(shí)鐘,在一個(gè)時(shí)鐘的時(shí)間間隔前導(dǎo)下,以保證輸入多路器穩(wěn)定。在轉(zhuǎn)換過(guò)程中,轉(zhuǎn)換數(shù)據(jù)同時(shí)從DO端輸出,以最高位(MSB)開(kāi)頭,經(jīng)過(guò)8個(gè)時(shí)鐘后,轉(zhuǎn)換完成。當(dāng)變高時(shí),內(nèi)部所有寄存器清0。此時(shí),輸出電路變?yōu)楦咦锠顟B(tài)。如果希望開(kāi)始另一個(gè)轉(zhuǎn)換,端必須有一個(gè)從高到低的跳變,后面緊接地址、數(shù)據(jù)等操作。
TLC0832在輸出以最高位(MSB)開(kāi)頭的數(shù)據(jù)流后,又以最低位(LSB)開(kāi)頭重新輸出一遍(前面的)數(shù)據(jù)流。DI和DO端可以連在一起,通過(guò)一根線連到單片機(jī)的一個(gè)雙向I/O口進(jìn)行控制。TLC0832的地址是通過(guò)DI端移入,來(lái)選擇模擬輸入通道,同時(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口線連接,通過(guò)I/O線產(chǎn)生工作時(shí)序信號(hào)來(lái)控制轉(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í)序。針對(duì)圖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)換器對(duì)輸入量變化敏感程度的描述。D/A轉(zhuǎn)換器的分辨率定義為:當(dāng)輸入數(shù)字量發(fā)生單位數(shù)碼變化時(shí),即LSB位產(chǎn)生一次變化時(shí),所對(duì)應(yīng)輸出模擬量的變化量。對(duì)于線性D/A轉(zhuǎn)換器來(lái)說(shuō),其分辨率Δ與輸入數(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í)間的長(zhǎng)短,把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ù)來(lái)分,有8位、10位、12位和16位等;按輸入的數(shù)碼形式分,有二進(jìn)制碼和BCD碼等;按轉(zhuǎn)送數(shù)字量的方式分,有并行式的和串形式的D/A轉(zhuǎn)換器兩類;按輸出形式分,有電流輸出和電壓輸出兩種形式,而電壓輸出又有單極性電壓輸出和雙極型電壓輸出之別;從與單片機(jī)接口的角度看,又有帶輸入鎖存器和不帶輸入鎖存器兩類。下面列出常用的幾種D/A轉(zhuǎn)換芯片。
(1)?DAC0830系列。DAC0830系列是美國(guó)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é)電阻,無(wú)需外接器件及微調(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系列是美國(guó)NationalSemiconductor公司產(chǎn)品,包
括DAC1020、DAC1021、DAC1022,與美國(guó)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系列均為美國(guó)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ī)接口的方法有些差異,但就其基本連接方法來(lái)看,還是有共同之處:都要考慮到數(shù)據(jù)線、地址線和控制線的連接。就數(shù)據(jù)線來(lái)說(shuō),D/A轉(zhuǎn)換器與單片機(jī)的接口要考慮到兩個(gè)問(wèn)題:一是位數(shù),當(dāng)高于8位的D/A轉(zhuǎn)換器與8位數(shù)據(jù)總線的51單片機(jī)接口時(shí),51單片機(jī)的數(shù)據(jù)必須分時(shí)輸出,這時(shí)必須考慮數(shù)據(jù)分時(shí)傳送的格式和輸出電壓的“毛刺”問(wèn)題;二是D/A轉(zhuǎn)換器的內(nèi)部結(jié)構(gòu),當(dāng)D/A轉(zhuǎn)換器內(nèi)部沒(méi)有輸入鎖存器時(shí),必須在單片機(jī)與D/A轉(zhuǎn)換器之間增設(shè)鎖存器或I/O接口。最常用也是最簡(jiǎn)單的連接是8位帶鎖存器的D/A轉(zhuǎn)換器和8位單片機(jī)的接口,這時(shí)只要將單片機(jī)的數(shù)據(jù)總線直接和D/A轉(zhuǎn)換器的8位數(shù)據(jù)輸入端一一對(duì)應(yīng)連接即可。就地址線來(lái)說(shuō),一般的D/A轉(zhuǎn)換器只有片選信號(hào),而沒(méi)有地址線。這時(shí)單片機(jī)的地址線采用全譯碼或部分譯碼,經(jīng)譯碼器輸出控制片選信號(hào),也可用由某一位I/O線來(lái)控制片選信號(hào)。也有少數(shù)D/A轉(zhuǎn)換器有少量的地址線,用于選中片內(nèi)獨(dú)立的寄存器或選擇輸出通道(對(duì)于多通道D/A轉(zhuǎn)換器),這時(shí)單片機(jī)的地址線與D/A轉(zhuǎn)換器的地址線對(duì)應(yīng)連接。就控制線來(lái)說(shuō),D/A轉(zhuǎn)換器主要有片選信號(hào)、寫(xiě)信號(hào)及啟動(dòng)轉(zhuǎn)換信號(hào)等,一般由單片機(jī)的有關(guān)引腳或譯碼器提供。一般來(lái)說(shuō),寫(xiě)信號(hào)多由單片機(jī)的信號(hào)控制;啟動(dòng)信號(hào)常由片選信號(hào)與寫(xiě)信號(hào)的組合形成,當(dāng)單片機(jī)執(zhí)行一條輸出指令時(shí),傳送的地址使轉(zhuǎn)換器的片選信號(hào)有效,由實(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為例,來(lái)說(shuō)明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)及引腳信號(hào)
DAC0830/DAC0831/DAC0832是20腳雙列直插式封裝芯片。其引腳功能定義如下:
DI0~DI7:8位數(shù)據(jù)輸入線。
ILE:數(shù)據(jù)鎖存允許控制輸入線,高電平有效。
CS:片選信號(hào)輸入線,低電平有效。
WR1:輸入鎖存器寫(xiě)選通輸入線,負(fù)脈沖有效。輸入鎖存器的鎖存信號(hào)LE1由ILE、CS、WR1的邏輯組合產(chǎn)生,即LE1=ILE·CS·WR1,LE1上的負(fù)跳變將使數(shù)據(jù)線上的數(shù)據(jù)鎖進(jìn)輸入鎖存器。
XFER:數(shù)據(jù)傳送控制信號(hào)輸入線,低電平有效。
WR2:DAC寄存器寫(xiě)選通信號(hào)輸入線,負(fù)脈沖有效。DAC寄存器的鎖存信號(hào)LE2由XFER和WR2的邏輯組合產(chǎn)生,即LE2=XFER·WR2,LE2上的負(fù)跳變將使輸入鎖存器中鎖存的數(shù)據(jù)被鎖存到DAC鎖存器中,同時(shí)進(jìn)入D/A轉(zhuǎn)換器并開(kāi)始轉(zhuǎn)換。
IOUT1:模擬電流輸出線。
IOUT2:模擬電流輸出線。采用單極性輸出時(shí),IOUT2
常常接地。
RFB:反饋信號(hào)輸入線。反饋電阻被制作在芯片內(nèi),用作外接的運(yùn)算放大器的反饋電阻,為D/A轉(zhuǎn)換器提供電壓輸出。
VREF:參考電壓輸入線。要求外接一精密電壓源,電壓范圍為-10~+10V。通過(guò)改變VREF的符號(hào)來(lái)改變輸出極性。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工資按時(shí)發(fā)放民工保障書(shū)
- 贈(zèng)與合同借款租賃問(wèn)題探討
- 育苗種子生產(chǎn)合作
- 跑步機(jī)預(yù)售合同補(bǔ)充協(xié)議
- 工程質(zhì)量保證保函
- 旅游服務(wù)合同的合規(guī)觀察
- 高強(qiáng)度水泥磚供應(yīng)合同
- 公路工程分包商的勞務(wù)
- 品質(zhì)保證信譽(yù)保
- 外貿(mào)綠植購(gòu)銷協(xié)議
- 西安東原地產(chǎn)品牌年度推廣方案
- 走進(jìn)范仲淹課件
- C++程序設(shè)計(jì)智慧樹(shù)知到答案章節(jié)測(cè)試2023年咸陽(yáng)師范學(xué)院
- 五年級(jí)上冊(cè)道德與法治課件-第8課第四課時(shí) 影響深遠(yuǎn)的漢字人教部編版
- 2023-2024學(xué)年江蘇省吳江市小學(xué)語(yǔ)文五年級(jí)上冊(cè)期末高分測(cè)試題
- GB/T 23604-2009鈦及鈦合金產(chǎn)品力學(xué)性能試驗(yàn)取樣方法
- GB/T 20641-2006低壓成套開(kāi)關(guān)設(shè)備和控制設(shè)備空殼體的一般要求
- 第1章 大數(shù)據(jù)可視化概述
- 2023年湖南交通職業(yè)技術(shù)學(xué)院教師招聘考試筆試題庫(kù)及答案解析
- 主題班會(huì) 交通安全教育
- PPE安全防護(hù)知識(shí)培訓(xùn)
評(píng)論
0/150
提交評(píng)論