CHƯƠNG 1.MỞ ĐẦU 4
1.Tổng quan: 4
2.Nôi dung báo cáo : 4
4
CHƯƠNG 2 .VẤN ĐỀ CHUYỂN ĐỔI ADC(SỬ DỤNG MẠCH SO SÁNH) 5
1 . MẠCH SO SÁNH: 5
2. Mạch ADC kiểu so sánh song song 6
3 . Mạch ADC kiểu đếm: 8
4 . Mach ADC sử dụng điện áp răng cưa: 9
5 . Mạch ADC so sánh liên 9
6 . Mạch ADC xấp xỉ liên tiếp 10
7 . Độ chính xác của mạch chuyển đổi tương tự_số : 10
8. Vấn đề giải mã để hiển thị số: 11
9. Lưa chọn phương pháp biến đổi điện áp tương tự thành tín hiệu số: 12
CHƯƠNG 2. VẤN ĐỀ BIẾN ĐỒI NHIỆT ĐIỆN 13
1. Vào đề 13
2 Nhiệt kế cặp nhiệt ngẫu 14
3 . Nhiệt kế điện trở :dùng nhiệt điện trở 14
4 . Lựa chọn phương pháp biến đổi nhiệt - điện 16
CHƯƠNG 4 . XEM XÉT VÀ LỰA CHỌN LINH KIỆN CHO TỪNG BỘ PHẬN 17
1 . Cấu trúc cơ bản của một dụng cụ đo nhiệt độ: 17
2.Phân loại dụng cụ đo: 17
3. Sơ đồ nguyên lí chức năng : 18
4. Sơ đồ thực tế của các bộ phận tương ứng : 19
CHƯƠNG 5 .VẤN ĐỀ PHỐI HỢP GIỮA CÁC BỘ PHẬN. 33
1 . Phối hợp giữa bộ biến đổi tương tự số và bộ vi điều khiển AT89S52: 33
2.Phối hợp giữa bộ cảm biến và bộ vi điều khiển : 35
3.Phối hợp bộ vi điều khiển với đèn LED 7thanh : 35
CHƯƠNG 6 . TỔNG THỂ TOÀN MẠCH . 36
1. Sơ đồ nguyên lí 38
2.Sơ đồ chân lắp ráp của mạch đo 39
CHƯƠNG 7 . VẤN ĐỀ LẬP TRÌNH CHO IC VI ĐIỀU KHIỂN 40
1.Trình tự thực hiện : 40
2.Lựa chọn ngôn ngữ để lập trình cho IC : 40
3.Xây dựng lưu đồ thuật toán của chương trình : 41
4.Viết chương trình viết theo ngôn ngữ C: 43
5.Nạp chương trình cho IC vi điều khiển: 45
CHƯƠNG 8 . VẤN ĐỀ ĐO LƯỜNG 49
1.Caùc ñònh nghóa vaø ñaëc tröng chung 49
2. Caùc ñaïi löôïng aûnh höôûng ñeán tín hieäu ño 50
3.Sơ đồ khối tổng quát của một maïch ño 51
4. Sai soá cuûa pheùp ño 52
5. Chuaån caûm bieán 55
6. Ñoä nhaïy 56
7. Ñoä nhanh – thôøi gian hoài ñaùp 56
60 trang |
Chia sẻ: huong.duong | Lượt xem: 1674 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Mạch đo nhiệt độ hiển thị ra đèn Led, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
huếch đại của mạch trong trường hợp này được tính theo biểu thức:
K’ =
Trở kháng vào trong sơ đồ này bằng đúng điện trở vào hiệu, nghĩa là:
ZV = rd =
vì điện áp vào UV được đặt trực tiếp vào cửa thuận.
Đây là một đặc điểm rất quan trọng của sơ đồ khuếch đại thuật toán. Nó được sử dụng trong các bộ khuếch đại yêu cầu trở kháng vào lớn.
Trường hợp bộ khuếch đại thực: K0 hữu hạn
Theo hình (a) ở ngay trên ta có:
vì K0 hữu hạn
Từ hai biểu thức trên ta tìm được:
Bộ khuếch đại thuận có điện áp vào đồng pha, vì lúc này UN = UV 0. Do đó hệ số nén tín hiệu đồng pha trong bộkhuếch đại thực hữu hạn, nên trong mạch có thêm sai số do điện áp đồng pha gây nên.
Bảng tóm tắt một số đặc điểm của hai cách mắc bộ khuếch đại thuật toán
Khuếch đại đảo
Khuếch đại thuận
Hồi tiếp âm nối tiếp điện áp
Hồi tiếp âm nối tiếp điện áp
Điện áp ra ngược pha với điện áp vào
Điện áp ra cùng pha với điện áp vào
Đầu vào đảo có điện thế = 0 ( điểm đất ảo)
Đầu vào đảo có điện thế = điện áp vào
Dòng qua R1,RN : IV =UV/R1 nguồn tín hiệu cung cấp , do đó nguồn tín hiệu vào phải lớn
Dòng qua R1,RN : IV =UV/R1không chạy qua nguồn tín hiệu , do đó không yêu cầu công suất của nguồn tín hiệu
Trở kháng vào ZV = R1
ZV =
Không có điện áp vào đồng pha
Điện áp vào đồng pha Ucm = UV
Hệ số hồi tiếp Kht =
Hệ số hồi tiếp Kht =
Nhiệm vụ của khối khuếch đại trong đề tài và cách ghép nối:
Khèi nµy lµm nhiÖm vô giao tiÕp trung gian gi÷a khèi c¶m biÕn vµ ADC.
V× Vout=2,73+0,01ToC, ®Ó ®¬n gi¶n hãa qu¸ tr×nh tÝnh to¸n, ta ph¶i khö phÇn ®iÖn ¸p kh«ng ®æi 2,73(V).
R3
+5V
R1
R5
D1
Khối cảm biến
V2
VR1
V1
IF
ADC
-
+
Vo
VR2
Vcc
R4
R2
MÆt kh¸c, ADC chØ xö lÝ ®îc tÝn hiÖu trong kho¶ng 0V÷5V, kho¶ng nhiÖt ®é cÇn ®o tõ 0÷100oC, nªn cÇn ph¶i khuÕch ®¹i tÝn hiÖu nµy lªn 5 lÇn.
VoutK§ = 0,05*ToC
S¬ ®å khèi bé khuÕch ®¹i (d¹ng m¹ch trõ):
Th«ng sè cña c¸c linh kiÖn sau khi tÝnh to¸n sÏ lµ:
- Bé khuyÕch ®¹i HA741
- §iot Zener 3V, 20mA
- VR1=15KΩ, VR2=10KΩ
- R = 5KΩ, R1 = 100Ω, R2 = R3 = 1KΩ, R4 = R5 = 5KΩ
c)Bộ biến đổi tín hiệu tương tự thành tín hiệu số :
Ta chọn IC ADC0809 để thực hiện nhiệm vụ này.Nó hoạt động theo nguyên tắc xấp xỉ liên tiếp .
Vi mạch ADC0809 là biến đổi A/D tác động nhanh và giá thành không cao nên có thể được sử dụng trong nhiều ứng dụng .Nó qui định về quyền sử dụng các lối ra dữ liệu song song ,các lối ra này tương thích TTL. Qua một lối vào điều khiển , các lối ra có thể chuyển sang trạng thái điện cao , và nhờ thế vi mạch có thể đệm vào 1 bus dữ liệu .Ngoài ra nó còn qui định cả về quyền sử dụng các lối vào điều khiển ghi đọc .Lối vào analog là không so sánh với mass mà là lối vào vi phân , nghĩa là vi phân điện áp ở 2 chân lối vào VIN+ và VIN- được biến đổi . Điều đáng đề cập ở đây là khi điện áp nguồn nuôi là +5V , dải điện áp của nối vào analog có thể đạt đến 5V.ADC0809 có 8 kênh lối vào làm việc hoàn toàn độc lập nhau .Còn một điểm nữa cần quan tâm là sự tiêu thụ dòng điện của vi mạch hầu như không đáng kể (chỉ cỡ 300 micro Ampe).Thời gian biến đổi cỡ 100 micro giây .
Sơ đồ chân chức năng:
Các thông số kĩ thuật :
-Không cần điều chỉnh điểm 0.
-Quét động 8 kênh bằng logic địa chỉ .
-Dải tín hiệu lối vào analog lối vào khi điện áp nguồn nuôi là +5V.
-Tất cả các tín hiệu tương thích TTL .
-Độ phân giải 8bit.
-Thời gian biến đổi :100 micro s.
-Dòng tiêu thụ (bình thường):0,3mA.
Sơ đồ khối cấu trúc của vi mạch :
Hình dưới đây chỉ ra một mạch điển hình được thiết kế cho bộ biến đổi ADC0809 . Mạch điện này cũng có ổ nối 32chân như là giao diện để ghép nối qua đó mỗi môđun cơ sở có thể đấu nối vào .Theo cách này ta có thể điều khiển bộ biến đổi A/D ADC0809 từ máy tính qua giao diện máy in hoặc qua giao diện nối tiếp RS232.Tín hiệu giữ nhịp dùng cho bộ biến đổi A/D cần phải được tạo ra ở bên ngoài và được dẫn đến chân CLOCK. Điện áp so sánh được đưa qua tầng lặp lại điện áp để đến chân ra VREF+ ,chân này có điện trở nối vào cỡ 2,5 kilo Ôm. Tám kênh lối vào analog được dẫn đến các chân IN0 đến IN7 . Mẫu bit ở các lối vào địa chỉ A,B,C sẽ xác định xem kênh nào phải đươc lựa chọn . Khi đó việc lựa chọn tuân theo qui định sắp xếp dưới đây :
C
B
A
Kênh lối vào được kích hoạt
0
0
0
IN0
0
0
1
IN1
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
Nguyên tắc làm việc của bộ biến đổi ADC0809 cũng không có gì phức tạp . Một xung dương ở chân START kích hoạt sự biến đổi . Qua đó mẫu bit ở các lối vào địa chỉ A,B,C cũng đồng thời được chốt và xác định kênh cần biến đổi . Trong quá trình biến đổi chân ra EOC đứng ở mức LOW . Sau cỡ 100 micro s , EOC sẽ chuyển sang HIGH và báo hiệu sự kết thúc quá trình biến đổi . Sau đó , kết quả của quá trình biến đổi sẽ được xếp hàng ở các đường dẫn dữ liệu D0 à D7 . Khi OE=1 các đường dẫn có thể được đọc tiếp .
a
b
10:CLK VCC:11
GND:13
12:VREF+ D7:21
D6:20
D5:19
EOF D4:18
D3:8
D2:15
7:VREF- D1:14
D0:17
5:IN7 Start:6
4:IN6
3:IN5 ALE
2:IN4
1:IN3 C:25
28:IN2 B:24
27:IN1 A:23
26:IN0 OE:9
2k
ADC0809
1,5k
LM336
1micro
150pF
LM358
5V
o
o o
o o
o o
o o
o o
o o
o o
o o
o o
o o
o o
o o
o o
o o
o o
Modun biến đổi A/D 8 bit 8 kênh dùng vi mạch ADC 0809
d)Bộ xử lý tín hiệu :làm nhiệm vụ giải mã nhị phân BCD thành tín hiệu điều khiển sự hiển thị của bộ chỉ thị .Ta chọn IC AT89S52( rất thích hợp cho việc thử nghiệm) , một vi điểu khiển thuộc họ 8051. Đây là một IC lập trình được . Nó là phiên bản 8051 có ROM trên chip là bộ nhớ Flash . Phiên bản này rất thích hợp cho các ứng dụng nhanh vì bộ nhớ Flash có thể xoá trong vài giây , có thể lập trình qua cổng COM hay cổng máy in của máy tính PC và như vậy sẽ không cần bộ đốt PROM . Các thông số kĩ thuật của IC89S52:
-Dung lượng bộ nhớ ROM : 8k.
-Dung lượng RAM :256 byte
-Số chân I/O:32 chân .
-Số bộ định thời : 3 bộ .
-Có bộ định thời kiểm tra.
-Số đầu ngắt : 8 đầu .
-Có con trỏ dữ liệu kép .
-Nguồn cung cấp : 5V .
-Tổng cộng 40 chân .
Chữ C trong kí hiệu AT89C51 là để chỉ ra rằng IC này được làm theo công nghệ CMOS(tiêu thụ năng lượng thấp ).Vi mạch này thường được đóng vỏ DIP . Ta sẽ nói rõ hơn về phần lập trình cho vi điều khiển này ở phần sau . Bây giờ , ta sẽ xem xét sơ đồ chân chức năng của IC :
-VCC: Chân nguồn cung cấp .
-GND : Chân nối đất .
-PORT 0: để vừa làm cổng ra và vào trực tiếp vào/ra 8bit thì phải nối thêm với điện trở kéo . Khi đóng vai trò lá cổng ra , nó có thể nối với 8 đầu vào TTL . Khi ghi 1 vào các chân của cổng PORT 0 thì các chân đó sẽ được dùng như là 1 đầu vào trở kháng cao . Khi nối với bộ nhớ ngoài , cổng này cung cấp cả địa chỉ và dữ liệu bằng cách dồn kênh để tiết kiệm số chân (ALE=0 à PORT 0 cấp dữ liệu , ALE =1 àPORT 0 cấp địa chỉ .
-PORT 1:Không cần nối thêm điện trở kéo dài vì nó đã có các điện trở kéo bên trong . Đây cũng là cổng vào ra 8 bit . Cổng này khi giữ chức năng làm đầu vào thì cũng tương tự như PORT 0 chỉ khác là chỉ có thể nối với 4 đầu vào TTL . Chân P1.0 và P1.1 cũng có thể làm 2đầu vào bộ đếm ngoài hay 2đầu vào lật trạng thái . PORT 1 cũng có khả năng thu nhận những bit địa chỉ ở mức cao trong suốt quá trình lập trình và kiểm tra bộ nhớ
-PORT 2: Cũng tương tự như PORT 1 , nó cũng làm cổng vào /ra 8 bit và có sẵn điện trở kéo bên trong . Cổng dùng để truyển cả dữ liệu và địa chỉ …
-PORT 3 : cũng tương tự các cổng 1 và 2 . Ngoài ra nó cung cấp thêm 1số tín hiệu đặc biệt khác .Các chân của PORT 3 được dùng với các chức năng khác nhau được cho ở dưới bảng sau :
Chân
Chức năng
P3.0
Vào nối tiếp (RXD)
P3.1
Ra nối tiếp (TXD)
P3.2
Ngắt ngoài 0(int0)
P3.3
Ngắt ngoài 1(INT1)
P3.4
Đầu vào bộ định thời T0
P3.5
Đầu vào bộ định thời T1
P3.6
WR
P3.7
RD
-RST (RESET INPUT) : đó là cổng vào , tích cực ở mức cao, bình thường ở mức thấp . Khi có xung cao đặt ở chân này , thì bộ vi điều khiển sẽ kết thúc mọi hoạt động hiện tại và tiến hành khởi động lại . Quá trình xảy ra hoàn toàn tương tự như khi bật nguồn . Khi reset mọi giá trị trên các thanh ghi đều bị xoá . Để reset có hiệu quả , cần duy trì chân RST tối thiểu 2 chu kì máy .Bit DISRTO trong thanh ghi SFR AXUR có thể được sử dụng để không sử dụng kết nối chân này .
- (address latch enable): là 1xung đầu ra dùng để chốt byte thấp của địa chỉ trong suốt quá trình truy xuất bộ nhớ ngoài . Đồng thời nó cũng là đầu ra xung chương trình trong suốt quá trình lập trình cho bộ nhớ Flash. Khi hoạt động bình thường ,ALE được phát ra ở 1 tốc độ khoảng 1\6 chu kì dao động và có thể được dùng cho bộ định thời và bộ xung đồng hồ ở bên ngoài . Chú ý : xung ALE cũng có thể được bỏ qua trong mỗi quá trình truy xuất bộ nhớ dữ liệu bên ngoài .Nếu muốn , chức năng của ALE có thể không hoạt động bằng cách thiết lập bit 0 của thanh ghi SFR .Bằng cách đó , ALE chỉ hoạt động trong cấu trúc lệnh MOVC or MOVX .
-(Program store enable): Khi IC89S52 nhận được mã chương trình từ bộ nhớ chương trình bên ngoài , chân này được làm hoạt động 2 lần trong mỗi chu kỳ máy , còn đâu bị bỏ qua hết trong suốt quá trình truy xuất bộ nhớ dữ liệu bên ngoài
- (External Acess Enable):là chân vào . Chân này phải được nối với đất để cho phép thiết bị nhận mã từ bộ nhớ chương trình bên ngoài (địa chỉ từ 0000H đến FFFFH). Chân này được nối với nguồn khi mà thực hiện việc lẩp trình với bộ nhớ gắn trên chip. Chân này cũng thu nhận được điện áp cho phép lập trình 12 V trong suốt quá trình lập trình cho bộ nhớ trong Flash.
- : là đầu vào nối tới bộ khuếch đại dao động nghịch đảo, và tới mạch tạo dao động trên chip.
- : đầu ra từ bộ khuếch đại dao động nghịch đảo.
e)Bộ hiển thị :Ta chọn đèn LED 7 thanh .
CHƯƠNG 5 .VẤN ĐỀ PHỐI HỢP GIỮA CÁC BỘ PHẬN.
1 . Phối hợp giữa bộ biến đổi tương tự số và bộ vi điều khiển AT89S52:
Các bước lập trình cho ADC 0809 chuyển dữ liệu vào đầu vào vi điều khiển :
-Chọn một kênh tương tự đầu vào ADC bằng cách dùng các chân địa chỉ A , B, C theo bảng sau:
C
B
A
Kênh lối vào được kích hoạt
0
0
0
IN0
0
0
1
IN1
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
XTLA1 P2.5
P2.6
P1.0
XTAL2
AT89S52
P1.7
P2.7
P2.0
P2.1
P2.2
P2.3
OE Vcc
SC CLK
D0 IN0
ADC0809
D7 IN7
EOC GND
A Vref(+)
B Vref(-)
C
ALE
D Q
_
Q
D Q
_
Q
2,5k
-Kích hoạt chân cho phép chốt địa chỉ ALE bằng cách đưa 1 xung thấp lên cao để chốt địa chỉ .
-Kích hoạt chân SC bằng xung cao xuống thấp để bắt đầu chuyển đổi .
-Giám sát EOC để báo kết thúc chuyển đổi . Đầu ra cao xuống thấp báo hiệu rằng dữ liệu đã được chuyển đổi xong và cần được lấy đi .
-Kích hoạt chân đọc dữ liệu ra OE của ADC bằng xung cao xuống thấp .
Đối với ADC0809 , các điện áp Vref(+) và Vref(-) thiết áp điện áp tham chiếu . Nếu Vref(-) = GND và Vref(+) = 5V thì độ phân giải là 5V/256 = 19,53 mV . Do vậy , để có độ phân giải là 10mV thì ta cần đặt Vref(+) = 2,56V và Vref(-) = GND .
Các chân địa chỉ A,B,C được dùng để chọn kênh đầu vào IN0 – IN7 và kích hoạt chân ALE chốt địa chỉ . Chân SC dùng để bắt đầu chuyển đổi ( start conversion) . Chân EOC dùng để kết thúc chuyển đổi ( End of conversion) và chân OE cho phép đọc đầu ra (output enable ).
Lưu ý rằng ADC0809 không đồng hồ riêng và do vậy phải cấp xung đồng hồ 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 tốc độ này không thể vượt quá 100 ms.
Ở đây sử dụng LM336-2.5 để cố định điện áp 2,5 V trên triết áp 10 kilô Ôm ,có thể khắc phục được sự thăng giáng của nguồn nuôi
2.Phối hợp giữa bộ cảm biến và bộ vi điều khiển :
Hầu hết các bộ cảm biến đều đưa ra tín hiệu dạng điện áp , dòng điện , dung kháng hoặc trở kháng . Tuy nhiên , ta cần đưa đưa tín hiệu này về dạng điện áp hoặc khuếch đại điện áp để đưa đến đầu vào bộ chuyển đổi ADC . Sự chuyển đổi này gọi là phối hợp tín hiệu . Ví dụ , bộ cảm biến nhiệt thay đổi trở kháng theo nhiệt độ . Sự thay đổi trở kháng cần được chuyển thành sự biến đổi đáp để bộ biến đổi ADC có thể sử dụng được . Với trường hợp nối LM35 với ADC0809 , ta thấy bộ cảm biến có độ phân giải 8 bit với tối đa là 256 mức và LM35 tạo ra điện áp 10 mV ứng với sự thay đổi nhiệt độ 1 độ C , nên ta có thể phối hợp đầu vào ADC để tạo ra đầy thang đo là 2,56V . Để tạo ra Vout đầy thang đo là 2,56 V của đầu ra bộ cảm biến ta cần đặt các điện áp vào 2 đầu Vref (+)= 2,56 V và Vref(-) = 0 V . Bảng dưới đây cho thấy sự tương ứng giữa các đại lượng nhiệt độ ở đầu vào của bộ cảm biến , điện áp vào bộ biến đổi ADC và tín hiệu đầu ra bộ ADC :
Nhiệt độ C
Vin của ADC (mV)
Vout (D0 – D7)
0
0
0000 0000
1
10
0000 0001
2
20
0000 0010
3
30
0000 0011
10
100
0000 1010
30
300
0001 1110
3.Phối hợp bộ vi điều khiển với đèn LED 7thanh :
Ta phải nối thông qua bộ giải mã nhị phân 4 bit (IC 7447) theo sơ đồ sau với cổng PORT 2 là đầu ra :
IC7447 là 1 vi mạch giải mã tín hiệu nhị phân 4bit thành tín hiệu để đưa đến hiển thị đèn LED 7 thanh rất tiện lợi và dễ sử dụng .
LED chỉ thị hàng đơn vị
LED chỉ thị hàng chục
CHƯƠNG 6 . TỔNG THỂ TOÀN MẠCH .
1. Sơ đồ nguyên lý
1,5k
LED
150pF
5V
5V
Diot Zener
10 11
13
9
21
12 20
19
18
7 8
15
14
16 17
22
6
26 25
24
23
1,5k
23 20
22 19
21
8
7 18
6
5
4 31
3
2
1 9
39
38
37
36
12 35
34
33
32
8,2
k
13
7 12
1 11
2 10
6 9
8 15
14
16
13
7 12
1 11
2 10
6 9
8 15
14
16
5V
741
trigger
30uF
10uF
LED
LM335
ADC
+5V
R5
D1
R3
+5V
R1
V2
VR1
V1
IF
-
+
Vo
VR2
Vcc
R4
R2
VR
R
Nguyên lý hoạt động của mạch trên:
-Nhiệt độ thay đổi ở bộ cảm biến LM35 sẽ biến thành sự thay đổi điện áp ở đầu Vout của bộ cảm biến .Nếu nhiệt độ được đo là 0 độ C thì đầu Vout sẽ có điện áp là 0 V . Nhiệt độ cứ thay đổi 1 độ C thì đầu Vout sẽ thay đổi 10 mV . Điều này do hiệu điện thế giữa 2 đầu điện áp so sánh Vref(+) và Vref(-) của IC0809 quyết định . Điều trên xảy ra nếu ta cấp điện áp 2,56V cho đầu Vref(+) và đầu Vref(-) nối đất . Ta nối tới chân Vref(+) thông qua bộ khuếch đại 741 . Vậy nên chỗ điện trở 1,5 k ta có thể thay vào 1 biến trở 10 k để điều chỉnh đến mức điện áp chuẩn xác cấp cho chân Vref(+) .
-Tín hiệu điện áp vào ADC0809 qua chân 26 , chính là đầu IN0 . Qua bộ ADC sẽ được chuyển thành tín hiệu nhị phân 8 bit cho ra ở đầu ra dữ liệu D0 đến D7 . Ta muốn chọn chân IN0 làm đầu vào bộ biến đổi ADC này thì phải cho 3 chân xác định địa chỉ đầu vào A,B,C của nó có mức logic 0 ,tức là 3 chân 23,24,25 nối đất .Chân 10 là đầu vào xung đồng bộ ngoài , tần số của nó xác định tốc độ hoạt động của vi mạch này hay chính là tốc độ chuyển đổi của bộ ADC ( mặc dù vậy tốc độ chuyển đổi này không thể vượt quá 100ms ). Chân 16 chính là Vref(-) ta cho nối đất . Chân 11 là chân nguồn nuôi Vcc , ta nối với điện áp 5 V còn chân 13 chính là chân GND ta nối đất .
-Chân 7 của ADC0809 là chân EOC (End Of Convesion) báo hiệu kết thúc chuyển đổi ta nối đến đầu P3.2(chân 12 của AT89S52) để sau này dùng vi điều khiển lập trình cho chân này điều khiển quá trình chuyển dữ liệu từ đầu vào ADC đến bộ vi điều khiển . Tương tự như vậy , lần lượt các chân SC( chân 6), ALE( chân22), OE (chân 9) của IC0809 được nối đến các chân P2.2(chân 23 ), P2.1 (chân 22) , P2.0 (chân 21) của IC89S52 cũng chức năng trên . Trình tự thực hiện như sau :
Kích hoạt chân cho phép chốt địa chỉ ALE bằng cách đưa 1 xung thấp nên cao .
Kích hoạt chân SC bằng xung cao xuống thấp để bắt đầu chuyển đổi .
Giám sát EOC để 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 được lấy đi .
Kích hoạt chân đọc dữ liệu ra bằng xung cao xuống thấp .
Trên là những công việc mà vi điều khiển chỉ thị cho ADC chuyển dữ liệu vào nó . Muốn vậy ta phải lập trình cho IC vi điều khiển . Công việc lập trình sẽ được đề cập đến rõ hơn ở phần sau .
-Các đầu ra dữ liệu D0 đến D7 ( lần lượt là các chân 17, 14,15,8,18,19,20,21) của ADC0809 được nối tới cổng PORT 1 làm đầu vào bộ vi điều khiển . PORT 1 có 8chân là từ P1.0 đến P1.7(lần lượt là các chân từ 1 đến 8 ) . Ta sẽ lập trình cho PORT 1 là cổng nhận dữ liệu vào bộ vi điều khiển này bằng cách cho các chân ở cổng đó có mức logic 1.
- Ta cũng phải cấp nguồn 5V cho đầu Vcc(chân 40) của IC89S52 và nối đất chân GND của nó (chân20) của nó . Ngoài ra chân Reset (chân 9) ta có thể nối thông qua mạch như sau :
Để đảm bảo Reset có hiệu quả , chân RST cần được duy trì trạng thái tích cực tối thiểu 2 chu kì máy ( một chu kì máy bằng 12 chu kì dao động xung đồng hồ ) . Lưu ý rằng khi reset giá trị của bộ đếm chương trình PC bằng 0 và như vậy CPU nhận mã lệnh đầu tiên tại địa chỉ 0000 của bộ nhớ ROM . Ngoài ra 2 chân 18 , 19 ta nối với bộ dao động thạch anh 11 Mhz để tạo xung đồng bộ cho IC vi điều khiển . Khi mắc dao động thạch anh , phải có 2 tụ 30 µF , một đầu mỗi tụ nối tới XTAL 1(chân 19) và XTAL 2 (chân 18 ) còn đầu kia nối đất . Chân EA được nối tới dương nguồn vì IC 89S52 là vi mạch có ROM trên chip . Lưu ý chân EA không bao giờ để hở .
-Cổng PORT 0 được chọn làm cổng đầu ra của bộ vi điều khiển để đưa tín hiệu tới chỉ thị cho bộ hiển thị . Sau khi đã chuyển đổi xong điện áp tương tự ỏ đầu vào , tín hiệu nhị phân cho ra ở đầu ra dữ liệu của ADC0809 được đưa tới cổng PORT 1 của AT89S52 . Đến đây , bộ vi điều khiển có nhiệm vụ chủ yếu là biến đổi số nhị phân ở đầu vào (PORT 1)thành tín hiệu ra( PORT 0) chỉ thị cho bộ giải mã (IC7447) hiển thị kết quả theo kiểu số thập phân ra đèn LED 7thanh . Ví dụ đầu vào bộ cảm biến là 1 mức nhiệt độ 30°C, qua LM35 sẽ cho ra ở đầu ra Vout là 300 mV đưa đến đầu vào ADC qua chân 26 . Căn cứ vào điện áp so sánh là hiệu điện thế giữa 2 đầu Vref(+) và Vref(-) ta đã chọn là 2,56 V đầu (+) và nối đất đầu (-) thì tín hiệu số ở đầu ra dữ liệu của ADC sẽ là 0001 1110
Theo mã Hexa thì tín hiệu đó có thể viết là 1E(H) . Như vậy có thể viết cổng PORT 1 có giá trị là 1E (H) . Ta sẽ lập trình cho 89S52 để nó có thể biến số Hexa này thành tín hiệu chỉ thị cho bộ giải mã hiển thị số 30 ra đèn LED ( phần lập trình ta sẽ đi sâu vào hơn ở phần sau ) tức là sẽ làm cho 4 bit đầu P0.0, P0.1 , P0.2, P0.3 biểu thị giá trị 0(H) :0000 và 4 bít sau P0.4,P0.5 , P0.6 ,P0.7 biểu thị giá trị 3(H): 0011 . Giá trị được hiển thị trên đèn LED chính là giá trị nhiệt độ ở đầu vào bộ cảm biến . Kết quả thu được là ta đã hiển thị được giá trị điện áp cần đo ra đèn LED 7 thanh thông qua mạch điện tử trên .
Ngoài ra , ở sơ đồ trên ta còn dùng trigger smith CC40106 để cấp xung đồng hồ ngoài cho ADC0809 , và cần được lắp đúng như trong sơ đồ để tạo xung nhịp ổn định . Vi mạch CC40106 là 1 IC có 14 chân , trong đó ,chân 14 là chân để cấp nguồn cho IC và chân 7 là chân đất , chân 12 là đầu ra cấp xung đồng hồ , nó được nối qua điện trở 1,5 k về hồi tiếp với chân 13 .
Để cấp điện áp chuẩn và ổn định cho đầu Vref của ADC ta sử dụng bộ khuếch đại dùng IC 741 nối theo sơ đồ như hình vẽ .Sau đây là vài nét về IC741:
Tham số của bộ khuyếch đại μA 741 được cải thiện nhiều so với μA709: điện áp vào Ud cho phép cao hơn, bù lệch không đơn giản hơn, có mạch hạn dòng, có bù tần số bên trong mạch.
Tầng vào bộ khuyếch đại mắc theo kiểu Kaskode bù dùng tranzistor npn ( T1,T2) có hệ số khuyếch đại dòng cao và tranzistor pnp (T3, T4) có hệ số khuyếch đại dòng thấp. Trong mạch emitor tầng vào có nguồn dòng (T8,T9). Hệ số khuyếch đại điện áp tầng vào khoảng 50 đến 60dB, dòng tĩnh IE1 = IE2≈ (10 - 15)μA rất nhỏ. Một bộ khuyếch đại vi sai gồm T5,T6, T7 mắc theo kiểu mạch cộng pha, biến điện áp voà thành điện áp ra không đối xứng. Tầng thứ 2 (T16,T17) mắc theo kiểu Darlington, có trở kháng vào lớn và có tải là T13. Mạch có hệ số khuyếch đại lớn hơn 50dB. Tầng ra mắc theo kiểu bù gồm T14, T20, được nối với mạch hạn dòng T15,T19, R10,R11. Nếu dòng qua R11 tăng quá giới hạn 15..20mA thì dòng qua bazơ T20 tăng, dòng này qua R9 làm cho T19 dẫn, do đó dòng bazơ của T20 bị hạn chế. T18, R6và R7 tạo thành mạch dịch mức, nó được kết cấu sao cho dòng tĩnh tầng ra có giá trị khoảng 60μA. R5 có tác dụng quyết định đối với dòng tĩnh của toàn mạch.
Mạch bù trong nhờ tụ C1 = 30pF làm cho đặc tính tần số của bộ khuyếch đại giảm với độ dốc -20dB/D trong khoảng tần số fα1 ≈ 5MHz và tần số đơn vị f1 ≈ 1MHz. Ở tần số lớn hơn 5Hz, mạch Darlington gồm T16, T17 làm việc như một mạch tích phân. Mạch bù trong rất tiện lợi cho người sử dụng, nhưng trong một số trường hợp không cần thiết thì nó gây lãng phí về dải tần và tốc độ đáp ứng. Vì vậy người ta chế tạo mạch μA741.
2.Sơ đồ chân lắp ráp của mạch đo:
Sensor (LM35 và khối khuếch đại)
CHƯƠNG 7 . VẤN ĐỀ LẬP TRÌNH CHO IC VI ĐIỀU KHIỂN
1.Trình tự thực hiện :
Ta sẽ chọn 1ngôn ngữ lập trình cho IC sau đó xây dựng lưu đồ thuật toán để dựa vào đó viết chương trình trên máy vi tính dùng phần mềm Keil UVision2 biến đổi chương trình theo ngôn ngữ trên thành chương trình theo ngôn ngữ Hexa , là loại ngôn ngữ mà có thể nạp vào IC để lập trình cho IC vi điều khiển . Sau đó dùng 1 phần mềm có tên là AEC để nạp chương trình theo ngôn ngữ Hexa vào bộ nhớ cho IC .
2.Lựa chọn ngôn ngữ để lập trình cho IC :
Có rất nhiều loại ngôn ngữ có thể dùng để viết chương trình lập trình cho IC . Ở đây ta chỉ khảo sát 3 loại ngôn ngữ thông dụng nhất , đó là ngôn ngữ lập trình C , ngôn ngữ Assembly và Basic , để rồi cuối cùng chọn ra 1 ngôn ngữ lập trình tối ưu nhất , thích hợp nhất đối với công việc lập trình cho IC AT 89S52 để thực hiện những công việc trong đề tài .
* Khảo sát ngôn ngữ lập trình Assembly:
Đây là 1 loại ngôn ngữ cấp thấp , các lệnh được gọi ra chủ yếu thông qua bởi các từ gợi nhớ . Nó rất khó chỉnh sửa và bộ tập lệnh rất khó nhớ , giao diện không thân thiện , và nhiều khả năng bị hạn chế . Tuy vậy , nó rất thích hợp với việc thử nghiệm cũng như với các chương trình đơn giản nhưng nhược điểm lớn nhất của nó lại là rất khó chỉnh sửa, khó phát hiện lỗi sai và không linh động .
*Khảo sát ngôn ngữ lập trình Basic :
Nếu dùng ngôn ngữ lập trình Basic ta phải viết 1chương trình QBasic tạo ra 1 môi trường cho phép lập chương trình bằng ngôn ngữ Basic . Ngôn ngữ này thích hợp nhất là cho trường hợp dùng máy tính để điều khiển hay đo lường điện tử bởi nó có cấu trúc chương trình khá linh hoạt và giống với giao diện máy tính . QBasic chứa đựng 1 phương tiện trợ giúp trực tuyến mà ta có thể tìm thấy 1cách dễ dàng . Nếu dùng nó để lập trình cho IC thì thực sự không thích hợp vì chương trình phải được dịch ra ngôn ngữ Hexa thì mới nạp vào bộ nhớ IC để thực hiện công việc điều khiển được , có như vậy mới tương thích với thế giới thực . Ngoài ra ngôn ngữ lập trình Basic này còn có quá nhiều từ khoá làm nền tảng để xây dựng chương trình , dẫn đến tình trạng kém linh động hơn ngôn ngữ C và tính khả chuyển không cao .
*Khảo sát ngôn ngữ lập trình C :
Ngôn ngữ lập trình C là một ngôn ngữ lập trình bậc cao . Có rất nhiều có rất nhiều ngôn ngữ lập trình bậc cao để lựa chọn, n0hư C, Pascal, BASIC và Java. Chúng đều là những ngôn ngữ xuất sắc phù hợp với hầu hết mọi công việc. Tuy vậy, có một vài lý do khiến nhiều chuyên gia máy tính cảm thấy rằng C đứng đầu trong danh sách:
C là một ngôn ngữ mạnh và linh hoạt. “Những gì bạn có thể làm với C chỉ thua có trí tưởng tượng của bạn mà thôi”. Ngôn ngữ không đưa ra các ràng buộc đối với bạn. C được sử dụng trong nhiều dự án khác nhau, như viết hệ điều hành, chương trình xử lý văn bản, đồ hoạ, bảng tính, và thậm chí cả chương trình dịch cho các ngôn ngữ khác.
C là ngôn ngữ được các lập trình viên chuyên nghiệp ưa thích hơn cả. Cũng vì vậy mà có sẵn rất nhiều các trình biên dịch (compiler) và các thư viện được viết sẵn khác.
C là một ngôn ngữ khả chuyển (portable language). ghĩa là một chương trình viết bằng C cho một hệ máy tính (ví dụ như IBM PC) có thể được dịch và chạy trên hệ máy tính khác (chẳng hạn như DEC VAX) chỉ với rất ít các sử đổi. Tính khả chuyển đã được bởi chuẩn ANSI cho C.
C chỉ gồm một số ít từ khoá (keywords) làm nền tảng để xây dựng các các chức năng của ngôn ngữ. Có lẽ bạn nghĩ rằng một ngôn ngữ với nhiều từ khoá (đôi khi còn được gọi là từ dành riêng - reserved words) sẽ mạnh hơn. Không phải như vậy. Khi lập trình với C, bạn sẽ thấy rằng nó có thể dùng để lập trình giải quyết bất kỳ bài toán nào.
C là ngôn ngữ lập trình theo modul. Mã chương trình C có thể (và nên) được viết thành các thủ tục gọi là function. Những function này có thể được sử dụng lại trong các ứng dụng (application) và chương trình khác nhau.
Do những đặc điểm trên, C là một lựa chọn tuyệt vời để lập trình cho IC .
3.Xây dựng lưu đồ thuật toán của chương trình :
Nhiệm vụ mà IC vi điều khiển AT89S52 cần phải làm trong mạch điện đo nhiệt độ hiển thị số ở đề tài này là :
*Điều khiển việc truyền dữ liệu từ bộ biến đổi A/D ( dùng IC ADC 0809 ) vào bộ vi điều khiển . Cụ thể là:
- Chọn một kênh tương tự đầu vào ADC bằng cách dùng các chân địa chỉ A , B, C theo bảng sau:
C
B
A
Kênh lối vào được kích hoạt
0
0
0
IN0
0
0
1
IN1
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
Nhưng trong trường hợp này cũng không cần thiết vì ta chỉ cần 1 đầu vào IN0 là đủ nên ta có thể nối 3 chân A ,B ,C ( chân số 23 , 24 , 25 ) của ADC0809 với đất .
-Kích ho
Các file đính kèm theo tài liệu này:
- DAN205.doc