Tập bài giảng Vi xử lý 1

Câu hỏi và bài tập chương 7 Câu 1: Thiết kế một xe tự hành ( Robốt đơn giản ) sử dụng vi điều khiển họ 8051. Yêu cầu: + Xe tự hành theo một vạch trắng dán sẵn. + Khi gặp vật cản xe tự động quay đầu. Câu 1: Thiết kế bộ đo nhiệt độ phòng với dải đo từ 0 độ C đến 70 độ Csử dụng vi điều khiển họ 8051. Yêu cầu: + Hiển thị nhiệt độ trong phòng trên led 7 đoạn. + Tạo 1 giao diện trên máy tính để hiển thị nhiệt độ đọc được từ vi điều khiển thông qua chuẩn RS232 của máy tính. + Cảm biến nhiệt độ sử dụng LM335. Câu 3: Thiết kế bộ đo nhiệt độ phòng với dải đo từ 0 độ C đến 70 độ Csử dụng vi điều khiển họ 8051. Yêu cầu: + Hiển thị nhiệt độ trong phòng trên led 7 đoạn. + Nếu nhiệt độ trong phòng <150 thì bật lò sưởi. + Nếu nhiệt độ trong phòng >250 thì bật quạt. Câu 4: Thiết kế mạch tự động báo tiết học trong trường ĐHSPKT Nam Định sử dụng vi điều khiển họ 8051. Yêu cầu: + Lịch báo giờ theo lịch mới của trường. + Hiển thị giờ, phút trên led 7 thanh + Khi mất điện không bị mất dữ liệu. + Tín hiệu báo giờ học bằng mạch KĐCS âm tần.

pdf210 trang | Chia sẻ: Tiểu Khải Minh | Ngày: 19/02/2024 | Lượt xem: 147 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Tập bài giảng Vi xử lý 1, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
iÖu tõ m¸y tÝnh ra giao diÖn RS232 vµ ng­îc l¹i ph¶i qua bé chuyÓn møc tÝn hiÖu. Sö dông vi m¹ch MAX232, hay MAX233 cã s¬ ®å ch©n nh­ sau: H×nh 6.18 Vi m¹ch MAX232 TËp bµi gi¶ng Vi xö lý1 163 - C¸c ®Æc tÝnh kü thuËt cña cæng nèi tiÕp b. §Þa chØ cæng vµ tèc ®é truyÒn cña cæng nèi tiÕp. - §Þa chØ cæng vµ yªu cÇu ng¾t. Giao diÖn §Þa chØ c¬ së Yªu cÇu ng¾t COM 1 3F8H IRQ4 COM 2 2F8H IRQ3 COM 3 3E8H IRQ4 COM 4 2E8H IRQ3 - Tèc ®é truyÒn vµ c¸c sè chia t­¬ng øng cña giao diÖn tuÇn tù. Tèc ®é ( baud) Sè chia ( D) Gi¸ trÞ sè chia cao ( H) Gi¸ trÞ sè chia thÊp ( L ) 50 2304 09 00 300 384 01 80 600 192 00 C0 2400 48 00 30 4800 24 00 18 9600 12 00 0C 19200 6 00 06 38400 3 00 03 57600 2 00 02 115200 1 00 01 B¶ng 6.6 Tèc ®é truyÒn cña cæng nèi tiÕp c. Ph­¬ng ph¸p truyÒn. Ph­¬ng ph¸p truyÒn tõ m¸y tÝnh ra thiÕt bÞ ngo¹i vi. Cã ba ph­¬ng ph¸p: TruyÒn mét chiÒu ( Simplex) : d÷ liÖu chØ ®­îc truyÒn theo mét chiÒu :Tõ m¸y tÝnh ra hoÆc vµo m¸y tÝnh. Trong tr­êng hîp thø nhÊt d÷ liÖu ®­îc truyÒn ra qua ®­êng TD,®­êng RD kh«ng ®­îc nèi. ThiÕt bÞ ngo¹i vi kh«ng sö dông ®­êng RTS. tÝn hiÖu DCD lu«n ë tr¹ng th¸i kh«ng tÝch cùc v× thiÕt bÞ ngo¹i vi chØ nhËn d÷ liÖu. TÝn hiÖu DSR lu«n tÝch cùc. TËp bµi gi¶ng Vi xö lý1 164 TruyÒn hai chiÒu riªng biÖt ( haft duplex) : truyÒn hai chiÒu riªng biÖt gi÷a m¸y tÝnh vµ thiÕt bÞ ngo¹i vi. Trong tr­êng hîp nµy chØ TD hoÆc TR lµm viÖc trong mét thêi ®iÓm. TÝn hiÖu b¾t tay RTS vµ CTS ®­îc sö dông. NÕu m¸y tÝnh muèn truyÒn d÷ liÖu, nã ®­a tÝn hiÖu RT lªn tr¹ng th¸i tÝch cùc vµ ®îi tÝn hiÖu ngo¹i vi tr¶ lêi qua tÝn hiÖu CTS. NÕu thiÕt bÞ ngo¹i vi muèn truyÒn d÷ liÖu, nã ®­a tÝn hiÖu DCD vÒ m¸y tÝnh. DSR kh«ng ®­îc dïng ®Õn. M¸y tÝnh b¸o s½n sµng nhËn d÷ liÖu qua DTR vµ cho phÐp hay cÊm thiÕt bÞ ngo¹i vi ( M¸y tÝnh lu«n ®¶m nhiÖm vai trß chñ trong khi trao ®æi d÷ liÖu). H­íng truyÒn d÷ liÖu ®­îc thay ®æi b»ng c¸ch thay ®æi hai tÝn hiÖu RTS vµ CTS. TÝn hiÑu RI rÊt quan träng trong biªn b¶n truyÒn nµy, qua RI thiÕt bÞ ngo¹i vi b¸o mét thiÕt bÞ kh¸c ®ang t×m c¸ch kÕt nèi víi m¸y tÝnh qua thiÕt bÞ ngo¹i vi dang ho¹t ®éng ( Modem). TruyÒn hai chiÒu cïng mét lóc ( Full Duplex) : D÷ liÖu ®­îc truyÒn theo c¶ hai chiÒu cïng mét lóc. Trong tr­êng hîp nµy, m¸y tÝnh vµ thiÕt bÞ ngo¹i vi ®¶m nhiÖm chøc n¨ng m¸y ph¸t vµ m¸y nhËn cïng mét lóc. TÝn hiÖu RTS vµ CTS lóc nµy kh«ng cã ý nghÜa. DTR ®¶m nhiÖm viÖc chuyÓn m¹ch. d. Khung d÷ liÖu nèi tiÕp. - Khung cña d÷ liÖu d¹ng TTL. - Khung d÷ liÖu truyÒn ®i.(VÝ dô truyÒn ®i ch÷ A ®· chuyÓn sang chuÈn RS232 ). H×nh 6.19 Khung d÷ liÖu truyÒn nèi tiÕp. 2. TruyÒn th«ng nèi tiÕp ë V§K 8051. a. Tèc ®é baud trong 8051. 8051 truyÒn vµ nhËn d÷ liÖu nèi tiÕp theo nhiÒu tèc ®é kh¸c nhau. Tèc ®é truyÒn cña nã cã thÓ lËp tr×nh ®­îc. §iÒu nµy thùc hiÖn nhê sù trî gióp cña bé ®Þnh thêi Timer1. Tr­íc khi ta ®i vµo bµn c¸ch lµm ®iÒu ®ã nh­ thÕ nµo th× ta sÏ xÐt quan hÖ gi÷a tÇn sè th¹ch anh vµ tèc ®é baud trong 8051. Nh­ ta ®· nãi ë ch­¬ng tr­íc ®©y th× 8051 chia tÇn sè th¹ch anh cho 12 ®Ó lÊy tÇn sè chu tr×nh m¸y. Trong tr­êng hîp XTAL = 11.0592MHz th× tÇn sè chu tr×nh lµ TËp bµi gi¶ng Vi xö lý1 165 SM0 SCON.7 Sè x¸c ®Þnh chÕ ®é lµm viÖc cæng nèi tiÕp SM1 SCON.6 Sè x¸c ®Þnh chÕ ®é lµm viÖc cæng nèi tiÕp SM2 SCON.5 Dïng cho truyÒn th«ng gi÷a c¸c bé vi xö lý (SM2 = 0) REN SCON.4 BËt/xo¸ b»ng phÇn mÒm ®Ó cho phÐp/ kh«ng cho thu TB8 SCON.3 Kh«ng sö dông réng r·i RB8 SCON.2 Kh«ng sö dông réng r·i T1 SCON.1 Cê ng¾t truyÒn ®Æt b»ng phÇn cøng khi b¾t ®Çu bÝt Stop ë chÕ ®é 1. R1 SCON.0 Cê ng¾t thu. Xo¸ b»ng phÇn mÒm. 921.6kHz (11.0592MHz : 12 = 921.6kHz). M¹ch ®iÖn UART truyÒn th«ng nèi tiÕp cña 8051 l¹i chia tÇn sè chu tr×nh m¸y cho 32 mét lÇn n÷a tr­íc khi nã ®­îc dïng bëi bé ®Þnh thêi gian Timer1 ®Ó t¹o ra tèc ®é baud. Do vËy, 921.6kHz : 32 = 28.800Hz. §©y lµ sè ta sÏ dïng trong c¶ phÇn nµy ®Ó t×m gi¸ trÞ cña Timer1 ®Ó ®Æt tèc ®é baud. Muèn Timer1 ®Æt tèc ®é baud th× nã ph¶i ®­îc lËp tr×nh vÒ chÕ ®é lµm viÖc mode2, ®ã lµ chÕ ®é thanh ghi 8 bÝt tù ®éng n¹p l¹i. §Ó cã tèc ®é baud t­¬ng thÝch víi PC ta ph¶i n¹p TH1 theo c¸c gi¸ trÞ cho trong b¶ngsau: Tèc ®é baud TH1 (thËp ph©n) TH1 (sè Hex) 9600 4800 2400 1200 - 3 - 6 - 12 - 24 FD FA F4 F8 B¶ng 6.7 Tèc ®é baud cña 8051 b. Thanh ghi SBUF. SBUF lµ thanh ghi 8 bÝt ®­îc dïng riªng cho truyÒn th«ng nèi tiÕp trong 8051. §èi víi mét byte d÷ liÖu cÇn ph¶i ®­îc truyÒn qua ®­êng TxD th× nã ph¶i ®­îc ®Æt trong thanh ghi SBUF. T­¬ng tù nh­ vËy SBUF gi÷ mét byte d÷ liÖu khi nã ®­îc nhËn bë ®­êng RxD cña 8051. SBUF cã thÓ ®­îc truy cËp bëi mäi thanh ghi bÊt kú trong 8051. Khi mét byte ®­îc ghi vµo thanh ghi SBUF nã ®­îc ®ãng khung víi c¸c bÝt Start vµ Stop vµ ®­êng truyÒn nèi tiÕp quan ch©n TxD. T­¬ng tù nh­ vËy, khi c¸c bÝt ®­îc nhËn nèi tiÕp tõ RxD th× 8051 më khung nã ®Ó lo¹i trõ c¸c bÝt Start vµ Stop ®Ó lÊy ra mét byte tõ d÷ liÖu nhËn ®­îc vµ ®Æt nã vµo thanh ghi SBUF. c. Thanh ghi ®iÒu khiÓn nèi tiÕp SCON. - Thanh ghi SCON lµ thanh ghi 8 bÝt ®­îc dïng ®Ó lËp tr×nh viÖc ®ãng khung bÝt b¾t ®Çu Start, bÝt dõng Stop vµ c¸c bÝt d÷ liÖu cïng víi viÖc kh¸c. - D­íi ®©y lµ m« t¶ c¸c bÝt kh¸c nhau cña SCON: B¶ng 6.8 B¶ng m« t¶ c¸c bit cña thanh ghi SCON SM0 SM1 SM2 REN TB8 RB8 Ti Ri TËp bµi gi¶ng Vi xö lý1 166 - Chøc n¨ng c¸c bit. C¸c bÝt SM0, SM1. §©y lµ c¸c bÝt D7 vµ D6 cña thanh ghi SCON. Chóng ®­îc dïng ®Ó x¸c ®Þnh chÕ ®é ®ãng khung d÷ liÖu b»ng c¸ch x¸c ®Þnh sè bÝt cña mét ký tù vµ c¸c bÝt Start vµ Stop. C¸c tæ hîp cña chóng lµ: SM0 SM1 0 0 ChÕ ®é nèi tiÕp 0 0 1 ChÕ ®é nèi tiÕp 1, 8 bÝt d÷ liÖu, Start, Stop 1 0 ChÕ ®é nèi tiÕp 2 1 1 ChÕ ®é nèi tiÕp 3 Trong bèn chÕ ®é ta chØ quan t©m ®Õn chÕ ®é 1, c¸c chÕ ®é kh¸c ®­îc gi¶i thÝch ë Appendisk A3. Trong thanh ghi SCON khi chÕ ®é 1 ®­îc chän th× d÷ liÖu ®­îc ®ãng khung gåm 8 bÝt d÷ liÖu, 1 bÝt Start, 1 bÝt Stop ®Ó t­¬ng thÝch víi cæng COM cña IBM PC vµ c¸c PC t­¬ng thÝch kh¸c. Quan träng h¬n lµ chÕ ®é nèi tiÕp 1 cho phÐp tèc ®é baud thay ®æi vµ ®­îc thiÕt lËp bëi Timer1 cña 8051. Trong chÕ ®é nèi tiÕp 1 th× mçi ký tù gåm cã 10 bÝt ®­îc truyÒn trong ®ã cã bÝt ®Çu lµ bÝt Start, sau ®ã lµ 8 bÝt d÷ liÖu vµ cuèi cïng lµ bÝt Stop. BÝt SM2. BÝt SM2 lµ bÝt D5 cña thanh ghi SCON. BÝt nµy cho phÐp kh¶ n¨ng ®a xö lý cña 8051 vµ nã n»m ngoµi ph¹m vi tr×nh bµy cña ch­¬ng nµy. §èi víi c¸c øng dông cña chóng ta ®Æt SM2 = 0 v× ta kh«ng sö dông 8051 trong m«i tr­êng ®a xö lý. BÝt REN §©y lµ bÝt cho phÐp thu (Receive Enable), bÝt D4 cña thanh ghi SCON. BÝt REN còng ®­îc tham chiÕu nh­ lµ SCON.4 v× SCON lµ thanh ghi cã thÓ ®¸nh ®Þa chØ theo bÝt. Khi bÝt REN cao th× nã cho phÐp 8051 thu d÷ liÖu trªn ch©n RxD cña nã. Vµ kÕt qu¶ lµ nÕu ta muèn 8051 võa truyÒn vµ nhËn d÷ liÖu th× bÝt REN ph¶i ®­îc ®Æt lªn 1. Khi ®Æt REN th× bé thu bÞ cÊm. ViÖc ®Æt REN = 1 hay REN = 0 cã thÓ ®¹t ®­îc b»ng lÖnh “SETB SCON.4” vµ “CLR SCON.4” t­¬ng øng. L­u ý r»ng c¸c lÖnh nµy sö dông ®Æc ®iÓm ®¸nh ®Þa chØ theo bÝt cña thanh ghi SCON. BÝt nµy cã thÓ ®­îc dïng ®Ó khèng chÕ mäi viÖc nhËn d÷ liÖu nèi tiÕp vµ nã lµ bÝt cùc kú quan träng trong thanh ghi SCON. BÝt TB8 vµ RB8. BÝt TB8 lµ bÝt SCON.3 hay lµ bÝt D3 cña thanh ghi SCON. Nã ®­îc dïng ®Ó cho chÕ ®é nèi tiÕp 2 vµ 3. Ta ®Æt TB8 v× nã kh«ng ®­îc sö dông trong c¸c øng dông cña m×nh. BÝt RB8 (bÝt thu 8) lµ bÝt D2 cña thanh ghi SCON. Trong chÕ ®é nèi tiÕp 1 th× bÝt nµy nhËn mét b¶n sao cña bÝt Stop khi mét d÷ liÖu 8 bÝt ®­îc nhËn. BÝt nµy còng nh­ bÝt TB8 rÊt hiÕm khi ®­îc sö dông. Trong c¸c øng dông cña m×nh ta ®Æt RB8 = 0 v× nã ®­îc sö dông cho chÕ ®é nèi tiÕp 2 vµ 3. TËp bµi gi¶ng Vi xö lý1 167 C¸c bÝt TI vµ RI. C¸c bÝt ng¾t truyÒn TI vµ ng¾t thu RI lµ c¸c bÝt D1 vµ D0 cña thanh ghi SCON. C¸c bÝt nµy lµ cùc kú quan träng cña thanh ghi SCON. Khi 8051 kÕt thóc truyÒn mét ký tù 8 bÝt th× nã bËt TI ®Ó b¸o r»ng nã s½n sµng truyÒn mét byte kh¸c. BÝt TI ®­îc bËt lªn tr­íc bÝt Stop. Cßn khi 8051 nhËn ®­îc d÷ liÖu nèi tiÕp qua ch©n RxD vµ nã t¸ch c¸c bÝt Start vµ Stop ®Ó lÊy ra 8 bÝt d÷ liÖu ®Ó ®Æt vµo SBUF, sau khi hoµn tÊt nã bËt cê RI ®Ó b¸o r»ng nã ®· nhËn xong mét byte vµ cÇn ph¶i lÊy ®i kÎo nã bÞ mÊt cê RI ®­îc bËt khi ®ang t¸ch bÝt Stop. Trong c¸c vÝ dô d­íi ®©y sÏ nãi vÒ vai trß cña c¸c bÝt TI vµ RI. 6.8.3. LËp tr×nh cho vi ®iÒu khiÓn trao ®æi d÷ liÖu nèi tiÕp víi PC. 1. S¬ ®å giao tiÕp V§K víi m¸y tÝnh truyÒn th«ng qua cæng COM ( Serial Port ). Ta ph¶i sö dông vi m¹ch chuyÓn ®æi MAX232 ®Ó chuyÓn thµnh vµo ra TTL cho c¸c ch©n RD vµ TD v× vi ®iÒu khiÓn t­¬ng thÝch møc TTL , giao tiÕp víi PC qua hai ch©n ®ã lµ RXD ( nhËn ) vµ TXD ( ph¸t ). TD RD L8 L7 L6 L5 L4 L3 L2 L1 L1L2L3L4L5L6L7L8 8051 AND PC INTERFACE 162738495 TO PC CONN-D9F T1IN11 R1OUT12 T2IN10 R2OUT9 T1OUT 14R1IN 13T2OUT 7R2IN 8 C2+ 4 C2- 5 C1+ 1 C1- 3 VS+ 2VS- 6 U1 MAX232 C1 1uF C2 1uF C3 1uF C4 1uF X1CRYSTALXTAL2 18 XTAL1 19 ALE 30EA 31 PSEN 29 RST 9 P0.0/AD039 P0.1/AD138 P0.2/AD237 P0.3/AD336 P0.4/AD435 P0.5/AD534 P0.6/AD633 P0.7/AD732 P1.0 1P1.1 2P1.2 3P1.3 4P1.4 5P1.5 6P1.6 7P1.7 8 P3.0/RXD10 P3.1/TXD11 P3.2/INT012 P3.3/INT113 P3.4/T014 P3.7/RD17 P3.6/WR 16 P3.5/T115 P2.7/A1528 P2.0/A821 P2.1/A922 P2.2/A1023 P2.3/A1124 P2.4/A1225 P2.5/A1326 P2.6/A1427 U2 AT89C51 IN C51u R110k D1LED-RED R2100 D2LED-RED R3100 D3LED-RED R4100 D4LED-RED R5100 D5LED-RED R6100 D6LED-RED R7100 D7LED-RED R8100 D8LED-RED R9100 OUT INDICATOR IN TEST H×nh 6.20 S¬ ®å m¹ch giao tiÕp cæng Com vµ vi ®iÒu khiÓn 2. VÝ dô: ViÕt ch­¬ng tr×nh cho V§K 8051 nhËn d÷ liÖu nèi tiÕp tõ mét giao diÖn trªn m¸y tÝnh vµ hiÓn thÞ ký tù nhËn ®­îc ra c¸c led ®¬n nèi víi PORT2 biÕt: - Khung d÷ liÖu cã 10 bÝt: 1 bit start, 8 bit data, 1 bÝt stop. TËp bµi gi¶ng Vi xö lý1 168 - Tèc ®é truyÒn lµ 1200 - TÇn sè th¹nh anh sö dông lµ 11.0592Mhz. - TruyÒn th«ng nèi tiÕp qua cæng COM1. Gi¶i: Tr­íc tiªn ta cÇn ph¶i t¹o mét giao diÖn trªn m¸y tÝnh. §Ó t¹o giao diÖn ta cã thÓ sö dông nhiÒu phÇn mÒm kh¸c nhau nh­: Delphi, Visual Basic, C++... ë ®©y t«i giíi thiÖu t¹o ra giao diÖn trªn Visual Basic. * T¹o giao diÖn. - Khëi ®éng Visual Basic më dù ¸n míi - LÊy Label, Text box, Command button ®Ó t¹o ra giao diÖn nh­ sau: H×nh 6.21 Giao diÖn khëi ®éng Visual Basic - §Ó thay tæi tªn c¸c ®èi t­îng trªn giao diÖn ta chän vµo ®èi t­îng ®ã sau ®ã chän caption trong hép tho¹i Properties ë bªn ph¶i cña phÇn mÒm. - Thay ®æi cí ch÷, Font ch÷ ta chän Font trong Properties. - §Ó phôc * ViÕt lÖnh cho c¸c ®èi t­îng trªn giao diÖn. - §Ó viÕt lÖnh cho c¸c ®èi t­îng trªn ta nh¸y ®óp chuét vµo ®èi t­îng ®ã. Private Sub Command1_Click() 'su kien khi nhan nut truyen TËp bµi gi¶ng Vi xö lý1 169 MSComm1.Output = Text1.Text 'gui gia tri tai text1 ra cong com End Sub Private Sub Command2_Click() 'su kien khi nhan nut thoat MSComm1.PortOpen = False 'dong cong com End 'ket thuc chuong trinh End Sub Private Sub Form_Load() ' Su kien khi load form MSComm1.CommPort = 1 'chon cong com 1 MSComm1.Settings = "1200,n,8,1" 'chon toc do truyen la 1200, khong kiem tra chan le ‘ mot bit dung MSComm1.PortOpen = True 'chon mo cong Text1.Text = "" 'gan text1 bang mot khoang trang End Sub - Sau ®ã ta chän File/Make project1.exe la cã ®­îc mét file ch¹y nh­ sau: * ViÕt ch­¬ng tr×nh cho V§K. ;chuong trinh viet cho VDK 8051 nhan du lieu noi tiep tu may tinh ;va gui ra cac led don noi voi port2 ;tan so thanh anh su dung la 11.0592 ;khung du lieu la: 1200,n,8,1 ;chuong trinh su dung ngat noi tiep de nhan ;-------------------------------------------------------- org 0 jmp start ;--- khai bao dia chi vec to ngat noi tiep org 23h TËp bµi gi¶ng Vi xö lý1 170 mov a,sbuf ;doc du lieu tu bo dm noi tiep vao A mov p2,a ;dua A ra port2 clr ri ;xoa co nhan reti ;-------------------------------------------------------- start: mov ie,#10010000b ;cho phep ngat noi tiep mov scon,#01010000b ;du lieu noi tiep 8bit UART va cho phep nhan mov tmod,#00100000b ;chon timer1 mode 8 bit tu dong nap lai mov th1,#0e8h ;to do la 1200 voi crystal=11.0592Mhz setb tr1 ;khoi dong timer1 mov p2,#0 ;tat led jmp $ ;dung tai cho end Lóc nµy ta n¹p ch­¬ng tr×nh cho V§K vµ kÕt nèi víi m¸y tÝnh ®Ó ch¹y thö nghiÖm. Khi ta truyÒn mét ký tù nµo ®ã th× trªn c¸c led ®¬n nèi víi Port 2 sÏ cã m· ASCII cña ký tù ®ã. C©u hái vµ bµi tËp ch­¬ng 6 Bµi tËp 1: ViÕt ch­¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn 8 led ®¬n nèi víi Port 1 cã mét ®iÓm s¸ng ch¹y. Bµi tËp 2: ViÕt ch­¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn 8 led ®¬n nèi víi Port 3 s¸ng dÇn t¾t dÇn. Bµi tËp 3: ViÕt ch­¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn 8 led ®¬n nèi víi Port 3 s¸ng dÇn t¾t dÇn 5 lÇn råi dõng l¹i. Bµi tËp 4: ViÕt ch­¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn 16 led ®¬n nèi víi Port 2 vµ Port 3 s¸ng dÇn t¾t dÇn. Bµi tËp 5: ViÕt ch­¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn 8 led ®¬n nèi víi Port 2 thùc hiÖn theo yªu cÇu sau: + S¸ng dÇn t¾t dÇn 2 lÇn + Cã mét ®iÓm s¸ng ch¹y 5 lÇn + Chíp t¾t 20 lÇn sau ®ã lÆp l¹i tõ ®Çu. Bµi tËp 6: ViÕt ch­¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn mét trß ch¬i ®¬n gi¶n cho 5 ng­êi ch¬i lµ: A,B,C,D,E vµ mét ng­êi dÉn ch­¬ng tr×nh lµ: MC thùc hiÖn theo yªu cÇu sau: TËp bµi gi¶ng Vi xö lý1 171 + Khi mét trong 5 thÝ sinh nhÊn phÝm tr¶ lêi c©u hái th× ®Ìn b¸o cña thÝ sinh ®ã s¸ng lªn vµ chu«ng kªu ®ång thêi c¸c thÝ sinh cßn l¹i bÞ mÊt quyÒn. + ChØ cã ng­êi dÉn ch­¬ng tr×nh míi cã quyÒn x¸c lËp l¹i tõ ®Çu ( t¾t ®Ìn vµ chu«ng ). Bµi tËp 7: ViÕt ch­¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn c¸c led ®¬n nèi víi Port 2 thùc hiÖn theo yªu cÇu sau: + Khi ch©n P1.0=0 c¸c led nèi víi Port 2 chíp t¾t + Khi P1.0=1 c¸c led nèi víi Port 2 s¸ng dÇn t¾t dÇn. Bµi tËp 8: ViÕt ch­¬ng tr×nh cho V§K hä 8051 ®Õm xung ngoµi tõ 10-60 sö dông bé ®Õm 0 ( T0) , hiÓn thÞ gi¸ trÞ sè ®Õm trªn led 7 ®o¹n. BiÕt Port0 nèi víi c¸c ®o¹n a,b,c..h cña led 7 ®o¹n, Port 2 quÐt led. Bµi tËp 9: ViÕt ch­¬ng tr×nh cho V§K hä 8051 ®Õm xung ngoµi tõ 0-245 sö dông bé ®Õm 0 ( T0) , hiÓn thÞ gi¸ trÞ sè ®Õm trªn led 7 ®o¹n. BiÕt Port0 nèi víi c¸c ®o¹n a,b,c..h cña led 7 ®o¹n, Port 2 quÐt led. Bµi tËp 10: ViÕt ch­¬ng tr×nh cho V§K hä 8051 ®Õm xung ngoµi tõ 0-65 sö dông bé ®Õm 1 ( T1) , hiÓn thÞ gi¸ trÞ sè ®Õm trªn led 7 ®o¹n. BiÕt Port0 nèi víi c¸c ®o¹n a,b,c..h cña led 7 ®o¹n, Port 2 quÐt led. Bµi tËp 11: ViÕt ch­¬ng tr×nh cho vi ®iÒu khiÓn 8051 ®iÒu khiÓn ®Ìn giao th«ng t¹i mét ng· t­ gåm 3 ®Ìn xanh, ®á, vµng theo thêi gian nh­ sau: §Ìn ®á: 20 gi©y, ®Ìn xanh 16 gi©y. BiÕt tÇn sè th¹ch anh sö dông lµ 12MHZ. Bµi tËp 12: ViÕt ch­¬ng tr×nh cho vi ®iÒu khiÓn 8051 tÝnh thêi gian cña 1 phót ( 0 - 59 gi©y ) sö dông ng¾t timer1, hiÓn thÞ thêi gian trªn led 7 ®o¹n anèt chung. BiÕt tÇn sè th¹ch anh sö dông lµ 12Mhz Port 0 nèi víi c¸c ®o¹n a,b,.......g P2.0, P2.1 chän led Bµi tËp 13: ViÕt ch­¬ng tr×nh cho vi ®iÒu khiÓn 8051 tÝnh thêi gian phót, gi©y sö dông ng¾t timer0, hiÓn thÞ thêi gian trªn led 7 ®o¹n anèt chung.. BiÕt tÇn sè th¹ch anh sö dông lµ 12Mhz Port 0 nèi víi c¸c ®o¹n a,b,.......g P2.0, P2.1 chän led Bµi tËp 14: ViÕt ch­¬ng tr×nh cho vi ®iÒu khiÓn 8051 tÝnh thêi gian giê, phót, gi©y sö dông ng¾t timer0, hiÓn thÞ thêi gian trªn led 7 ®o¹n anèt chung.. BiÕt tÇn sè th¹ch anh sö dông lµ 11,0592Mhz Port 0 nèi víi c¸c ®o¹n a,b,.......g P2.0, P2.1 chän led Bµi tËp 15: ViÕt ch­¬ng tr×nh cho vi ®iÒu khiÓn 8051 ®Õm xung ngoµi tõ 0- 55 sö dông ng¾t ngoµi 1 ( INT1).HiÓn thÞ thêi gian trªn led 7 ®o¹n anèt chung. TËp bµi gi¶ng Vi xö lý1 172 Port 0 nèi víi c¸c ®o¹n a,b,.......g P2.0, P2.1 chän led Bµi tËp 16: ViÕt ch­¬ng tr×nh cho vi ®iÒu khiÓn 8051 ®Õm xung ngoµi tõ 25- 0 sö dông ng¾t ngoµi 0 ( INT0).HiÓn thÞ thêi gian trªn led 7 ®o¹n anèt chung. Port 0 nèi víi c¸c ®o¹n a,b,.......g P2.0, P2.1 chän led Bµi tËp 17: ViÕt ch­¬ng tr×nh cho vi ®iÒu khiÓn 8051 LËp ®Õm xung ngoµi tõ 0- 125 sö dông ng¾t ngoµi 1 ( INT1).HiÓn thÞ thêi gian trªn led 7 ®o¹n anèt chung. Port 0 nèi víi c¸c ®o¹n a,b,.......g P2.0, P2.1 chän led TËp bµi gi¶ng Vi xö lý1 173 CH¦¥NG 7: ThiÕt kÕ hÖ vi xö lý chuyªn dông 7.1 Quy trình thiÕt kÕ hÖ vi xö lý chuyªn dông 7.1.1 Quy trình phát triển hệ thống Các hệ vi xử lý chuyên dụng có chức năng chuyên biệt và ít thay đổi trong suốt thời gian tồn tại. Một hệ vi xử lý chuyên dụng thường bao gồm phần cứng và phần mềm. Yêu cầu đối với hệ vi xử lý chuyên dụng là độ tin cậy cao, hoạt động ổn định. Hệ thống xây dựng nhằm đáp ứng một hoặc một vài nhiệm vụ chuyên biệt nên người thiết kế có thể tối ưu về kích thước, tốc độ và giá thành sản xuất. Quy trình phát triển một hệ vi xử lý chuyên dụng bao gồm một số giai đoạn: phân tích yêu cầu và xây dựng sơ đồ khối hệ thống, thiết kế phần cứng và phần mềm, thực thi hệ thống. Trong mỗi giai đoạn bao gồm một số bước, các bước này được thực hiện tạo ra các tài liệu cụ thể cung cấp sự hiểu biết về hệ thống. 7.1.2 Phân tích yêu cầu và xây dựng sơ đồ khối hệ thống Giai đoạn phân tích cần trả lời các câu hỏi hệ thống làm gì? hệ thống sẽ được sử dụng khi nào? ở đâu? ai sẽ sử dụng hệ thống? Trong giai đoạn này cần nghiên cứu các hệ thống sẵn có, chỉ ra ưu nhược điểm của từng hệ thống, xác định các tính năng cần cải thiện. Việc phân tích dẫn đến phát triển khái niệm về hệ thống mới. Khái niệm này được sử dụng để xây dựng một tập hợp các mô hình đánh giá, đề xuất mô hình hệ thống. Các đầu vào, đầu ra và giao diện người máy của hệ thống, các thao tác xử lý dữ liệu cần được xác định. 7.1.3 Thiết kế phần cứng và phần mềm Giai đoạn này quyết định hệ thống sẽ hoạt động thế nào, phần cứng đảm nhận chức năng gì, phần mềm đảm nhận chức năng gì, số lượng các modul, giao diện người sử dụng. Phần cứng đảm nhận những công việc không thể thay thế được bằng phần mềm như bộ nhớ, phối ghép thiết bị vào/ra v.v hoặc một số chức năng của phần mềm mà việc sử dụng phần cứng sẽ cải thiện được tính năng nào đó ví dụ như tốc độ của hệ thống. Phần mềm đảm nhận các chức năng còn lại của hệ thống, thực hiện các thao tác xử lý dữ liệu, ra quyết định. Phần mềm làm cho hệ thống trở nên linh hoạt, dễ dàng thích ứng được với những thay đổi của điều kiện làm việc. Trong giai đoạn này cần trả lời các câu hỏi như: dữ liệu gì sẽ được lưu trữ và lưu trữ ở đâu? CPU cần tốc độ thực hiện nhanh hay chậm? Bộ nhớ cần có độ lớn bằng bao TËp bµi gi¶ng Vi xö lý1 174 nhiêu cho chương trình và dữ liệu? Lựa chọn các linh kiện nào? Các linh kiện được ghép nối với nhau thế nào? Thiết kế chương trình: chương trình gì cần được viết và chúng sẽ làm gì? Vẽ lưu đồ giải thuật tổng quát cho toàn bộ hoạt động của hệ thống. Tiếp đó vẽ lưu đồ giải thuật cho các modul chức năng nhằm cụ thể hóa các trình tự thao tác của hệ thống, viết chương trình nguồn. 7.1.4 Thực thi hệ thống và kiểm thử Trong giai đoạn này, hệ thống được phát triển. Giai đoạn này thường dài nhất và là phần đắt đỏ nhất. Hệ thống được xây dựng và kiểm tra để đảm bảo rằng nó thực hiện các chức năng như thiết kế. Trong giai đoạn này có thể thay đổi lại các thiết kế phần cứng và chương trình để hệ thống đạt được tối ưu mục đích ban đầu đã đề ra. 7.2 Thiết kế hệ vi xử lý chuyên dụng sử dụng vi điều khiển 8051 7.2.1 Điều kiện làm việc của vi điều khiển 8051 Để vi điều khiển 8051 hoạt động, cần các điều kiện sau: Vi điều khiển 8051 hoạt động với nguồn điện áp cấp Vdd=5V, Gnd. Nguồn dao động: thông thường một thạch anh được kết nối với các chân XTAL để cung cấp kích thích cho bộ dao động trong vi điều khiển. Tần số thạch anh có dải tần số trong khoảng từ 0-24 MHz. Phụ thuộc vào tốc độ cần có của hệ thống để lựa chọn tần số thạch anh phù hợp. Với các hệ thống cần tốc độ nhanh chọn thạch anh có tần số lớn, tuy nhiên hệ thống sẽ tiêu thụ công suất lớn hơn. Với các hệ thống đòi hỏi công suất tiêu thụ nhỏ như điều khiển từ xa nên sử dụng thạch anh có tần số thấp để giảm công suất tiêu thụ. Tần số thạch anh 11.0592MHz thường được sử dụng do cho tốc độ truyền thông chính xác. Một cặp tụ gốm có trị số từ 10-40 pF được kết nối với 2 chân của thạch anh xuống Gnd. Chân reset: RESET ở trạng thái cao trong một khoảng thời gian sẽ khởi động lại vi điều khiển. Khi hoạt động bình thường chân RESET ở mức thấp. Một mạch reset được kết nối với chân này để thực hiện chức năng reset tự động. Chân /EA: Nếu sử dụng bộ nhớ ngoài, chân EA được nối Gnd. Nếu sử dụng bộ nhớ ROM on-chip, chân EA được nối Vdd. Các đầu vào/ra của vi điều khiển Các cổng của vi điều khiển 8051 là các chân vào/ra hai chiều. Một chân bất kỳ của cổng có thể xác lập là chân đầu vào hoặc đầu ra. Để xác lập một chân là đầu vào, đặt bit tương ứng lên mức 1. Sau việc này, chân tương ứng phản ánh trạng thái mạch ngoài đưa tới. TËp bµi gi¶ng Vi xö lý1 175 Một cổng có thể cung cấp dòng điện giới hạn. Nếu dòng tiêu thụ bởi mạch ngoài quá lớn, chip có thể bị hỏng. Do đó, cần một điện trở hoặc một bộ đệm giới hạn dòng. Mỗi chân cổng có thể cung cấp điện áp Vcc hoặc Gnd cho mạch ngoài. Khi ở mức điện áp cao chân cung cấp dòng, khi ở mức điện áp thấp chân tiêu thụ dòng. Khi reset, các chân vào/ra mặc định ở mức điện áp cao. 7.2.2 Thiết kế mạch hiển thị thời gian thực sử dụng DS12887 Yêu cầu: Thiết kế đồng hồ số hiển thị thời gian thực: - Hiển thị thời gian: giờ, phút, giây, thứ, ngày, tháng, năm trên các led 7 đoạn - Hệ thống lưu được thời gian khi mất nguồn - Có các nút điều chỉnh thời gian: + mode: chọn thời gian cần chỉnh + up: tăng đơn vị thời gian tương ứng với mode + down: giảm đơn vị thời gian tương ứng với mode Xây dựng sơ đồ khối hệ thống Hình 7.1 Sơ đồ khối đồng hồ số a. Chức năng của các khối Khối nguồn: có nhiệm vụ tạo ra năng lượng cần thiết để cung cấp cho các thành phần của hệ thống. Các thành phần trong hệ thống đều hoạt động ở nguồn cấp Vcc=+5V. Khối xử lý trung tâm: thực hiện đọc dữ liệu thời gian từ DS12887, giải mã và hiển thị. Khối xử lý trung tâm cũng nhận tín hiệu điều khiển từ khối ‘nút nhấn’ để điều chỉnh thời gian. TËp bµi gi¶ng Vi xö lý1 176 Khối thời gian thực: Chứa thông tin về thời gian thực, lưu trữ thông tin ngay cả khi mất nguồn nuôi ngoài. Khối led 7 đoạn: để hiển thị thời gian bao gồm giây, phút, giờ, thứ, ngày, tháng, năm cần sử dụng 15 led 7 đoạn. Khối quét led: Với số lượng led 7 đoạn lớn nên sử dụng phương pháp giải mã động để hiển thị, sử dụng IC ghi dịch để mở rộng chân cho vi điều khiển đồng thời cung cấp dòng đủ lớn cấp cho led 7 đoạn. Khối đệm dữ liệu: đây là khối đệm giao tiếp giữa vi điều khiển và led 7 đoạn. Do dòng điều khiển của vi điều khiển nhỏ nên không thể giao tiếp trực tiếp với led 7 đoạn, khối này làm nhiệm vụ khuếch đại dòng cấp cho led 7 đoạn. Khối nút điều chỉnh: nhận tín hiệu điều chỉnh thời gian của người sử dụng. Khối này cho phép người dùng lựa chọn đơn vị thời gian cần chỉnh và chỉnh tăng hoặc giảm đơn vị thời gian đó. b. Thiết kế phần cứng Khối xử lý trung tâm: Vi điều khiển AT89C51 của hãng Atmel được lựa chọn làm khối xử lý trung tâm. Đây là vi điều khiển đáp ứng được các yêu cầu: - Có số lượng chân vào/ra đủ lớn để giao tiếp với led 7 đoạn và quét led - Vi điều khiển tích hợp toàn bộ bộ nhớ chương trình, dữ liệu, khối timer và ngắt do đó đòi hỏi ít các thành phần ngoài để hệ thống hoạt động. Với bộ nhớ ROM on-chip có dung lượng 4Kbyte hoàn toàn có thể đáp ứng được việc lưu chương trình. Bộ nhớ RAM 128 byte đủ để lưu dữ liệu và kết quả tính toán. - Tần số hoạt động đủ lớn, đáp ứng được yêu cầu đọc dữ liệu, xử lý và hiển thị dữ liệu Hình 7.2 Sơ đồ chân DS12887 TËp bµi gi¶ng Vi xö lý1 177 - Giá thành thấp và dễ mua trên thị trường Khối thời gian thực: IC thời gian thực DS12887 được lựa chọn do có giao tiếp giống như một IC nhớ RAM ngoài tích hợp bộ phân kênh, hỗ trợ giao tiếp bus kiểu Intel, phù hợp với vi điều khiển AT89C51. DS12887 là IC thời gian thực cung cấp thông tin thời gian giây, giờ, phút, thứ, ngày, tháng, năm (đúng cho đến năm 2100) được sản xuất bởi hãng Philips. IC vẫn tiếp tục cập nhật thời gian trong trường hợp không có nguồn ngoài do sử dụng nguồn pin lithium bên trong. Ngoài ra, IC này còn có bộ nhớ RAM 114 byte có khả năng nhớ dữ liệu ngay cả khi mất nguồn ngoài. Sơ đồ chân DS12887: Trong đó:  AD0-AD7: Bus đa hợp địa chỉ/dữ liệu.  NC: Bỏ trống  MOT: Lựa chọn loại Bus  /CS: Ngõ vào lựa chọn chip  AS: chốt địa chỉ  R/W: Ngõ vào đọc ghi  DS: Chốt dữ liệu  RESET: Ngõ vào reset  IRQ: Ngõ ra yêu cầu ngắt  SQW: Ngõ ra sóng vuông  VCC: Nguồn cung cấp +5V  GND: Mass Chức năng các chân - GND, Vcc: Các chân cấp nguồn cho IC. Vcc là điện áp ngõ vào +5V. Khi điện áp +5V (thay đổi trong giới hạn cho phép) được cung cấp, IC được truy cập đầy đủ, dữ liệu có thể đọc và ghi. Khi Vcc thấp hơn +4.25V, quá trình đọc và ghi bị cấm tuy nhiên chức năng cập nhật thời gian tự động vẫn được tiếp tục. Khi Vcc thấp hơn +3V, Ram và bộ giữ thời gian được nuôi bằng nguồn năng lượng lithium bên trong. - MOT: là chân lựa chọn giữa hai loại bus. Khi MOT được nối Vcc, kiểu bus Motorola được lựa chọn, khi được nối GND hoặc không nối, kiểu bus Intel được lựa chọn. Chân có điện trở kéo xuống bên trong có giá trị khoảng 20K. TËp bµi gi¶ng Vi xö lý1 178 Hình 7.3 Chu kỳ bus quy trình viết bus kiểu intel Hình 7.4 Chu kỳ bus chu trình đọc bus kiểu intel - SQW: Chân phát tín hiệu vuông. Tần số của chân SQW có thể thay đổi bằng cách lập trình các bit RS0÷RS3 trong thanh ghi A. Tín hiệu SQW có thể bật hoặc tắt bằng cách thay đổi giá trị bit SQWE trong thanh ghi B. Tín hiệu SQW không xuất hiện khi Vcc thấp hơn 4.25V TËp bµi gi¶ng Vi xö lý1 179 Bảng 7.1 Bảng lựa chọn tần số tại chân SQW - AD0-AD7: Bus đa hợp giữa địa chỉ và dữ liệu. Tín hiệu địa chỉ được xuất trong giai đoạn thứ nhất của chu kỳ bus, tín hiệu dữ liệu được xuất trong giai đoạn thứ hai của chu kỳ. Tín hiệu địa chỉ trên AD0÷AD7 phải có giá trị ổn định trước khi xuất hiện tín hiệu chốt địa chỉ là sườn xuống tại chân AS. Tín hiệu dữ liệu trên AD0÷AD7 phải giữ ổn định trong phần sau của DS hoặc xung WR. Trong chu kỳ đọc DS12887 ngõ ra 8 bit của dữ liệu ổn định trong phần sau của DS hoặc xung RD. Chu kỳ đọc được thực hiện xong và bus trở về trạng thái trở kháng cao cũng như khi DS bắt đầu xuống thấp trong trường hợp kiểu bus Motorola hoặc khi RD lên cao trong trường hợp kiểu bus Intel. - AS: chân cấp xung chốt địa chỉ. Sườn xuống của AS làm cho tín hiệu địa chỉ được chốt lại bên trong của DS12887. Sườn lên tiếp theo trên AS sẽ xoá địa chỉ bất kể chân /CS có được chọn hay không. - DS: chân DS/RD có hai kiểu sử dụng tuỳ thuộc vào mức của chân MOT. Khi chân MOT được nối Vcc, kiểu bus Motorola được lựa chọn. Trong kiểu này DS là xung dương trong suốt phần sau của chu kỳ bus và được gọi là Data Strobe. Trong suốt chu kỳ đọc, DS báo hiệu thời gian mà DS12887 được điều khiển bus đôi. Trong chu kỳ đọc, xung quét của DS là nguyên nhân làm DS12887 chốt dữ liệu được ghi. Khi chân MOT được nối GND, kiểu bus Intel được lựa chọn. Trong kiểu này, chân DS được gọi là Read(RD) xác định chu kỳ DS12887 điều khiển bus đọc dữ liệu. - R/W: có hai cách hoạt động. Khi chân MOT được kết nối Vcc lựa chọn kiểu bus Motorola, R/W ở chế độ chỉ ra trạng thái hiện tại là chu kỳ đọc hoặc ghi. Chu kỳ đòi hỏi chân R/W phải ở mức cao khi chân DS ở mức cao. Chu kỳ đòi hỏi chân R/W ở mức thấp trong suốt quá trình chốt tín hiệu của DS. Khi chân MOT được nối GND cho TËp bµi gi¶ng Vi xö lý1 180 chế độ bus Intel, tín hiệu R/W là tín hiệu hoạt động mức thấp được gọi là WR. Trong chế độ này chân R/W được định nghĩa như tín hiệu cho phép ghi. - CS: chân lựa chọn phải được xác định ở mức thấp của chu kỳ bus để DS12887 được sử dụng. CS phải được giữ trong trạng thái hoạt động trong suốt DS và AS của chế độ bus Motorola và trong suốt RD và WR của chế độ bus Intel. Chu kỳ bus khi chọn vị trí mà không chọn CS sẽ chốt địa chỉ nhưng sẽ không có bất kỳ sự truy cập nào. Khi Vcc thấp hơn +4.25V, DS12887 ngăn chặn sự truy cập từ bên ngoài bằng cách không cho phép lựa chọn ngõ vào CS. Hành động này nhằm bảo vệ cả dữ liệu thời gian cũng như dữ liệu Ram trong suốt quá trình mất nguồn. - IRQ: là ngõ ra hoạt động mức thấp, có thể sử dụng ngõ vào ngắt tới bộ vi xử lý. Ngõ ra /IRQ ở mức thấp khi bit là nguyên nhân làm ngắt và phù hợp với bit cho phép ngắt được đặt. Để xoá chân /IRQ chương trình của bộ vi xử lý thông thường được đặt ở thanh ghi C. Chân Reset cũng bị xoá trong lúc ngắt. Khi không có trạng thái ngắt nào được sử dụng, trạng thái /IRQ ở mức tổng trở cao. Nhiều thiết bị ngắt có thể nối tới /IRQ Bus là một ngõ ra mở và yêu cầu một điện trở kéo lên bên ngoài. - RESET: không có làm thay đổi việc xác lập realtime cũng như thông tin thời gian thực và dữ liệu lưu trong RAM. Ở chế độ cấp nguồn, chân reset có thể bị kéo xuống trong một khoảng thời gian để ổn định nguồn cung cấp. Tổ chức địa chỉ các ô nhớ của DS12887 Các ô nhớ chứa thông tin về thời gian và các thanh ghi điều khiển nằm tại 14 địa chỉ đầu tiên từ 0-13. Các địa chỉ từ 14-127 bao gồm 114 byte là các ô nhớ RAM. Hình 7.5 Địa chỉ các ô nhớ trong DS12887 TËp bµi gi¶ng Vi xö lý1 181 Bảng 7.2 Vị trí các ô nhớ, chức năng và định dạng dữ liệu Các thanh ghi điều khiển: Thanh ghi A UIP - Update In Progress là bit trạng thái. Khi bit UIP ở mức 1, quá trình cập nhật thời gian sẽ sớm xảy ra. Khi bit UIP ở mức 0, quá trình cập nhật thời gian sẽ không xảy ra ít nhất là 244 s. Những thông tin về thời gian, lịch, báo giờ ở trong RAM sẵn sàng cho việc truy cập khi bit UIP ở mức 0. Bit UIP là bit chỉ đọc và không bị ảnh hưởng của chân /RESET. Khi ghi vào bit SET trong thanh ghi B giá trị 1 sẽ ngăn chặn mọi quá trình cập nhật thời gian và xoá bit trạng thái UIP. DV2, DV1, DV0: là 3 bit trên được sử dụng để bật hoặc tắt bộ dao động và cài đặt lại quá trình đếm xuống. Khi được đặt bằng 010, đó là sự kết hợp duy nhất để bật bộ dao động lên và cho phép RTC giữ thời gian. Khi được đặt 11X sẽ cho phép dao động nhưng giữ quá trình đếm xuống ở mức reset. Quá trình cập nhật tiếp theo sẽ sớm diễn ra sau 500ms sau khi kiểu 010 được ghi vào DV0, DV1 và DV2. RS3, RS2, RS1, RS0: là 4 bit lựa chọn một trong 13 loại của bộ chia 15 trạng thái hoặc không cho phép xuất tín hiệu chia ra ngoài. Loại được lựa chọn có thể phát ra sóng vuông (chân SQW) và/hoặc ngắt theo chu kỳ. Người sử dụng có thể sử dụng 1 trong những cách sau : - Cho phép ngắt với bit PIE - Cho phép xuất ngõ ra chân SQW với bit SQWE TËp bµi gi¶ng Vi xö lý1 182 - Cho phép cả hai hoạt động cùng một lúc và cùng một loại - Không kích hoạt cả 2 Bảng dưới liệt kê chu kỳ ngắt và tần số sóng vuông có thể chọn lựa với các bit RS0÷RS3. Cả 4 bit đọc/ ghi đều không bị ảnh hưởng bởi chân RESET Thanh ghi B SET – Khi bit SET ở mức 0, thông thường quá trình cập nhật bằng cách tăng biến đếm 1 lần 1 giây. Khi bit SET được ghi vào mức 1, mọi quá trình cập nhật đều bị cấm và chương trình có thể bắt đầu (khởi động) bytes thời gian và lịch mà không có quá trình cập nhật nào xảy ra trong quá trình khởi động. Chu kỳ đọc có thể thực thi ở cùng một kiểu. SET là bit đọc/ghi và không chịu ảnh hưởng của nút RESET hoặc các chức năng bên trong của DS12887. PIE – Bit cho phép ngắt theo chu kỳ (Periodic Interrupt Enable) là bit đọc/ghi, nó cho phép bit cờ ngắt theo chu kỳ (Periodic Interrupt Flag (PF)) trong thanh ghi C để điều khiển chân IRQ\ xuống mức thấp. Khi bit PIE được đặt lên mức 1, chu kỳ ngắt được tạo ra bằng cách điều khiển chân IRQ\ xuống mức thấp tuỳ thuộc vào tỉ lệ phân bố của bit RS3-RS0 ở thanh ghi A. AIE – Bit cho phép ngắt báo giờ (Alarm Interrupt Enable (AIE)) là bit đọc/ghi mà khi được đặt lên 1 nó cho phép bit cờ báo giờ (Alarm Flag (AF)) ở thanh ghi C để TËp bµi gi¶ng Vi xö lý1 183 cho phép ngắt IRQ\. Tín hiệu ngắt báo giờ diễn ra ở tất cả các giây khi cả 3 bytes báo giờ chứa mã báo giờ được thể hiện ở nhị phân như sau 11XXXXXX. Các chức năng bên trong của DS12C887 không bị ảnh hưởng bởi bit AIE. UIE – Bit cho phép kết thúc quá trình ngắt cập nhật (Update Ended Interrupt Enable (UIE)) là bit đọc/ghi mà cho phép bit cờ kết thúc quá trình cập nhật ở thanh ghi C để cho phép ngắt /IRQ. Chân /RESET ở mức 0 hoặc chân SET ở mức 1 sẽ xóa bit UIE. SQWE – Khi bit cho phép xuất sóng vuông (Square Wave Enable (SQWE)) được đặt lên mức 1, một tín hiệu sóng vuông có tần số được đặt bởi vị trí được lựa chọn của bit RS3 đến RS0 sẽ điều khiển sóng ra tại chân SQW. Khi bit SQWE được đặt ở mức thấp, chân SQW sẽ được giữ ở mức thấp. SQWE là bit đọc\ghi và được xóa khi RESET. SQWE được đặt lên 1 khi được cấp VCC. DM – Bit kiểu dữ liệu (Data Mode (DM)) quy định khi nào thì thông tin lịch và thời gian ở định dạng nhị phân hoặc BCD. Bit DM được đặt bởi chương trình để có định dạng thích hợp và có thể đọc khi được. Bit này không bị thay đổi bởi các chức năng bên trong hoặc chân RESET\. Mức 1 của DM sẽ hiển thị dữ liệu nhị phân còn mức 0 hiển thị dữ liệu Binary Coded Decimal (BCD). 24/12 – Bit điều khiển 24/12 xác định kiểu bytes giờ. Khi ở mức 1 thì nó chỉ chế độ hiển thị 24 giờ, còn ở mức 0 thì chỉ chế độ hiển thị 12 giờ. Bit này là bit đọc ghi và không bị ảnh hưởng bởi các chức năng bên trong cũng như chân RESET\. DSE – Bit cho phép nhớ công khai (Daylight Savings Enable (DSE)) là bit đọc\ghi, nó cho phép 2 cập nhật đặc biệt khi DSE được đặt lên 1. Vào chủ nhật đầu tiên của tháng 4, thời gian sẽ tăng từ 1:59:59 AM lên 3:00:00 AM. Vào chủ nhật cuối cùng của tháng 10, khi thời gian lần đầu tiên đạt được 1:59:59 AM thì nó sẽ đổi thành 1:00:00 AM. Chức năng đặc biệt này sẽ không được thực thi nếu bit DSE ở mức 0. Bit này không bị ảnh hưởng bởi các chức năng bên trong cũng như chân RESET\. Thanh ghi C IRQF – Bit cờ yêu cầu ngắt (Interrupt Request Flag (IRQF)) được đặt lên 1 khi một trong những điều dưới đây đúng : - PF = PIE = 1 - AF = AIE = 1 TËp bµi gi¶ng Vi xö lý1 184 - UF = UIE = 1 Điều đó có nghĩa là IRQF = (PF . PIE) + (AF . AIE) + (UF . UIE) Bất cứ lúc nào bit IRQF được đặt lên 1, chân IRQ\ được đặt xuống mức thấp. Bit cờ PF, AF và UF được xoá khi thanh ghi C được chương trình đọc hoặc chân RESET\ ở mức thấp. PF – Bit cờ ngắt theo chu kỳ (Periodic Interrupt Flag (PF)) là bit chỉ đọc, nó được đặt lên mức 1 khi có 1 sườn xung được phát hiện ở tín hiệu lựa chọn của bộ chia. Từ bit RS3 đến RS0 xác định chu kỳ. PF được đặt lên 1 bất chấp trạng thái của bit PIE. Khi cả PF và PIE đều ở mức 1, tín hiệu IRQ\ được kích hoạt và sẽ đặt bit IRQF lên mức 1. Bit PF sẽ bị xoá bằng phần mềm đọc thanh ghi C hoặc chân RESET\. AF - Mức 1 của bit cờ cho phép ngắt báo giờ (Alarm Interrupt Flag (AF)) chỉ ra rằng thời gian hiện tại được so sánh với thời gian báo giờ. Nếu bit AIE còn ở mức 1, chân IRQ\ sẽ xuống mức thấp và 1 sẽ được đặt vào bit IRQF. Khi RESET\ hoặc đọc thanh ghi C sẽ xoá AF. UF – Bit cờ ngắt kết thúc cập nhật (Update Ended Interrupt Flag (UF)) được đặt sau mỗi chu kỳ cập nhật. Khi bit UIE được đặt lên 1, mức 1 ở UF sẽ làm cho bit IRQF lên mức 1, nó sẽ xác định trạng thái chân IRQ\. UF sẽ bị xoá khi thanh ghi C được đọc hoặc có tín hiệu RESET. Từ bit 3 đến bit 0- Đây là những bit không sử dụng của thanh ghi trạng thái C. Những bit này luôn luôn ở mức 0 và không thể ghi đè. Thanh ghi D VRT – Bit thời gian và RAM hợp lệ (Valid RAM and Time (VRT)) biểu thị tình trạng của của pin được kết nối chân VBAT. Bit này không phải là bit ghi được và luôn có giá trị bằng 1 khi đọc. Nếu hiển thị mức 0, nguồn năng lượng bên trong IC đã cạn và cả hai mục dữ liệu thời gian thực lẫn dữ liệu RAM đều bị nghi ngờ. Bit này không chịu ảnh hưởng bởi chân RESET. BIT 6 ĐẾN BIT 0 – Những bit được đề cập ở trên của thanh ghi D không được sử dụng. Chúng không ghi được và khi đọc thì luôn có giá trị bằng 0. Sơ đồ nguyên lý mạch giao tiếp giữa vi điều khiển và IC thời gian thực DS12887 Vi điều khiển AT89C51 giao tiếp với IC DS12887 giống với giao tiếp RAM ngoài. Sử dụng cổng P0 đồng thời là bus địa chỉ và bus dữ liệu. Chân ALE của AT89C51 nối với chân AS của DS12887 để chốt tín hiệu địa chỉ. Chân MOT của TËp bµi gi¶ng Vi xö lý1 185 DS12887 nối Gnd để chọn bus kiểu Intel. Các chân /RD, /WR của AT89C51 nối tương ứng với các chân DS và chân R/W của DS12887. Do cổng P0 chỉ giao tiếp với DS12887 nên chân /CS của DS12887 được nối Gnd để luôn được chọn. Hình 7.6 Mạch giao tiếp giữa AT89C51 và DS12887 Khối quét led: 74HC595 là IC ghi dịch vào nối tiếp, ra song song 8 bit được lựa chọn sử dụng để tiết kiệm chân của vi điều khiển. Với 3 chân điều khiển của vi điều khiển có thể quét được số lượng led 7 đoạn lớn. Hình dáng và sơ đồ chân của 74HC595 như sau: Hình 7.7 Sơ đồ chân 74HC595 TËp bµi gi¶ng Vi xö lý1 186 Chức năng các chân của IC: - Chân 14 DS: chân đầu vào dữ liệu nối tiếp - Chân 1,2,3,4,5,6,7,15: 8 chân đầu ra từ Q0-Q7, xuất dữ liệu song song khi chân /OE ở mức thấp và có 1 xung tích cực ở sườn dương tại chân chốt ST_CP. - Chân 13(output enable): chân cho phép, tích cực ở mức thấp. Khi ở mức cao, tất cả các đầu ra của IC trở về trạng thái trở kháng cao, không có đầu ra nào được cho phép. - Chân 9(SQH): chân dữ liệu nối tiếp, nếu dùng nhiều IC 74595 mắc nối tiếp nhau thì chân này đưa vào chân 14 của IC tiếp theo khi đã dịch đủ 8bit. - Chân 11(shift clock): chân vào xung clock. Khi có 1 xung clock tích cực ở sườn dương thì 1 bit được dịch vào IC. - Chân 12(latch clock): chân chốt dữ liệu. Khi có 1 xung clock tích cực ở sườn dương thì cho phép xuất dữ liệu trên các chân output. - Chân 10(reset): Khi chân này ở mức thấp, toàn bộ dữ liệu sẽ bị xóa trên chip. Sơ đồ hoạt động của IC Hình 7.8 Sơ đồ hoạt động IC74595 TËp bµi gi¶ng Vi xö lý1 187 Hình 7.9 Giản đồ xung IC 74595 Mạch giao tiếp giữa AT89C51 với led 7 đoạn Do led 7 đoạn có dòng tiêu thụ lớn nên các chân của vi điều khiển không cấp dòng trực tiếp được. Một bộ đệm được sử dụng để giao tiếp giữa vi điều khiển và led 7 đoạn. Để tiết kiệm diện tích mạch in, IC đệm ULN2803 được chọn. Để quét led, các IC ghi dịch 74HC595 được chọn. Các IC này được mắc nối tiếp với nhau, mỗi đầu ra được đưa tới chân B của transistor cấp nguồn cho led. Với 15 led cần 2 IC74595. Các IC này cần điều khiển bởi các chân Data, clock và OE. Nguyên tắc hoạt động của mạch như sau: Tại mỗi thời điểm, các IC ghi dịch xuất ra mã của led 7 đoạn của một trong 8 đoạn a, b, c, d, e, f, g, h. Do các led 7 đoạn nối song song, chân điều khiển từ vi điều khiển sẽ cho phép một trong các đoạn này được thông mạch. Như vậy, thanh tương ứng của mỗi led có sáng hay không tùy thuộc vào việc chân đầu ra của 74597 có điều khiển chân B của transistor cấp nguồn cho led hay không. Các led 7 đoạn loại anode chung. Các đường Data, CK và OE được điều khiển bởi các chân của vi điều khiển AT89C51. TËp bµi gi¶ng Vi xö lý1 188 Hình 7.10 Mạch kết nối giữa AT89C51 và 74HC595 TËp bµi gi¶ng Vi xö lý1 189 Sơ đồ nguyên lý mạch vi điều khiển Hình 7.11 Sơ đồ nguyên lý mạch vi điều khiển c. Lưu đồ giải thuật chương trình Chương trình chính làm nhiệm vụ xác lập các điều kiện đầu của hệ thống bao gồm xác lập các cổng vào/ra, chế độ hoạt động của Realtime, gọi chương trình đọc và chuyển đổi dữ liệu sang mã led 7 đoạn, hiển thị. TËp bµi gi¶ng Vi xö lý1 190 Hình 7.12 Lưu đồ thuật toán chương trình chính Xác lập chế độ hoạt động của realtime DS12887: - Cho phép ghi 14 byte thấp của DS12887: bit SET trong thanh ghi B đặt bằng 1, cho phép realtime cập nhật sau mỗi giây SET=0. - Không xuất xung tai chân SQW. - Cho phép realtime hoạt động reg_a.4-reg_a.6=010 - Định dạng thời gian 24 giờ , định dạng dữ liệu kiểu BCD Hàm xác lập các điều kiện hoạt động cho DS12887: hoạt động ở chế độ 24 giờ, định dạng dữ liệu kiểu BCD xac_lap_ds12887: mov dptr,#11 ;dia chi cua thanh ghi B mov a,#10000000b ;xac lap thoi gian cho ds12887: movx @dptr,a ;ghi vao thanh ghi B TËp bµi gi¶ng Vi xö lý1 191 mov dptr,#10 ;truy nhap vao thanh ghi A cua DS12887 mov a,#10100000b movx @dptr,a ;xac lap che do hoat dong: 24 gio (B.1=1) ;dinh dang du lieu kieu BCD(B.2=0) mov dptr,#11 mov a,#00011010b movx @dptr,a ret Lưu đồ giải thuật chương trình đọc Realtime DS12887 và chuyển đổi từ mã BCD sang mã led 7 đoạn Dữ liệu đọc được từ realtime tồn tại dưới dạng mã BCD, chuyển đổi sang mã led 7 đoạn để hiển thị. TËp bµi gi¶ng Vi xö lý1 192 Bắt đầu Con trỏ địa chỉ=0 Đọc đơn vị thời gian trỏ bởi con trỏ địa chỉ Lấy 4 bit thấp đơn vị thời gian đọc được Lấy 4 bit cao đơn vị thời gian đọc được Chuyển 4 bit thấp từ BCD sang mã 7 đoạn Cất giữ Chuyển 4 bit cao từ BCD sang mã 7 đoạn Tăng con trỏ địa chỉ Con trỏ địa chỉ<10 Cất giữ Kết thúc Đúng Sai Hình 7.13 Đọc thời gian từ realtime và chuyển sang mã led 7 đoạn TËp bµi gi¶ng Vi xö lý1 193 ;chuong trinh doc realtime, chuyen doi thoi gian sang ma 7 doan ;luu tu dia chi 40 trong bo nho RAM doc_realtime: mov r0,#10 movx a,@r0 anl a,#80H jnz doc0 ret doc0: mov r0,#40H ;luu thoi gian doc duoc tu realtime bat dau tu dia chi 40 mov r1,#0 doc1: movx a,@r1 push acc anl a,#0fh mov dptr,#bangma movc a,@a+dptr mov @r0,a cjne r1,#6,doc3 ;r1=6 tro toi o nho thu, khong can giai ma hang chuc pop acc sjmp doc4 doc3: pop acc swap a anl a,#0fh movc a,@a+dptr inc r0 mov @r0,a doc4: inc r0 TËp bµi gi¶ng Vi xö lý1 194 inc r1 cjne r1,#6,$+3 ;neu dia chi nho hon 6 thi bo qua cac thoi gian canh bao tai dia chi 1,3,5 cua DS12887 jnc doc2 inc r1 doc2: cjne r1,#10,doc1 mov 4DH,#3FH ;so 2 va 0 cua nam 20xx mov 4EH,#5BH ret bangma: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH Lưu đồ giải thuật chương trình hiển thị Nguyên lý hiển thị như sau: Đọc dữ liệu thanh a của tất cả các led và xuất ra led tương ứng trên các đầu ra của IC ghi dịch 74595. Sau đó cho phép thanh a của các led được nối Gnd qua IC đệm 2803. Sau khi xuất xong thanh a, tiếp tục áp dụng lần lượt với các thanh b, c, d, e, f, g, h. Với phương pháp hiển thị như vậy có ưu điểm là dù số lượng led tăng lên nhưng thời gian sáng cho mỗi thanh không đổi và bằng 1/8 thời gian sáng để hiển thị đủ 8 thanh. Phương pháp này cho thời gian sáng của mỗi thanh lớn, tránh được hiện tượng thời gian led sáng quá nhỏ khi số lượng led tăng. Lưu đồ thuật toán của chương trình hiển thị như sau: TËp bµi gi¶ng Vi xö lý1 195 Hình 7.14 Lưu đồ thuật toán chương trình hiển thị led 7 đoạn ;chuong trinh hien thi doc ma 7 doan cua cac don vi thoi gian ;xuat ma theo tung thanh a,b,c,d,e,f,g,h hienthi: clr co ;bit co=0 neu hien thi cac bit a,b,c,d ;bit co=1 neu hien thi cac bit tu e,f,g,h clr ck_pin clr latch_pin clr data_pin TËp bµi gi¶ng Vi xö lý1 196 mov r2,#1 ;r2 luu giu so hang can quet(r2:1-8) mov r0,#40H mov r3,#1 ht1: mov r1,3 mov a,@r0 jnb co,ht2 swap a ht2: rrc a djnz r1,ht2 mov data_pin,c setb ck_pin ;tao xung ra clr ck_pin ;xoa xung SRCK cho lan tiep theo inc r0 cjne r0,#4FH,ht1 ;tat noi dung cac led cua lan xuat truoc mov p1,#0h ;tat led ;cho phep xuat cot setb latch_pin clr latch_pin ;doan chuong trinh quet hang mov r4,3 ;r2 luu vi tri hang can quet mov a,#80h jnb co,ht3 mov a,#08H ht3: rl a djnz r4,ht3 mov p1,a call delayms inc r3 inc r2 mov r0,#40H cjne r2,#5,ht5 TËp bµi gi¶ng Vi xö lý1 197 mov r3,#1 ht5: jc ht1 setb co cjne r2,#9,ht1 ret Lưu đồ giải thuật chương trình điều chỉnh thời gian Hình 7.15 Lưu đồ thuật toán chương trình chỉnh thời gian TËp bµi gi¶ng Vi xö lý1 198 ;chuong trinh kiem tra phim nhan kiemtra_phimnhan: mov a,function_mode cjne a,#0,chay_hieu_ung jmp ko_chay_hieu_ung chay_hieu_ung: call line_mark ko_chay_hieu_ung: jb phim_mod,kiemtra_up call delay_ms jb phim_mod,kiemtra_up cho_phim_mod: call hien_thi call delay_ms jnb phim_mod,cho_phim_mod inc function_mode call cmd_check1 ret ;-------------------------------------------------- kiemtra_up: jb phim_up,kiemtra_down call delay_ms jb phim_up,kiemtra_down mov r5,#50 cho_phim_up: call giai_ma_luu call hien_thi call delay_ms djnz r5,cho_up1 mov r5,#50 setb tanglen call start_change_setup ret ;-------------------------------------------------- cho_up1: TËp bµi gi¶ng Vi xö lý1 199 jnb phim_up,cho_phim_up setb tanglen call start_change_setup ret kiemtra_down: jb phim_down,thoat_ktra_phim call delay_ms jb phim_down,thoat_ktra_phim mov r5,#50 cho_phim_down: call giai_ma_luu call hien_thi call delay_ms djnz r5,cho_down1 mov r5,#50 clr tanglen call start_change_setup ret cho_down1: jnb phim_down,cho_phim_down clr tanglen call start_change_setup thoat_ktra_phim: ret ;-------------------------------------------------- ;thay doi chon mode cmd_check1: mov a,function_mode cjne a,#7,check_function_mode mov function_mode,#0 ret check_function_mode: mov a,function_mode line_hour: cjne a,#1,line_minute TËp bµi gi¶ng Vi xö lý1 200 mov effect_position,#4ch ret line_minute: cjne a,#2,line_second mov effect_position,#46h ret line_second: cjne a,#3,line_y mov effect_position,#40h ret line_y: cjne a,#4,line_mm mov effect_position,#4dh ret line_mm: cjne a,#5,line_day mov effect_position,#47h ret line_day: mov effect_position,#41h ret TËp bµi gi¶ng Vi xö lý1 201 C©u hái vµ bµi tËp ch­¬ng 7 C©u 1: ThiÕt kÕ mét xe tù hµnh ( Robèt ®¬n gi¶n ) sö dông vi ®iÒu khiÓn hä 8051. Yªu cÇu: + Xe tù hµnh theo mét v¹ch tr¾ng d¸n s½n. + Khi gÆp vËt c¶n xe tù ®éng quay ®Çu. C©u 1: ThiÕt kÕ bé ®o nhiÖt ®é phßng víi d¶i ®o tõ 0 ®é C ®Õn 70 ®é Csö dông vi ®iÒu khiÓn hä 8051. Yªu cÇu: + HiÓn thÞ nhiÖt ®é trong phßng trªn led 7 ®o¹n. + T¹o 1 giao diÖn trªn m¸y tÝnh ®Ó hiÓn thÞ nhiÖt ®é ®äc ®­îc tõ vi ®iÒu khiÓn th«ng qua chuÈn RS232 cña m¸y tÝnh. + C¶m biÕn nhiÖt ®é sö dông LM335. C©u 3: ThiÕt kÕ bé ®o nhiÖt ®é phßng víi d¶i ®o tõ 0 ®é C ®Õn 70 ®é Csö dông vi ®iÒu khiÓn hä 8051. Yªu cÇu: + HiÓn thÞ nhiÖt ®é trong phßng trªn led 7 ®o¹n. + NÕu nhiÖt ®é trong phßng <150 th× bËt lß s­ëi. + NÕu nhiÖt ®é trong phßng >250 th× bËt qu¹t. C©u 4: ThiÕt kÕ m¹ch tù ®éng b¸o tiÕt häc trong tr­êng §HSPKT Nam §Þnh sö dông vi ®iÒu khiÓn hä 8051. Yªu cÇu: + LÞch b¸o giê theo lÞch míi cña tr­êng. + HiÓn thÞ giê, phót trªn led 7 thanh + Khi mÊt ®iÖn kh«ng bÞ mÊt d÷ liÖu. + TÝn hiÖu b¸o giê häc b»ng m¹ch K§CS ©m tÇn. C©u 5: ThiÕt kÕ m¹ch quang b¸o dïng ma tr©n led sö dông vi ®iÒu khiÓn hä 8051 Yªu cÇu: + HiÓn thÞ néi dông dßng ch÷: “ Tr­êng ®¹i häc s­ ph¹m kü thuËt Nam §Þnh, + Ma trËn t¹o thµnh ®¬n s¾c hoÆc ®a s¾c gåm 8 hµng 64 cét C©u 6: ThiÕt kÕ m¹ch ®iÒu khiÓn hÖ thèng ®iÖn trong gia ®×nh sö dông vi ®iÒu khiÓn 8051. Yªu cÇu: + HÖ thèng ®iÒu khiÓn ®­îc 6 ®Ìn chiÕu s¸ng vµ 2 qu¹t trÇn. + C¸c thiÕt bÞ ®­îc t¾t më ®éc lËp. TËp bµi gi¶ng Vi xö lý1 202 + ViÖc ®iÒu khiÓn cã thÓ tiÕn hµnh th«ng qua c¸c phÝm nhÊn trªn b¶ng ®iÒu khiÓn hoÆc nhËn ®iÒu khiÓn xa b»ng hång ngo¹i (Sö dông ®iÒu khiÓn: Sony hoÆc Philip) C©u 7: ThiÕt kÕ m¹ch ®iÒu khiÓn ®Ìn giao th«ng t¹i mét ng· t­ giao th«ng sö dông vi ®iÒu khiÓn hä 8051. Yªu cÇu: + Mçi luång gåm cã c¸c ®Ìn: §á, Vµng, Xanh vµ hai ®Ìn: §á, Xanh cho ng­êi ®i bé. + Cã bé ®Õm lïi hiÓn thÞ trªn led 7 ®o¹n ®Ó chØ thÞ thêi gian cña c¸c luång. + Cã phÝm chän chÕ ®é ­u tiªn, ph©n luång giao th«ng. + Cã phÝm chän chÕ ®é ®Ìn vµng chíp t¾t. C©u 8: ThiÕt kÕ m¸y ph¸t xung ®a n¨ng sö dông vi ®iÒu khiÓn hä 8051. Yªu cÇu: + T¹o ra ba d¹ng xung: Vu«ng, Sin, Tam gi¸c. + Cã c«ng t¾c ®Ó chän d¹ng xung. Chän d¶i tÇn sè. + Cã nóm chØnh ®Ó thay ®æi biªn ®é cña xung. C©u 9: ThiÕt kÕ m¹ch ®o tÇn sè sö dông vi ®iÒu khiÓn hä 8051. Yªu cÇu: + §o tÇn sè xung vu«ng ®Çu vµo cã tÇn sè biÕn thiªn tõ 1Hz ®Õn 1Khz + HiÓn thÞ tÇn sè ®o ®­îc trªn led 7 ®o¹n. + Cã phÝm chän chÕ ®é ®Ìn vµng chíp t¾t. C©u 10: ThiÕt kÕ m¹ch ®iÒu khiÓn ®éng c¬ mét chiÒu sö dông vi ®iÒu khiÓn hä 8051. Yªu cÇu: + §iÒu khiÓn tèc ®é ®éng c¬ theo ph­¬ng ph¸p PWM. + KiÓm so¸t tèc ®é ®éng c¬ th«ng qua ENCODER vµ hiÓn thÞ trªn led 7 ®o¹n + Cã c¸c phÝm nhÊn ®Ó chän: RUN, STOP, FF,RV,INC,DEC. TËp bµi gi¶ng Vi xö lý1 203 TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt: [1]. Nguyễn Tăng Cường. Cấu trúc và lập trình họ Vi điều khiển 8051. NXB KHKT- Hà Nội, 2003 [2]. Hồ Khánh Lâm. Giáo trình Kỹ thuật Vi xử lý. Tập 1,2. NXB Bưu Điện 2007 [3]. Văn Thế Minh. Kỹ thuật Vi xử lý. NXB Giáo Dục 1997 [4]. Ngô Diên Tập. Lập trình bằng hợp ngữ. NXB KHKT - Hà Nội 1998 [5]. Đỗ Xuân Tiến. Kỹ thuật Vi xử lý và Lập trình Assembly cho hệ vi xử lý. NXB KHKT- Hà Nội, 2001 Tài liệu tiếng Anh: [6]. Barry B. Brey.The Intel Microprocessors: 8088/8086, 80186/80188, 80286, 80386, 80486, Pentium and Pentium Pro Processor: Architecture, Programming, and Interfacing. Fourth Edition, Prentice Hall, 1997 [7]. I.Scott Mackenzie. The 8051 Microcontroller. 2nd.Ed Prentice Hall 1995 [8]. Daniel tabak (1995), “Advanced Microprocessor”. McGrow Hill. [9]. Gao Q S (1996), “Approach to making supercomputer by microprocessor cellular sector computer of vertical and horizotal processing with virtual common memory”, Conf. parallel Proc. [10]. Richard J Prestopic (1995), “Microprocessorand IC families”. Walter H.

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

  • pdftap_bai_giang_vi_xu_ly_1.pdf