Đề tài Thiết bị vi xử lý 8 bit

YÊU CầU Phần cứng : 1. Bộ vi xử lý 8 bit (8085, 89C51 .) 2. Bộ nhớ chương trình ROM : 8KB từ địa chỉ 0000H 3. Bộ nhớ dữ liệu RAM 8kB có địa chỉ tuỳ chọn. 4. Cổng vào tương tự 8 kênh nhận tín hiệu nhiệt độ từ 0 – 10V tương ứng vói nhiệt độ từ 0 – 200 độ C. 5. Nhập dữ liệu vào từ bàn phím 16 phím 6. Khối hiển thị dữ liệu dùng màn hình tinh thể lỏng LCD. Phần mềm : 1. Tín hiệu cho phép chạy và dừng chương trình.Tín hiệu dừng khẩn cấp. 2. Đọc tín hiệu từ 8 kênh đo lư trữ trong vùng nhớ RAM . 3. Sau mỗi lần đọc tính giá trị trung bình của nhiệt độ và gửi kết quả ra cổng hiển thị bằng LCD 4. Chương trinh dừng lại báo động bằng còi nếu xảy ra một số điều kiện sau: - Giá trị trung bình < hoặc > giá trị min hoặc max tương ứng cho trước.Các giá trị max & min này được đặt ở trong 2 ô nhớ RAM. - Có 4 kênh đo vượt quá hoặc nhỏ hơn giá trị giới hạn cho phép so với giá trị trung bình.

doc41 trang | Chia sẻ: banmai | Lượt xem: 2031 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết bị vi xử lý 8 bit, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
§Ò tµI THIÕT KÕ HÖ VI Xö Lý 8 BIT Y£U CÇU PhÇn cøng : Bé vi xö lý 8 bit (8085, 89C51 ¼.) Bé nhí ch­¬ng tr×nh ROM : 8KB tõ ®Þa chØ 0000H Bé nhí d÷ liÖu RAM 8kB cã ®Þa chØ tuú chän. Cæng vµo t­¬ng tù 8 kªnh nhËn tÝn hiÖu nhiÖt ®é tõ 0 – 10V t­¬ng øng vãi nhiÖt ®é tõ 0 – 200 ®é C. 5. NhËp d÷ liÖu vµo tõ bµn phÝm 16 phÝm 6. Khèi hiÓn thÞ d÷ liÖu dïng mµn h×nh tinh thÓ láng LCD. PhÇn mÒm : TÝn hiÖu cho phÐp ch¹y vµ dõng ch­¬ng tr×nh.TÝn hiÖu dõng khÈn cÊp. §äc tÝn hiÖu tõ 8 kªnh ®o l­ tr÷ trong vïng nhí RAM . Sau mçi lÇn ®äc tÝnh gi¸ trÞ trung b×nh cña nhiÖt ®é vµ göi kÕt qu¶ ra cæng hiÓn thÞ b»ng LCD Ch­¬ng trinh dõng l¹i b¸o ®éng b»ng cßi nÕu x¶y ra mét sè ®iÒu kiÖn sau: - Gi¸ trÞ trung b×nh gi¸ trÞ min hoÆc max t­¬ng øng cho tr­íc.C¸c gi¸ trÞ max & min nµy ®­îc ®Æt ë trong 2 « nhí RAM. - Cã 4 kªnh ®o v­ît qu¸ hoÆc nhá h¬n gi¸ trÞ giíi h¹n cho phÐp so víi gi¸ trÞ trung b×nh. phÇn I ThiÕt kÕ m¹ch phÇn cøng Ch­¬ng I ®Þnh h­íng thiÕt kÕ ThiÕt kÕ mét hÖ vi xö lý bao gåm c¶ viÖc thiÕt kÕ tæ chøc phÇn cøng vµ viÕt phÇn mÒm cho nÒn phÇn cøng mµ ta thiÕt kÕ. ViÖc xem xÐt gi÷a tæ chøc phÇn cøng vµ ch­¬ng tr×nh phÇn mÒm cho mét thiÕt kÕ lµ mét vÊn ®Ò cÇn ph¶i c©n nh¾c. V× khi tæ chøc phÇn cøng cµng phøc t¹p, cµng cã nhiÒu chøc n¨ng hç trî cho yªu cÇu thiÕt kÕ th× phÇn mÒm cµng ®­îc gi¶m bít vµ dÔ dµng thùc hiÖn nh­ng l¹i ®Èy cao gi¸ thµnh chi phÝ cho phÇn cøng, còng nh­ chi phÝ b¶o tr×. Ng­îc l¹i víi mét phÇn cøng tèi thiÓu l¹i yªu cÇu mét ch­¬ng tr×nh phÇn mÒm phøc t¹p h¬n, hoµn thiÖn h¬n; nh­ng l¹i cho phÐp b¶o tr× hÖ thèng dÔ dµng h¬n còng nh­ viÖc ph¸t triÓn tÝnh n¨ng cña hÖ thèng tõ ®ã cã thÓ ®­a ra gi¸ c¹nh tranh ®­îc. Tõ yªu cÇu vµ nhËn ®Þnh trªn ta cã nh÷ng ®Þnh h­íng s¬ bé cho thiÕt kÕ nh­ sau: 1. Chän bé vi xö lý: Tõ yªu cÇu dïng VXL 8 bit ta dù kiÕn dïng c¸c chip vi ®iÒu khiÓn thuéc hä MCS-51 cña Intel, mµ cô thÓ ë ®©y lµ dïng chip 89C51 v× nh÷ng lý do sau: + AT89C51 thuéc hä MCS-51, lµ chip vi ®iÒu khiÓn 8 bÝt ®¬n chÝp CMOS cã hiÖu suÊt cao, c«ng suÊt nguån tiªu thô thÊp vµ cã 4 Kb bé nhí ROM Flash xo¸ ®­îc lËp tr×nh ®­îc. ChÝp nµy ®­îc s¶n xuÊt dùa theo c«ng nghÖ bé nhí kh«ng mÊt néi dung cã ®é tÝch hîp cao cña Atmael + AT89C51 cã c¸c ®Æc tr­ng chuÈn sau: 4Kb Flash, 128 byte RAM, 32 ®­êng xuÊt nhËp, bé ®Þnh thêi / ®Õm 16 bit, mét cÊu tróc ng¾n hai møc ­u tiªn vµ 5 nguyªn nh©n ng¾t, mét port nèi tiÕp song song c«ng, m¹ch dao ®éng vµ m¹ch dao ®éng vµ m¹ch t¹o xung trªn chÝp. V× nh÷ng lý do trªn mµ viÖc lùa chän vi ®iÒu khiÓn 89C51 lµ mét gi¶i ph¸p hoµn toµn phï hîp cho thiÕt kÕ. 2. Tæ chøc ngo¹i vi: + Xö lý tÝn hiÖu vµo ta dïng thiÕt bÞ chuyÓn ®æi t­¬ng tù/ sè (ADC) cã 8 kªnh vµo t­¬ng tù kÕt nèi víi 8 tÝn hiÖu ®o nhiÖt ®é tõ 0 ¸ 10V t­¬ng øng víi nhiÖt ®é tõ 0o ¸ 200oC. + Xö lý viÖc hiÓn thÞ kÕt qu¶ nhiÖt ®é trung b×nh ta dïng 3 LED 7 thanh ®Ó hiÓn thÞ t­¬ng øng víi c¸c nhiÖt ®é trong d¶i 0 ¸ 2000C. + TÝn hiÖu cho phÐp ch¹y ®­îc xö lý b»ng c¸ch dïng mét nót Ên Reset hÖ thèng. + TÝn hiÖu b¸o ®éng ®­îc xö lý b»ng mét cßi b¸o ®éng kÕt nèi víi mét cæng bÊt kú phôc vô cho vµo/ra. + NÕu cã yªu cÇu dïng c¸c phÝm ®Ó ®Þnh c¸c mode ho¹t ®éng, còng nh­ ®Æt l¹i gi¸ trÞ MAX vµ MIN th× bµn phÝm còng ph¶i ®­îc kÕt nèi víi c¸c cæng giao tiÕp vµo/ra (ë ®©y yªu cÇu dïng 8255). TÊt c¶ c¸c thiÕt bÞ ph¶i ®­îc kÕt nèi víi nhau th«ng qua c¸c bus cÇn thiÕt gåm bus d÷ liÖu, bus ®Þa chØ vµ bus ®iÒu khiÓn. S¬ ®å khèi cho thiÕt kÕ phÇn cøng cña hÖ thèng nh­ sau: VXL 89C51 Khèi vµo t­¬ng tù 8 kªnh Khèi hiÓn thÞ Control Bus Address Bus M¹ch giao tiÕp 8255 Data Bus ROM RAM Ch­¬ng II Néi dung thiÕt kÕ I. tæ chøc phÇn cøng hÖ VXL89C51. 1. HÖ vi xö lý AT89C51: 1.1 S¬ ®å ch©n hÖ vi xö lý AT89C51: Port 0 Port 0 lµ port xuÊt nhËp 8 bit hai chiÒu cùc D hë. Port 0 cßn ®­îc cÊu h×nh lµm bus ®Þa chØ ( byte thÊp ) vµ bus d÷ liÖu ®a hîp trong khi truy xuÊt bé nhí d÷ liÖu ngoµi vcµ bé nhì ch­[ng tr×nh ngoµi. Port 0 còng nhËn c¸c byte m· trong khi lËp tr×nh cho Flash vµ c¸c byte m· trong khi kiÓm tra ch­¬ng tr×nh. Port 1 Port 1 lµ port xuÊt nhËp 8 bÝt. Port 1 còng lµ byte ®Þa chØ thÊp trong thõi gian lËp tr×nh cho Flash vµ kiÓm tra ch­¬ng tr×nh. Port 2 Port 2 lµ port xuÊt nhËp 8 bit hai chiÒu. Port 2 t¹o ra byte cao cña ®Þa chØ trong thêi gian t×m n¹p lÖnh tõ bé nhí ch­¬ng tr×nh ngoµi vµ trong thêi gian truy xuÊt bé nhí d÷ liÖu ngoµi sö dông ®Þa chØ 16 bit Port 2 còng nhËn c¸c ®Þa chØ cao vµ tÝn hiÖu ®iÒu khiÓn trong thêi gian lËp tr×nh cho Flash vµ kiÓm tra ch­¬ng tr×nh. Port 3 Port 3 lµ port xuÊt nhËp 8 bit hai chiÒu. Port 3 còng cßn ®­îc dïng lµm chøc n¨ng kh¸c cña AT89C51 c¸c chøc n¨ng ®­îc liÖt kª nh­ sau: Ch©n cña port Chøc n¨ng P3.0 RxD ( ngâ vµo cña port nèi tiÕp ) P3.1 TxD ( ngâ ra cña port nèi tiÕp ) P3.2 ( ngâ vµ ng¾t ngoµi 0 ) P3.3 ( ngâ vµo ng¾n ngoµi 1 ) P3.4 TO ( ngâ vµo bªn ngoµi cña bé ®Þnh thêi 0 ) P3.5 T1 ( ngâ vµo bªn ngoµi cña bé ®Þnh thêi 1 ) P3.6 ( ®iÒu khiÓn bé nhí d÷ liÖu ngoµi ) P3.7 ( ®iÒu khiÓn ®äc bé nhí d÷ liÖu ngoµi ) Port 3 còng nhËn mét vµi tÝn hiÖu ®iÒu khiÓn cho viÖc lËp tr×nh Flash vµ ®iÒu khiÓn ch­¬ng tr×nh. RST Ngâ vµo reset. ALE/ xung cña ngâ ra cho phÐp chèt ®Þa chØ ALE cho phÐp chèt byte thÊp cña ®Þa chØ trong thêi gian truy xuÊt bé nhí ngoµi. Ch©n nµy còng ®­îc dïng lµm ngâ vµo xung lËp tr×nh ( ) trong thêi gian lËp tr×nh Flash. Ch©n cho phÐp bé nhí ch­¬ng tr×nh ngoµi , ®iÒu khiÓn truy xuÊt bé nhí ch­¬ng tr×nh ngoµi. Ch©n cho phÐp truy nhËp bé nhí ngoµi , ph¶i ®­îc nèi víi GND ®Ó cho phÐp chÝp vi ®iÒu khiÓn t×m n¹p lÖnh tê c¸c vÞ trÝ « nhí cña bé nhí ch­¬ng tr×nh ngoµi Ch©n nèi víi VCC ®Ó thùc hiÖn ch­¬ng tr×nh bªn trong chÝp. cßn nhËn ®iÖn ¸p cho phÐp lËp tr×nh VPP trong thêi gian lËp tr×nh cho Flash , ®iÖn ¸p nµy cÊp cho bé phËn cã yªu cÇu ®iÖn ¸p 12V XTAL1 Ngâ vµo ®Õn m¹ch khuyÕch ®¹i d¶o cña m¹ch dao ®éng vµ ngâ ®Õn m¹ch xung clock bªn trong chÝp. XTAL2 Ngâ ra tõ m¹ch khuyÕch ®¹i ®¶o cña m¹ch dao ®éng. 1.2 Tæ chøc bé nhí: 1.2.1 CÊu tróc chung cña bé nhí: TÊt c¶ c¸c vi ®iÒu khiÓn thuéc hä MCS-51 ®Òu ph©n chia bé nhí thµnh hai vïng ®Þa chØ cho bé nhí d÷ liÖu vµ bé nhí ch­¬ng tr×nh. Sù ph©n chia logic gi÷a bé nhí d÷ liÖu vµ bé nhí ch­¬ng tr×nh cho phÐp truy nhËp bé nhí d÷ liÖu b»ng 8 bit ®Þa chØ gióp cho viÖc l­u tr÷ vµ thao t¸c d÷ liÖu nhanh h¬n.Tuy nhiªn, chóng ta cã thÓ sö dông ®Þa chØ bé nhí d÷ liÖu 16 bit th«ng qua thanh ghi DPTR. Bé nhí ch­¬ng tr×nh lµ lo¹i bé nhí chØ cho phÐp ®äc, kh«ng cho phÐp ghi. Mét sè vi ®iÒu khiÓn ®­îc tÝch hîp s½n bé nhí ch­¬ng tr×nh bªn trong víi dung l­îng kho¶ng 4kbyte hay 8 kbyte, sè cßn l¹i ph¶i sö dông bé ch­¬ng tr×nh më réng mµ qu¸ tr×nh truy nhËp ®­îc thùc hiÖn th«ng qua sù ®iÒu khiÓn b»ng tÝn hiÖu PSEN (Progam Strobe Enable). Tuy nhiªn, vi ®iÒu khiÓn 8051 cho phÐp ta sö dông ®Õn 64kbyte bé nhí ch­¬ng tr×nh b»ng c¸ch sö dông c¶ bé nhí ch­¬ng tr×nh bªn trong vµ bªn ngoµi. Bé nhí sè liÖu chiÕm gi÷ vïng ®Þa chØ ph©n chia cña bé nhí ch­¬ng tr×nh. Dung l­îng cña bé nhí d÷ liÖu cã thÓ më réng lªn tíi 64 kbyte. Trong qu¸ tr×nh truy nhËp bé nhí sè liÖu, CPU ph¸t ra c¸c tÝn hiÖu ®äc vµ tÝn hiÖu viÕt sè liÖu th«ng qua c¸c ch©n RD vµ WR. 00H 0000H Bé nhí Ch­¬ng tr×nh Bé nhí Sè liÖu Bé nhí më réng Bé nhí më réng |PSEN |WR |RD FFH |EA=1 Bé nhí trong |EA=0 Bé nhí ngoµi FFFFH H×nh 2.3: CÊu tróc bé nhí cña hä MCS-51. Chóng ta cã thÓ kÕt hîp bé nhí ch­¬ng tr×nh më réng víi bé nhí sè liÖu më réng b»ng c¸ch cho hai tÝn hiÖu RD vµ PSEN qua mét cæng logic AND, lèi ra cña cæng AND nµy sÏ t¹o tÝn hiÖu ®äc cho bé nhí më réng. 1.2.2 Bé nhí ch­¬ng tr×nh: Sau khi Reset, CPU b¾t ®Çu thùc hiÖn ch­¬ng tr×nh tõ ®Þa chØ 0000H. Vïng ®Çu cña bé nhí ch­¬ng tr×nh lµ vïng chøa c¸c vector ng¾t, mçi ng¾t ®­îc ph©n chia mét vïng ®Þa chØ cè ®Þnh trong trong bé nhí ch­¬ng tr×nh. Khi xuÊt hiÖn ng¾t, CPU sÏ nh¶y tíi ®Þa chØ nµy, ®©y còng lµ ®Þa chØ ®Çu cña ch­¬ng tr×nh con phôc vô ng¾t. C¸c vector ng¾t c¸ch nhau 8 byte, v× vËy nÕu ch­¬ng tr×nh con phôc vô ng¾t qu¸ dµi (>8 byte) th× t¹i vector ng¾t ta ph¶i ®Æt mét lÖnh nh¶y kh«ng ®iÒu kiÖn tíi vïng ®Þa chØ kh¸c chøa ch­¬ng tr×nh con phôc vô ng¾t. 1.2.3 Bé nhí sè liÖu: PhÝa bªn ph¶i cña H×nh 2.3 biÓu diÔn kh«ng gian bé nhí d÷ liÖu cña MCS-51. Chóng ta cã thÓ sö dông tíi 64 Kbyte bé nhí sè liÖu ngo¹i vi. §é réng bus ®Þa chØ cña bé nhí sè liÖu ngoµi cã thÓ lµ 8 bit hoÆc 16 bit. Bus ®Þa chØ réng 8 bit th­êng ®­îc sö dông ®Ó liªn kÕt víi mét hoÆc nhiÒu ®­êng vµo ra kh¸c ®Ó ®Þnh ®Þa chØ cho RAM theo trang. Trong tr­êng hîp bus ®Þa chØ réng 16 bit, cæng P2 sÏ ph¸t ra 8 bit ®Þa chØ cao cßn cæng P1 sÏ ph¸t ra 8 bit ®Þa chØ thÊp. B»ng c¸ch nµy, ta cã thÓ truy nhËp trùc tiÕp lªn bé nhí d÷ liÖu ngoµi víi ®é lín tèi ®a lµ 64 Kbyte. Bé nhí sè liÖu trong ®­îc chia ra lµm 3 vïng: +128 byte cao. +128 byte thÊp. +Vïng dµnh cho c¸c thanh ghi chøc n¨ng ®Æc biÖt (SFR). §Þa chØ cña bé nhí sè liÖu trong lu«n lµ 8 bit, vµ cã thÓ qu¶n lý ®­îc 256 byte bé nhí. 2. Tæ chøc bé nhí (Memory Map): Tõ cÊu tróc cña vi ®iÒu khiÓn 89C51 giíi thiÖu ë ch­¬ng I vµ yªu cÇu thiÕt kÕ ta tiÕn hµnh ph©n bæ c¸c vïng nhí nh­ sau: Bé nhí ch­¬ng tr×nh 8K ROM chia lµm hai vïng: ROM trong (On-chip) cã ®Þa chØ vËt lý: 0000H ¸ 0FFFH. Bé nhí d÷ liÖu ®­îc më réng thªm 8K RAM ngoµi, víi ®Þa chØ vËt lý: 2000H ¸ 3FFFH. M¹ch ghÐp nèi vµo/ ra sö dông IC8255 víi ®Þa chØ cña tõng cÊu h×nh nh­ sau: §Þa chØ cæng PA: 4000H §Þa chØ cæng PB: 4001H §Þa chØ cæng PC: 4002H §Þa chØ cña tõ ®iÒu khiÓn PSW: 4003H §Þa chØ cña ADC08098 kªnh vµo t­¬ng tù: 6000H ¸ 6007H. 3. Khèi hiÓn thÞ : Khèi hiÓn thÞ gåm 8 LED 7 ®o¹n ®­îc tæ chøc theo kiÓu s¸ng lu©n phiªn 2.5 ms mét lÇn. LED s¸ng ®­îc chän bëi 89C51 qua ®­êng ®iÒu khiÓn tõ cæng P0.0 -> P0.3. D÷ liÖu ®­îc hiÓn thÞ d­íi d¹ng m· 7 thanh còng ®­îc 89C51 göi tíi LED qua ®­êng data. §Ó phï hîp gi÷a sè liÖu ®­a ra cæng cña 8255 (ë d¹ng BCD) víi sè liÖu hiÓn thÞ ra LED 7 ®o¹n, ta sö dông m¹ch phÇn cøng. V× vËy trong khèi hiÓn thÞ ta sö dông vi m¹ch SN7447 ®Ó gi¶i m· sè BCD ra m· 7 thanh vµ ®Ó ®iÒu khiÓn bé ®Ìn hiÓn thÞ. 4. Khèi c¸c thiÕt bÞ giao tiÕp/ghÐp nèi. Cæng vµo ra t­¬ng tù/sè dïng ADC0809. Sè liÖu vµo t­¬ng tù tõ 8 c¶m biÕn nhiÖt ®é sÏ ®­îc kÕt nèi vµo 8 cæng vµo cña ADC, ADC ®­îc ®iÒu khiÓn bëi VXL89C51 thùc hiÖn viÖc chuyÓn ®æi sè liÖu sang d¹ng sè vµ l­u tr÷ vµo mét vïng nµo ®ã trong RAM trong. Cæng vµo/ ra sè dïng vi m¹ch PPI 8255 cã kh¶ n¨ng lËp tr×nh thùc hiÖn qu¸ tr×nh phèi hîp trao ®æi d÷ liÖu; cô thÓ ë ®©y lµ sè liÖu vµo gi÷a ADC víi VXL vµ sè liÖu tõ VXL ra LED. Giíi thiÖu linh kiÖn vµ tæ chøc phèi ghÐp. 1. ThiÕt kÕ bé nhí: Xem xÐt cÊu tróc cña 89C51 vµ yªu cÇu cÇn 8K cho nhí ch­¬ng tr×nh ta thiÕt kÕ thªm vïng nhí ch­¬ng tr×nh dïng thªm 8Kb ROM ®Æt ë ngoµi. §èi víi yªu cÇu cho nhí d÷ liÖu, v× 89C51 ®· cã 128 bytes RAM trong vµ yªu cÇu cÇn thiÕt kÕ bé nhí d÷ liÖu lµ 4Kb nªn ®Ó dÔ dµng cho thiÕt kÕ ta sö dông thªm 8Kb RAM ngoµi ®Ó më réng bé nhí d÷ liÖu cho hÖ thèng. Bé nhí ROM ngoµi Thùc ra th× ta cã thÓ dïng bé nhí ROM ngoµi lµ c¸c chÝp nhí EPROM cã dung l­îng 4K hoÆc 8K cã b¸n trªn thÞ tr­êng ®Ó më réng bé nhí.Tuy nhiªn, ®Ó cho ®¬n gi¶n ta lùa chän gi¶i ph¸p lµ dïng bé nhí ROM 8k trªn chÝp vi ®iÒu khiÓn 89S51.Nh­ vËy sÏ ®¬n gi¶n h¬n rÊt nhiÒu cho thiÕt kÕ mµ vÉn phï hîp víi néi dung ph¹m vi cho phÐp cña ch­¬ng tr×nh. Bé nhí RAM ngoµi §èi víi RAM ngoµi ta sö dông lo¹i SRAM vi m¹ch dïng trong thiÕt kÕ lµ 6264. Còng cã 13 ®­êng ®Þa chØ 8 ®­êng d÷ liÖu. Nã cã ®Þa chØ 2000¸3FFF, ®Þa chØ nµy ®­îc chän ra trong vïng ®Þa chØ cña vi ®iÒu khiÓn bëi ch©n /CS2 cña gi¶i m· ®Þa chØ. Ngoµi ra cßn cã ®­êng chän vá kh¸c lµ /CS2 ®­îc nèi tÝch cùc vµ cã hai ®­êngtÝn hiÖu yªu cÇu ®äc viÕt lµ /OE, /WE . S¬ ®å ch©n cña RAM 6264: 2. Vi m¹ch ADC0809: Bé ADC 0809 lµ mét thiÕt bÞ CMOS tÝch hîp víi mét bé chuyÓn ®æi t­¬ng sang sè 8 bit, bé chän kªnh vµ mËt bé logic ®iÒu khiÓn t­¬ng thÝch. Bé chuyÓn ®æi t­¬ng tù sè nµy sö dông ph­¬ng ph¸p chuyÓn ®æi xÊp xØ. Bé chän kªnh cã thÓ chän ra kªnh cÇn chuyÓn ®æi b»ng 3 ch©n chän ®Þa chØ. ThiÕt bÞ nµy lo¹i trõ kh¶ n¨ng cÇn thiÕt ®iÒu chØnh ®iÓm zero bªn ngoµi vµ kh¶ n¨ng ®iÒu chØnh tØ sè lµm cho ADC ®Ô dµng giao tiÕp víi c¸c bé vi xö lý. C¸c ®Æc ®iÓm c¬ b¶n cña ADC 0809 Nguån nu«i ®¬n ± 5 V, hiÖu suÊt cao. D¶i tÝn hiÖu lèi vµo t­¬ng tù 5V khi nguån nu«i lµ +5V. Cã thÓ më réng thang ®o b»ng c¸c gi¶i ph¸p kü thuËt cho tõng m¹ch cô thÓ. DÔ dµng giao tiÕp víi vi xö lý v× ®Çu ra cã bé ®Öm 3 tr¹ng th¸i nªn cã thÓ ghÐp trùc tiÕp vµo kªnh d÷ liÖu cña hÖ VXL. Tæng sai sè ch­a chØnh ±1/2LSB. Thêi gian chuyÓn ®æi 100 ms . TÇn sè xung clock 10kHz – 1028 kHz. §¶m b¶o sai sè tuyÕn tÝnh trong d¶i nhiÖt ®é tõ –400C ¸ 85OC. a. B¶ng ch©n lý vµ s¬ ®å ch©n cña vi m¹ch ADC0809. A B C X 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 X X X (?) * ý nghÜa c¸c ch©n: - IN0 – IN7 : 8 ®Çu vµo t­¬ng tù. A,B,C : c¸c tÝn hiÖu chän kªnh. C¸c ch©n 2.1-2.7: lµ c¸c ®Çu ra sè. ALE cho phÐp chèt sè liÖu ®Çu vµo. Start: xung cho phÐp b¾t ®Çu chuyÓn ®æi. Clk:®Çu vµo xung clock Ref(+): ®iÖn ¸p vµo chuÈn +5v Ref(-): ®iÖn ¸p vµo chuÈn 0 Vcc: nguån cung cÊp b. CÊu tróc bªn trong cña ADC 0809 CÊu tróc bªn trong cña ADC0809 ®­îc thÓ hiÖn ë h×nh vÏ d­íi: Ho¹t ®éng chuyÓn ®æi: C¸c bit ®Þa chØ ë lèi vµo A,B,C tõ bé gi¶i m· ®Þa chØ sÏ chèt vµ x¸c ®Þnh kªnh ®Çu vµo nµo ®­îc chän. Khi mét kªnh ®­îc chän ®ång thêi yªu cÇu START, ALE ®­îc tÝch cùc, yªu cÇu ®é réng xung START kh«ng nhá h¬n 200ns. Gi¸ trÞ ®iÖn ¸p cÇn ®­îc chuyÓn ®æi sÏ ®­îc chèt l¹i ë cæng vµo t­¬ng øng xung Start b¾t ®Çu chuyÓn ®æi. Sau xung START kho¶ng 10μs ®Çu ra EOC (end of convert) lóc nµy xuèng thÊp thùc sù b¾t ®Çu qu¸ tr×nh chuyÓn ®æi. Trong suèt qu¸ tr×nh chuyÓn ®æi EOC lu«n ë møc tÝch cùc thÊp, ®ång thêi ®Çu ra 3 tr¹ng th¸i cña ADC0809 bÞ th¶ næi. Sau kho¶ng 100 ms, ADC0809 thùc hiÖn viÖc chuyÓn ®æi xong, d÷ liÖu ®Çu vµo ®­îc ®­a ®Õn bé ®Öm ®Çu ra ba tr¹ng th¸i ®ång thêi ch©n tÝn hiÖu EOC chuyÓn lªn møc cao b¸o cho VXL biÕt ®Ó ®äc kÕt qu¶ vµo. c. GhÐp ADC0809 víi VXL8051. + C¸c kªnh vµo Analog ®­îc nèi vµo c¸c ®Çu vµo t­¬ng øng cña ADC. Mçi kªnh ®ã cã ®Þa chØ riªng do tæ hîp 3 bit ®Þa chØ A,B,C quy ®Þnh. C¸c ®Çu vµo ®Þa chØ nµy kÕt nèi víi ®­êng ®Þa chØ A0A1A2 cña Bus ®Þa chØ cña hÖ thèng. C¸c ®­êng ®Þa chØ cao cña hÖ thèng ®­îc dïng ®Ó t¹o tÝn hiÖu chän chip (/CS) cho ADC0809. + TÝn hiÖu /CS ®­îc ®­a tíi ®Çu vµo cña m¹ch OR ®Ó khëi ®éng ADC (Start) khi cã tÝn hiÖu /WR ®ång thêi chèt ®Þa chØ (ALE) cña kªnh hiÖn hµnh cã gi¸ trÞ lµ gi¸ trÞ 3 bit A,B,C. TÝn hiÖu /CS còng ®­îc ®­a tíi ®Çu vµo cña m¹ch OR thø hai ®Ó t¹o tÝn hiÖu OE cïng víi /RD nh»m chèt d÷ liÖu ®· biÕn ®æi xong ë ®Çu ra. + V× khi biÕn ®æi xong, ACD0809 dïng tÝn hiÖu ra ch©n EOC ®Ó b¸o cho VXL biÕt m· nhÞ ph©n t­¬ng øng víi møc cao cña tÝn hiÖu ®Çu vµo ®· ®­îc t¹o ra. V× vËy ta kÕt nèi EOC víi ®Çu vµo ng¾t ngoµi /INT1 cña 8051. + 8 bit d÷ liÖu th­êng ®­îc ghÐp trùc tiÕp víi Bus d÷ liÖu hÖ thèng v× b¶n th©n bé ®Öm ra lµ 3 tr¹ng th¸i, còng cã thÓ ghÐp qua 8255. 3.Vi m¹ch giao tiÕp song song PPI 8255: Vi m¹ch 8255 lµ mét vi m¹ch ®­îc sö dông phæ biÕn ®Ó giao tiÕp trong c¸c hÖ VXL 8 – 16 bit. Sö dông 8255A lµm cho viÖc thiÕt kÕ ®Ó ghÐp nèi bé VXL víi c¸c thiÕt bÞ ngo¹i vi ®¬n gi¶n ®i nhiÒu, ®é mÒm dÎo cña thiÕt kÕ sÏ t¨ng lªn vµ linh kiÖn phô trî ®i kÌm còng gi¶m ®i nhiÒu. Do cã kh¶ n¨ng lËp tr×nh ®­îc nªn nã cã thÓ võa dïng nh­ cæng nhËn sè liÖu còng nh­ xuÊt sè liÖu tuú néi dung cña tõ ®iÒu khiÓn mµ ng­êi lËp tr×nh ®­a vµo. a. S¬ ®å ch©n vµ s¬ ®å chøc n¨ng cña 8255A. S¬ ®å chøc n¨ng vµ s¬ ®å ch©n cña 8255A ®­îc thÓ hiÖn d­íi h×nh vÏ sau: PA3 PA2 PA1 PA0 RD\ CS\ GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 PA4 PA5 PA6 PA7 WR\ RESET D0 D1 D2 D3 D4 D5 D6 D7 Vcc PB7 PB6 PB5 PB4 PB3 1 20 21 40 D0 – D7 PA0 – PA7 PB0 – PB7 PC0 – PC7 RD\ WR\ RESET A0 A1 CS\ 8255A 8255A Trong ®ã: Ch©n 1 ¸ 4, 37 ¸ 40 (PA0 – PA7): lµ c¸c ®­êng xuÊt nhËp cã tªn lµ cæng A. Ch©n 18 ¸ 25 (PB0 – PB7): lµ c¸c ®­êng nhËp xuÊt cã tªn cæng B. Ch©n 10 ¸ 13, 14 ¸ 17 (PB0 – PB7): lµ c¸c ®­êng nhËp xuÊt cã tªn cæng C. Ch©n 27 ¸ 34 (D0 – D7): lµ c¸c ®­êng d÷ liÖu (data) ho¹t ®éng hai chiÒu, dÉn tÝn hiÖu ®iÒu khiÓn tõ vi xö lý ra c¸c thiÕt bÞ bªn ngoµi ®ång thêi nhËn c¸c d÷ liÖu tõ c¸c thiÕt bÞ ®iÒu khiÓn bªn ngoµi vµo vi xö lý. Ch©n 35 (Reset input): ngâ vµo xãa, ch©n reset ph¶i ®­îc nèi víi tÝn hiÖu reset out cña vi xö lý ®Ó kh«ng lµm ¶nh h­íng ®Õn m¹ch ®iÒu khiÓn. Khi reset, c¸c cæng cña 8255A lµ c¸c ngâ vµo, ®ång thêi tÊt c¶ c¸c d÷ liÖu trªn thanh ghi bªn trong 8255A ®Òu bÞ xãa, 8255A trë vÒ tr¹ng th¸i ban ®Çu s¨n sµng lµm viÖc. Ch©n 6 (CS\): tÝn hiÖu ngâ vµo chip select (CS\) ®­îc ®iÒu khiÓn bëi vi xö lý, dïng ®Ó lùa chän 8255A lµm viÖc khi vi xö lý giao tiÕp víi nhiÒu thiÕt bÞ. Ch©n 5 (RD\): ngâ vµo ®äc d÷ liÖu (Read Input). Ch©n 36 (WR\) : ngâ vµo ghi d÷ liÖu (Write Input). Ch©n 8,9 (A1, A0): ngâ vµo ®Þa chØ (Address Input), dïng nhËn ®Þa chØ vµo ®Ó lùa chän thanh ghi vµ c¸c cæng. B¶ng ®Þa chØ lùa chän thanh ghi vµ c¸c cæng: A1 A0 Cæng vµ thanh ghi 0 0 Cæng A 0 1 Cæng B 1 0 Cæng C 1 1 Thanh ghi ®iÒu khiÓn Ch©n 26 (Vcc) : nguån 5 VDC. Ch©n 7 (GND) : GND 0 VDC. b. CÊu tróc bªn trong vµ ho¹t ®éng cña 8255A. S¬ ®å khèi cÊu tróc bªn trong cña vi m¹ch 8255A. Port A Port C (4 bit cao) Nhãm A Port C (4 bit thÊp) Port B Nhãm B §iÒu khiÓn nhãm A §iÒu khiÓn nhãm B §Öm bus d÷ liÖu Logic ®iÒu khiÓn ghi/®äc RD\ WR\ CS\ A0 A1 D7 – D0 PA7 – PA0 PC7 – PC4 PC3 – PC0 PB7 – PC0 Ho¹t ®éng cña vi m¹ch 8255A: Tõ s¬ ®å khèi cÊu tróc bªn trong cña vi m¹ch 8255A ta thÊy c¸c cæng cña 8255A ®­îc chia thµnh 2 nhãm: Nhãm A gåm cæng A vµ 4 bit cao cña cæng C. Nhãm B gåm cæng B vµ 4 bit thÊp cña cæng C. CÊu h×nh lµm viÖc cña 2 nhãm sÏ do néi dung cña thanh ghi ®iÒu khiÓn quyÕt ®Þnh. Vi m¹ch 8255 giao tiÕp víi vi xö lý th«ng qua c¸c ®­êng sau : - §­êng d÷ liÖu: gåm 8 ®­êng d÷ liÖu (D0 - D7). M· lÖnh, c¸c d÷ liÖu ®Òu ®­îc truyÒn ®i trªn ®­êng nµy. - §­êng ®Þa chØ: gåm 2 ®­êng (A0 – A1) dïng ®Ó lùa chän cæng hoÆc thanh ghi ®iÒu khiÓn nh­ ®· tr×nh bµy ë trªn. - §­êng ®iÒu khiÓn: gåm c¸c ®­êng RD\, WR\, CS\, Reset dïng ®Ó ®iÒu khiÓn viÖc ho¹t ®éng cña 8255A. §Ó sö dông c¸c cæng lµm c«ng cô giao tiÕp, ng­êi sö dông ph¶i göi tõ ®iÒu khiÓn ra thanh ghi ®iÒu khiÓn ®Ó 8255A ®Þnh cÊu h×nh lµm viÖc cho c¸c cæng ®óng nh­ yªu cÇu cña ng­êi lËp tr×nh. c. Tõ ®iÒu khiÓn: Tõ ®iÒu khiÓn lµ d÷ liÖu ®­îc göi tíi thanh ghi ®iÒu khiÓn (CWR) cña 8255. Gi¸ trÞ cña tõ ®iÒu khiÓn sÏ x¸c ®Þnh cÊu h×nh lµm viÖc cho c¸c cæng cña 8255A, ®ã lµ viÖc lùa chän chøc n¨ng nhËp hay xuÊt cña c¸c cæng. Trong tõ ®iÒu khiÓn cã mét bit ®Ó ph©n biÖt hai chøc n¨ng ®iÒu khiÓn kh¸c nhau lµ: + §Þnh nghÜa chÕ ®é c¸c cöa (bit D7 cña tõ ®iÒu kiÓn lµ 1). + LËp/xo¸ c¸c bit cña Port C (bit D7cña tõ ®iÒu khiÓn lµ 0). §Þnh nghÜa chÕ ®é c¸c cæng Khi D7 =1, 8255A sÏ sö dông th«ng tin trong CWR ®Ó ®Þnh nghÜa chÕ ®é c¸c cöa. Néi dung cña CWR x¸c ®Þnh chøc n¨ng cña 24 ®­êng ghÐp nèi víi thiÕt bÞ ngo¹i vi. PhÇn mÒm cña hÖ thèng sÏ ®Þnh nghÜa chÕ ®é cña PA, PB mét c¸ch ®éc lËp; cßn PC cã thÓ ®­îc ®Þnh nghÜa ®éc lËp hay chia lµm hai phô thuéc vµo chÕ ®é cña PA vµ PB. 1 D6 D5 D4 D3 D2 D1 D0 Nhãm B PCL (4 bit thÊp) 1 = Input 0 = Output PB 1 = Input 0 = Output Mode select 1 = mode 0 0 = mode 1 Nhãm A Mode select 00 = mode 0 01 = mode 1 1x = mode 2 Cæng A 1 = Input 0 = Output PCH (4 bit cao) 1=Input 0=Output Trong chÕ ®é nµy cã thÓ cã 3 chÕ ®é lµm viÖc kh¸c nhau tuú thuéc vµo néi dung cña hai bit D6D5, cô thÓ lµ: + ChÕ ®é 0(Vµo ra c¬ së): D6D5 = 00,ë chÕ ®é nµy 8255A cho kh¶ n¨ng xuÊt/nhËp d÷ liÖu ®¬n gi¶n qua c¶ 3 cæng A, B, C mét c¸ch ®éc lËp. + ChÕ ®é 1 : D6D5 =01, ®©y lµ chÕ ®é vµo ra cã chèt (Strobe), nghÜa lµ cã sù ®èi tho¹i gi÷a ngo¹i vi vµ hÖ VXL th«ng qua c¸c bit cña cæng C. Trong chÕ ®é nµy, víi nhãm A. th× PA dïng ®Ó trao ®æi sè liÖu vµ nöa cao cña PC (PC4 ¸ PC7) ®Ó ®èi tho¹i gi÷a ngo¹i vi vµ VXL. Cßn ë nhãm B th× PB dïng ®Ó trao ®æi sè liÖu vµ PCL ®Ó ®èi tho¹i. + ChÕ ®é 2: D6D5 =1x. Cæng A dïng vµo/ra hai chiÒu, c¸c bit PC3 ¸ PC7 dïng lµm tÝn hiÖu ®èi tho¹i. Cæng PB cã thÓ lµm viÖc nh­ ë chÕ ®é 1. LËp/xo¸ bit: NÕu D7=0 th× CWR lµ lÖnh ®Ó lËp/xo¸ bit cña Port C. LÖnh nµy cho phÐp lËp/xo¸ bÊt kú bit nµo cña C mét c¸ch ®éc lËp. 0 D6 D5 D4 D3 D2 D1 D0 1: LËp 0: Xo¸ Cöa C D3 D2 D1 bit 0 bit 1 bit 2 bit 3 bit 4 bit 5 bit 6 bit 7 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Kh«ng dïng=000 d. GhÐp nèi 8255A víi VXL8051. + Víi hÖ thèng ®¬n gi¶n cã thÓ phèi ghÐp trùc tiÕp 8255A víi VXL. §Çu vµo /CS ®­îc nèi vµo mét trong c¸c /CSi cña gi¶i m· ®Þa chØ 74LS138 (sÏ ®Ò cËp sau). + C¸c tÝn hiÖu /RD, /WR cña 8255 còng ®­îc kÕt nèi t­¬ng øng víi c¸c tÝn hiÖu ®iÒu khiÓn viÖc xuÊt/nhËp d÷ liÖu cña 8051. + §Çu vµo Reset (ch©n 35) cã thÓ kÕt nèi víi ch©n Reset cña 8051 nÕu muèn 8255A cïng Reset víi hÖ thèng khi Ên nót reset hoÆc cã thÓ ®Ó ë møc tÝch cùc thÊp. + Hai tÝn hiÖu vµo ®Þa chØ A1A0 ®­îc nèi trùc tiÕp vµo Bus ®Þa chØ hÖ thèng. A1A0 ®­îc gi¶i m· bªn trong m¹ch 8255A ®Ó chän c¸c cöa vµo/ra A, B, C vµ CWR nh­ ®· ®Ò cËp ë trªn. + C¸c ch©n sè liÖu cña 8255 cã thÓ kÕt nèi trùc tiÕp vµo Bus sè liÖu cña hÖ thèng mµ kh«ng cÇn ®Öm 3 tr¹ng th¸i, v× b¶n th©n c¸c cæng P0 cña 8051 ®Òu cã ®Öm 3 tr¹ng th¸i råi. e. GhÐp nèi 8255A víi thiÕt bÞ ngo¹i vi: PhÇn ghÐp nèi víi thiÕt bÞ ngo¹i vi cña 8255A th«ng qua 24 ®­êng sè liÖu vµ ®iÒu khiÓn ë c¸c cæng A, B, C. C¸c ®­êng ghÐp nèi nµy ®­îc ®Þnh nghÜa b»ng ch­¬ng tr×nh nh­ giíi thiÖu ë trªn. B»ng c¸ch chän chÕ ®é lµm viÖc thÝch hîp vµ chÝnh x¸c vi m¹ch 8255A cã thÓ ®¸p øng ®­îc nh÷ng nhu cÇu ghÐp nèi tinh vi. D0-D7 PA PB PC A0 A1 RD WR CS 8255A AD0-AD7 §Öm BUS S/L 74245 Chèt §/C ThÊp 74373 Gi¶i m· ®/c (3/8) RD WR ALE/P 8051 P1 P3.0¸P3.5 A14 A15 P2 (P3.7) (P3.6 4. ThiÕt kÕ khèi hiÓn thÞ: ë ®©y ta dïng khèi hiÓn thÞ lµ dïng khèi hiÓn thÞ tinh thÓ láng LCD: Khèi hiÓn thÞ nµy cã ­u ®iÓm lµ: - Mµn h×nh ®ang dÇn cã gi¸ thµnh h¹ - Kh¶ n¨ng hiÓn thÞ sè, ký tù vµ ®å häa tèt h¬n nhiÒu so víi ®Ìn LED. - Sö dông thªm bé ®iÒu khiÓn lµm t­¬i LCD vµ nh­ vËy gi¶i phãng CPU khái c«ng viÖc nµy .Cßn ®èi víi LED lu«n cÇn CPU hoÆc b»ng c¸ch nµo ®ã ®Ó duy tr× viÖc hiÓn thÞ d÷ liÖu. - DÔ dµng lËp tr×nh c¸c kÝ tù ,®å häa. Chøc n¨ng c¸c ch©n cña LCD VCC : ch©n nèi nguån 5V VSS : ch©n ®Êt VEE : ch©n ®iÒu khiÓn ®é t­¬ng ph¶n cña LCD. RS : ch©n nµy dïng ®Ó chän thanh ghi.NÕu RS=0 th× thanh ghi m· lÖnh ®­îc chän cßn nÕu RS=1 th× thanh ghi d÷ liÖu ®­îc chän vµ cho phÐp ng­êi dïng göi d÷ liÖu hiÓn thÞ lªn LCD R/W : ch©n vµo ®äc ghi cho phÐp ng­êi dïng ®äc/ghi th«ng tin tõ /lªn LCD R/W=0 th× ®äc, cßn R/W=0 th× lµ ghi lªn LCD. E : ch©n cho phÐp ®­îc LCD sö dông ®Ó chèt th«ng tin hiÖn cã trªn ch©n d÷ liÖu .Khi d÷ liÖu ®­îc cÊp ®Õn th× mét xung cao xuèng thÊp ®­îc ¸p ®Õn ch©n E ®Ó LCD chèt d÷ liÖu trªn ch©n d÷ liÖu.Xung nµy ph¶i réng tèi thiÓu lµ 450ns. D0-D7 : §©y lµ 8 ch©n d÷ liÖu trªn 8 bÝt ,®­îc dïng ®Ó göi th«ng tin lªn LCD hoÆc ®äc néi dung cña c¸c thanh ghi trong LCD. Ta cã thÓ göi c¸c m· lÖnh ®Õn ®Ó ®iÒu khiÓn hiÓn thÞ trªn LCD ,c¸c m· lÖnh nµy ®­îc cho trong tµi liÖu kü thuËt cña LCD. Trong hÖ thèng ,khi ghÐp nèi th× c¸c ch©n cña LCD cã thÓ ghÐp qua 8051 hoÆc cã thÓ ghÐp qua c¸c ch©n cña cæng giao tiÕp 8255 tïy theo së thÝch cña ng­êi sö dông. 5.Khèi vµo d÷ liÖu: Khèi vµo d÷ liÖu mµ ta sö dông ®ã lµ bµn phÝm sè 16 phÝm ®­îc dïng réng r·i.Nguyªn t¾c ho¹t ®éng cña bµn phÝm thùc chÊt lµ nguyªn t¾c ho¹t ®éng cña ma trËn phÝm .Ch­¬ng tr×nh ®Ó ch¹y bµn phÝm lµ ch­¬ng tr×nh dïng thuËt to¸n "bÉy phÝm " nghÜa lµ liªn tôc quÐt hµng cña bµn phÝm ,®ång thêi khi ph¸t hiÖn cã phÝm nhÊn ,cét t­¬ng øng =0 th× bé Vi xö lý cña ta hoµn toµn cã thÓ x¸c ®Þnh ®­îc hµng vµ cét cña phÝm ®­îc Ên vµ tõ ®ã cho m· cña phÝm. 6. C¸c vi m¹ch phô trî kh¸c: a. M¹ch gi¶i m· 74LS138: Nã bao gåm 14 ch©n, trong ®ã: Y0 ¸ Y7 lµ c¸c ®­êng ra ®Þa chØ, tÝch cùc ë møc thÊp. A,B,C lµ 3 ®­êng ®Þa chØ vµo, tÝch cùc cao. E1, E2 lµ c¸c ®Çu vµo cho phÐp lµm viªc, tÝch cùc ë møc thÊp. E3 lµ c¸c ®Çu vµo cho phÐp lµm viªc, tÝch cùc ë møc cao. Ta cã b¶ng ch©n chøc n¨ng cña 74LS138 nh­ sau: C B A /E1 /E2 E1 /Y0 /Y1 /Y2 /Y3 /Y4 /Y5 /Y6 /Y7 X X X 1 X X 1 1 1 1 1 1 1 1 X X X X 1 X 1 1 1 1 1 1 1 1 X X X X X 0 1 1 1 1 1 1` 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 b. Vi m¹ch chèt 74LS373: §©y lµ m¹ch cã t¸c dông chèt l¹i sè liÖu ë ®Çu vµo khi cã tÝn hiÖu tÝch cùc, ®Çu ra sÏ kh«ng bÞ biÕn ®æi khi tÝn hiÖu ®Çu vµo ®· mÊt. Nã chØ thay ®æi khi tÝn hiÖu chèt tÝch cùc trë l¹i. Bªn ngoµi vá còng cã tÝn hiÖu /OE cho phÐp ho¹t ®éng. Khi cã yªu cÇu chèt ch©n LE sÏ ®­îc tÝch cùc. Trong ghÐp nèi víi 89C51: + Ch©n /OE (sè 1) cña 74LS373 ®­îc nèi ®Êt. + Ch©n LE(sè 11) cña 74LS373 ®­îc nèi víi ch©n ALE (sè 30) cña 89C51. III.S¬ ®å thiÕt kÕ chi tiÕt. phÇn II ThiÕt kÕ phÇn MÒn phÇn 1 L­u ®å thuËt to¸n 1.L­u ®å cña ch­¬ng tr×nh: START Ên start? S - Khëi t¹o chÕ ®é cña 8255A - Cho phÐp ng¾t ngoµi - NhËp gi¸ trÞ min, max ,trung b×nh - STOP § § cã chän kªnh? § Cã ®k b¸o ®éng? S B¸o ®éng §äc tõ ADC HiÖn to trung b×nh S 1.1 Ch­¬ng tr×nh chÝnh: -Ên phÝm chän kªnh -HiÓn thÞ to kªnh ®ã §îi 20s 1.2 Ch­¬ng tr×nh ®äc d÷ liÖu 8 kªnh tõ ADC: Start -§îi chuyÓn ®æi xong -§äc kªnh thø i R2=j=8 Chê ®äc xong §äc xong ? N j=j-1 j=0 N End Y Y Ch­¬ng tr×nh con dïng ®Ó tÝnh gi¸ trÞ trung b×nh: dïng pp ®îi trÔ tg chuyÓn ®æi cña ADC.( sau kho¶ng 100us) Start -§äc kªnh thø i(0£i£7) -Chia cho 8 -PhÇn nguyªn =Ai -PhÇn d­=Bi §äc xong? TBC=SAi+(SBi)/8 End N Y Start -§äc kªnh thø i tõ ADC -§­a gÝa trÞ ®äc ®­îc vµo vïng nhí RAM t­¬ng øng End Start -§äc sè TBC -TBC/10 -A=phÇn nguyªn -B=phÇn d­ -Hµng chôc =A -Hµng chôc =B End 1.3. Ch­¬ng tr×nh tÝnh gi¸ trÞ trung b×nh cña 8 kªnh ®äc ®­îc tõ ADC: 1.4. Ch­¬ng tr×nh t¸ch sè trung b×nh céng ra hµng chôc, ®¬n vÞ 1.5 .Ch­¬ng tr×nh con quÐt phÝm . B¾t ®Çu Nèi ®Êt hµng tiÕp theo §äc tÊt c¶ c¸c hµng §äc tÊt c¶ c¸c hµng §äc tÊt c¶ c¸c cét phÝm hµng nµy ®ùoc Ên tÊt c¶ phÝm ®­îc Ên S T×m phÝm ®­îc Ên X¸c ®Þnh m· quÐt § §äc tÊt c¶ c¸c hµng Trë vÒ tÊt c¶ phÝm ®­îc Ên S § Chê phÝm nhÉn xong §äc tÊt c¶ c¸c cét cã phÝm ®­îc Ên S § Ch­¬ng tr×nh hiÓn thÞ ®Ìn LED qua c¸c cæng cña 8255. nhiÖt ®é kªnh so víi tb nhiÖt ®é kªnh>tb hÕt kªnh Quay R4,R5 §­a R4 ra PA,R5 ra PB T¨ng R4,R6 T¨ng R5,R7 Xãa C, R4, R5, R6, R7 § S Kh¸c B»ng § S Ch­¬ng tr×nh phÇn mÒm viÕt b»ng ng«n ng÷ Assembly: ; ------------- READS51 generated header -------------- ; module : C:\thang45\thang45.asm ; created : 10:37:23, Sunday, April 23, 2006 ; ----------------------------------------------------- #include CONGA EQU 4000H CONGB EQU 4001H CONGC EQU 4002H ONHOMIN EQU 40H ADC EQU 6000H LED EQU 8000H ORG OO00H LJMP MAIN ORG 0003H LJMP CHONKENH ORG 0013H ; NUT AN STOP LJMP STOP RETI MAIN: ACALL PAPC_RA ;----------------------- MOV IE,#10000101B ACALL START_LCD ACALL NHOM START: ACALL PAPC_RA ACALL BANPHIM MOV A,R6 CJNE A,#'C',START ACALL NHAPGIATRI ;NHAP GIA TRI MIN,Max VA TB ACALL XOAMANHINH LAMLAI: ACALL DOCDATATHANG ;DOC DU LIEU TU ADC ACALL TINHTB ;TINH GIA TRI TB. ACALL DISPLAYLED ;HIEN THI CAO THAP CUA KENH. ACALL HETCHUONGTRINH ;-------------- TINHTB: ACALL TINHTOAN ACALL XOAMANHINH MOV A,38H MOV B,#10 DIV AB ADD A,#48 MOV R1,A ACALL HIENTHI MOV A,B ADD A,#48 MOV R1,A ACALL HIENTHI RET ;------------ NHAPGIATRI: MOV R0,#ONHOMIN ACALL XOAMANHINH; DAU TIEN XOA HET MAN HINH ACALL NHAPMIN ;goi gia tri max LAP1: ACALL BANPHIM ;go mot phim nao do MOV A,R6 MOV R1,A CJNE A,#'A',LUU1 ;phim do co phai la "A" ko? ACALL XOAMANHINH ;xoa LCD ACALL NHAPMAX ;goi gia tri min LAP2: ACALL BANPHIM MOV A,R6 MOV R1,A CJNE A,#'A',LUU2 ACALL XOAMANHINH ACALL NHAPTB LAP3: ACALL BANPHIM MOV A,R6 MOV R1,A CJNE A,#'A',LUU3 SJMP THOAT LUU1: ACALL LUU SJMP LAP1 LUU: MOV @R0,A INC R0 ACALL READY ACALL HIENTHI;hien thi gia tri len LCD RET LUU2: ACALL LUU SJMP LAP2 LUU3: ACALL LUU SJMP LAP3 THOAT: RET ;----------- NHAPMIN: ; nhap gia tri min ACALL READY ; kiem tra xem LCD da san sang chua ;goi chuong trinh con cho PaPc_vao MOV A,#'N' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'H' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'A' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'P' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#86H ; nhap ma cua dau space MOV R1,A ACALL DUALENH ACALL READY MOV A,#'M' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'I' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'N' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#':' MOV R1,A ACALL HIENTHI RET ;------------- NHAPTB: ; nhap gia tri min ACALL READY ; kiem tra xem LCD da san sang chua ;goi chuong trinh con cho PaPc_vao MOV A,#'N' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'H' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'A' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'P' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#86H ;DICH CON TRO SANG PHAI MOV R1,A ACALL DUALENH ACALL READY MOV A,#'T' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'R' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'B' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#':' MOV R1,A ACALL HIENTHI RET ;------------ NHAPMAX: ACALL READY ; kiem tra xem LCD da san sang chua ;goi chuong trinh con cho PaPc_vao MOV A,#'N' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'H' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'A' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'P' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#86H ; nhap ma cua dau space MOV R1,A ACALL DUALENH ACALL READY MOV A,#'M' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'A' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'X' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#':' MOV R1,A ACALL HIENTHI RET ;------------ BANPHIM: OVER: ACALL DELAY ;tao tre 20ms MOVX A,@DPTR ;lay lai gt nhan ANL A,00001111B ;che bit khong dung CJNE A,#00001111B,OVER1 ;sau 20ms neu P@ van khac chung to chac chan la van co phim. Bay gio tim hang SJMP OVER ;nhay ve neu do chi la nhieu OVER1: ;hoac do an nho tay. MOV DPTR,#CONGB ;nap gia tri dia chi cua cong B MOV A,#11111110B ;tiep dat hang 0 MOVX @DPTR,A INC DPTR ;nap dia chi cho cong C; MOVX A,@DPTR ;lay gia tri cong C ANL A,#00001111B ;che 4 bit cao khong dung CJNE A,#00001111B,HANG0 ;neu bien thien chung to khong duoc an nen ;nhay den chuong trinh tim cot MOV DPTR,#CONGB ;lay dia chi cong B MOV A,#11111101B MOVX @DPTR,A ;tiep dat hang 1 INC DPTR MOVX A,@DPTR ANL A,#00001111B ;che 4 bit cao khong dung CJNE A,#00001111B,HANG1 MOV DPTR,#CONGB MOV A,#11111011B MOVX @DPTR,A ;kiem tra tiep hang 2 INC DPTR MOVX A,@DPTR ANL A,#00001111B CJNE A,#00001111B,HANG2 MOV DPTR,#CONGB MOV A,#11110111B MOVX @DPTR,A ;tiep dat hang 3 INC DPTR MOVX A,@DPTR ANL A,#00001111B CJNE A,#00001111B,HANG3 LJMP OVER HANG0: MOV DPTR,#MA0 ;kiem tra cot 0 SJMP TIMCOT HANG1: MOV DPTR,#MA1 ;kiem tra cot 1 SJMP TIMCOT HANG2: MOV DPTR,#MA2 ;kiem tra cot 2 SJMP TIMCOT HANG3: MOV DPTR,#MA3 ;kiem tra cot 3 SJMP TIMCOT TIMCOT: RRC A ;quay phai A va co nho vao co C JNC LAYDL ;neu co CY o muc thap, lay du lieu INC DPTR ;neu khong thi nhay den cot du lieu tiep cho SJMP TIMCOT ;den khi co C bang 0. LAYDL: CLR A ;xoa thanh ghi A MOVC A,@A+DPTR MOV R6,A K1: MOV DPTR,#CONGB MOV A,#00 MOVX @DPTR,A MOV DPTR,#CONGC MOVX A,@DPTR ANL A,#00001111B CJNE A,#00001111B,K1 RET ;------------------ ORG 400H MA0: DB '7' DB '8' DB '9' DB ':' MA1: DB '4' DB '5' DB '6' DB '*' MA2: DB '1' DB '2' DB '3' DB '-' MA3: DB 'A' DB '0' DB 'C' DB 'D' PBPC_VAO: MOV A,#10000001B MOV DPTR,#4003H MOVX @DPTR,A RET DELAY: MOV R1,#250 LAP: MOV R2,#250 AGAIN: DJNZ R2,AGAIN DJNZ R1,LAP RET START_LCD: ACALL PAPC_RA MOV R1,#38H ACALL DUALENH MOV R1,#0EH ACALL DUALENH MOV R1,#01H ACALL DUALENH MOV R1,#06H ACALL DUALENH ACALL DELAY ; DE CHO LCD HOAT DONG SONG CHU KHONG CO LA BI MAT CHU "N" RET READY: MOV A,#10000000B ;TU DE LAP BIT D7 LEN 1 MOV DPTR,#4000H MOVX @DPTR ,A ; LUC NAY PA.7 BANG 1 MOV DPTR,#4003 MOV A,#90H ; tu dk PA lam vao, PB,PC ra MOVX @DPTR,A MOV A,#01000000B ;R/W BANG 1 DE DOC THANH GHI LENH tu dk LCD kiem tra san sang MOV DPTR,#4002H ;DUA RA CONG C MOVX @DPTR,A ;dua DPTR Tre_ready: MOV A,#01100000B ; SET BIT PC.5 LEN 1 DE E = 1 NHAN XUNG CAO XUONG THAP MOVX @DPTR , A ; DUA RA LCD MOV A,#01000000B ; XOA DE CHOT DU LIEU MOVX @DPTR,A MOV DPTR,#4000H MOVX A,@DPTR ;lay du lieu cong PA JB ACC.7,Tre_ready LCALL PAPC_RA RET DUALENH: ACALL READY MOV A,R1; LAY R1 LAM TRUNG GIAN VI A DUNG NHIEU QUA MOV DPTR,#4000H MOVX @DPTR,A MOV DPTR,#4002H MOV A,#00100000B; SEM LAI LENH NAY MOT CHUT MOVX @DPTR,A MOV A,#00H MOVX @DPTR,A RET HIENTHI: ACALL READY MOV A,R1 MOV DPTR,#4000H MOVX @DPTR,A MOV A,#10100000B MOV DPTR,#4002H MOVX @DPTR,A CLR ACC.5 MOVX @DPTR,A RET PAPC_RA: MOV DPTR,#4003H ; nhap dia chi 4.000H de chon 8255(2) ; 0100.0000.0000.0000.A0A1:00 ; chon congPA MOV A,#10000001B ; tu dk cong ra (tat ca cac cong la ra) MOVX @DPTR,A ;nap control word to control register RET XOAMANHINH: ACALL READY ACALL START_LCD MOV A,#01H MOV R1,A ACALL DUALENH ACALL START_LCD RET ;-------------------- XULYKETQUA: MOV R1,#ONHOMIN ;bat dau dia chi chua nhiet do max ,min va tb BATDAU: CJNE R1,#46H,TIEP1 SJMP DATGIATRI TIEP1: MOV A,@R1; lay o nho dau tien CLR C SUBB A,#30H; tru 30 de chuyen tu ma ASCI sang ma thuc MOV B,#10 ; lay 10 nap vao B MUL AB; nhan chu so hang chuc MOV R2,A; luu tam vao r2 INC R1;tang o nho tiep theo MOV A,@R1 CLR C SUBB A,#30H MOV @R1,A; lay chu so hang don vi MOV A,R2 ;lay lai gia tri cua so hang chuc ADD A,@R1;cong voi so hang don vi DEC R1;ve o nho dau tien MOV @R1,A;lay lai gia tri cua A dat vao o nho do INC R1 INC R1;nhay den o nho tiep theo(cach 2 o) SJMP BATDAU; SAU chuong trinh thi add(max) = 40h ;add(min) = 42h ;add(tb) = 44h DATGIATRI: ;add(min) = 40h MOV A,42H ;add(max) = 41h MOV 41H,A ;add(tb) = 42h MOV A,44H MOV 42H,A ;MOV @R1,A RET ;------------------------- DOIMA2: ADD A,#30H RET ;---------------- CHUYENMATHANG: MOV B,#10 DIV AB ACALL DOIMA2 MOV R2,A ACALL READY MOV A,R2 MOV R1,A ACALL HIENTHI MOV A,B ACALL DOIMA2 MOV R2,A ACALL READY MOV A,R2 MOV R1,A ACALL HIENTHI RET ;----------------------- DOCDATATHANG: MOV R1,#30H MOV DPTR,#6000H MOV R2,#8 DOCTIEP: MOV A,#00H MOVX @DPTR,A ACALL TREs ACALL TREs MOVX A,@DPTR MOV @R1,A INC R1 INC DPTR DJNZ R2,DOCTIEP RET ;-------------------- TREs: MOV R5,#20; LAN11: MOV R3,#20; LAN21: MOV R4,#100; DOI1: DJNZ R4,DOI1 DJNZ R3,LAN21 DJNZ R5,LAN11 RET ;--------------------- TINHTOAN: MOV R2,#00; MOV R1,#00; MOV R3,#00; MOV R0,#30H; Tinh_V: MOV A,@R0 ;lay kenh 1 MOV B,#08 DIV AB ;chia cho 8 ADD A,R1 ;so nguyen vao R0 MOV R1,A MOV A,B ADD A,R2 ;so du vao MOV R2,A INC R0 CJNE R0,#37H,tinh_V ;vong den khi 37H MOV A,R2; MOV B,#08; DIV AB; ADD A,R1 MOV 38H,A ;gia tri trung binh de vao dia chi 38H trong RAM RET ;-------------------- DISPLAYLED: CLR C ;xoa C MOV R0,#30H ;R0 lam thanh ghi chua dc MOV R4,#00H ;dung R4 bao cao MOV R5,#00 ;dung R5 bao thap MOV R6,#00 ;dung R6 lam bao so kenh co t > ttb MOV R7,#00 ;dung R7 lam bao so kenh co t < ttb VONG_LAP: MOV A,@R0 CJNE A,42H,SOSANH ;nhay den so sanh LJMP bo_qua ;thoat khoi chuong trinh SOSANH: JNC CAO ;nhay den cao neu c = 0(@R0 > NDTB) LJMP THAP ;C = 1 nhay den thap CAO: INC R6 ;so kenh co t > ttb INC R4 ;dk led cao LJMP bo_qua ;Nhay de THAP: INC R7 ;so kenh co t < ttb INC R5 ;dk led thap Bo_qua: MOV A,R4 ;chuyen R4 vao A RL A ;quay trai A MOV R4,A ;tra cho R4,thuc chat quay R4 MOV A,R5 ;chuyen R5 den A RL A ;quay trai A MOV R5,A ;chuyen tra lai cho R5 INC R0; CJNE R0,#38H,VONG_LAP Dua_ra_led: MOV DPTR,#8003H ;chon 8255(1) MOV A,#80H ;nap tu dk control register MOVX @DPTR,A ;gui ra cong PD MOV DPTR,#8000H ;lay cong PA MOV A,R4 ;dua tu dk cac bit cong PB MOVX @DPTR,A MOV A,R5 INC DPTR MOVX @DPTR,A RET ;----------------------- COIBAODONG: ;de coi o chan Pc.0 cua 8255(1) CLR C ;xoa co C MOV A,#3 CJNE A,5H,SAU1 ;so sanh R6 voi R6 > 3 C = 1 SAU1: JC BAODONG ;C = 1, nhay den bao dong CLR C ;xoa C MOV A,#3H ;neu so kenh lon hon 3 CJNE A,6H,SAU2 ;R7 > 3, C = 1 SAU2: JC BAODONG ;C = 1, nhay den bao dong CLR C ;xoa C MOV A,41H ;41h chua nhiet do max CJNE A,38H ,SAU3 ;Ttb > Tmax C = 1 SAU3: JC BAODONG ;C = 1, nhay den bao dong CLR C ;xoa C MOV A,38H ;dua nhiet do trung binh da tinh vao A CJNE A,40H,SAU4 ;Tmin > Ttb C = 1 SAU4: ;Tmin luu o 40H JC BAODONG ;C = 1, nhay den bao dong LJMP HET ;neu ko thi nhay den ket thuc ;----------------------- BAODONG: MOV R6,#200 COI1:MOV R7,#100 COI2:DJNZ R7,COI2 DJNZ R6,COI1 CPL P3.5 SJMP BAODONG ;------------------- HET : RET ;-------------------- CHONKENH: ;ngat phai uu tien nhI ACALL NHAPKENH ;sau khi goi LCD hien chu "Nhap kenh tu 0->7:" ACALL BANPHIM ;GO mot phim chon kenh (chi duoc tu 0- > 7) MOV A,R6 ;GIU GIA TRI CUA PHIM AN MOV R7,A MOV R1,A ACALL HIENTHI MOV A,#':' MOV R1,A ACALL HIENTHI MOV A,R7 CLR C SUBB A,#48 ADD A,#2FH ;den dia chi bat dau chua du lieu MOV R0,A MOV A,@R0 MOV B,#10 DIV AB ADD A,#48 MOV R1,A ACALL HIENTHI MOV A,B ADD A,#48 MOV R1,A ACALL HIENTHI TAMDUNG: ACALL BANPHIM MOV A,R6 CJNE A,#'D',TAMDUNG RETI ;-------------- NHAPKENH: ACALL PAPC_RA ACALL XOAMANHINH ;goi ctr con xoa LCD ACALL READY ; kiem tra xem LCD da san sang chua MOV A,#'K'; MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'E' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'N' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'H' MOV R1,A ACALL HIENTHI ACALL READY RET NHOM: ACALL READY ; kiem tra xem LCD da san sang chua ;goi chuong trinh con cho PaPc_vao MOV A,#'N' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'H' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'O' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'M' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'4' MOV R1,A ACALL HIENTHI ACALL READY RET ;-------------------- STOP:ACALL XOAMANHINH ACALL READY ; kiem tra xem LCD da san sang chua ;goi chuong trinh con cho PaPc_vao MOV A,#'S' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'T' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'O' MOV R1,A ACALL HIENTHI ACALL READY MOV A,#'P' MOV R1,A ACALL HIENTHI ACALL READY SJMP $ RET ;---------------- HETCHUONGTRINH: MOV R5,#200; LAN111: MOV R3,#200; LAN211: MOV R4,#100; DOI11: DJNZ R4,DOI11 DJNZ R3,LAN211 DJNZ R5,LAN111 RET END Lêi kÕt Qua thêi gian lµm ®å ¸n ®· gióp chóng em hiÓu thªm vÒ viÖc thiÕt kÕ mét hÖ thèng trong c«ng nghiÖp cã sö dông vi ®iÒu khiÓn ®Æc biÖt lµ vi ®iÒu khiÓn 89C51. Trong c«ng nghiÖp hiÖn nay viÖc ®­a c¸c vi ®iÒu khiÓn vµo ®Ó t¹o ra c¸c thiÕt bÞ th«ng minh lµ cÇn thiÕt. Tõ ®ã c¸c hÖ thèng ®­îc tao ra sÏ gon nhÑ h¬n vµ gi¶i quyÕt nhiÖm vô nhanh h¬n, dÔ dµng h¬n. Trong thiÕt kÕ hÖ thèng nµy ®· ®¸p øng ®­îc yªu cÇu cña bµi to¸n ®Æt ra, vËn dông tèt nh÷ng tÝnh n¨ng ­u viÖt cña vi ®iÒu khiÓn 89C51 còng nh­ kÕt nèi c¸c thiÕt bÞ ®­îc sö dông mét c¸ch hîp lý. §­îc sù chØ b¶o, gióp ®ì tËn t×nh cña c¸c thÇy h­íng dÉn, chóng em ®· hoµn thµnh viÖc thiÕt kÕ hÖ thèng thu thËp sè liÖu 8 kªnh tù ®éng. Nh­ng do thêi gian cã h¹n vµ kiÕn thøc thùc tÕ ch­a cã nªn viÖc t×m hiÓu còng nh­ vËn dông cßn nhiÒu h¹n chÕ, chóng em rÊt mong ®­îc sù gãp ý cña c¸c thÇy ®Ó m¹ch thiÕt kÕ ®­îc hoµn thiÖn h¬n. Chóng em xin ch©n thµnh c¶m ¬n c¸c thÇy ! Nhãm ®å ¸n

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

  • docDA THIET KE HE VI XU LY 8 BIT.doc