Giáo trình Vi điều khiển 8051 Assembly - Chương 12: Phối ghép với thế giới thực: LCD, ADC và các cảm biến

Trong những năm gần đây LCD đang ngày càng được sử dụng rộng rãi thay

thế dần cho các đèn LED (các đèn LED 7 đoạn hay nhiều đoạn). Đó là vì các nguyên

nhân sau:

1. Các LCD có giá thành hạ.

2. Khả năng hiển thị các số, các ký tự và đồ hoạ tốt hơn nhiều so với các đèn LED

(vì các đèn LED chỉ hiển thị được các số và một số ký tự).

3. Nhờ kết hợp một bộ điều khiển làm tươi vào LCD làm giải phóng cho CPU công

việc làm tươi LCD. Trong khi đèn LED phải được làm tươi bằng CPU (hoặc bằng

cách nào đó) để duy trì việc hiển thị dữ liệu.

4. Dễ dàng lập trình cho các ký tự và đồ hoạ.

pdf17 trang | Chuyên mục: Kiến Trúc Máy Tính | Chia sẻ: dkS00TYs | Lượt xem: 4686 | Lượt tải: 5download
Tóm tắt nội dung Giáo trình Vi điều khiển 8051 Assembly - Chương 12: Phối ghép với thế giới thực: LCD, ADC và các cảm biến, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 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. Tuy nhiên, trong thực tế thu đo dữ liệu 
các chân đất này được nối tách biệt. 
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à: 
a) Bật CS = 0 và gửi một xung thấp lên cao tới chân WR để bắt đầu chuyển đổi. 
b) Duy trì hiển thị chân INTR . Nếu INTRxuố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 INTR cao tiếp tục thăm dò cho đến khi nó 
xuống thấp. 
c) Sau khi chân INTRxuống thấp, ta bật CS = 0 và gửi một xung cao - xuống - thấp 
đến chân RD để 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 12.6. 
Hình 12.6: Phân chia thời gian đọc và ghi của ADC 804. 
12.2.3 Kiểm tra ADC 804. 
 Chúng ta có thể kiểm tra ADC 804 bằng cách sử dụng sơ đồ mạch trên hình 
12.7. thiết lập này được gọi là chế độ kiểm tra chạy tự do và được nhà sản xuất 
khuyến cao nên sử dụng. Hình 12.5 trình bày một biến trở được dùng để cắp một 
điện áp tương tự từ 0 đến 5V tới chân đầu vào. 
 Vin(+) của ADC 804 các đầu ra nhị phân được hiển thị trên các đèn LED của 
bảng huấn luyện số. Cần phải lưu ý rằng trong chế độ kiểm tra chạy tự do thì đầu vào 
CS được nối tới đất và đầu vào WR được nối tới đầu ra INTR . Tuy nhiên, theo tài 
liệu của hãng National Semiconductor “nút WR và INTR phải được tạm thời đưa 
xuống thấp kế sau chu trình cấp nguồn để bảo đảm hoạt động”. 
 Hình 12.7: Nối ghép ADC 804 với nguồn đồng hồ riêng. 
CS 
D0 – D7 Data out 
Read it 
End conversion Start conversion 
WR
INTR
RD
8051 ADC804 
P2.5 
P2.6 
P1.0 
P1.7 
P2.7 
D0 
D7 
INTR 
GND 
A GND 
Vref/2 
CLK IN 
CLK R 
VCC 
Vin(+) 
Vin(-) 
150pF 
5V 
10k 
10k 
POT 
RD
WR
CS
Ví dụ 12.7: 
 Hãy thử nối ghép ADC 804 với 8051 theo sơ đồ 12.7. Viết một chương trình 
để hiển thị chân INTR và lấy đầu vào tương tự vào thanh ghi A. Sau đó gọi một 
chương trình chuyển đổi mã Hex ra ASCII và một chương trình hiển thị dữ liệu. 
Thực hiện điều này liên tục. 
Lời giải: 
 ; Đặt P2.6 = WR (bắt đầu chuyển đổi cần 1 xung thấp lên cao) 
 ; Đặt chân P2.7 = 0 khi kết thúc chuyển đổi 
 ; Đặt P2.5 = RD (xung cao - xuống - thấp sẽ đọc dữ liệu từ ADC) 
 ; P1.0 – P1.7 của ADC 804 
 MOV P1, # 0FFH ; Chọn P1 là cổng đầu vào 
 BACK: CLR P2.6 ; Đặt WR = 0 
 SETB P2.6 ; Đặt WR = 1 để bắt đầu chuyển đổi 
 HERE: JB P2.7, HERE ; Chờ cho P2.7 to để kết thúc chuyển đổi 
 CLR P2.5 ; Kết thúc chuyển đổi, cho phép đọc RD 
 MOV A, P1 ; Đọc dữ liệu vào thanh ghi A 
 ACALL CONVERSION ; Chuyển đổi số Hex ra mã ASCII 
 ACALL DATA-DISPLAY ; Hiển thị dữ liệu 
 SETB P2.5 ; Đưa RD = 1 để cho lần đọc sau. 
 SJMP BACK 
Hình 12.8: Nối ghép ADC 804 với đồng hồ từ XTAL2 của 8051. 
 Trên hình 12.8 ta có thể thấy rằng tín hiệu đồng hồ đi vào ADC 804 là từ tần 
số thạch anh của 8051. Vì tần số này quá cao nên ta sử dụng hai mạch lật Rlip - Flop 
kiểu D (74LS74) để chia tần số này cho 4. Một mạch lật chia tần số cho 2 nếu ta nối 
đầu Q tới đầu vào D. Đối với tần số cao hơn thì ta cần sử dụng nhiều mạch Flip - 
Plop hơn. 
12.2.4 Phối ghép với một cảm biến nhiệt của 8051. 
8051 ADC804 
P2.5 
P2.6 
P1.0 
P1.7 
P2.7 
D0 
D0 
INTR 
GND 
A GND 
Vref/2 
CLK IN 
CLK R 
VCC 
Vin(+) 
Vin(-) 
5V 
10k 
POT 
RD
WR
CSD Q 
Q
D Q 
Q
74LS74 
 Các bộ biến đổi (Transducer) chuyển đổi các đại lượng vật lý ví dụ như nhiệt 
độ, cường độ ánh sáng, lưu tốc và tốc độ thành các tín hiệu điện phụ thuộc vào bộ 
biến đổi mà đầu ra có thể là tín hiệu dạng điện áp, dòng, trở kháng hay dung kháng. 
Ví dụ, nhiệt độ được biến đổi thành về các tín hiệu điện sử dụng một bộ biến đổi gọi 
là Rhermistor (bộ cảm biến nhiệt), một bộ cảm biến nhiệt đáp ứng sự thay đổi nhiệt 
độ bằng cách thay đổi trở kháng nhưng đáp ứng của nó không tuyến tính (xem bảng 
12.6). 
 Bảng 12.6: Trở kháng của bộ cảm biến nhiệt theo nhiệt độ. 
Nhiệt độ (0C) Trở kháng của cảm biến (kW) 
0 29.490 
25 10.000 
50 3.893 
75 1.700 
100 0.817 
 Bảng 12.7: Hướng dẫn chọn loạt các cảm biến họ LM34. 
Mã ký hiệu Dải nhiệt độ Độ chính xác Đầu ra 
LM34A -55 F to + 300 C + 2.0 F 10mV/F 
LM34 -55 F to + 300 C + 3.0 F 10mV/F 
LM34CA -40 F to + 230 C + 2.0 F 10mV/F 
LM34C -40 F to + 230 C + 3.0 F 10mV/F 
LM34D -32 F to + 212 C + 4.0 F 10mV/F 
 Bảng 12.8: Hướng dẫn chọn loạt các cảm biến nhiệt họ LM35. 
Mã sản phẩm Dải nhiệt độ Độ chính xác Đầu ra 
LM35A -55 C to + 150 C + 1.0 C 10 mV/F 
LM35 -55 C to + 150 C + 1.5 C 10 mV/F 
LM35CA -40 C to + 110 C + 1.0 C 10 mV/F 
LM35C -40 C to + 110 C + 1.5 C 10 mV/F 
LM35D 0 C to + 100 C + 2.0 C 10 mV/F 
 Tính chất gắn liện với việc viết phần mềm cho các thiết bị phi tuyến như vậy 
đã đưa nhiều nhà sản xuất tung ra thị trường các loạt bộ cảm biến nhiệt tuyến tính. 
Các bộ cảm biến nhiệt đơn giản và được sử dụng rộng rãi bao gồm các loạt họ LM34 
và LM35 của hãng National Semiconductor Corp. 
12.2.5 Các bộ cảm biến nhiệt họ LM34 và LM35. 
 Loạt các bộ cảm biến LM34 là các bộ cảm biến nhiệt mạch tích hợp chính 
xác cao mà điện áp đầu ra của nó tỷ lệ tuyến tính vơí nhiệt độ Fahrenheit (xem hình 
12.7). loạt LM34 không yêu cầu cân chỉnh bên ngoài vì vốn nó đã được cân chỉnh 
rồi. Nó đưa ra điện áp 10mV cho sự thay đổi nhiệt độ 10F. bảng 12.7 hướng dẫn ta 
chọn các cảm biến loạt LM34. 
 Loạt các bộ cảm biến LM35 cũng là các bộ cảm biến nhiệt mách tích hợp 
chính xác cao mà điện áp đầu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ 
Celsius. Chúng cũng không yêu cầu cân chỉnh ngoài vì vốn chúng đã được cân 
chỉnh. Chúng đưa ra điện áp 10Mv cho mỗi sự thay đổi 10C. Bảng 12.8 hướng dẫn ta 
chọn các cảm biến họ LM35. 
12.2.6 Phối hợp tín hiệu và phối ghép LM35 với 8051. 
 Phối hợp tín hiệu là một thuật ngữ được sử dụng rộng rãi trong lĩnh vực thu đo 
dữ liệu. Hầu hết các bộ biến đổi đều đưa ra các tín hiệu điện dạng điện áp, dòng 
điện, dung kháng hoặc trở kháng. Tuy nhiên, chúng ta cần chuyển đổi các tín hiệu 
này về điện áp nhằm gửi đầu vào đến bộ chuyển đổi ADC. Sự chuyển đổi (biến đổi) 
này được gọi chung là phối hợp tín hiệu. Phối hợp tín hiệu có thể là việc chuyển đổi 
dòng điện thành điện áp hoặc sự khuyếch đại tín hiệu. Ví dụ, bộ cảm biến nhiệt thay 
đổi trở kháng với nhiệt độ. Sự thay đổi trở kháng phải được chuyển thành điện áp để 
có thể được sử dụng cho các ADC. Xét trường hợp nối một LM35 tới một ADC 804 
vì ADC 804 có độ phân dải 8 bít với tối đa 256 bước (28) và LM35 (hoặc ML34) tạo 
điện áp 10mV cho mỗi sự thay đổi nhiệt độ 10C nên ta có thể tạo điều kiện Vin của 
ADC 804 tạo ra một Vout = 2560mV (2,56V) cho đầu ra đầu thang đo. do vậy, nhằm 
tạo ra Vout đầy thang 2,56V cho ADC 804 ta cần đặt điện áp Vref/2 = 1,28V. Điều này 
làm cho Vout của ADC 804 đáp ứng trực tiếp với nhiệt độ được hiển thị trên LM35 
(xem bảng 12.9). Các giá trị của Vref/2 được cho ở bảng 12.5. 
 Bảng 12.9: Nhiệt độ. 
Nhiệt độ (0C) Vin (mV) Vout (D7 – D0) 
0 0 0000 0000 
1 10 0000 0001 
2 20 0000 0010 
3 30 0000 0011 
10 100 0000 1010 
30 300 0001 1110 
Các đại lượng vật lý 
(nhiệt độ, áp suất, lưu tốc v.v…) 
Bộ biến đổi 
Phối hợp tín hiệu 
ADC 
Bộ vi điều khiển 
 Hình 12.9: Thu đo các đại lượng vật lý. 
Hình 12.10 
Hình 12.10: Nối ghép 8051 với DAC 804 và cảm biến nhiệt độ. 
 Hình 12.10 biểu diễn nối ghép của bộ cảm biến nhiệt đến ADC 804. Lưu ý 
rằng ta sử dụng đi ốt zener LM336 - 2.5 để cố định điện áp qua biến trở 10kW tại 
2,5V. Việc sử dụng LM336 - 2.5 có thể vượt qua được mọi dao động lên xuống của 
nguồn nuôi. 
12.2.7 Chíp ADC 808/809 với 8 kênh tương tự. 
 Một chíp hữu ích khác của National Semiconductor là ADC 808/809 (xem 
hình 12.11). Trong khi ADC 804 chỉ có một đầu vào tương tự thì chíp này có 8 kênh 
đầu vào. Như vậy nó cho phép ta hiển thị lên 8 bộ biến đổi khác nhau chỉ qua một 
chíp duy nhất. Lưu ý rằng, ADC 808/809 có đầu ra dữ liệu 8 bít như ADC 804. 8 
kênh đầu vào tương tự được dồn kênh và được chọn theo bảng 12.10 sử dụng ba chân 
địa chỉ A, B và C. 
 (LSB) 
GND Clock Vcc 
ADC808/809 
Vref(+) 
Vref(-) 
C C A SC ALE 
OE 
EOC 
D7 
D0 IN0 
IN7 
8051 ADC804 
P2.5 
P2.6 
P1.0 
P1.7 
P2.7 
D0 
D7 
INTR 
GND 
A GND 
Vref/2 
CLK IN 
CLK R 
VCC 
Vin(+) 
Vin(-) 
5V 
RD
WR
CSD Q 
Q
D Q 
Q
Set to 
1.28V 
GND 
LM35 or 
LM34 
LM
336 
2.5k 
10k 
 Hình 12.11: Bộ biến đổi ADC 808/809. 
 Bảng 12.10: Chọn kênh tương tự của ADC 808. 
Chọn kênh tương tự C B A 
IN0 0 0 0 
IN1 0 0 1 
IN2 0 1 0 
IN3 0 1 1 
IN4 1 0 0 
IN5 1 0 1 
IN6 1 1 0 
IN7 1 1 1 
 Trong ADC 808/809 thì Vrer(+) và Vref(-) thiết lập điện áp tham chiếu. Nếu 
Vref (-1) = Gnd và Vref (+) = 5V thì độ phân dải là 5V/256 = 19,53mV. Do vậy, để có 
độ phân dải 10mV ta cần đặt Vref (+) = 2,56V và Vref (-) = Gnd. Từ hình 12.11 ta thấy 
có chân ALE. Ta sử dụng các địa chỉ A, B và C để chọn kênh đầu vào IN0 – IN7 và 
kích hoạt chân ALE để chốt địa chỉ. Chân SetComplete để bắt đầu chuyển đổi (Start 
Conversion). Chân EOC được dùng để kết thúc chuyển đổi (End - Of - Conversion) 
và chân OE là cho phép đọc đầu ra (Out put Enable). 
12.2.7 Các bước lập trình cho ADC 808/809. 
 Các bước chuyển dữ liệu từ đầu vào của ADC 808/809 vào bộ vi điều khiển 
như sau: 
1. Chọn một kênh tương tự bằng cách tạo địa chỉ A, B và C theo bảng 12.10. 
2. Kích hoạt chân ALE (cho phép chốt địa chỉ Address Latch Enable). Nó cần xung 
thấp lên cao để chốt địa chỉ. 
3. Kích hoạt chân SCbằng xung cao xuống thấp để bắt đầu chuyển đổi. 
4. Hiển thị OEC để báo kết thúc chuyển đổi. Đầu ra cao - xuống - thấp báo rằng dữ 
liệu đã được chuyển đổi và cần phải được lấy đi. 
5. Kích hoạt OE cho phép đọc dữ liệu ra của ADC. Một xung cao xuống thấp tới 
chân OE sẽ đem dữ liệu số ra khỏi chíp ADC. 
Lưu ý rằng trong ADC 808/809 không có đồng hồ riêng và do vậy phải cấp 
xung đồng bộ ngoài đến chân CLK. Mặc dù tốc độ chuyển đổi phụ thuộc vào tần số 
đồng hồ được nối đến CLK nhưng nó không nhanh hơn 100ms. 

File đính kèm:

  • pdfVi_dieu_khien_8051_ Assembly_12_LCD_ADC_cam bien.pdf