You are on page 1of 32

Träng t©m nghiªn cøu

- ADC lµ g×
- CÊu t¹o phÇn cøng , nguyªn lý ho¹t ®éng
cña ADC0804 tõ ®ã cho vÝ dô cô thÓ ®Ó
minh ho¹
- DAC lµ g×
- CÊu t¹o phÇn cøng , nguyªn lý ho¹t ®éng
cña DAC0808 . Vµ còng cã vÝ dô vÒ c¬
chÕ ho¹t ®éng cña nã
Khái niệm về ADC
 C¸c bé chuyÓn ®æi ADC thuéc trong nh÷ng thiÕt bÞ ®­îc
sö dông réng r·i nhÊt ®Ó thu d÷ liÖu. C¸c m¸y tÝnh sè sö
dông c¸c gi¸ trÞ nhÞ ph©n, nh­ng trong thÕ giíi vËt lý th×
mäi ®¹i l­îng ë d¹ng t­¬ng tù (liªn tôc).
 NhiÖt ®é, ¸p suÊt (khÝ hoÆc chÊt láng), ®é Èm vµ vËn
tèc vµ mét sè Ýt träng nh÷ng ®¹i l­îng vËt lý cña thÕ giíi
thùc mµ ta gÆp hµng ngµy. Mét ®¹i l­îng vËt lý ®­îc
chuyÓn vÒ dßng ®iÖn hoÆc ®iÖn ¸p qua mét thiÕt bÞ ®­
îc gäi lµ c¸c bé biÕn ®æi. C¸c bé biÕn ®æi còng cã thÓ ®­
îc coi nh­c¸c bé c¶m biÕn. MÆc dï chØ cã c¸c bé c¶m
biÕn nhiÖt, tèc ®é, ¸p suÊt, ¸nh s¸ng vµ nhiÒu ®¹i l­îng tù
nhiªn kh¸c nh­ng chóng ®Òu cho ra c¸c tÝn hiÖu d¹ng dßng
®iÖn hoÆc ®iÖn ¸p ë d¹ng liªn tôc.
 Do vËy, ta cÇn mét bé chuyÓn ®æi t­¬ng tù sè sao cho bé
vi ®iÒu khiÓn cã thÓ ®äc ®­îc chóng. Mét chÝp ADC ®­
îc sö dông réng r·i lµ ADC 804.
Chip ADC 804
 ChÝp ADC 804 lµ bé chuyÓn ®æi t­¬ng tù sè trong hä c¸c
lo¹t ADC 800 tõ h·ng National Semiconductor. Nã còng ®­îc
nhiÒu h·ng kh¸c s¶n xuÊt, nã lµm viÖc víi +5v vµ cã ®é
ph©n gi¶i lµ 8 bÝt. Ngoµi ®é ph©n gi¶i th× thêi gian
chuyÓn ®æi còng lµ mét yÕu tè quan träng kh¸c khi ®¸nh gi¸
mét bé ADC.
 Thêi gian chuyÓn ®æi ®­îc ®Þnh nghÜa nh­lµ thêi gian mµ
bé ADC cÇn ®Ó chuyÓn mét ®Çu vµo t­¬ng tù thµnh mét sè
nhÞ ph©n. Trong ADC 804 thêi gian chuyÓn ®æi thay ®æi
phô thuéc vµo tÇn sè ®ång hå ®­îc cÊp tíi ch©n CLK vµ
CLK IN nh­ng kh«ng thÓ nhanh h¬n 110s. C¸c ch©n cña
ADC 804 ®­îc m« t¶ nh­sau
Sơ đồ chân ADC 0804
Các chân của ADC 804
 1- CS (chip select) - chọn chip
Lµ mét ®Çu vµo tÝch cùc møc
thÊp ®­îc sö dông ®Ó kÝch ho¹t
chÝp ADC 804. §Ó truy cËp ADC
804 th× ch©n nµy ph¶i ë møc
thÊp.
 2- RD (Read) – Đọc
Ch©n (®äc): §©y lµ mét tÝn hiÖu
®Çu vµo ®­îc tÝch cùc møc thÊp..
Khi CS = 0 nÕu mét xung cao -
xuèng - thÊp ®­îc ¸p ®Õn ch©n
th× ®Çu ra sè 8 bÝt ®­îc hiÓn
diÖn ë c¸c ch©n d÷ liÖu D0 - D7.
Ch©n còng ®­îc coi nh­cho phÐp
®Çu ra.
 3 - WR (Write) -Ch©n ghi
§©y lµ ch©n ®Çu vµo tÝch cùc
møc thÊp ®­îc dïng ®Ó b¸o cho
ADC 804 b¾t ®Çu qu¸ tr×nh
chuyÓn ®æi. NÕu CS = 0 khi t¹o
ra xung cao - xuèng - thÊp th× bé
ADC 804 b¾t ®Çu chuyÓn ®æi
gi¸ trÞ ®Çu vµo t­¬ng tù Vin vÒ
sè nhÞ ph©n 8 bÝt. L­îng thêi gian
cÇn thiÕt ®Ó chuyÓn ®æi thay
®æi phô thuéc vµo tÇn sè ®­a
®Õn ch©n CLK IN vµ CLK R.
Khi viÖc chuyÓn ®æi d÷ liÖu ®­
îc hoµn tÊt th× ch©n INTR ®­îc
Ðp xuèng thÊp bëi ADC 804.
 4 - Ch©n CLK IN vµ CLK R.
Ch©n CLK IN lµ mét ch©n
®Çu vµo ®­îc nèi tíi mét nguån
®ång hå ngoµi khi ®ång hå ngoµi
®­îc sö dông ®Ó t¹o ra thêi gian.
Tuy nhiªn 804 còng cã mét m¸y t¹o
xung ®ång hå. §Ó sö dông m¸y t¹o
xung ®ång hå trong cña 804 th×
c¸c ch©n CLK IN vµ CLK R ®­îc
nèi tíi mét tô ®iÖn vµ mét ®iÖn
trë nh­h×nh 12.5. Trong tr­êng hîp
nµy tÇn sè ®ång hå ®­îc x¸c ®Þnh
b»ng biÓu thøc: f=1,1/RC

R = 10k vµ C= 150pF vµ
tÇn sè nhËn ®­îc lµ f = 606kHz
 5 - Ngắt INTR ( interrupt)
§©y lµ ch©n ®Çu ra tÝch cùc møc
thÊp. B×nh th­êng nã ë tr¹ng th¸i cao vµ
khi viÖc chuyÓn ®æi hoµn tÊt th× nã
xuèng thÊp ®Ó b¸o cho CPU biÕt lµ d÷
liÖu ®­îc chuyÓn ®æi s½n sµng ®Ó lÊy
®i. Sau khi xuèng thÊp, ta ®Æt CS = 0
vµ göi mét xung cao 0 xuèng - thÊp tíi
ch©n lÊy d÷ liÖu ra cña 804.
 6 - 7- Ch©n Vin (+) vµ Vin (-).
§©y lµ c¸c ®Çu vµo t­¬ng tù vi sai mµ
Vin = Vin (+) - Vin (-). Th«ng th­êng V­
in (-) ®­îc nèi xuèng ®Êt vµ Vin (+) ®­îc
dïng nh­®Çu vµo t­¬ng tù ®­îc chuyÓn
®æi vÒ d¹ng sè.
 20 - Ch©n VCC.
§©y lµ ch©n nguån nuèi +5v, nã còng
®­îc dïng nh­®iÖn ¸p tham chiÕu khi
®Çu vµo Vref/2 (ch©n 9) ®Ó hë.
 9 - Ch©n Vref/2.
Ch©n 9 lµ mét ®iÖn ¸p ®Çu vµo ®­îc
dïng cho ®iÖn ¸p tham chiÕu. NÕu
ch©n nµy hë (kh«ng ®­îc nèi) th×
®iÖn ¸p ®Çu vµo t­¬ng tù cho ADC
804 n»m trong d¶i 0 ®Õn +5v (gièng
nh­ch©n VCC). Tuy nhiªn, cã nhiÒu
øng dông mµ ®Çu vµo t­¬ng tù ¸p ®Õn
Vin cÇn ph¶i kh¸c ngoµi d¶i 0 ®Õn
5v. Ch©n Vref/2 ®­îcdïng ®Ó thùc thi
c¸c ®iÖn ¸p ®Çu vµo kh¸c ngoµi d¶i 0
- 5v. VÝ dô, nÕu d¶i ®Çu vµo t­¬ng tù
cÇn ph¶i lµ 0 ®Õn 4v th× Vref/2 ®­îc
nèi víi +2v.
 Từ 11- 18 C¸c ch©n d÷ liÖu D0 -
D7.

C¸c ch©n d÷ liÖu D0 - D7 (D7 lµ


bÝt cao nhÊt MSB vµ D0 lµ bÝt
thÊp nhÊt LSB) lµ c¸c ch©n ®Çu
ra d÷ liÖu sè. §©y lµ nh÷ng ch©n
®­îc ®Öm ba tr¹ng th¸i vµ d÷ liÖu
®­îc chuyÓn ®æi chØ ®­îc truy cËp
khi ch©n CS = 0 vµ ch©n bÞ ®­a
xuèng thÊp. §Ó tÝnh ®iÖn ¸p ®Çu
ra ta cã thÓ sö dông c«ng thøc sau:

V in
Dout 
kich thuoc buoc
Víi Dout lµ ®Çu ra d÷ liÖu sè (d¹ng
thËp ph©n). Vin lµ ®iÖn ¸p ®Çu vµo t­
¬ng tù vµ ®é ph©n d¶i lµ sù thay ®æi
nhá nhÊt ®­îc tÝnh nh­lµ (2  Vref/2)
chia cho 256 ®èi víi ADC 8 bÝt.
 Ch©n ®Êt t­¬ng tù vµ ch©n ®Êt sè.
§©y lµ nh÷ng ch©n ®Çu vµo cÊp ®Êt
chung cho c¶ tÝn hiÖu sè vµ t­¬ng tù.
§Êt t­¬ng tù ®­îc nèi tíi ®Êt cña ch©n
Vin t­¬ng tù, cßn ®Êt sè ®­îc nèi tíi ®Êt
cña ch©n Vcc. Lý do mµ ta ph¶i cã hai
®Êt lµ ®Ó c¸ch ly tÝn hiÖu t­¬ng tù Vin
tõ c¸c ®iÖn ¸p ký sinh t¹o ra viÖc
chuyÓn m¹ch sè ®­îc chÝnh x¸c. Trong
phÇn tr×nh bµy cña chóng ta th× c¸c
ch©n nµy ®­îc nèi chung víi mét ®Êt
Tóm tắt các bước khi ADC804
chuyển đổi dữ liệu
 Tõ nh÷ng ®iÒu trªn ta kÕt luËn r»ng c¸c b­íc cÇn ph¶i thùc
hiÖn khi chuyÓn ®æi d÷ liÖu bëi ADC 804 lµ:
 BËt CS = 0 vµ göi mét xung thÊp lªn cao tíi ch©n ®Ó b¾t
®Çu chuyÓn ®æi.
 Duy tr× hiÓn thÞ ch©n . NÕu xuèng thÊp th× viÖc chuyÓn
®æi ®­îc hoµn tÊt vµ ta cã thÓ sang b­íc kÕ tiÕp. NÕu
cao tiÕp tôc th¨m dß cho ®Õn khi nã xuèng thÊp.
 Sau khi ch©n xuèng thÊp, ta bËt CS = 0 vµ göi mét xung
cao - xuèng - thÊp ®Õn ch©n ®Ó lÊy d÷ liÖu ra khái chÝp
ADC 804. Ph©n chia thêi gian cho qu¸ tr×nh nµy ®­îc tr×nh
bµy trªn h×nh
Phân chia thời gian đọc và ghi
của ADC 804
Nối ghép ADC 804 với nguồn đồng hồ riêng


tÝn hiÖu ®Çu vµo t­¬ng tù vµo thanh ghi A. Sau ®ã gäi ch­
¬ng tr×nh con chuyÓn m· nhị ph©n sang hÖ 10 vµ hiÓn thÞ
d÷ liÖu

BEGIN

ChuyÓn ®æi d÷ liÖu tõ t­¬ng tù sang sè

ChuyÓn ®æi tõ sè nhÞ ph©n sang thËp ph©n

HiÓn thÞ trªn Led 7 thanh

END
Thuật toán khi ADC 804 chuyển đổi dữ liệu
CONVERT_ADC:
CLR CS
Bật CS = 0 NOP
CLR WR
NOP
NOP
Gửi 1 xung thấp lên xung cao chân WR SETB WR
SETB CS
HIGHT_INTR:
JB INTR,HIGHT_INTR
Sai, thì kiểm tra tiếp
Kiem tra chân INTR = 0 NOP
NOP
LOW_INTR:
Đúng, khi việc convert đã hoàn tất CLR CS
NOP
Bật CS= 0 SETB RD
NOP
Gửi 1 xung cao xuống xung đến chân RD NOP
CLR RD
MOV DATA_ADC,P0
Đưa dữ liệu đã convert đến 8051 NOP
RET
Thuật toán chuyển đổi dữ liệu từ ADC về hệ thập phân
Code chương trình

Dữ liệu của ADC đã chuyển đổi

Số hàng trăm,kí hiệu LED1


Phần nguyên gán CONVERT_DATA_ADC:
Chia cho 100 MOV A,DATA_ADC
vào 1 địa chỉ
MOV B,#100
DIV AB
MOV LED1,A
MOV A,B
Phần dư gán vào tiếp số bị chia
MOV B,#10
DIV AB
Số hàng chục,kí hiệu LED 2 MOV LED2,A
Phần nguyên gán MOV LED3,B
vào 1 địa chỉ RET
Chia cho 10
Số hàng đơn vị, kí hiệu LED 3
Phần dư gán vào 1 địa chỉ
Thuật toán đưa giá trị hiển thị ra LED
DISPLAY:
MOV DPTR,#TAB
Gán gía trị cho con trỏ DPTR MOV A,LED1
MOVC A,@A+DPTR
MOV P1,A
Chuyển giá trị địa chỉ LED 1 vào thanh ghi A
MOV A,LED2
MOVC A,@A+DPTR
MOVC A,@A+DPTR MOV P1,A

MOV A,LED3
MOVC A,@A+DPTR
Đưa giá trị A hiển thị led 7 thanh MOV P1,A
RET
TAB:
DB
Tại địa chỉ con trỏ DPTR 00000011B,10011111B,00100101B,
00001111B,10011001B
DB
Đưa nội dung vào các địa chỉ trong ROM 01001001B,01000001B,00011111B,
00000001B,00001001B
Bé biÕn ®æi sè - t­¬ng tù DAC
 Bé biÕn ®æi - t­¬ng tù DAC lµ mét thiÕt bÞ ®­îc sö dông réng r·i ®Ó
chuyÓn ®æi c¸c xung sè ho¸ vÒ c¸c tÝn hiÖu t­¬ng tù.
 Xem l¹i c¸c kiÕn thøc ®iÖn tö sè ta thÊy cã hai c¸ch t¹o ra bé DAC:
Ph­¬ng ph¸t träng sè nhÞ ph©n vµ ph­¬ng tr×nh thang R/2R.
 NhiÒu bé DAC dùa trªn c¸c m¹ch tæ hîp, bao gåm MC1408 (DAC808)
®­îc sö dông trong phÇn nµy ®Òu sö dông ph­¬ng ph¸p h×nh thang
R/2R v× nã cã thÓ ®¹t ®é chÝnh x¸c cao h¬n. Tiªu chuÈn ®¸nh gi¸
mét bé DAC ®Çu tiªn lµ ®é ph©n gi¶i hµm cña sè ®Çu vµo nhÞ
ph©n. C¸c ®é ph©n gi¶i chóng lµ 8, 10 vµ 12 bÝt. Sè c¸c ®Çu vµo
bÝt d÷ liÖu quyÕt ®Þnh ®é ph©n gi¶i cña bé DAC, v× sè møc ®Çu
ra t­¬ng tù b»ng 2n víi n lµ ®Çu vµo bÝt d÷ liÖu. Do vËy, mét bé
DAC 8 bÝt nh­DAC808 ch¼ng h¹n cã 256 møc ®Çu ra ®iÖn ¸p
(dßng ®iÖn) rêi r¹c. T­¬ng tù nh­vËy, mét bé DAC 12 bÝt cho 4096
møc ®iÖn ¸p rêi r¹c
2 Bé biÕn ®æi DAC MC1408
(hay DAC808).
 Trong bé ADC808 c¸c ®Çu vµo sè ®­îc chuyÓn
®æi thµnh dßng (Iout) vµ viÖc nèi mét ®iÖn trë
tíi ch©n Iout ta chuyÓn kÕt qu¶ thµnh ®iÖn ¸p.
dßng tæng ®­îc cÊp bëi ch©n Iout lµ mét hµm sè
nhÞ ph©n ë c¸c ®Çu vµo D0 – D7 cña DAC808
vµ tham chiÕu Iref nh­sau:
D7 D6 D5 D 4 D3 D 2 D1 D0
I out  I ref (        )
2 4 8 16 32 64 128 256
 Trong ®ã D0 lµ bÝt thÊp nhÊt LSB vµ
D7 lµ bÝt cao nhÊt MSB ®èi víi c¸c ®Çu vµo
Chuyển Iout sang điện áp ở
DAC808
 Nếu nối điện trở tới chân Iout thì dòng
được chuyển thành điện áp và có thể
kiểm tra đầu ra bằng máy hiện sóng.
Tuy nhiên, như vậy sẽ làm giảm độ
chính xác do bị thay đổi trở kháng đầu
vào của tải . Vì vậy , dòng ra Iref cần
được cách ly bằng khuếch đại thuật
toán
Sơ đồ DAC 0808
Nối ghép 8051 với DAC 0808
Ví dụ :
 Cho R= 5 k  ,I = 2mA, hãy tính Vout khi
đầu vào là các mã nhị phân sau:
a) 10011001 (99H)
b) 11001000 (C8H)
Giải
a) Iout = 2mA.(1/2 +1/16 +1/32 +1/256)
= 1,195mA và Vout = 1,195mA x 5k = 5,975 v
b) Iout = 2mA.( 1/2 + 1/4 + 1/32) = 1,562 mA
và Vout = 1,562mA x 5k = 7,8125 v
Ví dụ: Để tạo ra 1 điện áp dạng bậc thang , hình13.7 và
nối máy hiện sóng tới đầu ra.Hãy viết chương trình gửi
dữ liệu tới bộ DAC để tạo sóng bậc thang

 Giải
CLR A
Again: MOV P1, A ; gửi dữ liệu đến DAC

INC A
ACALL DELAY ; khôi phục lại tín hiệu

SJMP AGAIN
Ví dụ :Hãy kiểm tra các giá trị
cho bởi các góc sau
a)30 ; b) 60
Giải
a) Vout = 5v + (5v x sin  ) = 5v + 5 x
0,5 = 7,5 v
DAC = 7,5v x 25,6 = 192
b) Vout = 5v + (5v x sin ) = 5v + 5 x
0,866 = 9,33 v
DAC = 9,33v x 25,6 = 238
Quan hệ góc và điện áp của sóng hình sin
Góc teta (độ) Sin teta Biên Độ điện áp Giá trị gửi tới DAC
Vout : (biên độ điện áp
5v+(5v+sin) x25.6)

0 0 5 128
30 0.5 7.5 192
60 0.866 9.33 238
90 1.0 10 255
120 .0866 9.33 238
150 0.5 7.5 192
180 0 5 128
210 -0.5 2.5 64
240 -0.866 0.66917 270
270 -1.0 0 0
300 -0.866 0.669 17
330 -0.5 2.5 64
Quan hệ điện áp – góc sóng hình sin

Ð?
 Tạo sóng hình sin
 Để tạo sóng hình sin,đầu tiên chúng ta thiết lập
bảng giá trị hình sin theo góc từ 0 đến 360độ
 Trong khoảng này,biên độ hình sin thay đổi trong
khoảng -1,+1.Vì vậy,bảng giá trị là các số nguyên
biểu diễn biên độ điện áp theo góc teta.phương
pháp này đảm bảo rằng,chỉ có các số nguyên là tín
hiệu ra của DAC được nối tới 8051.Bảng 13.5biểu
diễn quan hệ góc với giá trị biên độ hình sin,biên độ
điện áp và các số nguyên tương ứng.Để tạo ra
bảng 13.5,chúng ta giả thiết rằng điện áp đầy
thang là 10v ở đầu ra DAC.Tín hiệu ra của DAC sẽ
lớn nhất(hết thang) nếu tất cả dữ liệu đầu vào của
DAC ở mức cao.Vì vậy,để được tín hiệu ra đầy
thang,chúng ta sử dụng phương trình sau:
 TABLE: DB 128,192,238,255,238,192
DB 128,64,17,0,17,64,128
;bạn có thể tham khảo thêm ở bảng 13.5
;để biết giá trị cụ thể của sóng hình sin
Thuật toán gửi các giá trị liên tục tới
DAC để tạo sóng hình sin
Gán gía trị TABLE cho con trỏ DPTR

Xoá thanh ghi A Tại địa chỉ con trỏ DPTR

MOVC A,@A+DPTR Đưa nội dung vào các địa chỉ thứ tự trong ROM

A mang thông số điện áp , góc


ứng với giá trị đó được gửi tới DAC

You might also like