GIÁO TRÌNH VI ĐIỀU KHIỂN 8051
lượt xem 226
download
Bộ vi điều khiển MC(Microcontroller) là một chíp có thể lập trình được để điều khiển hoạt động của hệ thống. Nhờ chương trình điều khiển, bộ vi điều khiển sẽ thực hiện đọc các tín hiệu từ bên ngoài vào,lưu trữ rồi xử lý,sau đó dựa vào kết quả của các quá trình xử lý để dưa ra các thông báo, tiến hành bật tắt các thiết bị bên ngoài. Vi điều khiển ứng dụng rất nhiều trong các sản phẩm công nghệ và tiêu dùng....
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: GIÁO TRÌNH VI ĐIỀU KHIỂN 8051
- Chæång1 : GIíI THIÖU VI §IÒU KHIÓN 8051 I.1 Tæng quan vÒ kü thuËt vi ®iÒu khiÓn: I.1.1 Kh¸i qu¸t vÒ kü thuËt vi ®iÒu khiÓn: Bé vi ®iÒu khiÓn MC(Microcontroller) lµ mét chÝp cã thÓ lËp tr×nh ®îc ®Ó ®iÒu khiÓn ho¹t ®éng cña hÖ thèng. Nhê ch¬ng tr×nh ®iÒu khiÓn, bé vi ®iÒu khiÓn sÏ thùc hiÖn ®äc c¸c tÝn hiÖu tõ bªn ngoµi vµo,lu tr÷ råi xö lý,sau ®ã dùa vµo kÕt qu¶ cña c¸c qu¸ tr×nh xö lý ®Ó da ra c¸c th«ng b¸o, tiÕn hµnh bËt t¾t c¸c thiÕt bÞ bªn ngoµi. Vi ®iÒu khiÓn øng dông rÊt nhiÒu trong c¸c s¶n phÈm c«ng nghÖ vµ tiªu dïng. Vi ®iÒu khiÓn ®îc x©y dùng tõ vi xö lý. N¨m 1971 tËp ®oµn Intel ®∙ giíi thiÖu bé vi xö lý ®Çu tiªn 8080. Sau ®ã mét thêi gian ng¾n, c¸c h∙ng Motorola,RCA,MOS Technology va Zilog ®∙ lÇn lît giíi thiÖu c¸c chÝp vi xö lý t¬ng øng lµ 6800, 1801, 6502 vµ Z80. B¶n th©n c¸c m¹ch tÝch hîp (IC: Integrated Circuit) nµy kh«ng thÓ tù lµm g× khi ®øng riªng lÎ, nhng khi n»m trong bo m¹ch chñ cña hÖ thèng m¸y tÝnh, nã trë thµnh bé phËn trung t©m trong nh÷ng s¶n phÈm cã Ých. XuÊt ph¸t tõ nh÷ng yªu cÇu ®iÒu khiÓn vµ gi¸m s¸t hÖ thèng, mét IC gÇn t¬ng tù víi bé vi xö lý ra ®êi ®ã lµ bé vi ®iÒu khiÓn. N¨m 1976 Intel giíi thiÖu chÝp vi ®iÒu khiÓn ®Çu tiªn trong hä vi ®iÒu khiÓn MCS48 lµ 8748. M¹ch tÝch hîp nµy chøa h¬n 17000 transistor, nã bao gåm: Mét CPU, 1Kbyte EPROM, 64Byte RAM. 27 ch©n I/O vµ mét bé ®Þnh thêi 8 bit. IC nµy vµ c¸c chÝp xuÊt hiÖn vÒ sau trong hä 48 nhanh chãng chuÈn c«ng nghiÖp trong c¸c øng dông vÒ ®iÒu khiÓn. C¸c øng dông phæ biÕn ®Çu tiªn cña bé vi ®iÒu khiÓn lµ trong m¸y giÆt, hÖ thèng ®Ìn giao th«ng vµ dÇn dÇn xuÊt hiÖn trong xe h¬i, thiÕt bÞ c«ng nghiÖp, s¶n phÈm tiªu dïng vµ thiÕt bÞ ngo¹i vi cña m¸y tÝnh. VÒ sau søc m¹nh còng nh sù phøc t¹p cña MC ®∙ n©ng lªn ë møc cao h¬n. N¨m 1980, Intel ®∙ giíi thiÖu chip vi ®iÒu khiÓn ®Çu tiªn trong hä MCS51 lµ
- 8051. So víi 8048, 8051 chøa h¬n 60000 transistor, bao gåm : 1 CPU, 4kbyte ROM, 128byte RAM. 32 ch©n I/O, 1 cæng nèi tiÕp, 2 bé ®Þnh thêi gian 16 bit. Sau ®ã, Simens ®a ra phiªn b¶n n©ng cao cña 8051 lµ SAB 80515 cã 68 ch©n víi 6 cæng I/O 8 bit, 13 ng¾t vµ 1 bé biÕn ®æi A/D 8 bit víi 8 ®êng ngá vµo. Hä 8051 ®îc xem nh lµ hä vi ®iÒu khiÓn 8 bit m¹nh vµ ®a n¨ng nhÊt. I.1.2. S¬ ®å khèi cña mét vi ®iÒu khiÓn: S¬ ®å khèi chung cña mét vi ®iÒu khiÓn nh h×nh díi, bao gåm: CPU, bé nhí ROM (hay EPROM) vµ RAM, m¹ch giao tiÕp nèi tiÕp, m¹ch giao tiÕp song song, bé dÞnh thêi gian, hÖ thèng ng¾t vµ c¸c ®êng BUS ®îc tÝch hîp trªn cïng mét chip. Nguån ®ång Ng¾t Thiãút bë Thiãút hå ngoµi ngoµi näúi bë song §ång hå tiãúp song néi Times Bäü âiãöu Giao Giao khiãøn tiãúp tiãúp ngàõt näüi song CPU Bus d÷ liÖu, ®Þa chØ, ®iÒu khiÓn RAM ROM H.1.Så âäö khäúi bäü vi âiãöu khiãøn I.1.2.1. §¬n vÞ xö lý trung t©m CPU:
- Lµ thµnh phÇn chÝnh cña mét chip vi ®iÒu khiÓn, qu¶n lý tÊt c¶ ho¹t ®éng cña bé vi ®iÒu khiÓn, thùc hiÖn phÐp to¸n trªn sè liÖu, thùc chÊt nã lµ tËp hîp c¸c m¹ch logic nh»m thùc hiÖn liªn tôc hai ho¹t ®éng chÝnh lµ t×m lÖnh vµ thi hµnh lÖnh. H×nh 1.2 m« t¶ c¸c khèi bªn trong cña CPU. Nã cã mét tËp c¸c thanh ghi dïng cho viÖc lu tr÷ t¹m thêi c¸c th«ng tin, khèi sè häc ALU(Arithmatic and Logic Unit) thùc hiÖn c¸c phÐp to¸n dùa trªn c¸c th«ng tin ®îc lu trong thanh ghi, khèi ®iÒu khiÓn vµ gi¶i m∙ lÖnh(Intruction Decode and control unit) x¸c ®Þnh phÐp to¸n cÇn thi hµnh vµ chuÈn bÞ c¸c ho¹t ®éng cÇn thiÕt ®Ó thùc hiÖn lÖnh ®ã cã kÕt hîp víi c¸c th«ng tin trong hai thanh ghi phô.Thanh ghi lÖnh(Intruction register) chøa m∙ nhÞ ph©n cña mçi lÖnh cÇn thùc hiÖn. Bé ®Õm ch¬ng tr×nh(Program counter) lu tr÷ ®Þa chØ trong bé nhí cña lÖnh cÇn thùc hiÖn tiÕp theo. CPU Thanh ghi Bé ®Õm ch¬ng lÖnh(IR) tr×nh(PC) Caïc thanh ghi Khèi ®iÒu khiÓn vµ gi¶i m∙ lÖnh Khèi logic vµ sè häc H1.2.S¬ ®å khèi cña CPU I.1.2.2. Bé nhí b¸n dÉn RAM vµ ROM(EPROM): Bé nhí dïng ®Ó lu tr÷ ch¬ng tr×nh vµ d÷ liÖu, cã hai lo¹i bé nhí lµ RAM vµ ROM. Chóng ta cã thÓ ph©n biÖt ®îc sù kh¸c nhau gi÷a RAM vµ ROM dùa trªn hai tÝnh n¨ng.
- +Thø nhÊt: RAM(Random Access Memory) : bé nhí cho phÐp ®äc vµ ghi d÷ liÖu ®îc, ROM(Read Only Memory): bé nhí chØ ®äc, trong mét sè chip vi ®iÒu khiÓn cßn sö dông EPROM lµ lo¹i lËp tr×nh cã thÓ xãa ®îc. +Thø hai: d÷ liÖu trong RAM sÏ bÞ mÊt ®i khi ng¾t nguån cung cÊp ®iÖn,trong khi d÷ liÖu trong ROM th× vÉn lu l¹i khi lóc kh«ng cÊp nguån. I.1.2.3. Bus ®Þa chØ, Bus d÷ liÖu vµ Bus ®iÒu khiÓn: Bus lµ tËp hîp c¸c ®êng d©y mang th«ng tin víi cïng môc ®Ých. Trong chip vi ®iÒu khiÓn cã 3 lo¹i Bus lµ bus ®Þa chØ, bus d÷ liÖu vµ bus ®iÒu khiÓn. Trong ho¹t ®éng ®äc hay ghi CPU x¸c ®Þnh d÷ liÖu b»ng c¸ch ®Æt mét ®Þa chØ lªn bus ®Þa chØ, råi kÝch ho¹t mét tÝn hiÖu trªn bus ®iÒu khiÓn ®Ó chØ thÞ ho¹t ®éng ®ã lµ ®äc hay ghi. Ho¹t ®éng ®äc sÏ lÊy mét byte d÷ liÖu tõ bé nhí t¹i mét vÞ trÝ x¸c ®Þnh råi ®Æt lªn bus d÷ liÖu. CPU ®äc d÷ liÖu nµy vµ ®Æt nã vµo mét trong c¸c thanh ghi néi cña CPU. Ho¹t ®éng ghi th× ngîc l¹i, CPU lÊy d÷ liÖu ®a ra bus d÷ liÖu. Nhê cã tÝn hiÖu ®iÒu khiÓn bé nhí nhËn biÕt ®îc ®©y lµ mét ho¹t ®éng ghi vµ nã sÏ lu d÷ liÖu trªn vµo vïng nhí ®∙ ®îc x¸c ®Þnh nhê ®Þa chØ mµ CPU ®∙ gëi tíi tõ tríc. Bus d÷ liÖu mang th«ng tin trao ®æi gi÷a CPU vµ bé nhí, gi÷a CPU vµ thiÕt bÞ I/O. §é réng cña Bus d÷ liÖu ®ãng vai trß kh¸ quan träng trong vÊn ®Ò t¨ng tèc cho mét bé vi ®iÒu khiÓn, 8051 cã ®é réng bus d÷ liÖu lµ 8 bit. HiÖn nay nhiÒu bé vi ®iÒu khiÓn s÷ dông bus ®Þa chØ vµ bus d÷ liÖu dån kªnh, nghÜa lµ sö dông cïng mét ®êng truyÒn cho c¸c bit d÷ liÖu vµ mét sè bit ®Þa chØ. Trong trêng hîp nµy bé vi ®iÒu khiÓn cã thªm c¸c m¹ch ngoµi dïng ®Ó ph©n tÝch c¸c tÝn hiÖu ®Þa chØ vµ d÷ liÖu trong c¸c bus t¬ng øng. C¸c bus d÷ liÖu ho¹t ®éng theo 2 híng, cßn bus ®Þa chØ ho¹t ®éng theo mét híng. Bëi v× th«ng tin ®Þa chØ lu«n lu«n ®îc cung cÊp bëi CPU, nhng d÷ liÖu th× cã thÓ lu th«ng theo c¶ 2 chiÒu tïy thuéc vµo ho¹t ®äng ghi vµo hay ®äc ra. Th«ng tin lu tr÷ trªn bus d÷ liÖu cã thÓ lµ nh÷g lÖnh cña ch¬ng tr×nh, ®Þa chØ g¾n vµo c©u lÖnh, d÷ liÖu ®îc sö dông bëi ch¬ng tr×nh.
- Bus ®iÒu khiÓn lµ tæ hîp c¸c b¸o hiÖu, mçi b¸o hiÖu cã mét vai trß x¸c ®Þnh ®Ó ®iÒu khiÓn ho¹t ®éng cña hÖ thèng ho¹t ®éng mét c¸ch hiÖu qu¶. Nh÷ng tÝn hiÖu ®iÒu khiÓn lµ nh÷ng tÝn hiÖu ®Þnh thêi ®îc cung cÊp bëi CPU nh»m ®ång bé vµ vËn chuyÓn th«ng tin trªn bus ®Þa chØ vµo bus d÷ liÖu. I.2 . KiÕn tróc phÇn cøng cña 8051: I.2.1. S¬ ®å khèi vi ®iÒu khiÓn 8051: IC 8051 lµ mét chip vi ®iÒu khiÓn trong hä vi ®iÒu khiÓn C51 ®∙ ®îc Intel giíi thiÖu vµ ®a ra thÞ trêng. C¸c thµnh phÇn bªn trong gåm cã: 128 byte RAM4 Cæng vµo ra 8 bit 2 bé ®Õm thêi gian 16 bit Giao tiÕp nèi tiÕp 64Kbytes kh«ng gian bé nhí ch¬ng tr×nh ngoµi. 64Kbytes kh«ng gian bé nhí d÷ liÖu ngoµi. Bé vi xö lý ho¹t ®éng trªn tõng bit riªng lÎ. 210 vÞ trÝ cã thÓ ®¸nh ®Þa chØ theo bit. Bé nh©n chia 4 us. Bé nhí Sè Bé nhí Timer Ch¬ng hiÖu D÷ l iÖu s tr×nh 8051 4 K ROM 128 2 bytes 8051 0K 128 2 bytes 8751 4 K EPROM 128 2 bytes 8052 8 K ROM 256 3 bytes 8032 0 K 256 3 bytes 8752 8K EPROM 256 3 bytes H×nh 1.3 So s¸nh c¸c IC thuéc hä vi ®iÒu khiÓn 51
- I.2.2. Chøc n¨ng c¸c ch©n cña 8051: Chip vi ®iÒu khiÓn 8051 cã 32 ch©n trong tæng sè 40 ch©n cã chøc n¨ng nh lµ cæng I/O.Trong ®ã cã 24 ch©n sö dông víi 2 môc ®Ýnh. NghÜa lµ ngoµi chøc n¨ng I/O, mçi ch©n cã thÓ lµ mét ®êng ®iÒu khiÓn cña bus ®Þa chØ hay bus d÷ liÖu khi hÖ thèng sö dông bé nhí ngoµi. HoÆc lµ mçi ®êng ho¹t ®éng mét c¸ch ®éc lËp ®Ó giao tiÕp víi c¸c thiÕt bÞ ®¬n bit nh lµ c¸c c«ng t¾c, ®Ìn LED, m«t¬, transistor , loa... Trong nh÷ng m« h×nh thiÕt kÕ kh«ng cã bé nhí ngoµi Port0 ®îc sö dông nh lµ cæng I/O. Cßn ®èi víi nh÷ng hÖ thèng lín h¬n cã yªu cÇu mét sè lîng ®¸ng kÓ bé nhí ngoµi th× Port0 trë thµnh c¸c ®êng truyÒn d÷ liÖu vµ 8 bit thÊp cña Bus ®Þa chØ. Cæng Port1 ®îc chØ ®Þnh lµ cæng I/O tõ ch©n 1 ®Õn 8. Chóng ®îc sö dông cho môc ®Ých duy nhÊt lµ giao tiÕp víi c¸c thiÕt bÞ ngoµi khi cÇn thiÕt. Cæng Port2 lµ cæng I/O hoÆc lµ ®êng truyÒn 8 bit cao cña bus ®Þa chØ cho nh÷ng m« h×nh thiÕt kÕ cã bé nhí ch¬ng tr×nh n»m ë ngoµi hoÆc cã h¬n 256 byte bé nhí d÷ liÖu ngoµi. Cæng Port3 ngoµi môc ®Ých chung lµ cæng I/O, nh÷ng ch©n nµy cßn kiªm lu«n nhiÒu chøc n¨ng kh¸c n÷a liªn quan ®Õn c¸c tÝnh n¨ng ®Æc biÖt cña 8051.
- 40 32 30pF 19 Vcc P0. AD7 XTAL1 7 33 P0. AD6 6 34 P0. AD5 12MHz 5 35 P0. AD4 4 36 18 P0. 37 AD3 XTAL2 3 P0. AD2 30pF 2 38 P0. AD1 1 P0. 39 AD0 29 0 PSEN 8 30 ALE P1. 7 7 P1. 6 6 31 P1. EA 5 5 P1. 4 4 9 P1. RST 3 3 P1. 2 2 P1. 1 P1. 1 0 17 P3. RD 16 7 28 WR P3. P2. A15 15 6 7 27 T1 P3. P2. A14 14 5 6 26 T0 P3. P2. A13 13 4 5 25 P P2. A12 INT1 12 3.3 4 24 INT2 P3. P2. A11 11 2 3 23 TxD P3. P2. A10 10 1 P3. 2 22 RxD P2. A9 0 1 21 VSS P2. A8 0 20
- INT 1NT I 0 Timer 1 Timer 0 Serial port §i Òu C¸c 128 ROM Timer1 khi Ón t hanh bytes 4K Timer 0 ng¾ t ghi kh¸c RAM CPU Bé dao §i Òu C¸c cæ ng Cæ ng ®éng khi Ón I nput / Out put nèi BUS t i Õp EA ALE RST PSEN P P P P TxD RxD 0 1 2 3 H1. 5. S¬ ® khèi 8051 å §Þa chØ Bit Tªn Chøc n¨ng thø hai bit P3. RxD B0H NhËn d÷ liÖu cho cæng nèi 0 tiÕp P3. TxD B1H TruyÒn d÷ liÖu cho cæng nèi 1 tiÕp P3. INT0 B2H Ng¾t 0 bªn ngoµi 2 P3. INT1 B3H Ng¾t 1 bªn ngoµi 3 P3. T0 B4H Ngá vµo bé ®Õm thêi gian 0 4 P3. T1 B5H Ngá vµo bé ®Õm thêi gian 1 5
- P3. WR B6H TÝn hiÖu diÒu khiÓn ghi bé 6 nhí d÷ liÖu ngoµi P3. RD B7H TÝn hiÖu diÒu khiÓn ®äc bé 7 nhí d÷ liÖu ngoµi P1. T2 90H Ngá vµo bé ®Õm thêi gian 2 0 P1. T2EX 91H Capture/reload bé ®Õm thêi 1 gian 2 H×nh 1.6: Nh÷ng chøc n¨ng thø hai cña mét sè ch©n cæng PSEN : lµ mét tÝn hiÖu ®iÒu khiÓn cho phÐp bé nhí ch¬ng tr×nh bªn ngoµi ho¹t ®éng. Nã thêng ®îc kÕt nèi ®Õn ch©n OE (output enable) cña EPROM ®Ó thùc hiÖn ®äc c¸c byte ch¬ng tr×nh. Xung tÝn hiÖu PSEN lu«n ë møc thÊp trong suèt ph¹m vi qu¸ tr×nh cña mét lÖnh. Cßn khi thi hµnh ch¬ng tr×nh tõ ROM ë ngay bªn trong chip, ch©n PSEN lu«n ë møc cao (kh«ng ho¹t ®éng). TÝn hiÖu ALE cã chøc n¨ng t¸ch byte ®Þa chØ thÊp vµ bus d÷ liÖu khi cæng P0 ®îc sö dông ë chÕ ®é tuÇn tù hay cßn gäi lµ chÕ ®é dån kªnh, nghÜa lµ sö dông cïng mét ®êng truyÒn cho c¸c bit d÷ liÖu vµ byte thÊp cña bus ®Þa chØ. Khi ch©n EA ë møc cao, 8051/8052 ®îc phÐp thùc hiÖn c¸c ch¬ng tr×nh lu tr÷ ë vïng nhí thÊp h¬n 4kbyte/8 kbyte ROM bªn trong chip. Cßn khi EA ë møc thÊp, chØ cã nh÷ng ch¬ng tr×nh lu ë bé nhí bªn ngoµi míi ®îc thùc hiÖn.(Dïng cho 8051) 8051 cã mét bé dao ®éng néi bªn trong chip ho¹t ®éng b¸m theo tÇn sè cña dao ®éng th¹ch anh n»m bªn ngoµi. TÇn sè th«ng dông cña th¹ch anh lµ 12 Mhz cho hÇu hÕt c¸c IC thuéc hä 51. FFFFH Bé nhí ch FFFFH ¬ng t r ×nh Bé nhí d÷ I.2.3. Tæ chøc bé nhí: ho¹ t ® éng l i Öu ho¹ t nhê t Ýn FFH ® éng nhê hi Öu PSEN Bé nhí t Ýn hi Öu ch¬ng RD vµ W R tr×nh 0000H 00H 0000H Bé nhí bª n t r ong chi p Bé nhí bª n ngoµi H1. 7. Kh«ng gi an bé nhí cña 8051
- Byte Address Bit Address Byte Bit Address Address 7F FF F0 F7 F6 F5 F4 F3 F2 F1 F0 B Ram duìng chung E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW 30 B8 BC BB BA B9 B8 IP 2F 7F 7E 7D 7C 7B 7A 79 78 2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P3 2D 6F 6E 6D 6C 6B 6A 69 68 2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE 2B 5F 5E 5D 5C 5B 5A 59 58 2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2 29 4F 4E 4D 4C 4B 4A 49 48 28 47 46 45 44 43 42 41 40 99 Not bit addressable SBUF 27 3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9C 9B 9A 99 98 SCON 26 37 36 35 34 33 32 31 30 25 2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1 24 27 26 25 24 23 22 21 20 23 1F 1E 1D 1C 1B 1A 19 18 8D Not bit addressable TH1 22 17 16 15 14 13 12 11 10 8C Not bit addressable TH0 21 0F 0E 0D 0C 0B 0A 9 8 8B Not bit addressable TL1 20 7 6 5 4 3 2 1 0 8A Not bit addressable TL0 1F 89 Not bit addressable TMOD Bank 3 18 88 8F 8E 8D 8C 8B 8A 89 88 TCON 17 87 Not bit addressable PCON Bank 2 10 0F 83 Not bit addressable DPH Bank 1 8 82 Not bit addressable DPL 7 Default Register bank 0 81 Not bit addressable SP 0 for R0 R7 80 87 86 85 84 83 82 81 80 P0 RAM Special funcion register H1.8.CÊu tróc RAM trong cña 8051 Kh«ng gian bé nhí cña bé vi ®iÒu khiÓn ®îc ph©n chia ra lµm 2 phÇn:D÷ liÖu vµ ch¬ng tr×nh. HÇu hÕt c¸c IC MCS51 ®Òu cã bé nhí ch¬ng tr×nh vµ d÷ liÖu n»m bªn trong chip, tuy nhiªn còng cã thÓ më réng dung lîng lªn ®Õn 64Kbytes bé nhí ch¬ng tr×nh vµ 64 Kbytes bé nhí d÷ liÖu b»ng c¸ch sö dông thªm mét sè bé nhí ngoµi. H×nh 1.8 tr×nh bµy chi tiÕt bé nhø d÷ liÖu. Kh«ng gian bé nhí trong ®îc ph©n chia ra gåm c¸c BANK thanh ghi (00H1FH), RAM ®Þa chØ theo bit (20H2FH) RAM dïng chung(30H7FH), vµ c¸c thanh ghi chøc n¨ng ®Æc biÖt.
- I.2.4. C¸c thanh ghi chøc n¨ng ®Æc biÖt: 8051 cã c¸c thanh ghi ROR7 vµ 21 thanh ghi chøc n¨ng ®Æc biÖt SFR (Special Function Rigister) n»m ë phÇn trªn cña RAM trong tõ ®Þa chØ 80HFFH. Thanh ghi tr¹ng th¸i ch¬ng tr×nh PSW (Progam Status Word): Thanh ghi PSW chøa c¸c bit tr¹ng th¸i ®îc tãm t¾t trong h×nh 1.9. CY AC F0 RS RS OV P 1 0 H×nh 1.9 : C¸c bit trong thanh ghi tr¹ng th¸i +Cê nhí CY(Carry Flag): Cê nhí ®îc sö dông cho 2 môc ®Ých. Nã ®îc dïng trong c¸c phÐp to¸n sè häc, cê nhí ®îc lËp khi kÕt qu¶ phÐp to¸n cã nhí hoÆc ph¶i m în. Ngoµi ra cê nhí ®îc sö dông nh lµ mét thanh ghi mét bit cho c¸c lªnh boolean ho¹t ®éng trªn c¸c bit. +Cê nhí phô AC(Auxiliary Carry Flag): Khi thùc hiÖn phÐp tÝnh BCD, Bit AC ®îc bËt nÕu kÕt qu¶ phÐp to¸n võa thùc hiÖn cã nhí hay cã mîn ®èi víi 4 bit thÊp. +Cê OFO(Flag O):Lµ bit cê dïng chung ®îc dµnh s½n cho c¸c øng dông cña ngêi sö dông. +Bit chän lùa Bank thanh ghi: C¸c bit RSO vµ RSI dïng ®Ó x¸c ®Þnh bank thanh ghi tÝch cùc. Chóng ®îc xãa mçi khi hÖ thèng khëi ®éng l¹i vµ ®îc thay ®æi bëi phÇn mÒm khi cÇn thiÕt. +Cê trµn OV(Overflow Flag) :Cê trµn ®îc bËt nÕu kÕt qu¶ cña mét phÐp to¸n céng hay trõ c¸c sè cã dÊu bÞ sai. +Bit ch½n lÎ P(Parity Bit):Bit parity ®îc tù ®éng lËp hay xãa sau mçi chu kú m¸y ®Ó thiÕt lËp parity ch½n víi thanh ghi A. NghÜa lµ tæng sè bit 1 cña thanh ghi A céng víi bit Parity th× lu«n lu«n ch½n. Thanh ghi B: Thanh ghi B ®îc sö dông ®i kÌm víi thanh ghi A ®Ó thùc hiÖn c¸c phÐp to¸n nh©n vµ chia. Thanh ghi B còng ®îc xem nh lµ thanh ghi ®Öm dïng chung. Nã cã ®Þa chØ bit tõ F0HF7H.
- Con trá ng¨n xÕp: lµ mét thanh ghi 8 bit, nã chøa ®Þa chØ cña phÇn d÷ liÖu ®ang hiÖn diÖn t¹i ®Ønh cña ng¨n xÕp. Ng¨n xÕp ho¹t ®éng theo ph¬ng thøc vµo tríc ra sau. Ho¹t ®éng ®Èy vµo ng¨n xÕp lµm t¨ng SP lªn tríc khi ghi d÷ liÖu vµo. Ho¹t ®éng lÊy ra khái ng¨n xÕp sÏ ®äc d÷ liÖu ra råi gi¶m SP. Con trá d÷ liÖu DPTR(Data pointer) :DPTR ®îc sö dông ®Ó truy cËp vµo bé nhí ch¬ng tr×nh vµ bé nhí d÷ liÖu ngoµi, ®ã lµ thanh ghi 16 bit cã 8 bit thÊp ë ®Þa chØ 82H(DPL) vµ 8 bit cao ë ®Þa chØ 83H(DPH). C¸c thanh ghi cæng: C¸c cæng I/O cña 8051 bao gåm P0 t¹i ®Þa chØ 80H, P1 t¹i ®Þa chØ 90H, P2 t¹i ®Þa chØ AOH, P3 cã ®Þa chØ BOH. TÊt c¶ c¸c cæng ®Òu cã ®Þa chØ nªn cung cÊp kh¶ n¨ng giao tiÕp víi bªn ngoµi rÊt m¹nh. C¸c thanh ghi bé ®Õm thêi gian: 8051 cã 2 bé ®Õm thêi gian 16 bit ®Ó ®Þnh c¸c kho¶ng thêi gian hay ®Õm c¸c sù kiÖn. Timer0 cã ®Þa chØ 8AH (TL0:byte thÊp) vµ 8CH(TH0:byte cao),timer1 cã ®Þa chØ 8BH(TL1:Byte thÊp) vµ 8DH(TL2:Byte cao).Ho¹t ®éng cña bé ®Õm thêi gian ®îc thiÕt lËp bëi thanh ghi chÕ ®é thêi gian TMOD vµ thanh ghi ®iÒu khiÓn thêi gian TCON cã ®Þa chØ bit. Cæng nèi tiÕp ®Ó kÕt nèi víi c¸c thiÕt bÞ thanh ghi cæng tuÇn tù: IC 8051 chøa mét cæng nèi tiÕp nh Modem hoÆc ®Ó giao tiÕp víi c¸c IC kh¸c sö dông giao tiÕp nèi tiÕp( Bé chuyÓn ®æi A/D, thanh ghi dÞch, bé nhí RAM...).Bé ®Öm d÷ liÖu nèi tiÕp SBUF lu gi÷ c¶ d÷ liÖu truyÒn ®i vµ d÷ liÖu nhËn ®îc.Ho¹t ®éng ghi SBUF sÏ n¹p vµo d÷ liÖu ®Ó truyÒn ®i, cßn ho¹t ®éng ®äc SBUF sÏ truy cËp vµo d÷ liÖu ®∙ nhËn ®îc. NhiÒu chÕ ®é ho¹t ®éng kh¸c nhau cã thÓ lËp tr×nh ®îc th«ng qua ®Þa chØ bit cña thanh ghi ®iÒu khiÓn cæng nèi tiÕp t¹i ®Þa chØ 98H. C¸c thanh ghi ng¾t: IC 8051 cã 5 nguån ng¾t vµ 2 møc u tiªn. C¸c ng¾t bÞ cÊm sau khi hÖ thèng khëi ®éng l¹i vµ sÏ ®îc bËt b»ng c¸ch ghi vµo thanh ghi cho phÐp ng¾t IE(Interupt Enable register).Møc u tiªn ®îc thiÕt lËp th«ng qua thanh ghi u tiªn ng¾t IP(Interrupt Priority register).C¶ hai thanh ghi nµy ®Òu cã ®Þa chØ bit.
- Thanh ghi ®iÒu khiÓn n¨ng lîng PCON(Power Control register): Chøa nhiÒu bit ®iÒu khiÓn ®¶m nhiÖm nh÷ng chøc n¨ng kh¸c nhau. SMO GF GF PD ID D 1 0 L H×nh 1.10 : C¸c bit trong thanh ghi ®iÒu khiÓn n¨ng lîng *Bit SMOD lµm t¨ng gÊp ®«i tèc ®é baud cña cæng nèi tiÕp khi ë chÕ ®é 1, 2 hay 3.Bit 2 vµ bit 3 lµ c¸c bit cê dïng chung ®îc dµnh s¾n cho c¸c øng dông cña ngêi dïng. C¸c bit ®iÒu khiÓn n¨ng lîng lµ: Bit h¹ thÊp n¨ng lîng PD(Power down) vµ bit ngõng kh«ng ho¹t ®éng IDL(Idle).c¸c bÝt nµy sÏ chuyÓn bé vi ®iÒu khiÓn sang hai chÕ ®é ho¹t ®éng c¬ b¶n. I.2.5. Bé nhí ngoµi: Vi ®iÒu khiÓn cho phÐp më réng lªn ®Õn 64 Kbytes kh«ng gian bé nhí ch¬ng tr×nh vµ 64 Kbytes kh«ng gian bé nhí d÷ liÖu ngoµi. Khi sö dông bé nhí ngoµi th× cæng P0 kh«ng ®îc dµnh cho ho¹t ®éng I/O, nã trë thµnh ®êng truyÒn bus d÷ liÖu (D0D7) vµ byte thÊp (A0A7) cña bus ®Þa chØ. Cæng P2 thêng ®îc sö dông cho ®êng truyÒn byte cao cña bus ®Þa chØ. Trong suèt mét n÷a chu kú bé nhí ®Çu, tÝn hiÖu ALE sÏ chèt byte thÊp cña bus ®Þa chØ vµo bé chèt 74H573, vµ trong n÷a chu kú nhí cßn l¹i, cæng P0 ®îc sö dông nh lµ bus d÷ liÖu ®Ó ®äc d÷ liÖu vµo MC hay ghi d÷ liÖu ra bé nhí ngoµi.ChÕ ®é ho¹t ®éng nh vËy Chu kú m¸y gäi lµ chÕ ®é dån kªnh. A0..A15 §Þa chØ D0..D3 D÷ liÖu Kh«ng ghÐp kªnh(24 ®êng) Chu kú m¸y A8..A15 §Þa chØ §Þa chØ D÷ liÖu GhÐp kªnh(16 ®êng)
- H1.11: Gi¶n ®å thêi gian trong chÕ ®é dån kªnh vµ kh«ng dån kªnh I.2.5.1. Ph¬ng thøc truy cËp vµo bé nhí ch¬ng tr×nh ngoµi: Bé nhí ch¬ng tr×nh ngoµi ®îc ®äc bëi tÝn hiÖu PSEN khi bé nhí ch¬ng tr×nh bªn ngoµi ®îc sö dông, c¶ cæng P0 vµ P2 ®Òu kh«ng ®îc sö dông nh cæng I/O. C¸c kÕt nèi phÇn cøng ®îc m« t¶ nh trªn h×nh vÏ. Mét vßng chu kú m¸y cña 8051 gåm cã 12 chu kú dao ®éng. NÕu bé dao ®éng néi ho¹t ®éng b¸m theo mét dao ®éng th¹ch anh 12 Mhz th× mét chu kú m¸y lµ 1us. Suèt mét chu kú m¸y chuÈn, tÝn hiÖu ALE dao ®éng 2 lÇn vµ 2 byte ®îc ®äc ra tõ bé nhí ch¬ng tr×nh. I.2.5.2. Truy cËp bé nhí d÷ liÖu ngoµi: PORT 0 D0..D7 74HC D Q A0..A7 ALE G EPROM 80C51 A8..A1 5 PSEN OE EA H1.12.S¬ ®å ®Êu nèi 8051 víi ROM ngoµi
- C¸c ho¹t ®éng ®äc ghi bé nhí d÷ kiÖu ®îc ®iÒu khiÓn bëi 2 tÝn hiÖu RD vµ WR. C¸ch duy nhÊt truy cËp ®Õn bé nhí d÷ liÖu ngoµi lµ dïng lÖnh MOVX, sö dông con trá d÷ liÖu DPTR 16 bit hoÆc R0 hay R1 lµm thanh ghi ®Þa chØ. Gi¶n ®å thêi gian cho ho¹t ®éng ®äc bé nhí d÷ liÖu ngoµi b»ng lÖnh MOVX A, @DPTR ®îc chØ trong h×nh 1.3.Lóc nµy, mét xung ALE vµ mét xung PSEN bÞ bá qua vµ thay vµo ®ã lµ mét xung RD ®Ó ®äc ra RAM, Gi¶n ®å thêi gian cho mét ho¹t ®éng ghi còng t¬ng tù , chØ kh¸c lµ xung WR ë møc thÊp ®Ó ghi d÷ liÖu ra cæng P0 vµ RD tån t¹i ë møc cao. Mét chu kú m¸y S1 S2 S3 S4 S5 S6 S1 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 OSC ALE PSEN Port PCH PCH 2 Port 0 PCL Opcod PCL Byte e 2 H1.13.Gi¶n ®å thêi gian cho ho¹t ®éng ®äc bé nhí ch
- PORT 0 D0..D7 74HC D Q A0..A7 ALE G 80C51 RAM A8..A1 RD OE 5 WR WE PSEN NC CS EA Mass H1.14.S¬ ®å ®Êu nèi phÇn cøng cña 8051 víi RAM ngoµi
- Mäüt chu Mäüt chu kyì maïy kyì maïy S S S S S S S S S S S S 1 2 3 4 5 6 1 2 3 4 5 6 ALE PSEN RD Port PCH DPH (Data pointer 2 High byte ) Port Extarn PCL DPL al 0 Opcode Data H1.15.Gi∙n ®å thêi gian cña lÖnh MOVX I.2.6.Reset hÖ thèng: §Ó Reset 8051, ta ph¶i gi÷ ch©n RST ë møc cao trong tèi thiÓu 2 chu kú m¸y råi míi trë l¹i møc thÊp. ViÖc Reset cã thÓ thùc hiÖn hoµn toµn b»ng tay th«ng qua c«ng t¾c, hoÆc cã thÓ tù ®éng reset khi cÊp ®iÖn. T×nh tr¹ng c¸c thanh ghi trong 8051 sau khi reset ®îc tãm t¾t trong h×nh 1.7. Bé ®Õm ch¬ng tr×nh sÏ n¹p vµo gi¸ trÞ 0000H, bëi v× khi RST xuèng møc thÊp, sù thùc hiÖn ch¬ng tr×nh lu«n lu«n b¾t ®Çu t¹i ®Þa chØ ®Çu tiªn cña bé nhí ch¬ng tr×nh:0000H. Néi dung cña RAM bªn trong chip kh«ng bÞ ¶nh hëng bëi ho¹t ®éng cña reset .
- R1 C Reset D R2 H1.16.S¬ ®å m¹ch thùc hiÖn RESET Thanh ghi Néi Thanh ghi Néi dung dung Bé ®Õ CT m 0000H IP Xxx00000B Thanh ghi A 00H IE 0xx00000B Thanh ghi B 00H Thanh ghi 00H Timer PSW 00H SCON 00H SP 07H SBUF 00H DPTR 0000H PCON (Hmos) 0xxxxxxxB Cæng P FFH PCON (Cmos) 0xxx0000B (0,1 ,2 ,3 ) H×nh 1.17: Gi¸ trÞ c¸c thanh ghi sau khi Reset hÖ thèng. I.3. Giíi thiÖu c¸c chÕ ®é ®Þa chØ cña 8051: I.3.1.C¸c chÕ ®ä ®Þa chØ cña 8051: Bé vi ®iÒu khiÓn 8051 sö dông 8 chÕ ®é ®Þa chØ ®Ó x¸c ®Þnh vïng d÷ liÖu cÇn thiÕt cung cÊp cho c¸c lÖnh ho¹t ®éng. §Þa chØ thanh ghi, ®Þa chØ trùc tiÕp, ®Þa chØ gi¸n tiÕp, ®Þa chØ tøc thêi, ®Þa chØ t¬ng ®èi, ®Þa chØ tuyÖt ®èi, ®Þa chØ dµi, ®Þa chØ liÖt kª. I.3.1.1. §Þa chØ thanh ghi: 8051 cung cÊp 8 thanh ghi ký hiÖu tõ R0 ®Õn R7. Khi m∙ hãa nh÷ng lÖnh sö dông ®Þa chØ thanh ghi, 3 bit cã trÞ sè nhá nhÊt cña m∙ lÖnh(OPCODE)®îc dïng
- ®Ó x¸c ®Þnh thanh ghi nµo ®îc sö dông. Nh vËy, m∙ chøc n¨ng vµ m∙ thanh ghi kÕt hîp víi nhau t¹o thµnh mét lÖnh ng¾n(1byte). Opcod n n n e H×nh 1.18a: §Þa chØ thanh ghi. Cã tÊt c¶ 4 bank thanh ghi, nhng t¹i mçi thêi ®iÓm chØ cã 1 bank lµ ho¹t ®éng(Active), nhê vµo bit RSI vµ RSO cña thanh ghi tr¹ng th¸i PSW sÏ x¸c ®Þnh thanh ghi nµo ho¹t ®éng. I.3.1.2. §Þa chØ trùc tiÕp: Sö dông ®Þa chØ trùc tiÕp th× cã thÓ truy cËp vµo bÊt cø vïng nhí hay thanh ghi phÇn cøng nµo kh¸c. 1byte ®îc thªm vµo trong m∙ lÖnh ®Ó x¸c ®Þnh vïng nhí Opcode Direct Address H1.18b.§Þa chØ trùc cÇn sö dông. tiÕp Vïng nhí ®îc truy cËp cã thÓ lµ 128 byte thÊp trong bé nhí RAM( cã ®Þa chØ tõ 00H ®Õn 7FH) hoÆc c¸c cæng I/O, thanh ghi chøc n¨ng ®Æc biÖt, vµ thanh ghi tr¹g th¸i ( cã ®Þa chØ tõ 80HFFH) . I.3.1.3. §Þa chØ gi¸n tiÕp: R0 vµ R1 cã thÓ ho¹t ®éng nh lµ nh÷ng thanh ghi con trá, néi dung cña chóng cho biÕt ®Þa chØ cña vïng d÷ liÖu cÇn ghi hay ®äc trong RAM. Bit cã träng sè nhá nhÊt cña m∙ lÖnh x¸c ®Þnh thanh ghi nµo ®îc sö Opcode i H1.18.c.§Þa chØ gi¸n tiÕp dung lµm con trá. Trong hîp ng÷ cña 8051, ®Þa chØ gi¸n tiÕp ®îc biÓu thÞ b»ng dÊu Yþ ®øng tríc R0 hay R1. I.3.1.4.§Þa chØ tøc thêi:
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình Vi điểu khiển
284 p | 1155 | 557
-
Giáo trình vi điều khiển 8051 - Chương 3
12 p | 362 | 169
-
Giáo trình vi điều khiển 8051 - Chương 4
9 p | 320 | 118
-
Giáo trình vi điều khiển 8051 - Chương 10
17 p | 197 | 65
-
Giáo trình vi điều khiển 8051 - Chương 14
4 p | 162 | 37
-
Giáo trình Vi điều khiển - Nghề: Điện công nghiệp - Trình độ: Cao đẳng nghề (Tổng cục Dạy nghề)
130 p | 98 | 14
-
Giáo trình Vi điều khiển - Nghề: Điện dân dụng - Trình độ: Trung cấp nghề (Tổng cục Dạy nghề)
87 p | 71 | 13
-
Giáo trình Vi điều khiển (Nghề: Tự động hoá - Trung cấp) - Trường Cao đẳng Cơ giới (2019)
76 p | 20 | 11
-
Giáo trình Vi điều khiển (Nghề: Tự động hoá - Trung cấp) - Trường Cao đẳng Cơ giới (2022)
76 p | 14 | 10
-
Giáo trình Vi điều khiển (Nghề: Điện tử dân dụng - Trình độ: Cao đẳng) - Trường Cao đẳng nghề Cần Thơ
93 p | 28 | 10
-
Giáo trình Vi điều khiển (Nghề: Công nghệ kỹ thuật điện-điện tử - Trung cấp) - Trường Trung cấp Công nghệ và Du lịch Hà Nội
135 p | 13 | 9
-
Giáo trình Vi điều khiển (Nghề: Cơ điện tử - Trình độ: Cao đẳng) - Trường Cao đẳng nghề Cần Thơ
142 p | 11 | 9
-
Giáo trình Vi điều khiển cơ bản (Nghề: Điện tử công nghiệp - Trình độ: Trung cấp) - Trường Cao đẳng nghề Cần Thơ
93 p | 17 | 8
-
Giáo trình Vi điều khiển (Nghề: Điện công nghiệp - Cao đẳng) - Trường Cao đẳng Cơ giới (2019)
144 p | 13 | 7
-
Giáo trình Vi điều khiển cơ bản (Nghề: Điện tử công nghiệp - Trình độ: Cao đẳng) - Trường Cao đẳng nghề Cần Thơ
93 p | 14 | 7
-
Giáo trình Vi điều khiển (Nghề: Điện công nghiệp - Cao đẳng) - Trường Cao đẳng Cơ điện Xây dựng Việt Xô
90 p | 21 | 6
-
Giáo trình Vi điều khiển - Trường CĐ nghề Số 20
130 p | 8 | 2
-
Giáo trình Vi điều khiển (Ngành: Điện tử công nghiệp - Trình độ Cao đẳng) - Trường Cao đẳng Hòa Bình Xuân Lộc
125 p | 3 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn