實(shí)驗(yàn)五、模數(shù)轉(zhuǎn)換
一、實(shí)驗(yàn)?zāi)康?br>1、掌握A/D轉(zhuǎn)換與單片機(jī)的接口方法;
2、掌握A/D芯片TLC549的編程方法;
3、掌握數(shù)據(jù)采集程序的設(shè)計(jì)方法;
二、實(shí)驗(yàn)內(nèi)容
利用實(shí)驗(yàn)開(kāi)發(fā)裝置上的TLC549做A/D轉(zhuǎn)換器,對(duì)電位器提供的模擬電壓信號(hào)進(jìn)行定時(shí)中斷采樣,結(jié)果在LED上進(jìn)行顯示。
A/D轉(zhuǎn)換芯片 TLC549
CLK P1.5 時(shí)鐘位
DAT P1.6 數(shù)據(jù)位
CS P1.7 選片位
VREF 接 +5V
三、實(shí)驗(yàn)線路
將TLC549的CLK接P1.5、DAT接P1.6、CS接P1.7,將模擬電壓輸入端連到電位器的電壓輸出端,
并接萬(wàn)用表進(jìn)行輸入電壓測(cè)量。
四、實(shí)驗(yàn)步驟
在PC機(jī)輸入源程序并匯編,然后下載到單片機(jī)上,進(jìn)行調(diào)試。
調(diào)節(jié)電位器,電壓從0V到5V變化,記錄數(shù)碼管的顯示數(shù)值。記錄到表中。
輸入電壓V 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
A/D結(jié)果
五、 實(shí)驗(yàn)報(bào)告
(1) 整理好實(shí)驗(yàn)程序和實(shí)驗(yàn)記錄,進(jìn)行數(shù)據(jù)處理分析并做圖。
(2) 數(shù)據(jù)采集中,如何實(shí)現(xiàn)精確的定時(shí)數(shù)據(jù)采集?
(3) 數(shù)碼管動(dòng)態(tài)掃描顯示程序設(shè)計(jì)中,顯示刷新的時(shí)間如何確定?
;++++++++++++++++++++++++++++++++++++++++++++++++++++++
CS BIT P3.0
DAT BIT P3.1
CLK BIT P3.2
ADC DATA 30H
ORG 0000H
MAIN: MOV SP,#60H
WAIT: ACALL TLC549
LCALL DELAY
ACALL TLC549 ;讀取上次ADC值,并再次啟動(dòng)AD轉(zhuǎn)換
MOV A,ADC
CPL A
MOV P1,A
SJMP WAIT
TLC549: CLR CLK
CLR CS ;選中TLC549
MOV R6,#8
TLCAD: SETB CLK
MOV C,DAT
RLC A
CLR CLK ;DAT=0,為讀出下一位數(shù)據(jù)作準(zhǔn)備
DJNZ R6,TLCAD
SETB CS ;禁能TLC549,再次啟動(dòng)AD轉(zhuǎn)換
SETB CLK
MOV ADC,A
RET
DELAY: MOV R7,#250
DJNZ R7,$
RET
END
實(shí)驗(yàn)六、模數(shù)轉(zhuǎn)換
一、實(shí)驗(yàn)?zāi)康?br>1、掌握模數(shù)轉(zhuǎn)換芯片TLC5620的接口技術(shù)。
2、掌握模數(shù)轉(zhuǎn)換芯片TLC5620的編程方法。
二、實(shí)驗(yàn)內(nèi)容
編寫(xiě)程序?qū)崿F(xiàn)下列要求:
1、 通過(guò)SW輸入8位數(shù)值,由TLC5620變?yōu)槟M電壓輸出,記錄數(shù)值與對(duì)應(yīng)的對(duì)應(yīng)關(guān)系。
2、 利用TLC5620輸出一個(gè)從0V開(kāi)始逐漸升至5V再降至0V,周期為1秒的三角波。
三、實(shí)驗(yàn)線路
將TLC5620的信號(hào)線接到相應(yīng)的端口,在OutA、OutB、OutC、OutD、輸出0-5V電壓接萬(wàn)用表。
D/A芯片TLC5620
LDAC 接GND;
LOAD 接P3^0; 裝載
CLK 接P3^1; 時(shí)鐘
DAT 接P3^2; 數(shù)據(jù)
Vref 接+5V; 參考
四、實(shí)驗(yàn)預(yù)習(xí)
1、學(xué)習(xí)模數(shù)轉(zhuǎn)換的原理與編程
2、提前編寫(xiě)程序,寫(xiě)出預(yù)習(xí)報(bào)告。
五、實(shí)驗(yàn)報(bào)告
1、總結(jié)出實(shí)驗(yàn)的詳細(xì)步驟。
2、寫(xiě)出調(diào)試正確的程序及框圖。
;+++++++++++++++++++++++++++++++++++++++++++++++++++++
SCL BIT P3.0
SDA BIT P3.1
LOAD BIT P3.2
DAC DATA 30H
NUM DATA 31H
ORG 0000H
MAIN: MOV SP,#60H
CLR SCL
CLR SDA
SETB LOAD
WAIT: MOV P1,#0FFH
MOV A,P1
MOV DAC,A
MOV NUM,#0
LCALL DAC5620
SJMP WAIT
DAC5620: MOV A,R1
CLR SCL
MOV A,NUM
LCALL SENDAD
MOV A,R2
CLR SCL
MOV A,DAC
LCALL SENDDB
CLR LOAD
SETB LOAD
RET
SENDDB: MOV R7,#8
LPDB: SETB SCL
RLC A
MOV SDA,C
CLR SCL
DJNZ R7,LPDB
RET
SENDAD: MOV R7,#3
SETB C
RLC A
LPAD: SETB SCL
RLC A
MOV C,ACC.3
MOV SDA,C
CLR SCL
DJNZ R7,LPAD
RET
END