專業課電信院單片機軟件第5章_第1頁
專業課電信院單片機軟件第5章_第2頁
專業課電信院單片機軟件第5章_第3頁
專業課電信院單片機軟件第5章_第4頁
專業課電信院單片機軟件第5章_第5頁
已閱讀5頁,還剩106頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

第6章MCS–51單片機的接口與應用6.1按鍵、鍵盤及其接口6.2顯示及顯示器接口6.3A/D轉換器接口6.4D/A轉換器接口6.5行程開關、晶閘管、繼電器與單片機的接口6.1.1按鍵、鍵盤分類及硬件結構(1)結構劃分

6.1按鍵、鍵盤及其接口編碼鍵盤非編碼鍵盤(2)非編碼鍵盤的劃分:

獨立按鍵鍵盤行列式按鍵鍵盤5.1按鍵、鍵盤及其接口6.1.2鍵輸入過程與軟件結構圖6.1MCS–51單片機鍵輸入過程6.1.3鍵盤接口和鍵輸入軟件中應解決的幾個問題

1.消除鍵抖動鍵穩定鍵按下前沿抖動前沿抖動圖6.2鍵合斷時的電壓抖動圖6.3消除鍵抖動電路2)軟件消抖2.串鍵保護同時有多個鍵按下時:①不處理,直到只有一個鍵按下時。②都緩沖,處理組合鍵3.鍵編碼及鍵值(1)用鍵盤連接的I/O線的二進制組合表示鍵碼。例如用4行、4列線構成的16個鍵的鍵盤,可使用一個8位I/O口線的高、低4位口線的二進制數的組合表示16個鍵的編碼,如圖5.4(a)所示。各鍵相應的鍵值為88H、84H、82H、81H、48H、44H、42H、41H、28H、24H、22H、21H、18H、14H、12H、11H。這種鍵值編碼軟件較為簡單直觀,但離散性大,不便安排散轉程序的入口地址。(2)順序排列鍵編碼。如圖5.4(b)所示。這種方法,鍵值的形成要根據I/O線的狀態作相應處理。鍵碼可按下式形成:鍵碼=行首鍵碼+列號圖6.4行列式鍵盤的編碼與鍵值(a)二進制組合編碼;(b)順序排列編碼4.鍵盤的監測方法對于計算機應用系統,鍵盤掃描只是CPU工作的一部分,鍵盤處理只是在有鍵按下時才有意義。對是否有鍵按下的信息輸入方式有中斷方式與查詢方式兩種。6.1.4獨立式按鍵1.獨立式按鍵接口結構圖6.5獨立式按鍵的接口電路示意圖(a)中斷方式;(b)查詢方式2.獨立式按鍵的軟件結構下面是查詢方式的鍵盤程序。K0~K7為功能程序入口地址標號,其地址間隔應能容納JMP指令字節,PROM0~PROM7分別為每個按鍵的功能程序。設I/O為P1口。START:MOVA,#0FFH ;

MOVP1,A ;置P1口為輸入狀態

MOVA,P1 ;鍵狀態輸入

JNBACC.0,K0;檢測0號鍵是否按下,按下轉

JNBACC.1,K1;檢測1號鍵是否按下,按下轉JNBACC.2,K2 ;檢測2號鍵是否按下,按下轉

JNBACC.3,K3 ;檢測3號鍵是否按下,按下轉

JNBACC.4,K4;檢測4號鍵是否按下,按下轉

JNBACC.5,K5;檢測5號鍵是否按下,按下轉

JNBACC.6,K6;檢測6號鍵是否按下,按下轉

JNBACC.7,K7;檢測7號鍵是否按下,按下轉

JMPSTART ;無鍵按下返回,再順次檢測K0:AJMPPROM0K1:AJMPPROM1

K7:AJIMPPROM7;入口地址表…PROM0:………;0號鍵功能程序

………JMPSTART ;0號鍵功能程序執行完返回PROM1:………;0號鍵功能程序

………JMPSTART ;1號鍵功能程序執行完返回

………;7號鍵功能程序PROM7:………JMPSTART ;7號鍵功能程序執行完返回…6.1.5行列式鍵盤行列式鍵盤又叫矩陣式鍵盤。用I/O口線組成行、列結構,按鍵設置在行列的交點上。例如4×4的行列結構可組成16個鍵的鍵盤。因此,在按鍵數量較多時,可以節省I/O口線。

1.行列式鍵盤的接口行列式鍵盤的接口方法有許多,例如直接接口于單片機的I/O口上;利用擴展的并行I/O接口;用串行口擴展并行I/O口接口;利用一種可編程的鍵盤、顯示接口芯片8279進行接口等。其中,利用擴展的并行I/O接口方法方便靈活,在單片機應用系統中比較常用。圖6.68155擴展I/O口組成的行列式鍵盤2.鍵盤工作原理按鍵設置在行、列線的交點上,行、列線分別連接到按鍵開關的兩端。行線通過上拉電阻接+5V,被箝位在高電平狀態。對鍵盤的工作過程可分兩步:第一步是CPU首先檢測鍵盤上是否有鍵按下;第二步是再識別是哪一個鍵按下。檢測鍵盤上有無鍵按下可采用查詢工作方式、定時掃描工作方式和中斷工作方式。1)查詢工作方式鍵盤中有無鍵按下是由列線送入全掃描字,讀入行線狀態來判別的。其方法是:PA口輸出00H,即所有列線置成低電平,然后將行線電平狀態讀入累加器A中。如果有鍵按下,總會有一根行線電平被拉至低電平,從而使行輸入狀態不全為"1"。鍵盤中哪一個鍵按下是由列線逐列置低電平后,檢查行輸入狀態,稱為逐列掃描。其方法是:從PA0開始,依次輸出"0",置對應的列線為低電平,然后從PC口讀入行線狀態,如果全為"1",則所按下之鍵不在此列;如果不全為"1",則所按下的鍵必在此列,而且是與0電平行線相交的交點上的那個鍵。為求取鍵碼,在逐列掃描時,可用計數器記錄下當前掃描列的列號,然后用行線值為"0"的行首鍵碼加列號的辦法計算。有鍵按下否調用6ms延時子程序開始調用12ms延時子程序有鍵按下否判斷閉合鍵,鍵碼入棧保存閉合鍵釋放否鍵碼

A返回YYYNNN圖6.7鍵盤掃描子程序流程框圖鍵盤掃描子程序如下:KEY1:ACALLKS1 ;調用判斷有無鍵按下子程序

JNZLK1 ;有鍵按下時,(A)≠0轉消抖延時

AJMPKEY1 ;無鍵按下返回

LK1:ACALLTM12S;調12ms延時子程序

ACALLKS1 ;查有無鍵按下,若有則真有鍵按下

JNZLK2 ;鍵(A)≠0逐列掃描

AJMPKEY1 ;不是真有鍵按下,返回

LK2;MOVR2,#0FEH ;初始列掃描字(0列)送入R2MOVR4,#00H ;初始列(0列)號送入R4LK4:MOVDPTR,#7F01H ;DPTR指向8155PA口

MOVA,R2 ;列掃描字送至8155PA口

MOVX@DPTR,AINCDPTR ;DPTR指向8155PC口

INCDPTRMOVXA,@DPTR ;從8155PC口讀入行狀態

JBACC.0,LONE ;查第0行無鍵按下,轉查第1行

MOVA,#00H ;第0行有鍵按下,行首鍵碼#00H→AAJMPLKP ;轉求鍵碼

LONE:JBACC.1,LTWO ;查第1行無鍵按下,轉查第2行

MOVA,#08H ;第1行有鍵按下,行首鍵碼#08H→AAJMPLKP ;轉求鍵碼LTWO:JBACC.2,LTHR;查第2行無鍵按下,轉查第3行

MOVA,#10H;第2行有鍵按下,行首鍵碼#10H→AAJMPLKP ;轉求鍵碼LTHR:JBACC.3,NEXT;查第3行無鍵按下,轉該查下一列

MOVA,#18H ;第3行有鍵按下,行首鍵碼#18H→ALKP:ADDA,R4 ;求鍵碼,鍵碼=行首鍵碼+列號

PUSHACC ;鍵碼進棧保護LK3:ACALLKS1 ;等待鍵釋放

JNZLK3 ;鍵未釋放,等待

POPACC ;鍵釋放,鍵碼→ARET ;鍵掃描結束,出口狀態(A)=鍵碼NEXT:INCR4 ;準備掃描下一列,列號加1MOVA,R2 ;取列號送累加器AJNBACC.7,KEND;判斷8列掃描否?掃描完返回

RLA ;掃描字左移一位,變為下一列掃描字MOVR2,A ;掃描字送入R2AJMPLK4 ;轉下一列掃描KEND:AJMPKEY1 KS1:MOVDPTR,#7F01H ;DPTR指向8155PA口

MOVA,#00H ;全掃描字→AMOVX@DPTR,A ;全掃描字送往8155PA口INCDPTR;DPTR指向8155PC口INCDPTRMOVXA,@DPTR;讀入PC口行狀態CPLA ;變正邏輯,以高電平表示有鍵按下ANLA,#0FH ;屏蔽高4位,只保留低4位行線值RET ;出口狀態:(A)≠0時有鍵按下TM12ms:MOVR7,#18H;延時12ms子程序TM: MOVR6,#0FFHTM6:DJNZR6,TM6DJNZR7,TMRET2)定時掃描工作方式鍵盤上有鍵閉合否開始KM=1KP=1返回1→KM0→

KM0→

KP圖6.8定時掃描方式程序框圖查詢鍵碼1→KPNNNYYY3)中斷工作方式計算機應用系統工作時,并不經常需要鍵輸入。但無論是查詢工作方式還是定時掃描工作方式,CPU經常處于空掃描狀態。為了提高CPU的效率,可采用中斷工作方式。這種工作方式是當鍵盤上有鍵按下時,向CPU發一個中斷請求信號,CPU響應中斷后,在中斷服務程序中掃描鍵盤,執行鍵功能程序。中斷請求信號的接口電路可參考圖5.5(a)。中斷服務程序中應完成鍵識別、消除抖動、排除多次執行鍵功能操作等功能,可參考查詢工作方式鍵盤程序。6.2顯示及顯示器接口6.2.1LED顯示器結構與原理

圖6.9七段顯示塊管腳與結構圖表6.1七段LED的段選碼顯示字符共陰極段選碼共陽極段選碼顯示字符共陰極段選碼共陽極段選碼03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HΓ31HCEH707HF8Hy6EH91H87FH80H8.FFH00H96FH90H“滅”00HFFHA77H88HB7CH83H

6.2.2LED顯示器與顯示方式圖6.10N位LED顯示器1.LED靜態顯示方式LED工作在靜態顯示方式下,共陰極接地或共陽極接+5V;每一位的段選線(a~g、dp)與一個8位并行I/O口相連,如圖5.10所示。該圖表示了一個4位靜態LED顯示器電路,顯示器的每一位可獨立顯示,只要在該位的段選線上保持段選碼電平,該位就能保持相應的顯示字符。由于每一位由一個8位輸出口控制段選碼,故在同一時刻各位可以顯示不同的字符。

N位靜態顯示器要求有N×8根I/O口線,占用I/O口線較多。故在位數較多時往往采用動態顯示方式。2.LED動態顯示方式圖6.118位LED動態顯示器電路6.2.3LED顯示器接口1.硬件譯碼顯示器接口圖6.12MC14495內部邏輯與引腳圖圖6.13使用MC14495的多位LED靜態顯示接口2.軟件譯碼顯示器接口圖5.14通過擴展8155I/O口控制的8位LED動態顯示接口3.動態顯示程序設計DISPLAY:MOVA,#00000011B;8155初始化

MOVDPTR,#7F00H ;使DPTR指向8155控制寄存器端口

MOVX@DPTR,AMOVR0,#78H ;動態顯示初始化,使R0指向緩沖區首址

MOVR3,#7FH ;首位位選字送R3MOVA,R3 ;LD0:MOVDPTR,#7F01H ;使DPTR指向PA口

MOVX@DPTR,A ;選通顯示器低位(最右端一位)INCDPTR ;使DPTR指向PB口MOVA,@R0 ;讀要顯示數

ADDA,#0DH ;調整距段選碼表首的偏移量

MOVCA,@A+PC ;查表取得段選碼

MOVX@DPTR,A ;段選碼從PB口輸出

ACALLDL1 ;調用1ms延時子程序

INCR0 ;指向緩沖區下一單元

MOVA,R3 ;位選碼送累加器AJNBACC.0,LD1 ;判斷8位是否顯示完畢,顯示完返回

RRA ;未顯示完,把位選字變為下一位選字

MOVR3,A ;修改后的位選字送R3AJMPLD0 ;循環實現按位序依次顯示LD1:RETDSEG:DB3FH,06H,5BH;4FH,66H,6DH,7DH ;段碼表

DB07H,7FH,6FH,77H,7CH,39H,5EH,79HDL1:MOVR7,#02H ;延時子程序DL:MOVR6,#0FFHDL0:DJNZR6,DL6DJNZR7,DLRET5.2.4鍵盤、顯示器組合接口1.鍵盤、顯示器組合接口電路

圖5.15是一個采用8155并行擴展口構成的鍵盤、顯示器組合接口電路。圖中設置了32個鍵。如果多使用PC口線,可以增加按鍵,最多可達8×8=64個鍵。可根據需要進行設置。

LED顯示器采用共陰極。段選碼由8155PB口提供,位選碼由PA口提供。鍵盤的列輸入由PA口提供,與顯示器的位選輸入公用,行輸入由PC0~PC3提供。顯然,因為鍵盤與顯示器公用了PA口,比單獨接口節省了一個I/O口。圖5.158155擴展I/O口的鍵盤、顯示器組合接口2.軟件設計

LED采用動態顯示、軟件譯碼,鍵盤采用逐列掃描查詢工作方式。由于鍵盤與顯示做成一個接口電路,因此在軟件中合并考慮鍵盤查詢與動態顯示,鍵盤消抖的延時子程序可用顯示子程序替代。相應的程序如下:KD1:MOVA,#03H ;初始化8155PA、PB口為基 本輸出,PC口為輸入

MOVDPTR,#7F00HMOVX@DPTR,AKEY1:ACALLKS1JNZLK1ACALLDISPLAY;調用顯示子程序實現延時,防止抖動引起按鍵拒認

AJMPKEY1;延時后再檢測鍵盤

LK1:ACALLDISPLAY;調用兩次顯示實現延時,防止抖動引起誤處理

ACALLDISPLAYACALLKS1JNZLK2ACALLDISPLAYAJMPKEY1LK2:MOVR2,#0FEHMOVR4,#00HLK4:MOVDPTR,#7F01HMOVA,R2MOVX@DPTR,AINCDPTRINCDPTRMOVXA,@DPTRJBACC.0,LONEMOVA,#00HAJMPLKPLONE:JBACC.1,LTWO MOVA,#08H AJMPLKPLTWO:JBACC.2,LTHR MOVA,#10H AJMPLKPLHR: JBACC.3,NEXT MOVA,#18HLKP:ADDA,R4PUSHACCLK3:ACALLDISPLAYACALLKS1JNZLK3POPACCRETNEXT:INCR4MOVA,R2JNBACC.7,KENDRLAMOVR2,AAJMPLK4KEND:AJMPKEY1KS1: MOVDPTR,#7F01H MOVA,#00H MOVX@DPTR,A INCDPTR INCDPTR MOVXA,@DPTR CPLA ANLA,#0FH RETDISPLAY:見5.2.3節8155擴展動態掃描子程序。6.3A/D轉換器接口作為嵌入式微控制器的單片機,在工業生產、食品加工、醫療器件、家用電器等領域得到越來越多的應用。作為嵌入式系統的核心,單片機所要處理的信息不單純是數字信號,還要處理像壓力、流量、液位、溫度等物理參數,而這些物理量也稱為“非電量”。這些“非電量”只能通過傳感器才能將其轉換為像電流、電壓這些“模擬量”。很明顯作為數字電路的微處理器(CPU)是不能處理這些模擬信號,必須使用一種器件將連續變化的模擬量轉換為離散的數字量,這樣CPU就可以處理這些經轉換的物理量了。我們稱這種轉換器件稱之為模擬/數字轉換電路ADC。ADC模塊在嵌入式系統中的作用示意圖多路電子開關溫度傳感器組放大器外部ADC模塊基準電壓微控制器壓縮機控制電路風扇控制電路冰箱門檢測及報警多點溫度顯示智能型多功能、多溫區電冰箱VRVX返回6.3A/D轉換器接口6.3.1A/D轉換器概述(一)A/D轉換器的主要技術指標。

1)量化間隔:量化間隔可用下式表示。其中n為A/D轉換器的位數。

10V,12位精度A/D轉換器,量化間隔==2.4mv2)量化誤差量化誤差有兩種表示方法:一種是絕對誤差,另一種是相對誤差。量化誤差(二)A/D轉換器的類型。

(1)按轉換原理可分為逐次比較式、雙重積分式、量化反饋式和并行式A/D轉換器;(2)按其分辨率可分為8~16位的A/D轉換器芯片。

目前,在工業生產中主要使用著兩種ADC:逐次比較型:轉換速度快,但抗干擾性差。雙積分型:抗干擾性好,但轉換速度慢。逐次比較型ADC工作原理控制電路N位D/A轉換網絡N位寄存器SAR模擬電壓輸入VXA/D轉換數據輸出啟動時鐘狀態+-比較器VXVS1,N位寄存器首先形成10000000;經DAC轉換后送比較器與VX相比較;2,若VX>VS時,比較器通知N位寄存器保留最高位“1”。若VX<VS時,比較器通過控制器將最高位“1”清除(因為VX小于量程的一半127)。3,N位寄存器對次高位置1,再重復上面的過程,確定該位是“1”或“0”。4,經過8次比較確定了N位計數器從D7~D0的8位數據。整個過程由輸入一個“啟動”信號開始,到“狀態”端輸出一個標志信號結束。

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

雙重積分式轉換器的常用產品有ICL7106/ICL7107/ICL7126、MC14433/5G14433、ICL7135等。A/D轉換器與單片機的連接

A/D轉換器與單片機接口具有硬、軟件相依性。(1)A/D轉換器與單片機的接口主要考慮的是數字量輸出線的連接自帶緩沖、不帶緩沖(2)ADC啟動方式

脈沖啟動、電平啟動(3)轉換結束信號處理方法

查詢方式、中斷方式(4)時鐘的連接內部時鐘、外部時鐘6.3.2A/D轉換器ADC0809與單片機的接口1.ADC0809芯片簡介圖6.16ADC0809芯片的內部邏輯結構與引腳圖表6.2ADC0809通道地址選擇表

ADDCADDBADDA選通的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7圖5.17ADC0809轉換工作時序2.ADC0809與單片機接口

圖5.18ADC0809與8031的接口連接圖3.A/D轉換應用程序舉例設圖6.18接口電路用于一個8路模擬量輸入的巡回檢測系統,使用中斷方式采樣數據,把采樣轉換所得的數字量按序存于片內RAM的30H~37H單元中。采樣完一遍后停止采集。其數據采集的初始化程序和中斷服務程序如下:初始化程序:MOVR0,#30H ;設立數據存儲區指針

MOVR2,#08H ;設置8路采樣計數值

SETBIT0 ;設置外部中斷0為邊沿觸發方式

SETBEA ;CPU開放中斷 SETBEX0 ;允許外部中斷0中斷

MOVDPTR,#FEF8H;送入口地址并指向IN0LOOP:MOVX@DPTR,A ;啟動A/D轉換,A的值無意義

HERE:SJMPHERE ;等待中斷中斷服務程序:

MOVXA,@DPTR ;讀取轉換后的數字量

MOV@R0,A ;存入片內RAM單元

INCDPTR ;指向下一模擬通道

INCR0 ;指向下一個數據存儲單元

DJNZR2,INT0 ;8路未轉換完,則繼續

CLREA ;已轉換完,則關中斷

CLREX0 ;禁止外部中斷0中斷

RETI ;中斷返回INT0:MOVX@DPTR,A ;再次啟動A/D轉換

RETI ;中斷返回6.3.3單片機與A/D轉換器AD574的接口

1.AD574芯片簡介

AD574是一種快速的12位逐次比較式A/D轉換芯片,片內有兩片雙極型電路組成的28腳雙插直列式芯片,無需外接元器件就可獨立完成A/D轉換功能。內部設有三態數據輸出鎖存器。一次轉換時間為25μs。芯片引腳如圖5.19所示。圖5.19AD574的引腳圖 AD574的引腳定義如下:

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

REFIN:參考電壓輸入;

BIP:偏置電壓輸入;

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

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

DB0~DB11數字量輸出,高半字節為DB8~DB11,低字節為DB0~DB7;STS:工作狀態指示端。STS=1時表示轉換器正處于轉換狀態,STS返回到低電平時,表示轉換完畢。該信號可處理器作為中斷或查詢信號用;

12/-8:變換輸出字長選擇控制端,在輸入為高電平時,變換字長輸出為12位,在低電平時,按8位輸出;

CS、CE:片選信號。當CS=0、CE=1同時滿足時,AD574才能處于工作狀態。

R/C:數據讀出和數據轉換啟動控制;

A0:字節地址控制。它有兩個作用,在啟動AD574(R/C=0)時,用來控制轉換長度。A=0時,按完整的12位A/D轉換方式工作,A=1時,則按8位A/D轉換方式工作。在AD574處于數據讀出工作狀態(R/-C=1)時,A0和12/8成為輸出數據格式控制。表5.3AD574控制信號狀態表

CECSR/C12/8A0功能說明100×012位轉換100×18位轉換101+5V×12位輸出101地0高8位輸出101地1低4位輸出2.AD574模擬輸入電路的極性選擇圖5.20AD574的模擬輸入電路(a)單極性輸入;(b)雙極性輸入3.AD574與MCS-51單片機的接口圖6.21AD574與MCS–51單片機接口電路4.轉換程序設計舉例設要求AD574進行12位轉換,單片機對轉換結果讀入,高8位和低4位分別存于片內RAM的31H和30H單元,其轉換子程序如下:ADTRANS:MOVR0,#7CH ;7CH地址使AD574的CS=0、A0=0、R/C=0MOVR1,#31H ;R1指向轉換結果的送存單元地址

MOVX@R0,A ;產生有效的WR信號,啟動AD574為

12位工作方式

MOVA,P1 ;讀P1口,檢測STS的狀態WAIT:ANLA,#01HJNZWAIT ;轉換未結束,等待,轉換結束則進行如下操作

INCR0 ;使CS=0、A0=0、R/C=1,為按雙字節讀取轉換 結果,并讀高 ;字節

MOVXA,@R0;讀取高8位轉換結果

MOV@R1,A ;送存高8位轉換結果

DECR1 ;R1指向低4位轉換結果存放單元地址

INCR0INCR0 ;(R0)=7FH,使CS=0、A0=1、R/C=1,為讀低字節

MOVXA,@R0;讀取低4位轉換結果

ANLA,#0FH;只取低4位結果

MOV@R1,A ;送存低4位結果

RET6.4D/A轉換器接口6.4.1D/A轉換器概述

在設計D/A轉換器與單片機接口之前,一般要根據D/A轉換器的技術指標選擇D/A轉換器芯片。

(1)分辨率。分辨率是D/A轉換器對輸入量變化敏感程度的描述。D/A轉換器的分辨率定義為:當輸入數字量發生單位數碼變化時,即LSB位產生一次變化時所對應輸出模擬量的變化量。對于線性D/A轉換器來說,其分辨率Δ與輸入數字量輸出的位數n呈現下列關系(2)建立時間。建立時間是描述D/A轉換速率快慢的一個重要參數。一般所指的建立時間是輸入數字量變化后,模擬輸出量達到終值誤差±LSB/2(最低有效位)時所經歷的時間。根據建立時間的長短,把D/A轉換器分成以下幾擋:超高速<100ns

較高速100ns~1μs

高速1~10μs

中速10~100μs

低速≥100μs(1)DAC0830系列。DAC0830系列是美國NationalSemiconductor公司生產的具有兩個數據寄存器的8位D/A轉換芯片。該系列產品包括DAC0830、DAC0831、DAC0832,管腳完全相容為20腳雙插直列式封裝。

(2)DAC82。DAC82是B-B公司生產的8位能完全與微處理器兼容的D/A轉換器芯片,片內帶有基準電壓和調節電阻。無需外接器件及微調即可與單片機8位數據線相連。芯片工作電壓為±15V,可以直接輸出單極性或雙極性的電壓(0~+10V,±10V)和電流(0~1.6mA,±0.8mA)。(3)DAC1020/AD7520和DAC1220/AD7521系列。DAC1020/AD7520為10位分辨率的D/A轉換集成系列芯片。DAC1020系列是美國NationalSemiconductor公司的產品,包括DAC1020、DAC1021、DAC1022,與美國AnalogDevices公司的AD7520及其后繼產品AD7530、AD7533完全兼容。單電源工作,電源電壓為+5~+15V,電流建立時間為500ns,為16線雙插直列式封裝。與美國AnalogDevices公司的AD7520及其后繼產品AD7530、AD7533完全兼容。單電源工作,電源電壓為+5~+15V,電流建立時間為500ns,為16線雙插直列式封裝。(4)DAC1220/AD7521系列。DAC1220/AD7521系列為12位分辨率的D/A轉換集成芯片。DAC1220系列包括DAC1220、DAC1221、DAC1222產品,與AD7521及其后繼產品AD7531管腳完全兼容,為18線雙插直列式封裝。

(5)DAC1208和DAC1230系列。DAC1208和DAC1230系列均為美國NationalSemiconductor公司的12位分辨率產品。兩者不同之處是DAC1230數據輸入引腳線只有8根,而DAC1208有12根。DAC1208系列為24線雙插直列式封裝,而DAC1230系列為20線雙插直列式封裝。DAC1208系列包括DAC1208、DAC1209、DAC1210等,DAC1230系列包括DAC1230、DAC1231、DAC1232等。(6)DAC708/709。DAC708/709是B-B公司生產的16位微機完全兼容的D/A轉換器芯片,具有雙緩沖輸入寄存器,片內有基準電源及電壓輸出放大器。數字量可并行或串行輸入,模擬量可以電壓或電流輸出。D/A轉換器與單片機接口也具有硬、軟件相依性。各種A/D轉換器與單片機接口的方法有些差異,但就其基本連接方法,還是有共同之處:都要考慮到數據線、地址線和控制線的連接。

就數據線來說,D/A轉換器與單片機的接口要考慮到兩個問題:

1)位數:當高于8位的D/A轉換器與8位數據總線的MCS-51單片機接口時,MCS-51單片機的數據必須分時輸出,這時必須考慮數據分時傳送的格式和輸出電壓的"毛刺"問題;2)D/A轉換器的內部結構:當D/A轉換器內部沒有輸入鎖存器時,必須在單片機與D/A轉換器之間增設鎖存器或I/O接口。最常用、也是最簡單的連接是8位帶鎖存器的D/A轉換器和8位單片機的接口,這時只要將單片機的數據總線直接和D/A轉換器的8位數據輸入端一一對應連接即可。

就地址線來說,一般的D/A轉換器只有片選信號,而沒有地址線。這時單片機的地址線采用全譯碼或部分譯碼,經譯碼器的輸出控制片選信號,也可由某一位I/O線來控制片選信號。也有少數D/A轉換器有少量的地址線,用于選中片內獨立的寄存器或選擇輸出通道(對于多通道D/A轉換器),這時單片機的地址線與D/A轉換器的地址線對應連接。就控制線來說,D/A轉換器主要有片選信號、寫信號及啟動轉換信號等,一般由單片機的有關引腳或譯碼器提供。一般來說,寫信號多由單片機的---WR信號控制;啟動信號常為片選信號和寫信號的合成。6.4.28位D/A轉換器與單片機的接口1.DAC0830/DAC0831/DAC0832的結構與引腳功能圖6.22DAC0830系列結構框圖工作方式(1)直通工作方式:

CS、WR1、WR2、XFER直接接地。

8位數字量一旦到達立即開始D/A轉換并輸出。(2)單緩沖方式兩鎖存器中任一個處于直通狀態,一般讓DAC鎖存器處于直通狀態。適用于無多路通道同步輸出。(3)雙緩沖方式兩個鎖存器處于受控狀態,可實現多個模擬輸出通道同時進行轉換,同步輸出。2.DAC0830系列D/A轉換器與單片機接口圖5.23單路DAC0830/DAC0831/DAC0832與單片機接口邏輯圖

設分配給DAC0830/DAC0831/DAC0832的地址為7FFFH(P2.7=0),則執行下列三條指令就可以將一個數字量轉換為模擬量:MOVDPTR,#7FFFH ;端口地址送DPTRMOVA,#DATA ;8位數字量送累加器MOVX@DPTR,A ;向鎖存器寫入數字量,同時啟動轉換圖5.24單路DAC0830/DAC0831/DAC0832控制時序

下面的程序可使DAC0830/DAC0831/DAC0832輸出呈漸升驟降的電壓鋸齒波。START:MOVDPTR,#7FFFH MOVA,#00LOOP:MOVX@DPTR,A INCA MOVR0,#data ;data為延時常數

DJNZR0,$ ;延時,改變data可改變鋸齒波周期T值

SJMPLOOP o圖5.25由軟件產生的鋸齒波圖5.26兩路DAC0830/DAC0831/DAC0832與單片機接口邏輯圖

如果圖5.26中的模擬輸出分別用于示波器的X、Y偏轉,則MCS-51執行下面的程序后,可使示波器上的光點根據參數X、Y的值同步移動。MOVDPTR,#0DFFFHMOVA,#XMOVX@DPTR,A;將參數X寫入DAC(1)的數據輸入鎖存器MOVDPTR,#0BFFFHMOVA,#YMOVX@DPTR,A;將參數Y寫入DAC(1)的數據輸入鎖存器MOVDPTR,#7FFFHMOVX@DPTR,A;兩片DAC同時啟動轉換,同步輸出SJMP$3.DAC0830/DAC0831/DAC0832的模擬輸出方式

DAC0830/DAC0831/DAC0832屬于電流輸出型的D/A轉換器,其轉換結果是與輸入數字量成正比的電流。這種形式的輸出不能直接帶動負載,需經運算放大器放大并轉換成電壓輸出。電壓輸出又根據不同的場合,需要單極性電壓輸出和雙極性電壓輸出。圖5.22、圖5.25所示的接口電路是單極性電壓輸出,運放的輸出電壓為其中,D為用十進制表示的數字輸入量。例如,設VREF=-5V,當D=FFH=255時,這是最大的輸出電壓。若D=01H=1時,這是最低位LSB對應的輸出電壓。運放的輸出電壓與參考電壓VREF是反極性。根據運放的理想情況,運放A2的反向輸入端"虛地",且I1+I2=0,而如果選擇R2=R3=2R1,則可以得到VOUT2=–(2VOUT1+VREF)

設VREF=+5V,當

溫馨提示

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

評論

0/150

提交評論