版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)原理及應(yīng)用北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院主講教師:林偉國E-mail:linwg@,cn第七章單片機(jī)的典型外圍接口技術(shù)一、A/D轉(zhuǎn)換器A/D轉(zhuǎn)換器是將模擬量轉(zhuǎn)換成數(shù)字量的器件.模擬量可是電壓、電流等電信號(hào),也可是聲、光、壓力和溫度等隨時(shí)間連續(xù)變化的非電物理量。非電物理量可通過合適的傳感器等轉(zhuǎn)換成電信號(hào),模擬量只有轉(zhuǎn)換成數(shù)字量才能被計(jì)算機(jī)采集、分析和計(jì)算處理。第一節(jié)ADC接口二、A/D轉(zhuǎn)換方法電壓頻率式:精度高價(jià)格低,但轉(zhuǎn)換速度不高積分式:抗干擾能力好,轉(zhuǎn)換速度低逐次逼近式:轉(zhuǎn)換速度較快并行轉(zhuǎn)換:串行轉(zhuǎn)換:三、硬件設(shè)計(jì)考慮的問題選擇分辨率(3~8位/9~12位/13位以上)確定精度(誤差范圍)A/D轉(zhuǎn)換時(shí)間和路數(shù)輸入/輸出特性和范圍電源種類和功耗工作環(huán)境接口是否方便8051和ADC0809的接口ADC0809是逐次比較式的8路8位A/D轉(zhuǎn)換器,轉(zhuǎn)換速度為100US,電源電壓+5VADC0809的內(nèi)部結(jié)構(gòu)圖ADC0809與8051的接口原理圖ADC0809與8051接口工作方式EOC:開始轉(zhuǎn)換時(shí)為低電平,當(dāng)轉(zhuǎn)換結(jié)束時(shí)為高電平.查詢方式:查詢EOC引腳中斷方式:EOC經(jīng)反相器接8051的外部中斷引腳ALE=START=OE=端口地址確定應(yīng)使P2.7=A15=0,A0、A1、A2給出被選擇的模擬通道地址編程要點(diǎn)選通模擬量輸入通道發(fā)出啟動(dòng)信號(hào)用查詢或中斷方法等待轉(zhuǎn)換結(jié)束(延時(shí))讀取轉(zhuǎn)換結(jié)果MAIN:MOVR1,#dataMOVDPTR,#7FF8H;P2.7=0,且指向通道OMOVR7,#08H;置通道數(shù)LOOP:MOVX@DPTR,A;啟動(dòng)A/D轉(zhuǎn)換MOVR6,#OAH;DLAY:NOPNOPNOPDJNZR6,DLAYMOVXA,@DPTR;讀取轉(zhuǎn)換結(jié)果MOV@R1,AINCDPTR;指向下一個(gè)通道INCR1;修改數(shù)據(jù)區(qū)指針DJNZR7,LOOP;8個(gè)通道全采樣完了嗎?中斷方式程序SETBIT1SETBEX1SETBEAMOVDPTR,#7FF8HMOVA,#0MOVX@DPTR,A…EINT1:MOVDPTR,#7FF8HMOVXA,@DPTRMOV30H,AMOVA,#00MOVX@DPTR,ARETI四、A/D采集的抗干擾措施算術(shù)平均滑動(dòng)平均值法(循環(huán)隊(duì)列)去極值法低通濾波五、實(shí)驗(yàn)電路通道的選擇是由地址線A0、A1、A2來完成A/D轉(zhuǎn)換實(shí)驗(yàn)1、采用定時(shí)中斷方式,每500ms采樣一次,采樣通道02、A/D采樣采用外部中斷方式,后邊沿觸發(fā)3、程序流程:初始化開定時(shí)器定時(shí)時(shí)間到?
啟動(dòng)A/D轉(zhuǎn)化
A/D轉(zhuǎn)換結(jié)束?
讀A/D轉(zhuǎn)換結(jié)果
轉(zhuǎn)換結(jié)果送發(fā)光二極管顯示4、實(shí)驗(yàn)要求:提前編寫程序,并調(diào)試正確5、帶上第一次實(shí)驗(yàn)程序,準(zhǔn)備接受檢查6、第3次實(shí)驗(yàn)為8255鍵盤顯示實(shí)驗(yàn)程序概要偽指令A(yù)DPORTEQU8100H;ADC0809通道0地址DISPORTEQU8300H;顯示端口地址Flag1BIT00H;定時(shí)時(shí)間到標(biāo)志Flag2BIT01H;AD轉(zhuǎn)換結(jié)束標(biāo)志
ORG0000HAJMPMAINORG0003HAJMPINTADORG000BHAJMPT0INT程序初始化
ORG0030HMAIN:MOVSP,#70HMOVTMOD,#XXHMOVTH0,#XXHMOVTL0,#XXHMOVR7,#0AH;用于計(jì)數(shù)定時(shí)中斷次數(shù)
CLRFLAG1CLRFLAG2SETBIT0;后邊沿觸發(fā)外部中斷
SETBET0;T0中斷允許
SETBEX0;外部中斷0中斷允許
SETBEASETBTR0;開啟定時(shí)器0主程序LOOP1:JBCFLAG1,SAMPLE ;等待定時(shí)時(shí)間到,
AJMPLOOP1SAMPLE:MOVDPTR,#ADPORTMOVX@DPTR,A ;啟動(dòng)A/D轉(zhuǎn)換LOOP2:JBCFLAG2,RDATA ;等待A/D轉(zhuǎn)換結(jié)束
AJMPLOOP2RDATA:MOVXA,@DPTR ;讀A/D轉(zhuǎn)換結(jié)果
MOVDPTR,#DISPORTMOVX@DPTR,A ;輸出數(shù)據(jù)到發(fā)光管
AJMPLOOP1 ;程序循環(huán)定時(shí)中斷與外部中斷程序T0INT:MOVTH0,#XXHMOVTL0,#XXHDECR7CJNER7,#00H,RTNMOVR7,#0AHSETBFLAG1RTN:RETIINTAD:SETBFLAG2RETI單片機(jī)與12位A/D的接口與編程AD574A是一個(gè)完整的逐位比較式12位模/數(shù)轉(zhuǎn)換器,具有可與8位、12位或16位微處理器直接接口的三態(tài)輸出緩沖器。其引腳分配和內(nèi)部結(jié)構(gòu)框圖示于下圖。引腳分配和內(nèi)部結(jié)構(gòu)框圖管腳介紹(1)DB11---DB0(引腳16--27):
12位數(shù)據(jù)輸出線。DB11—為最高位,DB0----為最低位,它們可以由控制邏輯決定是輸出數(shù)據(jù)還是對(duì)外高阻抗。12/8\(數(shù)據(jù)模式選擇):輸入,當(dāng)此引腳為高電平時(shí),12位數(shù)據(jù)輸出;當(dāng)此引腳為低電平時(shí),與引腳A0配合,把12位數(shù)據(jù)分兩次輸出。注意:此引腳不與TTL兼容,若要求此引腳為高電平,則應(yīng)接1(VL),若要求此引腳為低電平,則應(yīng)接引腳15(DG)管腳介紹(2)A0(字節(jié)地址/短周期):
此引腳有兩個(gè)功能。一個(gè)功能是決定轉(zhuǎn)換結(jié)果是12位還是8位數(shù)據(jù),與其它控制輸入腳配合,若A0=0,結(jié)果為12位;若A0=1(高電平)結(jié)果是8位。另一個(gè)功能是決定輸出數(shù)據(jù)是高8位還是低4位,與其它控制輸入腳配合,若A0=0,輸出高8位;若A0=1,輸出低4位。CS\(芯片選擇):
當(dāng)CS\=0時(shí),本芯片被選中,否則本芯片不進(jìn)行任何操作。管腳介紹(3)R/C\(讀/轉(zhuǎn)換選擇):當(dāng)R/C\=1時(shí),允許讀取結(jié)果,當(dāng)R/C\=0時(shí),允許A/D轉(zhuǎn)換。CE(芯片啟動(dòng)):當(dāng)CE=1時(shí),允許轉(zhuǎn)換或讀取A/D轉(zhuǎn)換結(jié)果,到底是轉(zhuǎn)換還是讀取結(jié)果與R/C\有關(guān)。STS(狀態(tài)信號(hào)):
STS=1表示正在進(jìn)行A/D轉(zhuǎn)換,STS=0表示轉(zhuǎn)換已經(jīng)完成。管腳介紹(4)REFOUT:+10V基準(zhǔn)電壓輸出REFIN(基準(zhǔn)電壓輸入):只有由此引腳把從“REFOUT”腳輸出的基準(zhǔn)電壓引入到AD574內(nèi)部的12DAC,才能進(jìn)行正常的A/D轉(zhuǎn)換。BIPOFF(雙極性補(bǔ)償):此引腳適當(dāng)連接,可實(shí)現(xiàn)單極性或雙極性輸入。10VIN(10V量程模擬信號(hào)輸入端):對(duì)單極性信號(hào)為10V量程的模擬信號(hào)輸入端;對(duì)雙極性信號(hào)為±5V模擬信號(hào)輸入腳。20VIN
(10V量程模擬信號(hào)輸入端):對(duì)單極性信號(hào)為20V量程的模擬信號(hào)輸入端;對(duì)雙極性信號(hào)為±10V模擬信號(hào)輸入腳。管腳介紹(5)DG(數(shù)字地):各數(shù)字電路(譯碼器、門電路、觸發(fā)器等)及“+5V”電源的地。AG(模擬地):各模擬器件(放大器、比較器、多路開關(guān)、采樣保持器等)及“+15V”和“-15V”的地。VLOG:邏輯電路供電輸入端,+5V。VCC:正供電引腳,VCC=12V---+15V。VEE:負(fù)供電引腳,VEE=-12V-----15V。AD574A主要特點(diǎn)AD574A是一片模擬電路,一片數(shù)字電路組成的混合式集成芯片。其主要特點(diǎn)為:不需要外圍緩沖電路可直接與最通用的8位或16位微處理器接口。短的轉(zhuǎn)換時(shí)間,在獨(dú)立工作方式下,可在25us時(shí)間內(nèi)完成一次轉(zhuǎn)換,并將數(shù)據(jù)鎖存在輸出鎖存器中??商峁┧姆N不同的輸入范圍:?jiǎn)螛O性輸入0~10v或0~20v;雙極性輸入-5~+5v或-10~+10v。自帶參考電壓。該電源除供本身使用外,還可以為外部負(fù)載提供1mA的電流輸出。AD574A控制引腳AD574A有兩組控制引腳:一般控制引腳(CE、CS和R/C)和內(nèi)部寄存器控制引腳(12/8和A0)。一般控制引腳(CE、CS和R/C\)主要控制啟動(dòng)轉(zhuǎn)換和允許的。當(dāng)CE=1、CS=0、R/C\=0時(shí),啟動(dòng)轉(zhuǎn)換;當(dāng)CE=1、CS=0、R/C\=1時(shí),讀允許。內(nèi)部寄存器控制引腳(12/8和A0)主要控制數(shù)據(jù)輸出形式和轉(zhuǎn)換時(shí)間的長(zhǎng)短的。
若12/8\=1,當(dāng)一般控制引腳發(fā)出讀數(shù)據(jù)命令時(shí),12根輸出數(shù)據(jù)線上的數(shù)據(jù)均有效。若12/8\=0,對(duì)于一個(gè)8位接口,則根據(jù)A0的狀態(tài)來確定到底是高8位有效還是低4位有效。這時(shí),數(shù)據(jù)線低4位(16~19腳)要硬連接到高4位(24~27腳)上。在這種情況下,若A0=0,讀出高8位數(shù)據(jù);若A0=1,高8位數(shù)據(jù)線禁止,讀出低4位數(shù)據(jù)。
A0的另一功能是控制轉(zhuǎn)換周期的長(zhǎng)短。在轉(zhuǎn)換周期開始前,若A0處于低電平,完成完整的12位轉(zhuǎn)換需要25us;若A0處于高電平,僅完成8位轉(zhuǎn)換需時(shí)約16us。AD574A各控制引腳功能CECS\R/C\12/8\A0功能0XXXX不起作用X1XXX不起作用100X0啟動(dòng)12位轉(zhuǎn)換100X1啟動(dòng)8位轉(zhuǎn)換101接VLX12位數(shù)據(jù)并行輸出101接DG0高8位數(shù)據(jù)輸出101接DG1低4位數(shù)據(jù)尾接4位0輸出AD574A控制功能
若將AD574A作為一個(gè)存儲(chǔ)器來對(duì)待,為了與8位總線接口,需占據(jù)兩個(gè)存儲(chǔ)器地址(用A0來選擇)。當(dāng)A0為低時(shí),執(zhí)行的寫操作是啟動(dòng)一次完整的12位轉(zhuǎn)換周期;而當(dāng)A0為高時(shí),執(zhí)行的寫操作是啟動(dòng)一次8位的短轉(zhuǎn)換周期,這樣的讀數(shù)精度低而速度較快。在轉(zhuǎn)換完成之后,可讀取兩個(gè)字節(jié)的數(shù)據(jù):當(dāng)A0為低時(shí),讀取的12位中的高8位;當(dāng)A0為高時(shí),讀取的是12位中的低4位。為此,一般將A0接在地址線的A0上。
STS為狀態(tài)線,當(dāng)轉(zhuǎn)換開始時(shí),它變高;在轉(zhuǎn)換過程中,一直維持為高;轉(zhuǎn)換周期結(jié)束時(shí),它將變?yōu)榈?。AD574模擬量輸入電路外部連線AD574通過外部的適當(dāng)連線,可以實(shí)現(xiàn)單極性輸入,也可以實(shí)現(xiàn)雙極性輸入。輸入信號(hào)均以模擬地AGND為基準(zhǔn)。模擬輸入信號(hào)的一端必須與AG相連,并且接點(diǎn)應(yīng)盡量靠近AGND引腳,接線應(yīng)短。片內(nèi)10V基準(zhǔn)電壓輸出引腳REFOUT通過電位器R2與片內(nèi)DAC的基準(zhǔn)電壓輸入引腳REFIN相連,以供給DAC基準(zhǔn)電流。電位器R2用于微調(diào)基準(zhǔn)電流,從而微調(diào)增益?;鶞?zhǔn)電壓輸出端REFOUT也是以AGND為基準(zhǔn)。通常數(shù)字地DGND與AGND連在一起。所有電位器均應(yīng)采用低溫度系數(shù)(10-4/C)電位器模擬量單極性輸入電路模擬量單極性輸入電路模擬量雙極性輸入電路AD574與80C51的接口(雙極性)AD574與80C51的接口(單極性)AD574與8051的接口基于8051的A/D轉(zhuǎn)換程序采用中斷采集方式:ORG0003HORG1000HLJMPINTR1INTR1:ORG 0300HMOVA,@DPTRMOV R0,#20HMOV@R0,AMOV DPTR,#0HINC R0SETB EX0INCDPTRSETB EAMOVXA,@DPTRMOVX @DPTR,AMOV@R0,ARETI
通過串行總線的接口通過SPI總線或三總線的接口具有SPI總線的A/D轉(zhuǎn)換器MAX187引腳分配如圖所示:MAX187的引腳功能(1)其各引腳的功能如下:VDD:電源電壓+5V。AIN:模擬輸入,輸入范圍為0V~Vref。SHDN:有三級(jí)輸入。
1)若SHDN拉到低電平,表示芯片處于低功耗狀態(tài),此時(shí)的電源電流為10uA;
2)若SHDN拉到高電平,允許使用內(nèi)部的參考電源;
3)若SHDN處于懸浮狀態(tài),則禁止內(nèi)部參考電源,允許使用外部的參考電源。Vref:參考電壓端。當(dāng)允許內(nèi)部參考源時(shí),輸出4.096V的電壓,退藕電容為4.7uF;當(dāng)禁止內(nèi)部參考源時(shí),可輸入2.5V~VDD范圍的精密電壓,退藕電容除了4.7uF,還需增加0.1uF的退藕電容。GND:模擬地及數(shù)字地。DOUT:串行數(shù)據(jù)輸出。在SCLK的下降沿,數(shù)據(jù)改變狀態(tài)。SCLK:串行時(shí)鐘輸入,時(shí)鐘輸入速率為5MHz。CS:片選端,輸入,低電平有效。在CS的下降沿,初始化轉(zhuǎn)換。當(dāng)為高時(shí),DOUT線為高阻態(tài)。MAX187使用采樣/保持器(T/H)和逐位逼近寄存器(SAR)電路將一個(gè)模擬輸入信號(hào)轉(zhuǎn)換成一個(gè)12位的數(shù)字輸出。采樣/保持器(T/H)無須外部的保持電容。MAX187的輸入信號(hào)在0V~Vref范圍內(nèi),轉(zhuǎn)換時(shí)間包括T/H的采樣時(shí)間在內(nèi)為10us。串行接口只需三根數(shù)字線:SCLK、CS和DOUT,與微處理器的接口十分簡(jiǎn)單。
MAX187的引腳功能(2)MAX187的工作方式工作方式:正常方式和暫停方式。1)將SHDN拉成低電平,器件處于暫停狀態(tài),電源電流減低至10uA;2)當(dāng)SHDN拉成高電平或不接,器件將進(jìn)入正常工作方式。CS的下降沿將初始化轉(zhuǎn)換。轉(zhuǎn)換結(jié)果是在DOUT端以單極性串行格式輸出。轉(zhuǎn)換結(jié)束(EOC)為高電平,跟著是串行數(shù)據(jù)流(MSB在先)。
參考電壓選擇:MAX187運(yùn)行于下述兩種狀態(tài)之一:內(nèi)部參考或外部參考。
1)強(qiáng)迫SHDN為高時(shí),選擇內(nèi)部參考運(yùn)行;
2)SHDN懸浮時(shí),選擇外部參考運(yùn)行。參考源的零刻度和滿刻度參考源零刻度滿刻度內(nèi)部參考0V4.096V外部參考0VVrefMAX187的工作時(shí)序8051與MAX187接口程序設(shè)計(jì)
MAX187與80C51的接口非常簡(jiǎn)單,只需三根數(shù)字線:CS,SCLK和DOUT,接口電路如圖所示。
80C51的P1.5、P1.6和P1.7分別與MAX187的CS,SCLK和DOUT相連接。在串行接口有效時(shí),設(shè)置CPU的串行接口為主方式,因而CPU發(fā)出串行時(shí)鐘,并選擇時(shí)鐘頻率為2.5MHz。用P1.5將芯片的片選拉成低電平CS,并保持SCLK為低電平。等待最大轉(zhuǎn)換時(shí)間,檢測(cè)DOUT的上升沿,確定轉(zhuǎn)換是否結(jié)束。然后輸出SCLK,SCLK有效至少13個(gè)時(shí)鐘周期。8051與max187接口程序設(shè)計(jì)時(shí)鐘的第一個(gè)下降沿,DOUT端將出現(xiàn)轉(zhuǎn)換結(jié)果的最高位(MSB)。
DOUT端在SCLK的下降沿出現(xiàn)下降沿出現(xiàn)數(shù)據(jù),在SCLK的上升沿穩(wěn)定,80C51可以讀入數(shù)據(jù)。在時(shí)鐘的第13個(gè)下降沿時(shí)或之后,將CS拉成高電平。如果此后CS仍為低電平,在輸出LSB位之后將輸出0。隨著CS=1,等待特定的時(shí)間tcs之后,若使CS拉成低電平,將進(jìn)行新的一次轉(zhuǎn)換。如果轉(zhuǎn)換結(jié)束之前,將拉成高電平來中止轉(zhuǎn)換,則需至少等待一個(gè)采樣時(shí)間taqcq,才能啟動(dòng)一次新的轉(zhuǎn)換。8051與MAX187接口程序設(shè)計(jì)CS BITP1.5SCLKBITP1.6DOUTBITP1.7SETBCSCLR SCLKSETBDOUTSTAD:CLRCS JNBDOUT,$ SETBSCLK NOP CLR SCLK MOV A.#00HCLR CMOVR7,#04HLOOP1:SETB SCLK NOP CLR SCLK MOV C,DOUT RLC A DJNZ R7,LOOP MOV B,A MOV R7,#08H CLR ALOOP2:SETB SCLK NOP CLR SCLK NOP
MOV C,DOUT RLC A DJNZ R7,LOOP2 SETB CS具有I2C總線的模/數(shù)轉(zhuǎn)換器——MAX127MAX127是一個(gè)具有I2C總線的8通道12位模/數(shù)轉(zhuǎn)換器,本身可以構(gòu)成一個(gè)完整的數(shù)據(jù)采集系統(tǒng),其引腳分配與內(nèi)部結(jié)構(gòu)框圖如下圖;MAX127的各引腳的功能如下:VDD:電源電壓,+5V。DGND:數(shù)字地。AGND:模擬地。SCL:串行時(shí)鐘輸入。A2、A1、A0:地址選擇輸入。SDA:串行數(shù)據(jù)輸入輸出線,開漏極。在SCL上升沿?cái)?shù)據(jù)輸入;外部需要上拉電阻。SHDN:低功耗輸入端。當(dāng)SHDN為低時(shí),芯片處于全低功耗(FULLPD)狀態(tài);當(dāng)SHDN為高時(shí),芯片處于正常工作狀態(tài)。CH7~CH0:模擬輸入通道REFADJ:參考電壓輸出端,外部調(diào)整引腳。用0..01uF電容旁路到AGND。當(dāng)在REF端加上外部參考電壓時(shí),該引腳接VDD。REF:參考電壓緩沖器輸出或參考電壓輸入。在內(nèi)部參考電壓方式,參考電壓緩沖器提供4.096V的正常輸出,在REFADJ端進(jìn)行外部調(diào)整;在外部參考電壓方式,將REFADJ上拉到VDD,禁止內(nèi)部參考電壓,在REF端加上外部參考電壓。開始條件和停止條件:開始條件(s)在SCL為高時(shí),SDA上有一個(gè)從高到低的變化;停止條件(P)在SCL為高時(shí),SDA上有一個(gè)從低到高的變化。從地址:MAX127的從地址有7位,前4位是工廠設(shè)定的,總是0101;期間地址的3位有地址輸入引腳A2、A1和A0的邏輯狀態(tài)決定。因此,在同一總線上最多只能接8個(gè)MAX127。引腳A2、A1和A0可以連接到VDD或DGND,或者它用TTL或CMOS電平驅(qū)動(dòng)。8位地址字節(jié)的最后一位為R/W位。R/W=0,設(shè)置寫條件,主器件向MAX127寫入;R/W=1,設(shè)置讀條件,主器件從MAX127讀入。其中各位的意義:7(MSB)START:在寫位即R/W的應(yīng)答之后,接收邏輯“1”時(shí)被認(rèn)為是控制字節(jié)的開始。
6、5、4SEL2、SEL1、SEL0:這三位選擇打開的輸入通道。
RNG:選擇滿刻度輸入時(shí)電壓量程。
BIP:選擇轉(zhuǎn)換是單極性還是雙極性的。1、0(LSB)PD1、PD0:這兩位選擇低功耗方式。MAX127控制字節(jié)中PD1、PD0的意義:
PD1PD0方式0×正常方式10待機(jī)(STBYPD)11全低功耗方(FULLPD)控制字節(jié)如所示,其格式為:BIT7MSBBIT6BIT5BIT4BIT3BIT2BIT1BIT0(LSB)STARTSEL2SEL1SEL0RNGBIPPD1PD0
MAX127控制字中SEL2、SEL1、SEL0的意義
SEL2SEL1SEL0通道
000CH0001CH1010CH2011CH3100CH4……111CH7
MAX127控制字節(jié)中RNG、BIP的意義輸入量程/VRNGBIP負(fù)滿刻度/V零刻度/V滿刻度/V0~500——0Vref×1.22070~1010——0Vref×2.4414±501-Vref×1.22070Vref×1.2207±1011-Vref×2.44140Vref×2.4414MAX127完整的傳輸時(shí)序圖見書219頁寫周期:
如圖7-45(a)所示,由主器件發(fā)出開始條件、7位從地址及寫位(即R/W=0),開始一個(gè)轉(zhuǎn)換周期。如果MAX127接收到這8位,并且地址相符,則發(fā)出一個(gè)應(yīng)答(A),將SDA拉為低電平一個(gè)時(shí)鐘周期。然后,主器件寫出控制字節(jié)到從器件。在這個(gè)字節(jié)數(shù)據(jù)之后,從期間又發(fā)出另一個(gè)應(yīng)答(A),將SDA拉低一個(gè)時(shí)鐘周期。主器件在寫周期的最后發(fā)出停止條件。讀周期:如圖7-45(b)所示,由主器件發(fā)出開始條件、7位從地址及讀位(即R/W=1),如果MAX127接到了這8位,并且
地址相符,則發(fā)出一個(gè)應(yīng)答位(A),將SDA拉為低電平一個(gè)時(shí)鐘周期,接著是串行數(shù)據(jù)的第一個(gè)字節(jié)(D11~D4,MSB在先);在從器件發(fā)出第一個(gè)字節(jié)之后釋放總線,主器件發(fā)出應(yīng)答(A=0)。從器件接受到該應(yīng)答后,發(fā)出第二個(gè)字節(jié)(D3~D0及四個(gè)0)。接著主器件發(fā)出一個(gè)反應(yīng)答(/A),表示最后的數(shù)據(jù)字節(jié)已經(jīng)接收到。最后主器件發(fā)出停止條件,作為讀周期。程序
ORG 0200H
SETB P1.7 AIN:MOV R0,#21HSETB P1.4
SETB P3.0CLR P1.7CLR P3.1SETB P1.7CLR P1.6MOV P1,#0A0H
MOV P1,#00HAIN0: SETB P1.3CLR P1.7CLR P1.7SETB P1.7 SETB P1.7
SETB P1.4JNB P3.0,CLR3
CLR P1.7LOOP1: SETB P1.2SETB P1.7CLR P1.7CLR P1.4SETBP1.7
SETB P1.5
JNB P3.0,CLR2CLR P1.7LOOP2:SETB P1.1AIN1: JNBP1.4,AN2 CLR P1.7CLRP1.4 SETB P1.7AJMPAN0 JNB P3.0,CLR1AIN2: MOV A,23HLOOP3:SETB P1.0SWAP A CLRP1.7ORL A,24H SETB P1.7MOV23H,A JNB CLR0SETB P1.6 INC R0RET MOV A,#0FHCLR3: CLRP1.3 ANL A,P1AJMP LOOP1 MOV @R0,ACLR2: CLR P1.2
JNB P1.5AJMP LOOP2 CLR P1.5CLR1: CLR P1.1SETB P1.5AJMP LOOP3 AJMPAN0
CLR0:CLR P1.0 AJMP LOOP4第二節(jié)D/A轉(zhuǎn)換器接口用D/A轉(zhuǎn)換器把微型機(jī)輸出的數(shù)字量轉(zhuǎn)換成電壓或電流,可輸出各種波形的信號(hào)。一、硬件設(shè)計(jì)考慮的問題選擇分辨率(3~8位/9~12位/13位以上)確定精度(誤差范圍)D/A轉(zhuǎn)換時(shí)間和路數(shù)輸入/輸出特性和范圍電源種類和功耗工作環(huán)境接口是否方便二、DAC0832芯片介紹分辨率8位電流輸出,穩(wěn)定時(shí)間1US雙緩沖、單緩沖、直接數(shù)字輸入單電源供電邏輯結(jié)構(gòu)工作方式直通方式:各控制端口一直有效單緩沖方式:輸入鎖存器和8位DAC寄存器鎖存信號(hào)同時(shí)有效;或者一個(gè)寄存器控制端一直有效。雙緩沖方式:輸入鎖存器和8位DAC寄存器鎖存信號(hào)分開控制DAC0832與MCS51的接口雙緩沖方式適用于幾個(gè)模擬量同時(shí)輸出的系統(tǒng)時(shí)序圖MOVDPTR,#0DFFFH;1MOVA,#X;2MOVX@DPTR,A;3MOVDPTR,#0BFFFH;4MOVA,#Y;5MOVX@DPTR,A;6MOVDPTR,#7FFFH;7MOVX@DPTR,A;8系統(tǒng)只有一路模擬量輸出或幾路模擬量不許同步的輸出場(chǎng)合,可采用單緩沖方式通過運(yùn)放可輸出一個(gè)鋸齒波MOVDPTR,#7FFFHMOVA,#00HLOOP:MOVX@DPTR,AINCAAJMPLOOP利用串行口接口
(1)利用80C51本身的SPI接口
1串行輸入數(shù)/模轉(zhuǎn)換器——AD7543AD7543是一個(gè)為配合串行接口而設(shè)計(jì)的精密12位CMOS乘法式數(shù)/模轉(zhuǎn)換器,其結(jié)構(gòu)框圖如圖所示
其中邏輯部分包含一個(gè)12位串入——并出的位移寄存器和12位的DAC寄存器。在AD7543的串行輸入端SRI輸入的串行數(shù)據(jù),可有選通脈沖輸入端STB(從STB1~STB4)的上升沿或下降沿打入。一旦輸入寄存器滿,就可以加載輸入端(LD1,LD2)的控制下打入DAC寄存器。在CLR端施加低電平脈沖,可以使DAC寄存器復(fù)位為0。引腳功能為:
STB1~STB4:移位寄存器的選通信號(hào)。
LD1,LD2:DAC寄存器加載信號(hào)。
SRI:移位寄存器的串行輸入端。
CLR:DAC寄存器得清除輸入端,低電平有效。用于異步復(fù)位DAC寄存器為0。
Iou1,Iou2:DAC寄存器的電流輸入端。Iou1連接到放大器的虛地;Iou2連接到模擬地AGND。Vref:參考電源Rbf:DAC轉(zhuǎn)換器反饋電阻。DGND:數(shù)字地AGND:模擬地Vdd:+5v電源輸入2AD7543與80C51的接口AD7543與80C51的接口電路如圖所示。80c51的串行口與ad7543直接相連。80c51的串行口工作于方式0,即移位寄存器方式,TXD端輸入移位脈沖,其負(fù)跳變將RXD段發(fā)出的數(shù)據(jù)移入AD7543的12位移位寄存器。利用地址譯碼器信號(hào)產(chǎn)生LD2,將移位寄存器的數(shù)據(jù)發(fā)送到DAC寄存器,以使DAC轉(zhuǎn)換器輸入。3編程AD7543的12位數(shù)據(jù)由低至高一位一位的輸入,而80C51串行口的方式0輸出則是由低位到高位串行輸出的。因此,由串行口輸出的數(shù)據(jù)必須進(jìn)行倒序處理。AD7543的口地址為ADRDA;數(shù)據(jù)緩沖器的地址單元為DBUFH(高4位),DBUFL(低8位)。OUTDA:MOVSCON,#0;設(shè)串行口方式為0MOVA,DBUFH;高4位1數(shù)據(jù)送AACALLASMB;調(diào)倒序子程序
MOVSBUF,A;輸出高4位
MOVA,DBUFL;低8位地址送AACALLASMB;調(diào)倒序子程序
MOVSBUF,A;輸出低8位
MOVDPTR,#ADRDA;將移位寄存器的數(shù)據(jù)送入
MOV@DPTR,A;DAC寄存器RET;ASMB:MOVR6,#0;清R6MOVR7,308H;計(jì)數(shù)器
CLRC;清CYALO:RLCA;A帶進(jìn)位左移一位
XCHA,R6;A與R6內(nèi)容互換
RRCA;R6內(nèi)容帶CY右移一位
XCHA,R6;R6內(nèi)容與A互換
DJNZR7,ALO;當(dāng)R7部位0時(shí)循環(huán)
XCHA,R6;裝配好的數(shù)據(jù)存ARET(2)利用總線接口(1)帶倆線串行接口的8位數(shù)/模轉(zhuǎn)換器——MAX518MAX518是一個(gè)帶倆線串行接口的8位數(shù)/模轉(zhuǎn)換器,引腳配置及結(jié)構(gòu)見圖
引腳說明:Vout1,Vout0:數(shù)模轉(zhuǎn)換器的電壓輸出。
AD1,AD0:地址輸入端,用于設(shè)置器件的從地址。
SDA:串行數(shù)據(jù)輸入
SCL:串行時(shí)鐘輸入
Vdd:電源,+5v,max518用于做參考電壓。
GND:地Max518的從地址:01011AD1AD0R/W其中,地址AD1AD0相當(dāng)于地址輸入端狀態(tài)。在系統(tǒng)中,MAX518有四個(gè)可能的從地址,因而最多能接四片。讀/寫位R/W=0,系統(tǒng)中的主器件通過I2C總線來對(duì)MAX518進(jìn)行寫操作。寫操作信息傳遞格式:指令字節(jié)
R2R1R0RSTPDXXA0其中:
R2R1R0:保留位,設(shè)置為0。
RST:復(fù)位位,設(shè)置為1,將使所有寄存器復(fù)位為0。
PD:電源控制位,設(shè)置為1,器件處于4uA低功耗方式設(shè)置為0,器件處于正常工作狀態(tài)。
A0:地址位(2)MAX518與80C51的接口MAX518與80c51的接口電路見圖,一般的80C51沒有I2C總線,因而只能模擬I2C總線時(shí),一般需要兩根I/O口線,在圖中,P1.6用作SCL線,P1.7用作SDA線.(3)模擬I2C總線的編程這里所使用到的一些通用子程序包括:發(fā)送開始條件(START),發(fā)送停止條件(STOP),檢查應(yīng)答位(CHACK),單字節(jié)數(shù)據(jù)發(fā)送(WRBYT)。設(shè)定單片機(jī)所使用的晶體振蕩器為6Mhz,即機(jī)器周期為2uS。若晶體振蕩器不是6Mhz,側(cè)可根據(jù)情況增減程序中的指令NOP即可.ADDREQU58H;AD1=AD0=0,R/W=0RESETEQU10H;RST=1PD0EQU08H;PD=0,DAC0有輸出PD1EQU09H;PD=1,DAC1有輸出DAC0EQU00H;A0=0DAC1EQU01H;A0=1設(shè)置一路DAC輸出發(fā)送的數(shù)據(jù)在B中。OUT0:ACALLSTART;發(fā)開始條件
MOVA,#ADDRACALLWRBYTMOVA,#DAC0;發(fā)指令字
ACALLWRBYT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版護(hù)士護(hù)理知識(shí)產(chǎn)權(quán)保護(hù)聘用合同規(guī)范3篇
- 二零二五年度金融產(chǎn)品推廣合作協(xié)議3篇
- 商業(yè)綜合體商鋪出租管理合同(二零二五年版)2篇
- 二零二五版1022注冊(cè)環(huán)境監(jiān)測(cè)工程師聘用協(xié)議3篇
- 2025年加盟景觀設(shè)計(jì)公司合同
- 2025年網(wǎng)絡(luò)內(nèi)容歸屬確認(rèn)合同
- 2025年合資國際合作協(xié)議
- 2025年企業(yè)長(zhǎng)期項(xiàng)目員工外包協(xié)議
- 二零二五版39上公司兜底協(xié)議:農(nóng)業(yè)現(xiàn)代化項(xiàng)目合作保障合同
- 2025年主持人簽約協(xié)議
- 2025年度土地經(jīng)營權(quán)流轉(zhuǎn)合同補(bǔ)充條款范本
- 南通市2025屆高三第一次調(diào)研測(cè)試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國人民保險(xiǎn)集團(tuán)校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- Python試題庫(附參考答案)
- 廣東省藥品電子交易平臺(tái)結(jié)算門戶系統(tǒng)會(huì)員操作手冊(cè)
- DB32T 3960-2020 抗水性自修復(fù)穩(wěn)定土基層施工技術(shù)規(guī)范
- 說明書hid500系列變頻調(diào)速器使用說明書s1.1(1)
- 大斷面隧道設(shè)計(jì)技術(shù)基本原理
- 41某31層框架結(jié)構(gòu)住宅預(yù)算書工程概算表
- 成都市國土資源局關(guān)于加強(qiáng)國有建設(shè)用地土地用途變更和
評(píng)論
0/150
提交評(píng)論