GIÁO TRÌNH VI ĐIỀU KHIỂN 8051

Chia sẻ: Tran Xuan Tu | Ngày: | Loại File: DOC | Số trang:0

0
494
lượt xem
223
download

GIÁO TRÌNH VI ĐIỀU KHIỂN 8051

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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....

Chủ đề:
Lưu

Nội dung Text: GIÁO TRÌNH VI ĐIỀU KHIỂN 8051

  1. 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  MCS­48   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ä MCS­51 lµ 
  2. 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:
  3. 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.
  4. +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. 
  5. 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
  6. 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.
  7. 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
  8. 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
  9. 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
  10.   
  11. 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 MCS­51 ®Ò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 (00H­1FH), RAM ®Þa chØ theo bit (20H­2FH)  RAM dïng chung(30H­7FH), vµ c¸c thanh ghi chøc n¨ng  ®Æc biÖt.
  12. I.2.4. C¸c thanh ghi chøc n¨ng ®Æc biÖt: 8051 cã c¸c thanh ghi RO­R7 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Ø 80H­FFH. 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õ F0H­F7H.
  13. 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.
  14. 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   (D0­D7)   vµ   byte   thÊp  (A0­A7) 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)
  15. 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
  16. 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­
  17. 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
  18. 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 .      
  19. 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 
  20. ®Ó   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õ 80H­FFH) . 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:
Đồng bộ tài khoản