Mục lục
I. Giới thiệu
1. Đặt vấn đề
2. Các phương pháp đo nhiệt độ
3. Nhiệm vụ thiết kế
II. Tổng quan về phần cứng
1. Sơ đồ khối
2. Giới thiệu về các thiết bị.
2.1. LM335
2.2. ADC0809
2.3. Bộ vi xử lý 8051
2.4. Khối phím ấn
2.5. Hiển thị Led
2.6. RS 232
2.7. Nguồn
III. Phần mềm
1. Lưu đồ thuật toán
1.1 Lưu đò thuật toán đọc ADC
1.2 Lưu đồ thuạt toán phục vụ ngắt phím
1.3 Lưu đồ kiểm tra
1.4 Lưu đồ truyền tin
2. Phần mềm chương trình
IV. Đánh giá sai số
V. Kết luận,tài liệu tham khảo
I. Giới thiệu
1. Đặt vấn đề
Nhiệt độ là một trong những đại lượng vật lý được quan tâm nhiều nhất. Bởi vì nhiệt độ có vai trò quyết định trong nhiều tính chất của vật chất. Một trong những đặc điểm tác động của nhiệt độ là làm thay đổi một cách liên tục các đại lượng chịu sự ảnh hưởng của nó,ví dụ như áp suất ,thể tích của một chất khí . Bởi vậy, trong các nghiên cứu khoa học , trong công nghiệp và đời sống hàng ngày việc đo nhiệt độ là điều rất cần thiết. Tuy nhiên, để đo được trị số chính xác của nhiệt độ lại là vấn đề không đơn giản.
Cùng với sự ra đời và phát triển mạnh mẽ của các hệ vi xử lý,việc đo nhiệt độ áp dụng vi xử lý,vi điều khiển đã mở ra nhiêu hướng,đưa đến nhiều phương pháp khác nhau,linh hoạt và chính xác hơn. Có nhiều cách để đo nhiệt độ , trong đó có thể liệt kê một số phương pháp sau đây:
Phương pháp quang dựa trên sự phân bố bức xạ nhiệt do dao động nhiệt (do hiệu ứng Doppler).
-Phương pháp cơ dựa trên sự dãn nở của vật rắn , của chất lỏng hoặc khí (với áp suất không đổi ) , hoặc dựa trên tốc độ âm.
-Phương pháp dựa trên sự phụ thuộc của đIện trở vào nhiệt độ , hiệu ứng Sêbeck , hoặc dựa trên sự thay đổi tần số dao động của thạch anh.
1. Các phương pháp đo nhiệt độ
Trước tiờn núi về cỏc cảm biến nhiệt độ,đó là các cảm biến được sử dụng vào các quá trình nhiệt như: đốt nóng, làm lạnh, trao đổi nhiệt.v.v. .Đại lượng vào của cảm biến nhiệt độ là nhiệt độ và đại lượng ra là tín hiệu điện (dòng,áp).Một số cảm biến thường sử dụng:
+Nhiệt điện trở : Nguyên lý làm việc là có điện trở thay đổi theo sự thay đổi nhiệt độ của nó.Tuỳ theo tác dụng nhiệt của dòng điện cung cấp chạy qua chuyển đổi người ta phân ra: Nhiệt điện trở đốt nóng và nhiệt điện trở không đốt nóng
ã Nhiệt điện trở đốt nóng ,dòng điện chạy qua rất lớn làm nhiệt độ của nó tăng lên cao hơn nhiệt độ môi trường(100C -800C), nên có sự toả nhiệt ra môi trường xung quanh, như nhiệt dẫn, đối lưu, bức xạ .
ã Nhiệt điện trở không đốt nóng, dòng điện chạy qua rất nhỏ không làm tăng nhiệt độ của điện trở và nhệt độ của nó bằng nhiệt độ môi trường. Nhiệt điện trở loại này dùng để đo nhiệt độ và các đại lượng cơ học như đo di chuyển.
Nhiệt điện trở phân làm hai loại: Nhiệt điện trở dây(nhiệt điện trở đồng,nhiệt điện trở Platin, nhiệt điện trở Niken) và nhiệt điện trở bán dẫn.
+Cặp nhiệt điện:Nguyên lý làm việc dựa trên 2 hiệu ứng:Thomson và Seebek
ứng dụng của cặp nhiệt điện chủ yếu để đo nhiệt độ, ngoài ra nó còn dược dùng để đo các đại lượng không điện và điện khác như: đo dòng điện ở tần số cao,đo hướng chuyển động và lưu ượng của các dòng chảy, đo di chuyển , đo áp suất nhỏ
+Cảm biến nhiệt độ dùng đặc tính diode và tranzitor
Đo nhiệt độ là nhiệm vụ thường gặp trong các ngành nhiệt học, hoá học ,luyện kim .Tuỳ theo nhiệt độ đo mà có thể dùng các phương pháp đo khác nhau.Thông thường nhiệt độ đo được chia thành 3 giải : Nhiệt độ thấp, nhiệt độ trung bình và nhiệt độ cao.ở nhiệt độ trung bình và thấp, phương pháp đo thường là tiếp xúc nghĩa là các chuyển đổi được đặt trực tiếp ở ngay môi trường cần đo. Đối với nhiệt độ cao,đo bằng phương pháp không tiếp xúc, nghĩa là dụng cụ đo đặt ngoài môi trường đo.
Một trong số những cách đó là đo nhiệt độ không tiép xúc sử dụng cảm biến LM335
1. Nhiệm vụ thiết kế
Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335 giải quyết những vấn đề sau:
- Thiết kế mạch đo nhiệt độ trong dải từ 0oC-100oC và hiển thị.
- Cảnh báo khi nhiệt độ lớn hơn 80oC và khi nhỏ hơn 20oC
- Kết nối truyền thông tin đo được vào máy tính
- Viết chương trình phần mềm giải quyết những vấn đề trên
I. Tổng quan về phần cứng
1. Sơ đồ khối
30 trang |
Chia sẻ: banmai | Lượt xem: 2357 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Phần mềm đo nhiệt độ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Mục lục
Giới thiệu
Đặt vấn đề
Các phương pháp đo nhiệt độ
Nhiệm vụ thiết kế
Tổng quan về phần cứng
Sơ đồ khối
Giới thiệu về các thiết bị.
LM335
ADC0809
Bộ vi xử lý 8051
Khối phím ấn
Hiển thị Led
RS 232
Nguồn
Phần mềm
Lưu đồ thuật toán
Lưu đò thuật toán đọc ADC
Lưu đồ thuạt toán phục vụ ngắt phím
Lưu đồ kiểm tra
Lưu đồ truyền tin
Phần mềm chương trình
Đánh giá sai số
Kết luận,tài liệu tham khảo
Giới thiệu
Đặt vấn đề
Nhiệt độ là một trong những đại lượng vật lý được quan tâm nhiều nhất. Bởi vì nhiệt độ có vai trò quyết định trong nhiều tính chất của vật chất. Một trong những đặc điểm tác động của nhiệt độ là làm thay đổi một cách liên tục các đại lượng chịu sự ảnh hưởng của nó,ví dụ như áp suất ,thể tích của một chất khí . Bởi vậy, trong các nghiên cứu khoa học , trong công nghiệp và đời sống hàng ngày việc đo nhiệt độ là điều rất cần thiết. Tuy nhiên, để đo được trị số chính xác của nhiệt độ lại là vấn đề không đơn giản.
Cùng với sự ra đời và phát triển mạnh mẽ của các hệ vi xử lý,việc đo nhiệt độ áp dụng vi xử lý,vi điều khiển đã mở ra nhiêu hướng,đưa đến nhiều phương pháp khác nhau,linh hoạt và chính xác hơn. Có nhiều cách để đo nhiệt độ , trong đó có thể liệt kê một số phương pháp sau đây:
- Phương pháp quang dùa trªn sù ph©n bè bøc x¹ nhiÖt do dao ®éng nhiÖt (do hiÖu øng Doppler).
-Ph¬ng ph¸p c¬ dùa trªn sù d·n në cña vËt r¾n , cña chÊt láng hoÆc khÝ (víi ¸p suÊt kh«ng ®æi ) , hoÆc dùa trªn tèc ®é ©m.
-Ph¬ng ph¸p dùa trªn sù phô thuéc cña ®IÖn trë vµo nhiÖt ®é , hiÖu øng Sªbeck , hoÆc dùa trªn sù thay ®æi tÇn sè dao ®éng cña th¹ch anh.
Các phương pháp đo nhiệt độ
Trước tiên nói về các cảm biÕn nhiÖt ®é,đó là các cảm biến được sử dông vào c¸c qu¸ tr×nh nhiÖt nh: ®èt nãng, lµm l¹nh, trao ®æi nhiÖt.v.v. .§¹i lîng vµo cña c¶m biÕn nhiÖt ®é lµ nhiÖt ®é vµ ®¹i lîng ra lµ tÝn hiÖu ®iÖn (dßng,¸p).Một số cảm biến thường sử dụng:
+NhiÖt ®iÖn trë : Nguyªn lý lµm viÖc lµ cã ®iÖn trë thay ®æi theo sù thay ®æi nhiÖt ®é cña nã.Tuú theo t¸c dông nhiÖt cña dßng ®iÖn cung cÊp ch¹y qua chuyÓn ®æi ngêi ta ph©n ra: NhiÖt ®iÖn trë ®èt nãng vµ nhiÖt ®iÖn trë kh«ng ®èt nãng
NhiÖt ®iÖn trë ®èt nãng ,dßng ®iÖn ch¹y qua rÊt lín lµm nhiÖt ®é cña nã t¨ng lªn cao h¬n nhiÖt ®é m«i trêng(100°C -800°C), nªn cã sù to¶ nhiÖt ra m«i trêng xung quanh, nh nhiÖt dÉn, ®èi lu, bøc x¹ .
NhiÖt ®iÖn trë kh«ng ®èt nãng, dßng ®iÖn ch¹y qua rÊt nhá kh«ng lµm t¨ng nhiÖt ®é cña ®iÖn trë vµ nhÖt ®é cña nã b»ng nhiÖt ®é m«i trêng. NhiÖt ®iÖn trë lo¹i nµy dïng ®Ó ®o nhiÖt ®é vµ c¸c ®¹i lîng c¬ häc nh ®o di chuyÓn.
NhiÖt ®iÖn trë ph©n lµm hai lo¹i: NhiÖt ®iÖn trë d©y(nhiÖt ®iÖn trë ®ång,nhiÖt ®iÖn trë Platin, nhiÖt ®iÖn trë Niken) vµ nhiÖt ®iÖn trë b¸n dÉn.
+CÆp nhiÖt ®iÖn:Nguyªn lý lµm viÖc dùa trªn 2 hiÖu øng:Thomson vµ Seebek
øng dông cña cÆp nhiÖt ®iÖn chñ yÕu ®ể ®o nhiÖt ®é, ngoµi ra nã cßn dîc dïng ®Ó ®o c¸c ®¹i lîng kh«ng ®iÖn vµ ®iÖn kh¸c nh: ®o dßng ®iÖn ë tÇn sè cao,®o híng chuyÓn ®éng vµ lu îng cña c¸c dßng ch¶y, ®o di chuyÓn , ®o ¸p suÊt nhỏ
+C¶m biÕn nhiÖt ®é dïng ®Æc tÝnh diode vµ tranzitor
§o nhiÖt ®é lµ nhiÖm vô thêng gÆp trong c¸c ngµnh nhiÖt häc, ho¸ häc ,luyÖn kim...Tuú theo nhiÖt ®é ®o mµ cã thÓ dïng c¸c ph¬ng ph¸p ®o kh¸c nhau.Th«ng thêng nhiÖt ®é ®o ®îc chia thµnh 3 gi¶i : NhiÖt ®é thÊp, nhiÖt ®é trung b×nh vµ nhiÖt ®é cao.ë nhiÖt ®é trung b×nh vµ thÊp, ph¬ng ph¸p ®o thêng lµ tiÕp xóc nghÜa lµ c¸c chuyÓn ®æi ®îc ®Æt trùc tiÕp ë ngay m«i trêng cÇn ®o. §èi víi nhiÖt ®é cao,®o b»ng ph¬ng ph¸p kh«ng tiÕp xóc, nghÜa lµ dông cô ®o ®Æt ngoµi m«i trêng ®o.
Một trong số những cách đó là đo nhiệt độ không tiép xúc sử dụng cảm biến LM335
Nhiệm vụ thiết kế
Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335 giải quyết những vấn đề sau:
- Thiết kế mạch đo nhiệt độ trong dải từ 0oC-100oC và hiển thị.
- Cảnh báo khi nhiệt độ lớn hơn 80oC và khi nhỏ hơn 20oC
- Kết nối truyền thông tin đo được vào máy tính
- Viết chương trình phần mềm giải quyết những vấn đề trên
Tổng quan về phần cứng
Sơ đồ khối
Cảm biến LM335
Mạch khuếch đại
ADC
VĐK 8051
Khối bàn phím
Khối hiển thị
LED
PC
Giới thiệu về các khối
Khối cảm biến LM335
LM335 lµ c¶m biÕn nhiÖt ®é cã kho¶ng ®o tõ -400C ®Õn +1000C, ®é chÝnh x¸c cao, tÝnh n¨ng c¶m biÕn nhiÖt ®é rÊt nh¹y.TÝn hiÖu ngâ ra tuyÕn tÝn víi tÝn hiÖu ngâ vµo.
C«ng dông cña LM335:
+ LM335 cã ®é biÕn thiªn theo nhiÖt ®é lµ: 10mV/KO
+ Cã sù æn ®Þnh cao: ë 25OC chØ cã sai sè 1%.
+ ChØ tiªu kÜ thuËt:
Tiªu t¸n c«ng suÊt thÊp.
Dßng lµm viÖc tõ 4.10-4A – 5.10-3A
Dßng ngîc 15mA
Dßng thuËn 10mA
Sù biÕn thiªn cña ®iÖn thÕ theo nhiÖt ®é cã hµm
VOUT = 0.01xTOK
= 2.73 + 0.01xTOC
+ CÊu tróc cña bé c¶m biÕn LM335 lµ lo¹i c¶m biÕn cã 3 ch©n tÝn hiÖu ra
t¬ng tù
Vout
VR
+5V
LM335
Khối điều chỉnh điện áp hay mạch khuéch đại
§Çu ®o díi d¹ng vi m¹ch LM 335 lµ mét ®Çu ®o nhiÖt ®é ®¬n gi¶n vµ chÝnh x¸c ,cã ®iÖn ¸p lèi ra tû lÖ thuËn víi nhiÖt ®é cña ®Çu ®o. §Çu ®o nµy kh«ng cÇn ®Õn linh kiÖn ë ngoµi nªn kh«ng cÇn chuÈn l¹i ë nh÷ng nhiÖt ®é kh¸c nhau .Trong vïng nhiÖt ®é phßng , ®é chÝnh x¸c ®¹t cì 0,250C .Dßng ®iÖn tiªu thô cì 60uA nªn cã thÓ bá qua sù t¨ng nhiÖt ®é ®Çu ®o dßng ®iÖn nu«i t¹o ra .
T¬ng øng víi d¶i nhiÖt ®é ®o dải từ 0oC-100oC th× ®iÖn ¸p ra tuyÕn tÝnh lµ 2.73-3.73V.Ta ®iÒu chØnh biÕn trë R20 ®Ó ë 250C th× ®iÖn ¸p ra ë ch©n 2 cña c¶m biÕn lµ 2.98V.
- ĐiÖn ¸p ra cña c¶m biÕn lµ tõ 2.73-3.73V ,trong khi thang ®iÖn ¸p vµo lµm viÖc cña ADC0809 lµ 0-5V ,do vËy ta cÇn tiÕn hµnh chuÈn hãa tÝn hiÖu tríc khi ®a ®Õn ADC. .S¬ ®å m¹ch thùc hiÖn viÖc ®ã nh trªn .Nguyªn lý ho¹t ®éng cña m¹ch ®ã lµ:
+ Dïng mét ®i èt zener vµ mét nguån nu«i ®Ó t¹o ra ®iÖn ¸p æn ®Þnh 5V.
+ §iÖn ¸p nµy ®îc nèi víi mét biÕn trë R21 nèi ®Êt. Dïng biÕn trë nµy ®Ó ®iÒu chØnh ®iÖn ¸p vµo bé ®Öm lµ 2.73V. Bé ®Öm dïng ®Ó h¹n chÕ dßng ®iÖn trong m¹ch .
+ Qua bé ®Öm ®iÖn ¸p vÉn lµ 2.73V . §iÖn ¸p nµy ®îc ®a ®Õn mét m¹ch trõ.
+ Bé trõ ®îc nèi víi c¸c ®iÖn trë nh h×nh vÏ . Gi¸ trÞ cña c¸c ®iÖn trë ®îc cho nh trªn h×nh. Víi c¸ch m¾c nh vËy ®iÖn ¸p ra cña bé trõ lµ :
Vout = Vin(+) –Vin(-)
Ta cã :
Vin(+) = 2.73 - 3.73 V
Vin(-) = 2.73V
Do vËy :
Vout = 0 - 1V
Ta ®· ®¹t ®îc yªu cÇu vÒ ®iÖn ¸p. Vµ còng ®Ó h¹n chÕ dßng ®iÖn ta ph¶i ®a ®iÖn ¸p nµy vµo ADC qua mét bé ®Öm nh trªn h×nh vÏ.
Ta cÇn hiÓn thÞ kÕt qu¶ ra LED ,muèn vËy cÇn cã sù ®ång nhÊt :
NhiÖt ®é ®o( 0C ) M· nhÞ ph©n ë ®Çu ra cña ADC
+ §iÖn ¸p ë lèi ra cña LM335 lµ 10mV / 0C
+ Do vËy vÊn ®Ò nµy ®îc gi¶i quyÕt b»ng c¸ch ®Æt ®iÖn ¸p ë c¸c ch©n Vref cña ADC thÝch hîp.
Nh ta ®· biÕt ADC 0809 cã 8 bÝt ë ®Çu ra nªn cã:
28 - 1 = 255 ( bËc thang )
Ta sử dụng nguồn 5V,và 1 biến trở để tạo ra Vref(+) của ADC0809 là 2.55V,
Nên suy ra điện áp Ù(ref)=2.55V .
KÝch cì bËc thang lµ :
2.55/ 255 =0.01(V)
- §iÖn ¸p ®a tíi ch©n vµo cña ADC lµ 0 - 1 V t¬ng øng víi nhiÖt ®é ®Çu ®o cña cÈm biÕn lµ 0 - 100 0C
- TÝn hiÖu lèi ra cña c¶m biÕn 10mV / 0C.
- KÝch cì bËc thang 10mV
Khối chuyển đổi ADC - sử dụng ADC0809
Cã nhiÒu ph¬ng ph¸p ®Ó chuyÓn ®æi mét ®¹i lîng t¬ng tù sang gi¸ trÞ sè nh:
- ADC d¹ng sãng bËc thang :líp ADC ®¬n gi¶n nµy sö dông bé ®Õm nhÞ ph©n lµm thanh ghi vµ cho phÐp xung nhÞp ®Èy bé ®Õm t¨ng mçi lÇn mét bíc,cho ®Õn khi VAX # VA. ADC lo¹i nµy gäi lµ ADC sãng bËc thang v× d¹ng sãng t¹i VAX cã tõng bËc ®i lªn . ADC d¹ng sãng bËc thang bao gåm mét bé ®Õm ,mét DAC ,mét bé so s¸nh t¬ng tù ,vµ mét cæng AND ®iÒu khiÓn . §Çu ra bé so s¸nh dïng lµm tÝn hiÖu ®iÒu khiÓn kÕt thóc chuyÓn ®æi EOC-tích cực mức thấp
*¦u ®iÓm: +T¬ng ®èi ®¬n gi¶n
+Phï hîp víi c¸c øng dông tèc ®é chËm.
*Nhîc ®iÓm:NÕu t¨ng sè bit ®Ó t¨ng ®é ph©n gi¶i thi khi ®ã chØ cÇn thªm 1 bit ,thêi gian chuyÓn ®æi ®· t¨ng gÊp ®«i.Nh vËy t¨ng ®é ph©n gi¶i th× thêi gian chuyÓn ®æi kÐo dµi.V× thÕ ADC lo¹i nµy kh«ng phï hîp víi nh÷ng øng dông ®ßi hái ph¶i liªn tôc chuyÓn ®æi mét tÝn hiÖu t¬ng tù thay ®æi nhanh thµnh tÝn hiÖu sè.
- ADC liªn tiÕp-xÊp xØ(ADC0804,ADC0809...).
Đây là phương pháp được sử dụng rộng rãi , nhưng mạch điện có phức tạp nhưng thời gian chuyển đổi ngắn hơn . Phương pháp này có thời gian chuyển đổi không phụ thuộc vào điện áp ngõ vào .
Clock
Start
EOC
VA
V’A
+
_
DAC
Thanh ghi điều khiển
Logic điều khiển MSB LSB
Sơ đồ khối chuyển đổi ADC dùng phương pháp xấp xỉ liên tiếp
Hoạt động
Khi tác động cạnh xuống của xung Start thì ADC bắt đầu chuyển đổi
-Mạch logic điều khiển đặt bit có nghĩa lớn nhất của thanh ghi diều khiển lên mức cao và tất cả các bit còn lại ở mức thấp . Số nhị phân ra ở thanh ghi điều khiển được qua mạch DAC để tạo ra điện áp tham chiếu V’a .
Nếu V’a > Va thì ngõ ra bọ so sánh xuống mức thấp làm cho mạch logic diều khiển xóa bit MSB xuống mức thấp
Nếu V’a <Va thì ngõ ra bọ so sánh ở mức cao làm cho mạch logic điều khiển giữ bit MSB ở mức cao .
Tiếp theo mạch logic điều khiển đưa bit có nghĩa kế bit MSB lên mức cao và tạo ở ngõ ra khối DAC một điện áp tham chiếu V’a rồi đem so sánh tương tự như bit MSB như trên . Quá trình này cứ tiếp tục cho đến bit cuối cùng trong thanh ghi điều khiển . Lúc đó thì V’a gần bằng Va ngõ ra của mạch logic điều khiển báo kết thúc chuyển đổi .
Như vậy mạch đổi ra n bit chỉ mất n chu kì xung clock nên có thể đạt tốc độ rất cao . Tuy nhiên mạch ADC xấp xỉ liên tiếp lại không thể đáp ứng với tín hiệu tương tự vào biến đổi cực nhanh .
- ADC chuyÓn ®æi nhanh(MC10319,AD9010,... )
+Bé chuyÓn ®æi nhanh (fast converter)lµ lo¹i ADC cã tèc ®é cao nhÊt nhng s¬ ®å m¹ch phøc t¹p h¬n c¸c lo¹i kh¸c.Ch¼ng h¹n,ADC nhanh N bit cÇn 2N-1 bé so s¸nh,2N ®iÖn trë vµ logic m· ho¸ cÇn thiÕt.
+ Bé chuyÓn ®æi nhanh kh«ng cÇn tÝn hiÖu xung nhip v× tiÕn tr×nh chuyÓn ®æi x¶y ra liªn tôc.
+ Thêi gian chuyÓn ®æi lµ thêi gian cÇn thiÕt ®Ó xuÊt hiÖn mét ®Çu ra sè ®¸p l¹i mét thay ®æi ë ®Çu vµo t¬ng tù,chØ phô thuéc vµo kho¶ng trÔ do truyÒn cña bé so s¸nh vµ bé m· ho¸.Do ®ã ADC nhanh cã thêi gian chuyÓn ®æi v« cïng ng¾n ngñi:
VD:MC10319(Motorola)-8 bit: tc<20ns
AD9010(Analog Devices)-10 bit: tc<15ns.
Ngoµi ra cßn mét sè ph¬ng ph¸p kh¸c nh:ADC sãng bËc thanh lªn/xuèng;ADC tÝch hîp hai ®é dèc;ADC chuyÓn ®æi ®iÖn thÕ thµnh tÇn sè; ®iÒu biÕn sigma/delta.
TỔNG QUAN VÒ ADC 0809:
ADC0809 lµ bé chuyÓn ®æi t¬ng tù-sè 8 bit 8 ®Çu vµo t¬ng tù ®îc dån kªnh bëi 1 bé dån kªnh tÝch hîp s½n trªn chip ADC.Nh vËy mét mÆt nã kh«ng cÇn bé dån kªnh t¬ng tù ngoµi ,mÆt kh¸c l¹i cho phÐp cã nhiÌu ®Çu vµo h¬n, §iÒu nµy rÊt thuËn tiÖn cho viÖc ®o ,gi¸m s¸t c¸c ®¹i l¬ng vËt lý ë nhiÒu ®iÓm ®o kh¸c nhau.
ADC0809 cã 8 kªnh ®Çu vµo t¬ng tù .Nh vËy ADC0809 cho phÐp gi¸m s¸t ®ång thêi 8 bé c¶m biÕn,8 kªnh ®Çu vµo t¬ng tù ®îc dån kªnh vµ ®îc chän nhê nhê 3 ch©n ®Þa chØ A,B,C .
ADC0809 ho¹t ®éng theo ph¬ng ph¸p liªn tiÕp-xÊp xØ.
C¸c ®Æc tÝnh:
-DÔ dµng giao tiÕp víi c¸c bé vi xö lý
-Bé dån kªnh 8 ®Çu vµo víi logic ®Þa chØ
-D¶i ®iÖn ¸p ®Çu vµo 5V vµ nguån cÊp 5 V
Mét vµi th«ng sè kü thuËt chÝnh:
-§é ph©n gi¶i: 8 bit
-Sai sè : +/- 1LSB
-Nguån cung cÊp: 5V .
-C«ng suÊt: 15mW.
-Tèc ®é chuyÓn ®æi: <100us
S¬ ®å khèi cÊu tróc bªn trong ADC0809:
C¸c ch©n của ADC0809
Sơ đồ chân của ADC0809
-Vcc: Ch©n cÊp nguån.
§iÖn ¸p nguån:5V
-GND: Ch©n nèi ®Êt.
- Vref(+) và Vref(-)
Hai ch©n ®a ®iÖn ¸p tham chiÕu.
Thêng Vref (-) nèi ®Êt.Trong bài Vref(+) được nối với nguồn 5V và một biến trở 10k để lấy ra Vref(+)=2.55V
-IN0->IN7(Input):-8 kªnh ®Çu vµo t¬ng tù.
- ADDA,ADDB,ADDC là 3 ch©n chän kênh ®Çu vµo.
A,B,C la 3 bit chọn 1 trong 8 kªnh ®Çu vµo cña 1 Multiplexer t¬ng tù ®îc tÝch hîp trong bé ADC0809.
-ALE(Address Latch Enable):
Ch©n ®Ó chèt ®Þa chØ (kªnh vµo).
- Start: Ch©n göi tÝn hiÖu b¾t ®Çu chuyÓn ®æi.
- EOC(End off Convertion):Ch©n nay ®Ó göi tÝn hiÖu kÕt thóc chuyÓn ®æi.
- OE(Output Enable): Ch©n göi tÝn hiÖu cho phÐp lÊy sè liÖu sè ë ®Çu ra.
- 01->08: là 8 ch©n t¬ng øng 8 bit ®Çu ra cña sè liÖu 8 bit ®· ®îc chuyÓn ®æi.
- CLK: Ch©n tÝn hiÖu Clock , ®Ó göi tÝn hiÖu xung ®ång hå ®Ó ADC lµm viÖc .
CHỨC N¡NG & HOẠT §ỘNG CỦA ADC0809
* S¬ ®å khèi chøc n¨ng cña ADC0809:
*ADC0809 thÓ hiÖn trªn s¬ ®å trªn cã thÓ dîc chia theo chøc n¨ng thµnh 2 m¹ch con c¬ b¶n.Hai m¹ch con nµy lµ mét bé dån kªnh vµ mét bé chuyÓn ®æi A/D.
-Bé dån kªnh sö dông 8 kho¸ t¬ng tù c«ng nghÖ CMOS chuÈn ®Ó cung cÊp mét trong 8 ®Çu vµo t¬ng tù.C¸c kho¸ ®îc ®iÒu khiÓn chän,tuú thuéc vµo sè liÖu ®îc chèt ë thanh ghi ®Þa chØ bé dån kªnh (multiplexer address register) 3 bit.
- Khèi chøc n¨ng thø hai lµ bé chuyÓn ®æi A/D liªn tiÕp-xÊp xØ,chuyÓn tÝn hiÖu t¬ng tù ®Çu ra cña bé dån kªnh thµnh mét tõ sè 8 bit. §Çu ra bé dån kªnh sÏ ®i ®Õn mét trong hai ®Çu vµo cña bé so s¸nh. §Çu vµo kia nh©n ®îc tõ 1 thang ®iÖn trë 256R ®îc m¾c vµo mét c©y kho¸ dïng transistor MOSFET (MOSFET transistor switch tree).Logic ®iÒu khiÓn bé chuyÓn ®æi sÏ ®iÒu khiÓn switch tree, ®a ®iÖn ¸p t¬ng øng ch¶y ra(funneling a particular tap voltage) ®Õn bé so s¸nh. §Æt c¬ së cho kÕt qu¶ cña sù so s¸nh nµy,bé logic ®iÒu khiÓn vµ thanh ghi liªn tiÕp xÊp xØ(SAR)sÏ quyÕt ®Þnh ®iÖn ¸p ®îc chän ®Ó lÊy ra sÏ cao h¬n hay thÊp h¬n gi¸ trÞ hiÖn t¹i trªn thang ®iÖn trë.TiÕn tr×nh(algorithm)nµy ®îc thùc hiÖn 8 lÇn trong 1 chuyÓn ®æi,mçi chuyÓn ®æi cÇn 8 chu kú ®ång hå.Nh vËy tæng céng thêi gian chuyÓn ®æi lµ 64 chu kú ®ång hå.
-Khi mét chu kú chuyÓn ®æi hoµn thµnh,sè liÖu kÕt qu¶ ®îc ®a vµo bé chèt ®Çu ra 3 tr¹ng th¸i.Sè liÖu trong bé chèt ®Çu ra cã thÓ sau ®ã cã thÓ ®îc ®äc bëi mét hÖ thèng tiÕp nhËn sè liÖu(host system) bÊt cø lóc nµo tríc khi kÕt thóc chu kú chuyÓn ®æi tiÕp theo .Kh¶ n¨ng 3 tr¹ng thái cña bé chèt cho phÐp giao tiÕp dÔ dµng víi c¸c hÖ thống bus ®Þnh híng(bus oriented systems).
-Thùc hiÖn ho¹t ®éng cña c¸c bé chuyÓn ®æi nµy b»ng mét bé vi xö lý hoÆc mét sè logic ®iÒu khiÓn th× rÊt ®¬n gi¶n.ThiÕt bÞ ®iÒu khiÓn ®Çu tiªn sÏ chän kªnh vµo. §Ó lµm ®iÒu nµy ,mét ®Þa chØ kªnh 3 bit ®îc ¸p vµo c¸c ch©n A,B,C;vµ ch©n ALE (Address Latch Enable) ®îc ®a xung tÝch cùc ®Ó kho¸ ®Þa chØ vµo thanh ghi ®Þa chØ bé dån kªnh.
Kªnh ®îc chän
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
-
§Ó b¾t ®Çu chuyÓn ®æi,ch©n START ®îc ¸p xung tÝch cùc. ë sên lªn cña xung nµy,nh÷ng thanh ghi trong ®îc xo¸ vµ ë sên xuèng sù chuyÓn ®æi ®îc b¾t ®Çu.
CÇn 8 chu kú ®ång hå trong mçi lÇn xÊp xØ.Dï lµ kh«ng cã chuyÓn ®æi trong qu¸ tr×nh ®ã,ADC0809 vÉn quay vßng ë bªn trong(internally cycling) qua 8 chu kú ®ång hå.Mét xung start cã thÓ xuÊt hiÖn bÊt cø lóc nµo trong suèt qu¸ tr×nh nµy nhng sù chuyÓn ®æi sÏ kh«ng thËt sù b¾t ®Çu ®Õn khi bé chuyÓn ®æi quay vßng bªn trong ®Õn khi b¾t ®Çu chuçi 8 chu kú ®ång hå sau.ChØ cÇn ch©n START ®îc gi÷ ë møc cao th× sÏ kh«ng cã chuyÓn ®æi,nhng khi ch©n start ®ù¬c ®a xuèng thÊp sù chuyÓn ®æi sÏ b¾t ®Çu trong kho¶ng thêi gian 8 chu kú ®ó.
-§Çu ra EOC ®îc lËt ë sên lªn cña xung start.Nã còng ®îc ®iÒu khiÓn bëi chu tr×nh gåm 8 chu kú ®ång hå,nªn nã sÏ xuèng thÊp trong kho¶ng thêi gian 8 chu kú ®ång hå khi x¶y ra sên lªn cña xung start .
S¬ ®å thêi gian cña ADC0809:
Kết nối các chân của ADC0809 với VĐK8051
Vì chỉ dùng 1 đầu đo nên 3 chân ADDA,B,C ta đặt ở mức 0
01-08 là 8 bit đầu ra được nối với cổng P0 của 8051
EOC nối với ngắt ngoài INT0
ALE,START,EO được điều khiển bởi các tín hiệu READ/WRITE
Đầu đo nhiệt độ nối vào IN0.
Bộ vi xử lý 8051
Tæng quan cÊu tróc 8051:
MCS-51 lµ hä vi ®iÒu khiÓn cña INTEL. C¸c nhµ s¶n xuÊt IC kh¸c nh Siemens, Advanced Micro Divices, Fujitsu vµ Philips ®îc cÊp phÐp lµm c¸c nhµ cung cÊp thø hai cho c¸c chÝp cña hä MCS-51.Vi mach tæng qu¸t ca hä MCS-51 lµ chÝp 8051, linh kiÖn ®Çu tiªn cña hä nµy ®îc ®a ra thÞ trêng. ChÝp 8051 cã c¸c ®Æc trng ®îc tãm t¾t nh sau :
_4KB ROM.
_128 byte RAM.
_ 4 port xuÊt nhËp (I/O port ) 8- bit.
_ 2 bé ®Þnh thêi 16 bit.
_ M¹ch giao tiÕp nèi tiÕp.
_ Kh«ng gian nhí ch¬ng tr×nh (m·) ngoµi 64K.
_ Kh«ng gian nhí d÷ liÖu ngoµi 64K.
_ Bé xö lý bÝt(thao t¸c trªn c¸c bit riªng rÏ).
_ 210 vÞ trÝ ®îc ®Þnh ®Þa chØ, mçi vÞ trÝ 1 bit.
S¬ ®å khèi cña chÝp 8051.
Tæ chøc ch©n cña MCS51:
S¬ ®å ch©n cña 8051 d¹ng DIP.
Tæ chøc ch©n cña 8051 d¹ng PQFP/TQFP vµ PLCC
port 0 : chøc n¨ng ë trªn ch©n tõ 32 ®Õn 39 trong c¸c thiÕt kÕ cì nhá (kh«ng dïng bé nhí më réng ) cã hai chøc n¨ng nh c¸c ®êng IO. §èi víi c¸c thiÕt kÕ cì lín ( víi bé nhí më réng ) nã ®îc kÕt hîp kªnh gi÷a c¸c bus ).
port1 : lµ mét port I/O trªn c¸c ch©n 1-8. C¸c ch©n ®îc ký hiÖu P1.0, P1.1, P1.2 ... cã thÓ dïng cho c¸c thiÕt bÞ ngoµi nÕu cÇn. Port1 kh«ng cã chøc n¨ng kh¸c, v× vËy chóng ta cã thÓ dïng chóng trong giao tiÕp víi c¸c thiÕt bÞ ngoµi mét c¸ch tù do.
Port 2 : lµ mét port c«ng dông kÐp trªn c¸c ch©n 21 - 28 ®îc dïng nh c¸c ®êng xuÊt nhËp hoÆc lµ byte cao cña bus ®Þa chØ ®èi víi c¸c thiÕt kÕ dïng bé nhí më réng.
Port 3 : lµ mét port c«ng dông kÐp trªn c¸c ch©n 10 - 17. C¸c ch©n cña port nµy cã nhiÒu chøc n¨ng, c¸c c«ng dông chuyÓn ®æi cã liªn hÖ víi c¸c ®Æc tÝnh ®Æc biÖt cña 8051 / 8031 nh ë b¶ng sau :
Bit
Tªn
Chøc n¨ng chuyÓn ®æi
P3.0
RXD
D÷ liÖu nhËn cho port nèi tiÕp
P3.1
TXD
D÷ liÖu ph¸t cho port nèi tiÕp
P3.2
INTO
Ng¾t 0 bªn ngoµi
P3.3
INT1
Ng¾t 1 bªn ngoµi
P3.4
TO
Ngâ vµo cña timer/counter 0
P3.5
T1
Ngâ vµo cña timer/counter 1
P3.6
WR
Xung ghi bé nhí d÷ liÖu ngoµi
P3.7
RD
Xung ®äc bé nhí d÷ liÖu ngoµi
Chøc n¨ng cña c¸c ch©n trªn port3
PSEN (Program Store Enable ) : 8051 cã 4 tÝn hiÖu ®iÒu khiÓn
PSEN lµ tÝn hiÖu ra trªn ch©n 29. Nã lµ tÝn hiÖu ®iÒu khiÓn ®Ó cho phÐp bé nhí ch¬ng tr×nh më réng vµ thêng ®îc nèi ®Õn ch©n OE (Output Enable) cña mét EPROM ®Ó cho phÐp ®äc c¸c bytes m· lÖnh.
PSEN sÏ ë møc thÊp trong thêi gian lÊy lÖnh. C¸c m· nhÞ ph©n cña ch¬ng tr×nh ®îc ®äc tõ EPROM qua bus vµ ®îc chèt vµo thanh ghi lÖnh cña 8051 ®Ó gi¶i m· lÖnh. Khi thi hµnh ch¬ng tr×nh trong ROM néi (8051) PSEN sÏ ë møc thô ®éng (møc cao).
ALE (Address Latch Enable ) :TÝn hiÖu ra ALE trªn ch©n 30 t¬ng hîp víi c¸c thiÕt bÞ lµm viÖc víi c¸c xö lÝ 8585, 8088, 8086, 8051 dïng ALE mét c¸ch t¬ng tù cho lµm viÖc gi¶i c¸c kªnh c¸c bus ®Þa chØ vµ d÷ liÖu khi port 0 ®îc dïng trong chÕ ®é chuyÓn ®æi cña nã : võa lµ bus d÷ liÖu võa lµ byte thÊp cña ®Þa chØ, ALE lµ tÝn hiÖu ®Ó chèt ®Þa chØ vµo mét thanh ghi bªn ngoµi trong n÷a ®Çu cña chu kú bé nhí. Sau ®ã, c¸c ®êng port 0 dïng ®Ó xuÊt hoÆc nhËp d÷ liÖu trong n÷a sau chu kú cña bé nhí.
C¸c xung tÝn hiÖu ALE cã tèc ®é b»ng 1/6 lÇn tÇn sè dao ®éng trªn chip vµ cã thÓ ®îc dïng lµ nguån xung nhÞp cho c¸c hÖ thèng. NÕu xung trªn 8051 lµ 12MHz th× ALE cã tÇn sè 2MHz. ChØ ngo¹i trõ khi thi hµnh lÖnh MOVX, mét xung ALE sÏ bÞ mÊt. Ch©n nµy còng ®îc lµm ngâ vµo cho xung lËp tr×nh cho EPROM trong 8051.
EA (External Access) :TÝn hiÖu vµo EA trªn ch©n 31 thêng ®îc m¾c lªn møc cao (+5V) hoÆc møc thÊp (GND). NÕu ë møc cao, 8051 thi hµnh ch¬ng tr×nh tõ ROM néi trong kho¶ng ®Þa chØ thÊp (4K). NÕu ë møc thÊp, ch¬ng tr×nh chØ ®îc thi hµnh tõ bé nhí më réng. Khi dïng 8031, EA lu«n ®îc nèi møc thÊp v× kh«ng cã bé nhí ch¬ng tr×nh trªn chip. NÕu EA ®îc nèi møc thÊp bé nhí bªn trong ch¬ng tr×nh 8051 sÏ bÞ cÊm vµ ch¬ng tr×nh thi hµnh tõ EPROM më réng. Ngêi ta cßn dïng ch©n EA lµm ch©n cÊp ®iÖn ¸p 21V khi lËp tr×nh cho EPROM trong 8051.
RST (Reset) :Ngâ vµo RST trªn ch©n 9 lµ ngâ reset cña 8051. Khi tÝn hiÖu nµy ®îc ®a lªn móc cao (trong Ýt nhÊt 2 chu kú m¸y ), c¸c thanh ghi trong 8051 ®îc t¶i nh÷ng gi¸ trÞ thÝch hîp ®Ó khëi ®éng hÖ thèng.
CÊp clock cho 8051
Xtal1 & Xtal2 :Nh ®· thÊy trong c¸c h×nh trªn, 8051 cã mét bé dao ®éng trªn chip. Nã thêng ®îc nèi víi th¹ch anh gi÷a hai ch©n 18 vµ 19. C¸c tô gi÷a còng cÇn thiÕt nh ®· vÏ. TÇn sè th¹ch anh th«ng thêng lµ 12MHz.
Power: 8051 vËn hµnh víi nguån ®¬n +5V. Vcc ®îc nèi vµo ch©n 40 vµ Vss (GND) ®îc nèi vµo ch©n 20.
2. Tæ chøc bé nhí :
Bé nhí bªn trong bao gåm ROM (8051) vµ RAM trªn chip, RAM trªn chip bao gåm nhiÒu phÇn : phÇn lu tr÷ ®a dông, phÇn lu tr÷ ®Þa chØ hãa tõng bit, c¸c bank thanh ghi vµ c¸c thanh ghi chøc n¨ng ®Æc biÖt.
Tãm t¾t c¸c vïng bé nhí cña 8051
Nh ta ®· thÊy trªn h×nh, RAM bªn 8051 ®îc ph©n chia gi÷a c¸c bank thanh ghi (00H-1FH), RAM ®Þa chØ hãa tõng bit (20H-2FH) , RAM ®a dông (30H--7FH) vµ c¸c thanh ghi chøc n¨ng ®Æc biÖt (80H-FFH).
Bé nhí ROM cã 30 byte ®Çu tiªn ®îc dµnh cho b¶ng vector ng¾t :
RAM trªn chip bao gåm vïng RAM ®a chøc n¨ng, vïng RAM víi tõng bit ®ược ®Þnh ®Þa chØ, c¸c dãy thanh ghi (bank) vµ c¸c thanh ghi chøc n¨ng ®Æc biÖt.
Vïng RAM ®a môc ®Ých: Cã 80 byte, ®Þa chØ tõ 30H ®Õn 7FH
BÊt cø vÞ trÝ nµo trong vïng RAM ta ®Òu cã thÓ truy xuÊt tự do b»ng c¸ch sö dông ®Þnh ®Þa chØ trùc tiÕp hoÆc gi¸n tiÕp.
Vïng RAM ®Þnh ®Þa chØ:
Chip 8951 chøa 210 vi trÝ ®Þnh ®Þa chØ in ®ã cã 128 byte chøa trong c¸c byte ë ®Þa chØ 20H ®Õn 2FH (16 byte x 8 = 128 bits), phÇn cßn l¹i chøa trong c¸c thanh ghi chøc n¨ng ®Æc biÖt.
C«ng dông: + Truy xuÊt c¸c bit riªng rÏ th«ng qua c¸c phÇn mÒn.
+ C¸c port cã thÓ ®Þng ®Þa chØ tõng bit, lµm ®¬n gi¶n viÖc giao tiÕp b¨ng phÇn mÒn víi c¸c thiÕt bÞ xuÊt nhËp ®¬n bit.
C¸c d·y thanh ghi:
Cã ®Þa chØ tõ 00H ®Õn 1FH, 32 vÞ trÝ thÊp nhÊt cña bé nhí néi chøa c¸c d·y thanh ghi. C¸c lÖnh cña 8951 hç trî 8 thanh ghi tö R0 ®Õn R7 (mÆc ®Þnh thuéc bank 0 sau khi reset hÖ thèng)
C¸c thanh ghi chøc n¨ng ®Æc biÖt (SFR)
Kh«ng ph¶i tÊt c¶ 128 ®Þa chØ tõ 80H ®Õn FFH ®Òu ®ược ®Þnh nghÜa mµ chỉ cã 21 ®Þa chØ ®ược ®Þnh nghÜa.
C¸c thanh ghi chøc n¨ng ®Æc biÖt bao gåm:
+ PSW: cã ®Þa chØ lµ D0H
Bit
KÝ hiÖu
§Þa chØ
M« t¶
PSW.7
CY
D7H
Cê Nhí
PSW.6
AC
D6H
Cê nhí phô
PSW.5
F0
D5H
Cê 0
PSW.4
RS1
D4H
Chän d·y thanh ghi 1
PSW.3
RS0
D3H
Chänh d·y thanh ghi 0
00 = bank 0: ®Þa chØ tõ 00F ®Õn 07H
01 = bank 1: ®Þa chØ tõ 08F ®Õn 0FH
10 = bank 2: ®Þa chØ tõ 00F ®Õn 07H
11 = bank 3: ®Þa chØ tõ 00F ®Õn 07H
PSW.2
OV
D2H
Cê trµn
PSW.1
-
D1H
Dù tr÷
PSW.0
P
D0H
Cê kiÓm tra ch½n lÎ
+ Thanh ghi B: Cã ®Þa chØ F0H ®ược dïng chung víi thanh chøa A trong c¸c phép to¸n nh©n vµ chia.
+ Con trá Stack (SP) : lµ thanh ghi 8 bit ë ®Þa chØ 81H, nã chøa ®Þa chØ cña d÷ liÖu hiÖn ®ang ë ®Ønh cña stack.
+ Con trá d÷ liÖu DPTR: - Dïng ®Ó truy xuÊt bé nhí chư¬ng tr×nh ngoµi hoặc bé nhí d÷ liÖu ngoµi.
- DPTR lµ thanh ghi 16 bit cã ®Þa chØ 82H (byte thÊp ) vµ 83H (byte cao).
+ C¸c thanh ghi port:
- Port 0 : ®Þa chØ 80H
- Port 1 : ®Þa chØ 90H
- Port 2 : ®Þa chØ A0H
- Port 3 : ®Þa chØ B0H
+ C¸c thanh ghi ®Þnh thêi:
8951 cã 2 bé ®Þnh thêi/®Õm dïng ®Ó ®Þnh kho¶ng thêi gian hoÆc ®Õm c¸c sù kiÖn.
- Bé ®Þnh thêi 0: ®Þa chØ 8AH (TL0 ) va 8CH (TH0)
- Bé ®Þnh thêi 1: ®Þa chØ 8bH (TL1 ) va 8DH (TH1)
Ho¹t ®éng cña bé ®Þnh thêi ®ược thiÕt lËp bëi thanh ghi chÕ ®é ®Þnh thêi TMOD ë ®Þa chØ 89H vµ thanh ghi ®iều khiÓn bé ®Þnh thêi TCON ë ®Þa chØ 88H (chØ cã TCON ®ược ®Þnh ®Þa chØ tõng bit)
a. Thanh ghi chÕ ®é ®Þnh thêi TMOD:
GATE
C/T
M1
M0
GATE
C/T
M1
M0
TMOD chøa hai nhãm 4 bit dïng ®Ó thiÕt lËp chÕ ®é ®Þnh thêi cho bé ®Þnh thêi 0 vµ bé ®Þnh thêi 1.
TMOD kh«ng ®îc ®Þnh ®Þa chØ tõng bit mµ ®îc thiÕt lËp mét lÇn b»ng phÇn mÒm ë ®Çu ch¬ng tr×nh.
Bit Tªn Bé ®Þnh thêi M« t¶
7 GATE 1 -Bit ®iÒu khiÓn cæng. Bé ®Þnh thêi 1 ho¹t ®éng khi
GATE ®îc set b»ng 1 vµ /INT1 ë møc cao.
6 C/T 1 - Bit chän chÕ ®é ®Õm hoÆc ®Þnh thêi. Xo¸ b»ng 0 khi
®Õm sù kiÖn (tÝn hiÖu vµo tõ ®ång hå hÖ thèng trong
chip), set b»ng 1 khi ho¹t ®éng ®Þnh thêi
5 M1 1 - Bit chän chÕ ®é.
4 M0 1 - Bit chän chÕ ®é.
T¬ng tù nh vËy víi 4 bit cña bé ®Þnh thêi 0. Víi c¸c chÕ ®é ®Þnh thêi ®îc chän:
M1 M0 ChÕ ®é M« t¶
0 0 0 ChÕ ®é ®Þnh thêi 13 bit
0 1 1 ChÕ ®é ®Þnh thêi/ bé ®Õm 16 bit
1 0 2 ChÕ ®é ®Þnh thêi/ bé ®Õm 8 bit tù n¹p l¹i
1 1 3 Timer 0: TL0 lµ bé ®Þnh thêi/ ®Õm 8 bit ®iÒu khiÓn.
bëi c¸c bit chän cña Timer 0 chuÈn. TH0 lµ mét bé
timer 8 bit ®iÒu khiÓn bëi c¸c bit chän cña Timer 1.
Cßn Timer 1 dõng kh«ng ho¹t ®éng
b. Thanh ghi ®iÒu khiÓn ®Þnh thêi TCON:
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
Bit Tªn §Þa chØ bit M« t¶
TCON.7 TF1 8Fh Cê trµn cña bé ®Þnh thêi 1. §îc set bëi phÇn cøng khi cã trµn, ®îc xo¸ bëi phÇn mÒm hoÆc phÇn cøng khi bé vi xö lý trá ®Õn tr×nh phôc vô ng¾t.
TCON.6 TR1 8Eh Bit ®iÒu khiÓn Timer 1. Set hoÆc xo¸ bëi phÇn cøng ®Ó timer 1 ho¹t ®éng hoÆc ngõng.
TCON.5 TF0 8Dh Cê trµn cña Timer 1. Set/ xo¸ bëi phÇn cøng khi Timer/ Counter 0 trµn hoÆc bé vi xö lý trá ®Õn tr×nh phôc vô ng¾t.
TCON.4 TR0 8Ch Bit ®iÒu khiÓn ho¹t ®éng cña Timer 0.
TCON.3 IE1 8Bh Cê ng¾t bªn ngoµi 1 (kÝch khëi c¹nh). Ho¹t ®éng bëi phÇn cøng.
TCON.2 IT1 8Ah Cê ng¾t bªn ngoµi 1 (kÝch khëi c¹nh hoÆc møc). Ho¹t ®éng bëi phÇn mÒm.
TCON.1 IE0 89h Cê ng¾t bªn ngoµi 0 (kÝch khëi c¹nh). Ho¹t ®éng bëi phÇn cøng.
TCON.0 IT0 88h Cê ng¾t bªn ngoµi 0 (kÝch khëi c¹nh hoÆc møc). Ho¹t ®éng bëi phÇn mÒm.
+ C¸c thanh ghi cña port nèi tiÕp: Chip 8951 cã 1 port nèi tiÕp ®Ó truyÒn th«ng víi c¸c thiÕt bÞ như c¸c thiÕt bÞ ®Çu cuèi hoÆc modem...
+ C¸c thanh ghi ng¾t: cã mét cÊu tróc ng¾t víi 2 møc ưu tiªn vµ 5 nguyªn nh©n ng¾t. C¸c ng¾t bÞ v« hiÖu ho¸ sau khi Reset hÖ thèng vµ ®ược phÐp b»ng c¸ch vµo thanh ghi IE ë ®Þa chØA8H.
Møc ưu tiªn ng¾t ®ược thiÕt lËp bởi thanh ghi IP ë ®Þa chØ B8H.
+ Thanh ghi ®iÒu khiÓn nguån: PCON cã ®Þa chØ 87H.
3. Ho¹t ®éng ®Þnh thêi:
Lµ mét chuçi c¸c Flip-Flop nèi tiÕp nhau vµ nhËn tÝn hiÖu tõ nguån xung nhÞp. Bé ®Þnh thêi ®ược lËp trình sao cho sÏ trµn trong mét kho¶ng thêi gian nhÊt ®Þnh vµ set cê trµn cña bé ®Þnh thêi = 1.
C¸c bé ®Þnh thêi sö dông ®Ó:
- §Þnh thêi trong mét kho¶ng thêi gian.
- §Õm sù kiÖn.
- T¹o tèc ®é baud cho c¸c port nèi tiÕp.
C¸c bé ®Þnh thêi ®ược truy xuÊt b»ng c¸ch sö dông 6 thanh ghi chøc n¨ng ®Æc biÖt.
SFR cña bé ®Þnh thêi
Môc ®Ých
§Þa chØ
§Þa chØ cña Bit
TCON
§iÒu khiÓn
88H
Cã
TMOD
Chon chÕ ®é
89H
Kh«ng
TL0
Byte thÊp cña bé ®Þnh thêi 0
8AH
Kh«ng
TL1
Byte thÊp cña bé ®Þnh thêi 1
8BH
Kh«ng
TH0
Byte cao cña bé ®Þnh thêi 0
8CH
Kh«ng
TH1
Byte cao cña bé ®Þnh thêi 1
8DH
Kh«ng
4. Ho¹t ®éng ng¾t:
.Lµ mét sù kiªn, mét ®iÒu kiÖn lµm cho chư¬ng tr×nh hiện hµnh t¹m dõng trong khi ®iÒu kiÖn ®ược phôc vô bëi mét chương tr×nh kh¸c. Ng¾t ®ãng vai trß quan träng trong viÖc thiÕt kÕ, thùc hiÖn øng dông c¸c bé vi ®iÒu khiÓn.
Tæ chøc ng¾t cña 8951:
. Cã 5 nguyªn nh©n t¹o ra ng¾t: 2 ng¾t do bªn ngoµi, 2 ng¾t do bé ®Þnh thêi, mét ng¾t do port nèi tiÕp.
. Khi x¶y ra 2 hay nhiÒu ng¾t ®ång thêi hoặc mét ng¾t trong khi ®ang thùc hiªn mét ng¾t kh¸c th× ta sÏ cã 2 s¬ ®å xö lý c¸c ng¾t: S¬ ®å chuçi vßng vµ s¬ ®å møc ưu tiên.
Ngắt được cho phép và không được cho phép
Bit
KÝ hiÖu
§Þa chØ bit
M« t¶
(0= Kh«ng cho phÐp; 1= Cho phÐp)
IE.7
EA
AFH
Cho phÐp/ kh«ng cho phÐp toµn côc
IE.6
-
AEH
Kh«ng sö dông
IE.5
ET2
ADH
Cho phÐp ng¾t do bé ®Þnh thêi 2
IE.4
ES
ACH
Cho phÐp ng¾t do port nèi tiÕp
IE.3
ET1
ABH
Cho phÐp ng¾t do bé ®Þnh thêi 1
IE.2
EX1
AAH
Cho phÐp ng¾t tõ bªn ngoµi (Ng¾t ngoµi 1)
IE.1
ET0
A9H
Cho phÐp ng¾t do bé ®Þnh thêi 0
IE.0
EX0
A8H
Cho phÐp ng¾t tõ bªn ngoµi (Ng¾t ngoµi 0 )
* ¦u tiªn ng¾t:
C¸c ưu tiªn ng¾t ®ưîc lËp tr×nh riªng rÏ ®Ó cã mét trong 2 møc ưu tiªn th«ng qua c¸c thanh ghi chøc n¨ng ®Æc biÖt ®ược ®Þnh ®Þa chØ bit.
Bit
KÝ hiÖu
§Þa chØ bit
M« t¶
(0= Kh«ng cho phÐp; 1= Cho phÐp)
IP.7
-
-
Kh«ng sö dông
IP.6
-
-
Không sử dụng
IP.5
PT2
BDH
¦u tiªn ng¾t do bé ®Þnh thêi 2
IP.4
PS
BCH
¦u tiªn ng¾t do port nèi tiÕp
IP.3
PT1
BBH
¦u tiªn ng¾t do bé ®Þnh thêi 1
IP.2
PX1
BAH
¦u tiªn ng¾t tõ bªn ngoµi (Ng¾t ngoµi 1)
IP.1
PT0
B9H
¦u tiªn ng¾t do bé ®Þnh thêi 0
IP.0
PX0
B8H
¦u tiªn ng¾t tõ bªn ngoµi (Ng¾t ngoµi 0 )
Xö lý ng¾t:
C¸c thao t¸c x¶y ra sau khi ng¾t:
- Hoàn tÊt viÖc thùc thi lÖnh hiÖn hµnh.
- Bé ®Õm chư¬ng tr×nh PC ®ưîc hoµn tÊt.
- Tr¹ng th¸i cña ng¾t hiÖn hµnh ®ược lưu gi÷ l¹i.
- C¸c ng¾t ®ược chÆn l¹i ë møc ng¾t.
- Bé ®Õm chương tr×nh PC ®ược n¹p ®Þa chØ vÐct¬ cña tr×nh phôc vô ng¾t ISR
- SR ®ưîc thùc thi.
C¸c cê ng¾t:
Ng¾t
Cê
Thanh ghi SFR vµ vÞ trÝ bÝt
Do bªn ngoµi (ng¾t ngoµi 0)
IE0
TCON.1
Do bªn ngoµi (ng¾t ngoµi 1)
IE1
TCON.3
Do bé ®Þnh thêi 1
TF1
TCON.7
Do bé ®Þnh thêi 0
TF0
TCON.5
Do port nèi tiÕp
TI
SCON.1
Do port nèi tiÕp
RI
SCON.0
* Thanh ghi ®iÒu khiÓn ho¹t ®éng cæng nèi tiÕp SCON:
SM0
SM1
SM2
REN
TB
RB8
TI
RI
Bit Ký hiÖu M« t¶
SCON.7 SM0 Bit 0 chän chÕ ®é cña port nèi tiÕp.
SCON.6 SM1 Bit 1 chän chÕ ®é cña port nèi tiÕp.
SCON.5 SM2 Bit 2 chän chÕ ®é cña port nèi tiÕp.
SCON.4 REN Set/ xo¸ b»ng phÇn mÒm ®Ó cho phÐp/ kh«ng cho phÐp thu.
SCON.3 TB8 Bit ph¸t 8. Bit thø 9 ®îc ph¸t ë c¸c c¸c chÕ ®é 2 vµ 3; ®îc set hoÆc xo¸ bëi phÇn mÒm.
SCON.2 RB8 Bit ph¸t 8. Bit thø 9 nhËn ®îc cê ng¾t ph¸t; ®îc xo¸ bëi phÇn mÒm.
SCON.1 TI Cê ng¾t ph¸t.
SCON.0 RI Cê ng¾t thu.
Khối phím ấn
Khối phím gồm 4 phím là :Func,DEC,INC,OK.Khi bấm vào phím nào đố VXL sẽ gọi chương trình phục vụ ngắt phím.Các phím này được dùng để tăng và lưu giá trị nhiệt độ.
Phím FUNC :lưu giá trị cảnh báo max
Phím DEC: tăng giá trị nhiệt độ đặt
Phím INC: giảm giá trị nhiệt độ đặt
Phím OK: lưu giá trị cảnh báo min
Ta dùng vi mach 74LS148 để giải mã phím.Khi ấn nút vi mạch sẽ phát ra 1 ngắt để cho VXL biết để nhận mã phím vào
Đặc điểm chính của vi mạch 74LS148
-Là 1 IC mã hóa có 8 đường vào song song.Mỗi đường vào sẽ tưong ứng với 1 mã nhị phân ở lối ra song song qua 3 cổng A,B,C
-Các lối vào có các chân X0-X7 là các lối vào ưu tiên tích cực thấp,chân EI là lối vào cho phép tích cực thấp
- Các lối ra gồm có các chân ADC là các mã của đầu vào,chân EO là lối ra cho phép tích cực cao,chân GS sẽ phát ra 1 ngắt khi có phím được ấn
EI
X0
X1
X2
X3
X4
X5
X6
X7
GS
A
B
C
EO
H
X
X
X
X
X
X
X
X
H
H
H
H
H
L
H
H
H
H
H
H
H
H
H
H
H
H
L
L
X
X
X
X
X
X
X
L
L
L
L
L
H
L
X
X
X
X
X
X
L
H
L
H
L
L
H
L
X
X
X
X
X
L
H
H
L
L
H
L
H
L
X
X
X
X
L
H
H
H
L
H
H
L
H
L
X
X
X
L
H
H
H
H
L
L
L
H
H
L
X
X
L
H
H
H
H
H
L
H
L
H
H
L
X
L
H
H
H
H
H
H
L
L
H
H
H
L
L
H
H
H
H
H
H
H
L
H
H
H
H
Các đầu vào từ X4-X7 ,ta sẽ có các đầu ra A,B,C có mã tương ứng là
Phím
A
B
C
FUNC
1
1
0
DEC(-)
1
0
0
INC(+)
0
1
0
OK
0
0
0
Hiển thị Led
Sö dông 1 LED 4digit ®Ó hiÓn thi nhiÖt ®é.
TÝn hiÖu tõ P2 cña khèi Vi xö lý ®îc ®ua qua bé gi¶i m· LED 7 thanh 74LS47 ®Õn LED 7 thanh.
NhiÖt ®é m«i trêng ®îc ®o trong kho¶ng 0OC ®Õn 100OC vµ hiÓn thÞ trªn LED.
RS 232
Max 232 là mạch truyền tin công nghiệp khi Master gọi Slave thì mở phiên truyền tin.Việc truyền tin đi xa ở mức điện áp TTL có thể gây suy giảm điện áp ,lẫn nhiễu làm khó phân biệt được tín hiệu 0 hay 1 .Điều này làm sai lêch thông tin nên truyền thông đi xa phải tăng mức điện áp
Nhưng mức điện áp của các mạch số TTL là khcs với mức điện áp của máy tinh nên cần có mạch chuẩn
Cổng nối tiếp RS232 là giao diện dùng cho nhiều mục đích đo lường điều khiển và nhiều ứng dụng điều khiển khác.Trong PC cổng nối tiếp thường là các cổng COM1, COM2.Việc truyền dữ liệu qua cổng RS232 được tiến hành theo cách nối tiếp tức là các dữ liệu truyền nối tiếp trên 1 đường dây ,cổng RS232 dễ dàng cho liên kết điểm-điểm,giữa 2 máy tính với nhau hay giữa máy tính với ngoại vi
Các thông số kỹ thuật :
Tốc độ truyền tối đa là 20BAUD
Khoảng cách cực đại là 15m
Mức logic 1là từ -3 đến -25V
Mức logic 0là từ 3 đến 25V
Tín hiệu nhiễu cho phép 2V
Cấu trúc cổng nối tiếp kiểu chân
Chân
Chức năng
Vào /Ra
1
DCD
IN
2
RxD
IN
3
TxD
OUT
4
DTR
OUT
5
GND
GROUND
6
DSR
IN
7
RST
OUT
8
CST
IN
9
RI
IN
Cấu trúc 1 Frame
Bit start
Bits Data
Bit Parity
Bit Stop
Khối nguồn cung cấp
Ta dùng 2 nguồn 5V và 9V cấp cho mạch
Sơ đồ nguyên lý tổng thể
Phần mềm
Lưu đồ thuật toán
Lưu đồ thuật toán
Start
P3.3=1
Call Key_sev
Call Delay
Tạo xung Start, ALE cho ADC
Chờ ngắt ngoài EX0 (ADC biến dổi xong)
Tạo xung OE cho phép đọc dữ liệu từ ADC
Cất dữ liệu lấy từ ADC vào thanh Ro
Hiển thị nhiệt độ môi trường
Kiểm tra nhiệt độ để cảnh báo
END
phục vụ ngắt phím
Key-SRV
Cấm tất cả các ngắt gọi đến VXL
Cất các thanh ghi sẽ dùng
Đọc mã vào thanh ghi ACC
ACC=01
ACC=11
ACC=10
ACC=00
RETI
Tang muc thap
Giam muc thap
Tang muc cao
Giam muc cao
Lưu đồ kiểm tra
T>Tmax
T<Tmin
RETI
Gọi Red_Led
Gọi Blue_Led
Lưu đồ truyền tin
SC_SRV
Cấm các ngắt khác
Cho phép các ngắt
Gọi trình phục vụ ngắt truyền
RI=1
TI=1
Gọi trình phục vụ nhận byte
RETI
Phần mềm chương trình
# Include “89c51”
Org 00h
ljmp Start
Start :
Mov SP,#6Fh
mov IE,#00h
mov PSW,#00h
Mov R6,#20h
Mov R7,#80h
Mov TMOD,#01h ;chon che do 16 bit
mov P0,#0ffh
mov P1,#00h
Delay:
Mov TL0,#00h
Mov TH0,#00h
Setb TR0
Again :
jnb TF0,Again
clr TF0
ret
Delay1:
nop
nop
nop
nop
nop
ret
Loop: ;tao xung start cho ADC
jnc P3.3,Key_sev
Lcall Delay
setb P3.6
lcall delay1
clr P3.6
BD_xong:
setb P3.7 ;tao xung EO cho ADC
lcall delay1
clr P3.7
mov R0,P0
mov P0,#0ffh
mov A,R0
Lcall Led_show
clr P1.6
clr P1.7
lcall Canhbao
ljmp loop
Led_show : ;hien thi gia tri o thanh ghi A ra man Led
Mov R5,A
Anl A,#0fh
Clr P1.0
Clr P1.1
Setb P1.2
Mov P2,A
Mov A,R5
Swap A
Anl A,#0fh
Clr P1.0
Clr P1.2
Setb P1.1
Mov P2,A
Ret
Canhbao:
clr c
subb A,R6
jnc HT1
setb P1.6
HT1:
subb A,R7
jnc HT2
ljmp Loop
HT2:
etb P1.7
ret
Key_sev :
Push Acc
Mov A,P1
Swap A
Cjne A,#00,Kiem_tra1
Mov A,R6
Inc A
mov R6,A
Lcall Led_show1
ljmp ketthuc
Kiem_tra1 :
Cjne A,#01h,Ktra2
mov A,R6
Dec A
mov R6,A
lcall Led_show1
ljmp ketthuc
Ktra2 :
Cjne A,#02h,ktra3
mov A,R7
inc A
mov R7,A
lcall Led_show1
Lcall ketthuc
ktra3:
Cjne A,#03h,ketthuc
mov A,R7
dec A
mov R7,A
lcall Led_show1
Lcall ketthuc
ketthuc:
Pop Acc
Reti
; Truyen thong
Mov TMOD,#20h
Mov TH1,#0fdh
Mov SCON,#50
Setb TR1
Send:
Mov SBUF,A
Wait:
Jnb TI,Wait
Clr TI
Ret
End.
Đánh giá sai số
Sai số gặp phải của hệ VXL do các sai số:
-Sai số hệ thống:do sự hiểu biết sai lệch hoặc không đầy đử về hệ đo,hay do điều kiện sử dụng không tốt như:sai số do dặc tính của cảm biến,do các đại lượng chuẩn không đúng... và do xử lý kết quả đo
- Sai số ngẫu nhiên:không thể xác định do tín hiệu,các đại lượng ảnh hưởng
Đánh giá sai số
Bộ phận nguồn có thể cung cấp nguồn nuôi không ổn định gây sai số khoảng 1%
Cảm biến có sai số 10C dải đo 0-1000C nên sai số lên tới 1%
Mạch đo có thể do ảnh hưởng ngoài ,các linh kiện như điện trở,tụ,...có thể gây sai số ≤1%
ADC gây sai số 1 bước lượng tử nên sai số là 1/28 = 0.39%
Sai số tổng là
λ = (λ12 + λ22+ λ32+λ42)1/2 =1.8%
Vậy sai số của thiết bị tối đa là 1.8%
Như vậy sai số của mạch chủ yếu do phần tương tự,còn phần số nhỏ không đáng kể.Ta có thể dự tính được sai số và có phương pháp để giảm sai số
Kết luận,tài liệu tham khảo
Sau 12 tuần nghiên cứu ,thiết kế và được sự giúp đỡ tận tình của thầy Hoàng Sĩ Hồng chúng em đã hoàn thành các yêu cầu cơ bản của môn học đồ án Vi xử lý.Tuy bài tập của chúng em còn nhiều hạn chế do sự nghiên cứu ,tím hiểu về VĐK,linh kiện,thiếu kinh nghiệm thực tế nhưng qua thực hiện bài tập môn học này chúng em đã hiểu hơn về cấu tạo ,hoạt động và ứng dụng của VĐK,đặc biệt là VĐK89C51.Chúng em xin chân thành cảm ơn thầy Hoàng Sĩ Hồng và các thầy cô trong bộ môn đã giúp đỡ và tạo điều kiện thuận lợi cho chúng em.
Tài liệu tham khảo
-Kỹ thuật VXL và lập trình Assembly cho hệ VXL-Đỗ Xuân Tiến
-Họ vi điều khiển 8051-Nguyễn Tăng Cường