Cỏc bộ chuyển đổi ADC được sử dụng rất rộng rói. Lý do là mỏy tớnh làm việc trờn cỏc giỏ trị nhị phõn, tuy nhiờn trong thực tế, cỏc đại lượng vật lý đều ở
dạng tương tự (liờn tục) vớ dụ: nhiệt độ, ỏp suất, lưu lượng, … là cỏc đại lượng vật lý được chuyển về dũng điện hoặc điện ỏp (tương tự) qua một thiết bị gọi là bộ biến đổi. Do vậy cần một bộ chuyển đổi tương tự số để bộ vi điều khiển cú thểđọc được chỳng. Chip ADC được sử dụng rộng rói hiện nay đú là ADC0804.
4.3.2.1. Giới thiệu về ADC0804
ADC0804 là bộ chuyển đổi tương tự – số thuộc họ ADC0800 của hóng National Semiconductor. Chip cú điện ỏp nuụi +5V và độ phõn giải 8 bit. Ngoài độ phõn giải thỡ thời gian chuyển đổi cũng là một thụng số quang trọng đỏnh giỏ bộ ADC. Đú là thời gian cần thiết để bộ ADC chuyển đầu vào tương tự thành số nhị phõn. Đối với ADC0804 thời gian chuyển đổi phụ
thuộc vào tần số đồng hồ cấp tới chõn CLK và CLK IN và khụng bộ hơn 110às. Hỡnh 5.6.2a mụ tả ADC ở chếđộ chạy tự do.
- CS (Chip Select) - Chọn chip: Đầu vào tớch cực mức thấp được sử
dụng để kớch hoạt chip ADC0804.
- RD (Read) – Đọc: Tớn hiệu vào tớch cực mức thấp. Khi CS = 0 và nếu cú một xung từ cao xuống thấp ỏp đến chõn RD thỡ dữ liệu ra dạng số
8 bit được đưa tới cỏc chõn dữ liệu D0 – D7. Chõn RD cũn được gọi là chõn cho phộp đầu ra.
- WR (Write) – Ghi: Chõn này dựng để bỏo cho ADC0804 bắt đầu quỏ
trỡnh chuyển đổi. Nếu CS = 0 khi WR tạo ra xung thấp lờn cao thỡ bộ
ADC0804 bắt đầu tiến hành chuyển đổi giỏ trị đầu vào tương tự Vin về số nhị phõn 8 bit. 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 ADC0804 hạ
xuống thấp.
- CLK IN và CLK R: CLK IN là chõn vào nối tới đồng hồ ngoài khi
đồng hồ ngoài được sử dụng để tạo thời gian. Tuy nhiờn ADC0804 cũng cú một bộ tạo xung đồng hồ trờn chip. Để dựng đồng hồ trong 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ở (hỡnh 5.6.2a). Tần sốđồng hồđược xỏc định như sau:
RCf f 1 , 1 1 =
Giỏ trị thụng thường của đại lượng trờn là R = 10K, C = 150pF và tần số nhận được là f = 606 KHz, thời gian chuyển đổi sẽ là 110às.
- INTR (Interrupt) – Ngắt: Cũn gọi là kết thỳc việc chuyển đổi. Đõy là chõn ra tớch cực mức thấp. Bỡnh thường chõn này ở mức cao khi chuyển đổi hoàn tất thỡ nú chuyển xuống mức 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 INTR xuống thấp cần đặt CS = 0 và gửi một xung cao xuống thấp tới chõn RD để đưa dữ liệu ra.
- Vin (+) và Vin (-): Đõy là hai đầu vào tương tự vi sai, trong đú
- Vin = Vin (+) – Vin (-). Thụng thường Vin (-) được nối xuống đất và Vin (+) được dựng làm đầu vào tương tự và tớn hiệu này sẽ được chuyển về dạng số.
- VCC: Là chõn nguồn nuụi +5V. Chõn này cũn được dựng làm điện ỏp
- Vref/2: Là chõn điện ỏp đầu vào được dựng làm điện ỏp tham chiếu. Nếu chõn này hở (khụng được nối đất) thỡ điện ỏp đầu vào tương tự
cho ADC0804 nằm trong dải 0 đến 5 V (giống như Vcc). Tuy nhiờn cú nhiều ứng dụng mà đầu vào tương tự ỏp đến Vin khỏc với dải 0 đến 5V. Bảng 5.6.2b biểu diễn quan hệ dải điện ỏp Vin đối với cỏc đầu vào Vref/2 khỏc nhau:
VIN+ 6 VIN- 7 VREF/2 9 CLK IN 4 A GND 8 RD 2 WR 3 INTR 5 CS 1 D GND 10 DB7(MSB) 11 DB6 12 DB5 13 DB4 14 DB3 15 DB2 16 DB1 17 DB0(LSB) 18 CLK R 19 VCC 20 U1 ADC0804 TUONG TU - SO Sơđồ chõn của ADC8084
Hỡnh 5.6.2a. Kiểm tra ADC ở chếđộ chạy tự do
Vref/ 2 (V) Vin(V) Kớch thước bước (mV)
Hở 0 đến 5 5/256 = 19.53 2.0 0 đến 4 4/256 = 15.62 1.5 0 đến 3 3/256 = 11.71 1.28 0 đến 2.56 2.56/256 = 10 1.0 0 đến 2 2/256 = 7.81 0.5 0 đến 1 1/256 = 3.90
Bảng 5.6.2b. Quan hệđiện ỏp Vref/2 với Vin
Kớch thước bước là sự thay đổi nhỏ nhất mà ADC cú thể phõn biệt
được.
- D0 – D7: Là cỏc chõn dữ liệu số. Cỏc chõn này được đệm 3 trạng thỏi và dữ liệu đó được chuyển đổi chỉ được truy cập khi chõn CS = 0và chõn RD đưa xuống mức thấp. Để tớnh điện ỏp đầu ra cú thể sử dụng cụng thức sau: buoc thuoc kich V D in out = - Dout: Là đầu ra dữ liệu số - Vin: Điện ỏp đầu vào tương tự
Như vậy ta cú thể túm tắt cỏc bước khi ADC chuyển đổi dữ liệu là: 1. Bật WR = 1 để gửi một xung thấp lờn cao để bắt đầu chuyển đổi. 2. Duy trỡ kiểm tra chõn INTR. Nếu INTR xuống thấp thỡ việc chuyển
đổi được hoàn tất và cú thể chuyển sang bước tiếp theo.
3. Sau khi chõn INTR xuống thấp , bật CS = 0 và gửi một xung cao xuống thấp đến chõn RD để nhận dữ liệu từ chip ADC0804. Phõn chia thời gian cho quỏ trỡnh này được trỡnh bày như sau (hỡnh 5.6.2c).
Hỡnh 5.6.2c. Phõn chia thời gian đọc và ghi của ADC0804
4.3.2.2. Nối ghộp ADC0804 với 8051 và lập trỡnh
Sơ đồ ghộp nối ADC0804 với 8051 như hỡnh vẽ (hỡnh 5.6.2d) sử
dụng nguồn đồng hồ sẵn cú trong 8051.
Từ sơ đồ ghộp nối hóy: Viết chương trỡnh kiểm tra chõn INTR và chuyển tớn hiệu đầu vào tương tự vào thanh ghi A.
CS D0 – D7 Ra dữ liệu