常用外圍設(shè)備接口_第1頁
常用外圍設(shè)備接口_第2頁
常用外圍設(shè)備接口_第3頁
常用外圍設(shè)備接口_第4頁
常用外圍設(shè)備接口_第5頁
已閱讀5頁,還剩90頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

9常用外圍設(shè)備接口

1單片機(jī)典型應(yīng)用系統(tǒng)的結(jié)構(gòu)

2單片機(jī)應(yīng)用系統(tǒng)所需要的一般配置:

單片機(jī)。人機(jī)交流設(shè)備。輸入設(shè)備有鍵盤和按鍵,輸出設(shè)備有數(shù)碼管、液晶顯示模塊和指示燈等。信號(hào)采集的輸入通道。如出租車的測(cè)距、測(cè)速裝置,溫控系統(tǒng),溫度計(jì)的溫度傳感器、洗衣機(jī)的水位測(cè)量設(shè)備。向操作對(duì)象發(fā)出各種控制信號(hào)的輸出通道。如空調(diào)啟動(dòng)壓縮機(jī)的開關(guān)電路,控制彩電的頻道切換、顏色、音量等的接口電路。如果需與其他計(jì)算機(jī)系統(tǒng)或智能設(shè)備實(shí)現(xiàn)信息交換,還需配置通信接口電路。有時(shí)還需擴(kuò)展外部RAM、EEPROM用于存放數(shù)據(jù)。如彩電遙控系統(tǒng)中存放系統(tǒng)數(shù)據(jù)的存儲(chǔ)器。39.1顯示器接口

顯示器是單片機(jī)應(yīng)用系統(tǒng)常用的輸出設(shè)備,用來顯示單片機(jī)的鍵入值、中間信息及運(yùn)算結(jié)果等。 單片機(jī)應(yīng)用系統(tǒng)中,常用的顯示器主要有LED(發(fā)光二極管顯示器、數(shù)碼管顯示器)和LCD(液晶顯示器)。49.1.1數(shù)碼管顯示器的結(jié)構(gòu)與工作原理一、數(shù)碼管顯示器的結(jié)構(gòu)5二、字段碼 在實(shí)際應(yīng)用中,常用一個(gè)8位并行I/O口的輸出D0~D7對(duì)應(yīng)控制數(shù)碼管的a~dp以顯示不同字形。從I/O口輸出的驅(qū)動(dòng)數(shù)碼管以顯示不同字形的數(shù)據(jù)稱為字段碼(字形碼、顯示代碼)。例如,共陰極結(jié)構(gòu)的數(shù)碼管顯示“0”的字段碼為: 其他一些字形的字段碼如下表:D7D6D5D4D3D2D1D0字形碼dpgfedcba001111113FH6

7三、顯示字符轉(zhuǎn)換為字段碼(查表法)3FH“0”的字段碼06H“1”的字段碼5BH“2”的字段碼4FH“3”的字段碼66H“4”的字段碼……71H“F”的字段碼73H“P”的字段碼TABTAB+01HTAB+02HTAB+03HTAB+04H…TAB+0FHTAB+10H89.1.2顯示方式及其接口一、靜態(tài)顯示方式

1、原理共陰極或共陽極點(diǎn)連接在一起接地或+5V。每位的段選線與一個(gè)8位并行口連接。92、應(yīng)用舉例 例:利用串行口工作于方式0擴(kuò)展8片74HC164作為L(zhǎng)ED顯示器的驅(qū)動(dòng)控制接口,并編寫對(duì)應(yīng)的顯示驅(qū)動(dòng)程序,將片內(nèi)RAM30H~37H單元(顯示緩沖單元)的內(nèi)容(十六進(jìn)制數(shù)碼)依次顯示在顯示器上。電路和程序如下:10

11

LED:MOVSCON,#00H;設(shè)置串行口工作于方式0

MOVR0,#30H;指向顯示緩沖單元首地址

MOVR5,#8;顯示器有8位LED0:MOVA,@R0;取顯示內(nèi)容

MOVDPTR,#DTAB;指向字形碼表首地址

MOVCA,@A+DPTR;查表求得對(duì)應(yīng)的字形碼

MOVSBUF,A;啟動(dòng)發(fā)送LED1:JNBTI,LED1;等待一幀發(fā)送完

CLRTI;清發(fā)送中斷請(qǐng)求標(biāo)志

INCR0;指向下一個(gè)顯示內(nèi)容

DJNZR5,LED0;若8位未輸出完則繼續(xù)

RET12DTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H DB82H,0F8H,80H,90H,88H,83H DB0C6H,0A1H,86H,8EH;0~F的字形碼13二、動(dòng)態(tài)顯示方式1、原理所有字段控制共用一個(gè)I/O口每個(gè)字位的控制占用一根I/O口線顯示時(shí),在某一時(shí)刻,字段口輸出第i位的字段碼,同時(shí)字位口驅(qū)動(dòng)第i位的COM端使其點(diǎn)亮,如此逐位輪流點(diǎn)亮形成穩(wěn)定的n位數(shù)碼顯示效果。142、應(yīng)用舉例 實(shí)驗(yàn)儀的6位數(shù)碼管顯示器就是采用動(dòng)態(tài)顯示方式,其電路如下:15同相驅(qū)動(dòng)16假設(shè)用8255的A口的PA0~PA5作為字位控制口,B口作為字段控制口。顯示驅(qū)動(dòng)程序:(8255A口、B口、C口、控制寄存器地址為PORTA、PORTB、PORTC、CON;假設(shè)顯示緩沖單元用30H~35H)在主程序中對(duì)8255初始化

MOVA,#80H;8255的A口、B口為輸出

MOVDPTR,#CON;指向8255控制口

MOVX@DPTR,A;將控制字寫入控制寄存器17

DISP:MOVR0,#30H;顯示緩沖單元首地址

MOVR3,#0FEH;字位碼初值

MOVA,R3DISP1:MOVDPTR,#PORTA;8255A口(字位碼輸出口)

MOVX@DPTR,A;輸出字位碼

INCDPTR;8255B口(字段碼輸出口)

MOVA,@R0;取顯示數(shù)據(jù)碼

ADDA,#TAB-NPC;加TAB與NPC差值

MOVCA,@A+PC;查表得相應(yīng)字段碼

NPC:MOVX@DPTR,A;輸出字段碼

LCALLD1MS;保持顯示1毫秒顯示子程序完成動(dòng)態(tài)顯示的控制18

INCR0;指向下一顯示緩沖單元

MOVA,R3;取出字位碼

JBACC.5,DISP2;判已顯示到最左位否

RLA;未完,字位碼左移1位

MOVR3,A;回存新字位碼

SJMPDISP1;轉(zhuǎn)下一位顯示DISP2:RETTAB:DB3FH,06H,5BH,...;字段碼表

D1MS:MOVR7,#250;延時(shí)1毫秒子程序

DJNZR7,$ RET19

例:電子鐘程序。 利用定時(shí)器T0定時(shí),模擬24小時(shí)走時(shí)的電子鐘,時(shí)、分、秒以BCD碼形式依次存放在3CH、3BH、3AH;38H、39H作為軟件計(jì)數(shù)器。

選擇T0工作于定時(shí)、方式2、定時(shí)時(shí)間為500s。TMOD=00000010B=02H 計(jì)算初值

fosc=6MHz機(jī)器周期TM=2s

要定時(shí)500s即要計(jì)數(shù)250個(gè)機(jī)器周期脈沖 初值=28-250=6=06H20

ORG0000H;主程序入口

LJMPCLOCK;轉(zhuǎn)主程序初始化

ORG000BH;T0中斷入口

LJMPT0;轉(zhuǎn)T0中斷服務(wù)程序

ORG0030H

;主程序初始化程序

CLOCK:MOVSP,#6FH

;設(shè)棧底指針

MOVTMOD,#02H

;T0定時(shí)方式2

MOVTL0,#06H;定時(shí)(256—6)*2=500微秒

MOVTH0,#06H

MOV30H,#200

MOV39H,#10;軟件計(jì)數(shù)單元清零

SETBEA;中斷總允許

SETBET0;允許T0中斷

SETBTR0;啟動(dòng)T0工作

MOV3AH,#0

MOV3BH,#0MOV3CH,#021

MOVA,#80H;8255的A口、B口為輸出

MOVDPTR,#CON;指向8255控制口

MOVX@DPTR,A;將控制字寫入控制寄存器LOOP:LCALLCZ;調(diào)用拆字子程序

LCALLDISP;調(diào)用顯示子程序

SJMPLOOP;反復(fù)循環(huán)主流程

ORG0100H;T0500微秒中斷服務(wù)程序

T0:PUSHACC PUSHPSW;保護(hù)現(xiàn)場(chǎng)

DJNZ 38H,DONE;滿0.1秒?

MOV38H,#200DJNZ39H,DONE;滿1SMOV39H,#10

22

MOVA,3AH;秒單元(按BCD碼)加1

ADDA,#1 DAA MOV3AH,A CJNEA,#60H,DONE;滿1分鐘?

MOV3AH,#0;秒單元清零

MOVA,3BH;分鐘單元(按BCD碼)加1

ADDA,#1 DAA MOV3BH,A CJNEA,#60H,DONE;滿1小時(shí)?

MOV3BH,#0;分鐘單元清零

23

MOVA,3CH;小時(shí)單元(按BCD碼)加1

ADDA,#1 DAA MOV3CH,A CJNEA,#24H,DONE;滿24小時(shí)?

MOV3CH,#0;小時(shí)單元清零DONE:POPPSW POPACC;恢復(fù)現(xiàn)場(chǎng)

RETI;中斷返回24CZ:……….;拆字子程序DISP:………… ;顯示子程序259.2鍵盤接口 鍵盤是單片機(jī)應(yīng)用系統(tǒng)的一個(gè)重要輸入設(shè)備,用于輸入數(shù)據(jù)、干預(yù)系統(tǒng)的工作狀態(tài); 按鍵盤編碼產(chǎn)生方法,鍵盤可分為編碼鍵盤和非編碼鍵盤兩種; 按鍵盤的連接方式,可分為獨(dú)立式按鍵和行列式(矩陣式)鍵盤。269.2.1鍵盤工作原理一、按鍵狀態(tài)的輸入與消抖動(dòng) 1、鍵輸入

K按下時(shí),A=0; K斷開時(shí),A=1。 2、消抖動(dòng) 方法: 硬件消抖動(dòng) 軟件消抖動(dòng):軟件延時(shí)+5VRAKA點(diǎn)輸出K按下K放開抖動(dòng)27二、鍵盤管理程序

1.檢測(cè)是否有按鍵閉合;

2.若有鍵閉合,延時(shí)消抖動(dòng);

3.確認(rèn)是否有按鍵閉合;

4.確定閉合按鍵鍵號(hào);

5.等待按鍵釋放;

6.執(zhí)行相應(yīng)鍵功能。開始有鍵閉合嗎?延時(shí)消抖動(dòng)確有鍵閉合嗎?判斷閉合鍵鍵號(hào)閉合鍵釋放否?執(zhí)行鍵功能返回NNNYYY28一、結(jié)構(gòu)各個(gè)按鍵相互獨(dú)立,互不影響。每個(gè)按鍵需占用一根I/O口線9.2.2獨(dú)立式按鍵29二、鍵盤管理程序 假設(shè)用單片機(jī)的

P1口作為獨(dú)立式 按鍵K0~K7的 接口,(由于P1口 內(nèi)部有上拉電阻, 故不需外接。) 鍵盤管理程序如下:30

KEY:MOVP1,#0FFH;置P1口為輸入

MOVA,P1;輸入按鍵狀態(tài)

CPLA;取反

JZKD;若無鍵閉合則返回

LCALLDELAY;延時(shí)12ms消抖動(dòng)

MOVA,P1 CPLA JZKD;確認(rèn)是否有鍵閉合

MOVB,P1;輸入鍵狀態(tài)

KW:MOVA,P1 CPLA JNZKW;等待鍵釋放31

MOVA,B;取鍵值

JNBACC.0,K0;若是K0閉合則轉(zhuǎn)K0鍵功能程序

JNBACC.1,K1;若是K1閉合則轉(zhuǎn)K1鍵功能程序 ...

JNBACC.7,K7;若是K7閉合則轉(zhuǎn)K7鍵功能程序

KD:RET;返回

K0:...;K0鍵功能程序

RET ......K7:...;K7鍵功能程序

RET329.2.3行列式鍵盤一、結(jié)構(gòu)按鍵設(shè)置在行、列線交點(diǎn)上行線通過上拉電阻接+5V,處于輸入狀態(tài)。列線為輸出狀態(tài)339.2.3行列式鍵盤二、工作原理

1.判斷是否有鍵閉合0000111.1101.134

2.消抖動(dòng) 采用軟件延時(shí)消抖動(dòng)。

3.確定哪個(gè)鍵閉合 (1)通過列線逐列輸出低電平后檢查行輸入狀態(tài)來確定,即對(duì)鍵盤逐列逐行掃描。(2)行反轉(zhuǎn)法35

011.1111..1101.1101..1012…7012.7(1)36(2)行反轉(zhuǎn)法*將行線設(shè)置為輸出,列線設(shè)置為輸入,行線全部輸出0,輸入列線的值;將行線設(shè)置為輸入,列線設(shè)置為輸出,將輸入的列線值輸出,讀行線的值;將所讀得的行、列值組成一個(gè)鍵碼,該鍵碼是唯一的。37三、實(shí)例 假設(shè)用8255擴(kuò)展I/O口組成行列式鍵盤,其中A口接列線,C口的PC0~PC3接行線,組成一個(gè)4行8列共有32個(gè)按鍵的行列式鍵盤。38

001234567列123行行首鍵號(hào)鍵值=行首鍵號(hào)+列值825539

KB:LCALLKS;調(diào)用KS判斷是否有鍵閉合

JNZK1;有鍵閉合轉(zhuǎn)K1 SJMPKN;無鍵閉合則返回

K1:LCALLDELAY;延時(shí)消抖動(dòng)

LCALLKS;調(diào)用KS確認(rèn)是否有鍵閉合

JNZK2;有鍵閉合轉(zhuǎn)K2開始列掃描

SJMPKN;無鍵閉合則返回

K2:MOVR2,#0FEH;首列掃描字送R2 MOVR4,#0;首列號(hào)送R4K3:MOVDPTR,#PA;8255的A口地址送DPTR MOVA,R2 MOVX@DPTR,A;列掃描字送8255

A口鍵盤掃描程序:(返回參數(shù):無鍵閉合時(shí)A=0FFH,有鍵閉和時(shí)A=鍵值)40

INCDPTRINCDPTR;指向8255

C口

MOVXA,@DPTR;讀取行線狀態(tài)

JBACC.0,L1;若第0行無鍵閉合,轉(zhuǎn)查第1行

MOVA,#00H;第0行有鍵閉合,該行行首鍵號(hào)00H送A SJMPLK;轉(zhuǎn)去求鍵值L1:JBACC.1,L2;若第1行無鍵閉合,轉(zhuǎn)查第2行

MOVA,#08H;第1行有鍵閉合,該行行首鍵號(hào)08H送A SJMPLK;轉(zhuǎn)去求鍵值L2:JBACC.2,L3;若第2行無鍵閉合,轉(zhuǎn)查第3行

MOVA,#10H;第2行有鍵閉合,該行行首鍵號(hào)10H送A SJMPLK;轉(zhuǎn)去求鍵值41L3:JBACC.3,NX;若第3行無鍵閉合,轉(zhuǎn)查下一列

MOVA,#18H;第3行有鍵閉合,行首鍵號(hào)18H送ALK:ADDA,R4;鍵值=行首鍵號(hào)+列值

MOVB,A;鍵值暫存入BK4:LCALLKS JNZK4;等待鍵釋放

MOVA,B;取鍵值

SJMPKDKN:MOVA,#0FFH;無鍵閉合時(shí),返回值A(chǔ)=0FFHKD:RETNX:INCR4;列值加1

MOVA,R2;取列掃描字

JNBACC.7,KN;判斷是否全部掃描完42

RLA;未掃描完,列掃描字左移一位,變?yōu)橄乱涣袙呙枳?/p>

MOVR2,A;列掃描字暫存R2 SJMPK3;繼續(xù)掃描KS:MOVDPTR,#PA;8255A口地址送DPTR MOVA,#00H;

MOVX@DPTR,A;列線全輸出“0”--低電平

INCDPTR INCDPTR;指向C口

MOVXA,@DPTR;讀入行線狀態(tài)

CPLA;變正邏輯,以高電平表示有鍵按下

ANLA,#0FH;屏蔽高4位

RET;出口狀態(tài)A0時(shí)表示有鍵閉合439.2.4鍵盤、顯示接口電路

在單片機(jī)應(yīng)用系統(tǒng)中,需要同時(shí)使用鍵盤與顯示器接口時(shí),為了節(jié)省I/O口線,常把鍵盤和顯示電路做在一起,構(gòu)成鍵盤、顯示電路。 鍵盤、顯示電路可用并行擴(kuò)展的I/O口或串行擴(kuò)展的I/O口實(shí)現(xiàn)。 典型的鍵盤、顯示器接口電路44

8255擴(kuò)展I/O口的鍵盤、顯示接口電路

A口既作為顯示器字位控制口,又作為鍵盤列線輸出口。行輸入OC驅(qū)動(dòng)器825545某實(shí)驗(yàn)儀鍵盤、顯示接口電路

46EL-MUT-III型單片機(jī)實(shí)驗(yàn)箱鍵盤電路479.2.5鍵盤的工作方式 一、在單片機(jī)應(yīng)用系統(tǒng)中,掃描鍵盤只是CPU的工作任務(wù)之一,在實(shí)際應(yīng)用中,要想做到既能及時(shí)響應(yīng)鍵操作,又不過多地占用CPU的工作時(shí)間,如鍵盤與顯示做成一個(gè)接口電路,則在軟件中要綜合考慮鍵盤查詢與動(dòng)態(tài)顯示,就要根據(jù)應(yīng)用系統(tǒng)的實(shí)際情況,選擇適當(dāng)?shù)逆I盤工作方式。

二、鍵盤的工作方式

1、編程掃描方式 編程掃描方式是利用CPU完成其他工作的空余,調(diào)用鍵盤掃描子程序來響應(yīng)鍵輸入要求。在執(zhí)行鍵功能程序時(shí),不再響應(yīng)鍵輸入的要求。48

2、中斷工作方式開始初始化顯示掃描鍵盤執(zhí)行其他操作編程掃描方式49例:編一程序?qū)崿F(xiàn):當(dāng)按下獨(dú)立式鍵盤的K0~K5時(shí),分別將實(shí)驗(yàn)儀上的6位數(shù)碼管顯示器的顯示內(nèi)容按BCD碼加1。開始初始化顯示掃描鍵盤流程圖50

ORG1000HMAIN:MOVA,#03H;8155的A口、B口為輸出

MOVDPTR,#0FF20H;指向8155控制口

MOVX@DPTR,A;將控制字寫入控制寄存器

MOV30H,#00H MOV31H,#00H MOV32H,#00H MOV33H,#00H MOV34H,#00H MOV35H,#00H;顯示初值為“000000”

LP:LCALLDISP;調(diào)用顯示子程序

LCALLKEY;調(diào)用鍵盤管理子程序

SJMPLP51

DISP:MOVR0,#30H;顯示緩沖單元首地址

MOVR3,#01H;字位碼初值(從最右位起)

MOVA,R3DISP1:MOVDPTR,#0FF21H;8155A口(字位碼輸出口)

MOVX@DPTR,A;輸出字位碼

INCDPTR;8155B口(字段碼輸出口)

MOVA,@R0;取顯示數(shù)據(jù)碼

ADDA,#TAB-NPC;加TAB與NPC差值

MOVCA,@A+PC;查表得相應(yīng)字段碼

NPC:MOVX@DPTR,A;輸出字段碼

LCALLD1MS;保持顯示1毫秒52

INCR0;指向下一顯示緩沖單元

MOVA,R3;取出字位碼

JBACC.5,DISP2;判已顯示到最左位否

RLA;未完,字位碼左移1位

MOVR3,A;回存新字位碼

SJMPDISP1;轉(zhuǎn)下一位顯示

DISP2:RET

TAB:DB0C0H,0F9H,...;0~9字段碼表

D1MS:MOVR7,#250;延時(shí)1毫秒子程序

DJNZR7,$ RET53

KEY:MOVP1,#0FFH;置P1口為輸入

MOVA,P1;讀按鍵狀態(tài)

CPLA;取反

JZKD;若無鍵閉合則返回

LCALLDELAY;延時(shí)12ms消抖動(dòng)

MOVA,P1 CPLA JZKD;確認(rèn)是否有鍵閉合

MOVB,P1;讀鍵值

KW:MOVA,P1 CPLA JNZKW;等待鍵釋放54

MOVA,B;取鍵值

JNBACC.0,K0;若是K0閉合則轉(zhuǎn)K0鍵功能程序

JNBACC.1,K1;若是K1閉合則轉(zhuǎn)K1鍵功能程序

...

JNBACC.7,K7;若是K7閉合則轉(zhuǎn)K7鍵功能程序

KD:RET;返回

K0:MOVA,30H;K0鍵功能程序

ADDA,#1 DAA ANLA,#0FH MOV30H,A RET

55

K1:MOVA,31H;K1鍵功能程序

ADDA,#1 DAA ANLA,#0FH MOV31H,A RET

K5:MOVA,35H;K5鍵功能程序

ADDA,#1 DAA ANLA,#0FH MOV35H,A RET569.3數(shù)/模轉(zhuǎn)換接口9.3.1D/A轉(zhuǎn)換器的基本原理

D/A轉(zhuǎn)換器用來將數(shù)字量轉(zhuǎn)換成模擬量。它的基本要求是輸出電壓Vo和輸入數(shù)字量D成正比,即:

Vo=D·VR(其中VR為參考電壓)

D=dn-12n-1+dn-2

2n-2+

+d1

21+d0

20579.3.2D/A轉(zhuǎn)換器的主要技術(shù)指標(biāo)分辨率

分辨率表示對(duì)輸入的最小數(shù)字量的分辨能力??杀硎緸樽钚≥敵鲭妷海▽?duì)應(yīng)的輸入數(shù)字量只有最低有效位為“1”)與最大輸出電壓(對(duì)應(yīng)的數(shù)字輸入信號(hào)所有有效位全為“1”)之比。 例如10位D/A轉(zhuǎn)換器,其分辨率為:

1/(210-1)=1/10230.001

分辨率越高,轉(zhuǎn)換時(shí),對(duì)應(yīng)數(shù)字輸入信號(hào)最低位的模擬信號(hào)電壓數(shù)值越小,也就越靈敏。

分辨率也可用數(shù)字輸入信號(hào)的有效位數(shù)來表示。 如:DAC0832的分辨率為8位58轉(zhuǎn)換精度

轉(zhuǎn)換精度用于表明D/A轉(zhuǎn)換的精確程度,通常以滿量程電壓VFS的百分?jǐn)?shù)形式表示。例如精度為0.1%指的是最大誤差為VFS的0.1%,如果VFS為5V,則最大誤差為

5mV。

精度和分辨率是兩個(gè)不同的概念

精度是指轉(zhuǎn)換后所得到的實(shí)際值對(duì)于理想值的接近程度,而分辨率是指能夠?qū)D(zhuǎn)換結(jié)果產(chǎn)生影響的最小輸入量,對(duì)于分辨率很高的D/A轉(zhuǎn)換器并不一定具有很高的精度。59建立時(shí)間

建立時(shí)間是描述轉(zhuǎn)換速率的一個(gè)重要參數(shù)。是指D/A轉(zhuǎn)換器輸入數(shù)字量為滿刻度值(二進(jìn)制各位全為“1”)時(shí),從輸入加上到模擬信號(hào)電壓(模擬信號(hào)電流)輸出達(dá)到滿刻度值或滿刻度值的某一百分比所需的時(shí)間。一般為幾納秒到幾百微秒。

輸出是電流形式的,建立時(shí)間很短;輸出形式是電壓的,建立時(shí)間是其輸出運(yùn)算放大器所需的響應(yīng)時(shí)間。60溫度系數(shù) 在滿刻度輸出的條件下,溫度每升高1度,輸出變化的百分?jǐn)?shù)。619.3.3

DAC0832及其接口電路結(jié)構(gòu)62引腳8位數(shù)據(jù)輸入端輸入數(shù)據(jù)允許鎖存信號(hào)片選輸入寄存器寫選通信號(hào)DAC寄存器寫選通信號(hào)數(shù)據(jù)傳送信號(hào)基準(zhǔn)電壓輸入端電流輸出端IOUT1+IOUT2=C反饋電流輸入端63引腳64DAC0832工作方式(1)直通工作方式+5V65【例】直通方式產(chǎn)生鋸齒波電壓信號(hào)(波形如下圖所示)。解:電路如下圖所示。集成運(yùn)放在電路中的作用是把DAC0832輸出電流轉(zhuǎn)換為電壓。即實(shí)現(xiàn)電流電壓轉(zhuǎn)換。鋸齒波電壓信號(hào)隨時(shí)間變化而上升,達(dá)到最大值后,又從0開始上升,再到最大值如此循環(huán)下去。因此,只要讓DAC0832輸入的數(shù)字量也如此變化就可使輸出端輸出鋸齒波。66單片機(jī)和DAC0832直通方式輸出連接圖

67對(duì)鋸齒波的產(chǎn)生作如下說明:①程序每循環(huán)一次,(R0)加1,因此實(shí)際上鋸齒波的上升沿是由256個(gè)小階梯構(gòu)成的。但由于階梯很小,所以看上去就如上圖所表示的線性增長(zhǎng)鋸齒波。②延遲時(shí)間不同,波形周期不同,鋸齒波的斜率就不同。參考程序如下:

ORG0000H MOVR0,#0;置轉(zhuǎn)換初值

DAC:MOVP0,R0;送數(shù)據(jù)到P0口,DAC0832同時(shí)進(jìn)行轉(zhuǎn)換

INCR0;轉(zhuǎn)換數(shù)字量加1

LCALLDELAY;延時(shí)量決定鋸齒波周期

SJMPDACDELAY:……(略)

END68DAC0832工作方式(2)單緩沖工作方式69單緩沖方式接口電路70【例】

單緩沖方式產(chǎn)生鋸齒波。解:電路連接如上圖所示。

WR2=0和XFER=0,因此DAC寄存器處于直通方式。而輸入寄存器處于受控鎖存方式,WR1接8051的WR,ILE接高電平,CS接P2.7故輸入寄存器地址為07FFFH。

軟件設(shè)計(jì)思路與例11相同,只是改為用“MOVX@DPTR,A”來發(fā)送數(shù)據(jù)和啟動(dòng)轉(zhuǎn)換。

71

單緩沖方式產(chǎn)生鋸齒波的源程序如下:

MOV

DPTR,#7FFFH;指向0832地址

MOVR0,#00H;置轉(zhuǎn)換數(shù)字初值

DA1:MOVA,R0 MOVX@DPTR,A;啟動(dòng)轉(zhuǎn)換

INCR0;轉(zhuǎn)換數(shù)字量加1

LCALLDELAY;延時(shí)

SJMPDA1DELAY:MOVR7,#7DH;延時(shí)子程序

DL1:NOPNOPDJNZR7,DL1RET72【例】

利用0832輸出一個(gè)從-5V開始逐漸上升到0V再升至5V,再?gòu)?V逐漸降至0V,再降至-5V的三角波電壓。解:硬件電路如下圖所示。同圖中集成運(yùn)放U4接成一加法電路。輸出電壓UO=-(5+2Ui)。當(dāng)0832輸出-5V時(shí)(最大值),UO=-(5-10)=+5V;輸出-2.5V時(shí),UO=0V;輸出0V時(shí),UO=-5V。

軟件設(shè)計(jì)時(shí),當(dāng)數(shù)字量達(dá)到最大(0FFH)時(shí)要進(jìn)行減1運(yùn)算。而不是變?yōu)?。當(dāng)數(shù)字量減至0時(shí),又開始加1運(yùn)算。

73三角波形成電路Ui74

ORG0000HHA6S:MOVR6,#00H;數(shù)字量初值HA6S2:MOVDPTR,#7FFFH;地址

MOV

A,R6;數(shù)字量送A MOVX

@DPTR,A;進(jìn)行D/A轉(zhuǎn)換

MOV

R2,#0BH LCALL

DELAY ;延時(shí)

INC

R6;數(shù)字量加1

CJNE

R6,#0FFH,HA6S2;數(shù)字量增加到0FFH?HA6S3:MOVDPTR,#7FFFH

;0832地址

DECR6;數(shù)字量減1

MOVA,R6 MOVX@DPTR,A

;數(shù)字量送0832啟動(dòng)D/A轉(zhuǎn)換

MOVR2,#0BH LCALLDELAY

;延時(shí)

CJNER6,#00H,HA6S3;數(shù)字量是否減到0,

SJMPHA6S75DAC0832工作方式(3)雙緩沖工作方式76雙緩沖方式的接口電路

77【例】

DAC0832同步波形輸出正弦波、三角波。解:DAC0832與單片機(jī)的接口電路如上圖所示。電路圖中

DAC0832(1)輸入寄存器地址為0BFFFH,DAC0832(2)輸入寄存器地址為0DFFFH,0832(1)和0832(2)的DAC寄存器地址均為7FFFH。

正弦波的產(chǎn)生由各采樣點(diǎn)數(shù)據(jù)依次進(jìn)行D/A轉(zhuǎn)換得到。78

ORG1000HST:MOVR1,#0;256個(gè)取樣點(diǎn)

MOVR2,#0;鋸齒波初值L1:MOVDPTR,#0DFFFH;DAC0832(2)輸入寄存器地址

MOVA,R2MOVX@DPTR,A;三角波送DAC0832(2)MOVDPTR,#DTAB;取信號(hào)數(shù)據(jù)表首地址

MOVCA,@A+DPTR;查表取正弦波信號(hào)數(shù)據(jù)

MOVDPTR,#0BFFFH;DAC0832(1)輸入寄存器地址

MOVX@DPTR,A ;輸出正弦波信號(hào)到DAC0832(1)MOVDPTR,#7FFFH;DAC0832(1)(2)DAC寄存器地址

MOVX@DPTR,A;同時(shí)啟動(dòng)兩個(gè)0832轉(zhuǎn)換

INCR2DJNZR1,L1SJMPST79

DTAB: DB80H,83H,86H,8DH,90H,96H,99H,9CH ;正弦數(shù)據(jù)表

DB9FH,0A2H,0A5H,0A8H,0ABH,0AEH DB0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H DB0C7H,0CAH,0CFH,0D1H,0D4H,0D6H,0D8H DB0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H DB0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H DB0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH DB0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH DB0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H DB0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EBH DB0EAH,0E9H,0E7H,0E5H,0E3H,0E1H,0DFH,0DDH DB0DAH,0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH DB0C7H,0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H DB0B1H,0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH DB99H,96H,93H,90H,8DH,89H,86H,83H DB80H,80H,7CH,79H,76H,72H,6FH,6CH DB69H,66H,63H,60H,5DH,5AH,57H,55H DB51H,4EH,4CH,48H,45H,43H,40H,3DH DB3AH,38H,35H,33H,30H,2EH,2BH,29H DB27H,25H,22H,20H,1EH,1CH,1AH,18H DB16H,15H,13H,11H,10H,0EH,0DH,0BH DB0AH,09H,08H,07H,06H,04H,03H,02H DB02H,01H,00,00,00,00,00,00 DB00,00,00,00,00,00,01H,02H DB02H,03H,04H,05H,06H,07H,08H,09H DB0AH,0BH,0DH,0EH,10H,11H,13H,15H DB16H,18H,1AH,1CH,1EH,20H,22H,25H DB27H,29H,2BH,2EH,30H,33H,35H,38H DB3AH,3DH,40H,43H,45H,48H,4CH,4EH DB51H,55H,57H,5AH,5DH,60H,63H,66H DB69H,6CH,6FH,72H,76H,79H,7CH,80H END80實(shí)驗(yàn)儀D/A電路819.4

A/D轉(zhuǎn)換接口電路 在單片機(jī)應(yīng)用系統(tǒng)中,常需要將檢測(cè)到的連續(xù)變化的模擬量如溫度、壓力、流量、速度等轉(zhuǎn)換成數(shù)字信號(hào),才能輸入到單片微機(jī)中進(jìn)行處理。 將模擬量轉(zhuǎn)換成數(shù)字量的過程稱為A/D轉(zhuǎn)換。82一、A/D轉(zhuǎn)換的基本知識(shí)1.A/D轉(zhuǎn)換器的主要性能指標(biāo)分辨率。以輸出二進(jìn)制的位數(shù)表示分辨率,位數(shù)越多,誤差越小,轉(zhuǎn)換精度越高。相對(duì)精度。相對(duì)精度是指實(shí)際的各個(gè)轉(zhuǎn)換點(diǎn)偏離理想特性的誤差。在理想的情況下,所有的轉(zhuǎn)換點(diǎn)應(yīng)當(dāng)在一條直線上。轉(zhuǎn)換速度。它是指完成一次轉(zhuǎn)換所需的時(shí)間。轉(zhuǎn)換時(shí)間是指由啟動(dòng)轉(zhuǎn)換命令到轉(zhuǎn)換結(jié)束信號(hào)開始有效的時(shí)間間隔。832.A/D轉(zhuǎn)換器的分類按轉(zhuǎn)換原理可分為四種:計(jì)數(shù)式A/D轉(zhuǎn)換器、雙積分式A/D轉(zhuǎn)換器、逐次逼近式A/D轉(zhuǎn)換器和并行式A/D轉(zhuǎn)換器。目前最常用的是雙積分式A/D轉(zhuǎn)換器和逐次逼近式A/D轉(zhuǎn)換器。雙積分式A/D轉(zhuǎn)換器的主要優(yōu)點(diǎn)是轉(zhuǎn)換精度高,抗干擾性能好,價(jià)格便宜,但轉(zhuǎn)換速度較慢。因此這種轉(zhuǎn)換器主要用于轉(zhuǎn)換速度要求不高的場(chǎng)合。逐次逼近式A/D轉(zhuǎn)換器是一種轉(zhuǎn)換速度較快、精度較高的轉(zhuǎn)換器。其轉(zhuǎn)換時(shí)間大約在幾微秒到幾百微秒之間。

84二、ADC0808/0809及其接口電路1.內(nèi)部結(jié)構(gòu)852.主要性能指標(biāo)(1)分辨率為8位;(2)最大不可調(diào)誤差:0808,1/2LSB;0809,1LSB(3)工作電源+5V,基準(zhǔn)電壓由外部提供,典型值為+5V,此時(shí)允許輸入模擬電壓為0~5V;(4)具有鎖存控制的8路模擬選通開關(guān);(5)可鎖存三態(tài)輸出,輸出電平與TTL電平兼容;(6)功耗15mW;(7)時(shí)鐘頻率范圍10~1280KHz,當(dāng)CLK=500KHz時(shí),轉(zhuǎn)換時(shí)間為128μs。863.引腳874.典型連接電路88通道地址P2.7..P2.1P2.0A15~A9A8A7~A3A2A1A0

通道地址

X~X0X~X0000FEF8HX~X0X~X0011FEF9H

X~X0X~X0102FEFAHX~X0

溫馨提示

  • 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論