Phần mềm đo nhiệt độ

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(100C -800C), 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

doc30 trang | Chia sẻ: banmai | Lượt xem: 2357 | Lượt tải: 2download
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 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 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 nh­ng 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 nh­ng 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,nh­ng 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 c­a 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 tr­ng ®­î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 l­u tr÷ ®a dông, phÇn l­u 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

Các file đính kèm theo tài liệu này:

  • docbaocaodoan.doc
  • asmdonhietdo.asm
  • plgdonhietdo.plg