Nghiên cứu khảo sát bộ vi điều khiển 8 bit PIC16F877

Chia sẻ: Hà Duy Toàn | Ngày: | Loại File: PDF | Số trang:36

1
269
lượt xem
103
download

Nghiên cứu khảo sát bộ vi điều khiển 8 bit PIC16F877

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

Ngày nay, các bộ vi điều khiển đang có ứng dụng ngày càng rộng rãi trong các lĩnh vực kỹ thuật và đời sống xã hội, đặc biệt là trong kỹ thuật tự động hoá và điều khiển từ xa. Giờ đây với nhu cầu chuyên dụng hoá, tối -u (thời gian, không gian, giá thành), bảo mật, tính chủ động trong công việc... ngày càng đòi hỏi khắt khe. Việc đ-a ra công nghệ mới trong lĩnh vực chế tạo mạch điện tử để đáp ứng những yêu cầu trên là hoàn toàn cấp thiết mang tính thực tế...

Chủ đề:
Lưu

Nội dung Text: Nghiên cứu khảo sát bộ vi điều khiển 8 bit PIC16F877

  1. Nghiên cứu khảo sát bộ vi điều khiển 8 bit PIC16F877
  2. Copyright (c) IRF Group Nghiªn cøu kh¶o s¸t bé vi ®iÒu 8 bit PIC16F877 1. Giíi thiÖu bé vi ®iÒu khiÓn 8 bÝt Ngµy nay, c¸c bé vi ®iÒu khiÓn ®ang cã øng dông ngµy cµng réng r·i trong c¸c lÜnh vùc kü thuËt vµ ®êi sèng x· héi, ®Æc biÖt lµ trong kü thuËt tù ®éng ho¸ vµ ®iÒu khiÓn tõ xa. Giê ®©y víi nhu cÇu chuyªn dông ho¸, tèi −u (thêi gian, kh«ng gian, gi¸ thµnh), b¶o mËt, tÝnh chñ ®éng trong c«ng viÖc... ngµy cµng ®ßi hái kh¾t khe. ViÖc ®−a ra c«ng nghÖ míi trong lÜnh vùc chÕ t¹o m¹ch ®iÖn tö ®Ó ®¸p øng nh÷ng yªu cÇu trªn lµ hoµn toµn cÊp thiÕt mang tÝnh thùc tÕ cao. 1.1. Kh¸i niÖm vÒ bé vi ®iÒu khiÓn §Ó hiÓu kh¸i niÖm vÒ bé vi ®iÒu khiÓn, ta cã thÓ lµm phÐp so s¸nh nã víi bé vi xö lý c«ng dông chung nh− sau: Ta biÕt r»ng, c¸c bé vi xö lý c«ng dông chung nh− hä Intel x86 (8086, 80286, 80386, 80486 vµ Pentium) hoÆc hä Motorola 680x0(6800, 68010, 68020, 68030, 68040 vv...) kh«ng cã RAM, ROM vµ kh«ng cã c¸c cæng ra vµo trªn chip... Víi lý do ®ã mµ chóng ®−îc gäi lµ c¸c bé vi xö lý c«ng dông chung. Mét nhµ thiÕt kÕ hÖ thèng sö dông mét bé vi xö lý c«ng dông chung ch¼ng h¹n nh− Pentium hay 68040 sÏ ph¶i bæ xung thªm RAM, ROM, c¸c cæng vµo ra vµ c¸c bé ®Þnh thêi ngoµi ®Ó lµm cho chóng ho¹t ®éng ®−îc. MÆc dï viÖc bæ xung c¸c RAM, ROM, c¸c cæng vµo ra sÏ lµm cho hÖ thèng cång kÒnh lªn nh−ng nã l¹i cã −u ®iÓm khi sö dông c¸c bé vi xö lý nµy lµ rÊt linh ho¹t. Ch¼ng h¹n nh− ng−êi thiÕt kÕ cã thÓ quyÕt ®Þnh vÒ sè l−îng RAM, ROM, vµ c¸c cæng vµo ra cÇn thiÕt sao cho phï hîp víi kh¶ n¨ng, môc ®Ých sö dông cña hÖ thèng. §iÒu nµy kh«ng thÓ cã ®èi víi c¸c bé vi ®iÒu khiÓn. Bëi v×, mét bé vi ®iÒu khiÓn ®· cã mét CPU (mét bé vi xö lý) cïng víi mét sè l−îng RAM, ROM, c¸c cæng vµo ra vµ mét bé ®Þnh thêi trªn cïng mét chÝp. Hay nãi c¸ch kh¸c lµ bé vi xö lý, RAM, ROM, c¸c cæng vµo ra vµ mét bé ®Þnh thêi cïng ®−îc nhóng trªn mét chip. Do vËy ng−êi thiÕt kÕ kh«ng thÓ bæ xung thªm bé nhí ngoµi, sè c¸c cæng vµo ra hoÆc bé ®Þnh thêi cho nã. Víi sè l−îng RAM, ROM vµ sè c¸c cæng vµo ra cè ®Þnh nh− vËy lµ mét mÆt h¹n chÕ (kÐm linh ho¹t) xong nã l¹i thËt sù lý t−ëng ®èi víi nh÷ng øng dông mang tÝnh chuyªn biÖt, tèi −u vÒ gi¸ thµnh, tèi −u vÒ kh«ng gian... HiÖn nay trªn thÞ truêng cã c¸c bé vi ®iÒu khiÓn 8 bÝt chÝnh lµ. 6811 cña Motorola, 8051 cña Intel, Z8 cña Xilog vµ Pic16x cña Microchip Technology. Mçi lo¹i trªn ®©y ®Òu cã mét tËp lÖnh vµ thanh ghi riªng duy nhÊt, nªn chóng ®Òu kh«ng t−¬ng thÝch lÉn nhau. Còng cã nh÷ng bé vi ®iÒu khiÓn 16 bÝt vµ 32 bÝt ®−îc s¶n xuÊt ra bëi c¸c h·ng s¶n xuÊt chÝp kh¸c nhau. 1.2. Nh÷ng yªu cÇu ®Ó lùa chän mét bé vi ®iÒu khiÓn lµ:
  3. Copyright (c) IRF Group §¸p øng nhu cÇu tÝnh to¸n cña bµi to¸n mét c¸ch hiÖu qu¶ vÒ mÆt gi¸ thµnh vµ ®Çy ®ñ chøc n¨ng cã thÓ nh×n thÊy ®−îc, (kh¶ dÜ). Cã s½n c¸c c«ng cô ph¸t triÓn phÇn mÒm ch¼ng h¹n nh− c¸c tr×nh biªn dÞch tr×nh hîp ng÷ vµ gì rèi. Nguån c¸c bé vi ®iÒu khiÓn cã s½n nhiÒu vµ tin cËy. 1.3. C¸c tiªu chuÈn lùa chän mét bé vi ®iÒu khiÓn: Tiªu chuÈn ®Çu tiªn vµ tr−íc hÕt trong lùa chän mét bé vi ®iÒu khiÓn lµ nã ph¶i ®¸p øng nhu cÇu bµi to¸n vÒ mÆt c«ng suÊt tÝnh to¸n, gi¸ thµnh vµ hiÖu qu¶. Trong khi ph©n tÝch c¸c nhu cÇu cña mét dù ¸n dùa trªn bé vi ®iÒu khiÓn, chóng ta tr−íc hÕt ph¶i biÕt lµ bé vi ®iÒu khiÓn nµo lµ 8 bÝt, 16 bÝt hay 32 bÝt cã thÓ ®¸p øng tèt nhÊt nhu cÇu tÝnh to¸n cña bµi to¸n mét c¸ch hiÖu qu¶ nhÊt. • Nh÷ng tiªu chuÈn ®−îc ®−a ra ®Ó c©n nh¾c lµ: Tèc ®é: Tèc ®é lín nhÊt mµ bé vi ®iÒu khiÓn hç trî lµ bao nhiªu. KiÓu ®ãng vá: §ã lµ kiÓu 40 ch©n DIP hay QFP hay lµ kiÓu ®ãng vá kh¸c. §©y lµ ®iÒu quan träng ®èi víi yªu cÇu vÒ kh«ng gian, kiÓu l¾p r¸p vµ t¹o mÉu thö cho s¶n phÈm cuèi cïng. C«ng suÊt tiªu thô: §iÒu nµy ®Æc biÖt kh¾t khe ®èi víi nh÷ng s¶n phÈm dïng pin, ¾c quy. Dung l−îng bé nhí RAM vµ ROM trªn chÝp. Sè ch©n vµo – ra, bé ®Þnh thêi, sè ng¾t trªn chÝp. Kh¶ n¨ng dÔ dµng n©ng cÊp cho hiÖu suÊt cao hoÆc gi¶m c«ng suÊt tiªu thô. Gi¸ thµnh cho mét ®¬n vÞ: §iÒu nµy quan träng quyÕt ®Þnh gi¸ thµnh cuèi cïng cña s¶n phÈm mµ mét bé vi ®iÒu khiÓn ®−îc sö dông. 2. Bé Vi ®iÒu khiÓn 8 bit PIC16F877 2.1. §Æc tÝnh næi bËt cña bé vi xö lÝ. + Sö dông c«ng nghÖ tÝch hîp cao RISC CPU. + Ng−êi sö dông cã thÓ lËp tr×nh víi 35 c©u lÖnh ®¬n gi¶n. + TÊt c¶ c¸c c©u lÖnh thùc hiÖn trong mét chu k× lÖnh ngo¹i trõ mét sè c©u lÖnh rÏ nh¸nh thùc hiÖn trong 2 chu k× lÖnh. + Tèc ®é ho¹t ®éng lµ: - Xung ®ång hå vµo lµ DC- 20MHz - Chu kú lÖnh thùc hiÖn trong 200ns + Bé nhí ch−¬ng tr×nh Flash 8Kx14 words + Bé nhí Ram 368x8 bytes + Bé nhí EFPROM 256x 8 bytes Kh¶ n¨ng cña bé vi xö lÝ nµy + Kh¶ n¨ng ng¾t ( lªn tíi 14 nguån ng¾t trong vµ ng¾t ngoµi ) + Ng¨n nhí Stack ®−îc ph©n chia lµm 8 møc + Truy cËp bé nhí b»ng ®Þa chØ trùc tiÕp hoÆc gi¸n tiÕp. + Nguån khëi ®éng l¹i (POR) + Bé t¹o xung thêi gian (PWRT) vµ bé t¹o dao ®éng (OST)
  4. Copyright (c) IRF Group + Bé ®Õm xung thêi gian (WDT) víi nguån dao ®éng trªn chÝp (nguån dao ®éng RC ) ho¹t ®éng ®¸ng tin cËy. + Cã m· ch−¬ng tr×nh b¶o vÖ. + Ph−¬ng thøc cÊt gi÷ SLEEP + Cã b¶ng lùa chän dao ®éng. + C«ng nghÖ CMOS FLASH /EEPROM nguån møc thÊp ,tèc ®é cao. + ThiÕt kÕ hoµn toµn tÜnh . + M¹ch ch−¬ng tr×nh nèi tiÕp cã 2 ch©n. + Xö lý ®äc /ghi tíi bé nhí ch−¬ng tr×nh . + D¶i ®iÖn thÕ ho¹t ®éng réng : 2.0V ®Õn 5.5V + Nguån sö dông hiÖn t¹i 25 mA + D·y nhiÖt ®é c«ng nghiÖp vµ thuËn lîi . + C«ng suÊt tiªu thô thÊp: < 0.6mA víi 5V, 4MHz 20 µ A víi nguån 3V, 32 kHz < 1 µ A nguån dù phßng. C¸c ®Æc tÝnh næi bËt cña thiÕt bÞ ngo¹i vi trªn chip + Timer0: 8 bÝt cña bé ®Þnh thêi, bé ®Õm víi hÖ sè tû lÖ tr−íc + Timer1: 16 bÝt cña bé ®Þnh thêi, bé ®Õm víi hÖ sè tû lÖ tr−íc, cã kh¶ n¨ng t¨ng trong khi ë chÕ ®é Sleep qua xung ®ång hå ®−îc cung cÊp bªn ngoµi. + Timer 2: 8 bÝt cña bé ®Þnh thêi, bé ®Õm víi 8 bÝt cña hÖ sè tû lÖ tr−íc, hÖ sè tû lÖ sau + Cã 2 chÕ ®é b¾t gi÷, so s¸nh, ®iÒu chÕ ®é réng xung(PWM). + ChÕ ®é b¾t gi÷ víi 16 bÝt, víi tèc ®é 12.5 ns, chÕ ®é so s¸nh víi 16 bÝt, tèc ®é gi¶i quyÕt cùc ®¹i lµ 200 ns, chÕ ®é ®iÒu chÕ ®é réng xung víi 10 bÝt. + Bé chuyÓn ®æi tÝn hiÖu sè sang t−¬ng tù víi 10 bÝt . + Cæng truyÒn th«ng nèi tiÕp SSP víi SPI ph−¬ng thøc chñ vµ I2C(chñ/phô) + Bé truyÒn nhËn th«ng tin ®ång bé, dÞ bé(USART/SCL) cã kh¶ n¨ng ph¸t hiÖn 9 bÝt ®Þa chØ. + Cæng phô song song (PSP) víi 8 bÝt më réng, víi RD, WR vµ CS ®iÒu khiÓn.
  5. Copyright (c) IRF Group S¬ ®å c¸c ch©n PIC16F87X.
  6. Copyright (c) IRF Group S¬ ®å khèi bé vi ®iÒu khiÓn PIC16F87X 2.2. So s¸nh víi bé vi ®iÒu khiÓn 8051 *Bé vi ®iÒu khiÓn 8051 lµ bé V§K ®Çu tiªn thuéc hä V§K x51 ®−îc s¶n xuÊt bëi c«ng ty Intel, Siemens, Advanced Micro Devices, Fujitsu, Philips. C¸c ®Æc ®iÓm chung cña bé V§K nµy: • 4KB ROM • 128 B RAM • 4 cæng I/O 8 bit • 2 Timer 16 bit • Cã kh¶ n¨ng qu¶n lý ®−îc 64 KB bé nhí m· ch−¬ng tr×nh ngoµi (ROM ngoµi). • Cã kh¶ n¨ng qu¶n lý ®−îc 64 KB bé nhí d÷ liÖu ngoµi (RAM ngoµi) • Cã bé xö lý logic riªng (thao t¸c trªn c¸c bit) • Cã thÓ thao t¸c trùc tiÕp ®−îc 210 bit (c¸c bit nµy ®· ®−îc ®Þa chØ ho¸) • Cã 5 ng¾t • Dïng nguån dao ®éng ngoµi
  7. Copyright (c) IRF Group • Dïng ®iÖn ¸p 5V ®Ó cho chip ho¹t ®éng *Cæng P0: Cã d¹ng cùc m¸ng hë vµ cã 8 ch©n (8 bit) lµ cæng vµo/ra hoÆc lµ cæng chuyÓn d÷ liÖu vµ ®Þa chØ. *Cæng P1: Lµ cæng vµo/ra cã 8 ch©n (8 bit). *Cæng P2: Cã 8 ch©n (8 bit) lµ cæng vµo/ra hoÆc lµ cæng chuyÓn d÷ liÖu vµ ®Þa chØ. *Cæng P3: Cã 8 ch©n, cæng nµy cã thÓ lµ cæng vµo/ra 8 bit hay cßn cã c¸c chøc n¨ng quan träng kh¸c nh− phôc vô cho ng¾t, c¸c bé ®Þnh thêi, viÖc truyÒn nhËn d÷ liÖu truyÒn th«ng nèi tiÕp, ®äc vµ ghi c¸c bé nhí ngoµi… S¬ ®å khèi cña V§K 8051: Timer 0 Timer 1 T0 Serial Ports Timer 0 RAM128 ROM Int1 Timer 1 bytes 4K Interupt T1 Int 0 Registers control CPU Serial port I / O Ports Oscilator Bus P0 P2 P1 P3 TxD RxD GND Nh− vËy cã thÓ thÊy ®Æc ®iÓm ®Çu tiªn mµ PIC16F877 ®em l¹i vµ næi bËt so víi V§K 8051 lµ dßng PIC16F877 nh÷ng ®Æc tÝnh kÜ thuËt h¬n h¼n so víi bé V§K 8051 thÓ hiÖn ë nh÷ng ®iÓm sau: V§K8051 V§K PIC16F877 §Æc tÝnh Sè l−îng §Æc tÝnh Sè l−îng ROM trªn chÝp 4K byte ROM trªn chÝp 8K RAM 128 byte RAM 368 byte Bé ®Þnh thêi 2 Bé ®Þnh thêi 3 C¸c ch©n vµo ra 32 C¸c ch©n vµo ra 40 Cæng nèi tiÕp 1 Cæng nèi tiÕp 2 Nguån ng¾t 6 Nguån ng¾t 14 Ngoµi nh÷ng ®Æc tÝnh trªn th× bé vi ®iÒu khiÓn PIC16F877 cßn cã mét ®Æc ®iÓm h¬n h¼n so víi 8051 lµ cã 10 bÝt chuyÓn ®æi A/D trªn chÝp ®iÒu nµy sÏ gióp chóng ta kh«ng ph¶i mÊt mét bé chuyÓn ®æi (sÏ dÉn ®Õn kÕt nèi d©y trë nªn phøc t¹p). Mét ®Æc ®iÓm n÷a lµ bé vi ®iÒu khiÓn PIC16F877 cã bé t¹o dao ®éng chñ trªn chÝp ®iÒu nµy sÏ tr¸nh ®−îc nh÷ng sai sè kh«ng cÇn thiÕt trong viÖc t¹o
  8. Copyright (c) IRF Group xung dao ®éng, vi ®iÒu khiÓn PIC16F877 cã kh¶ n¨ng tù Reset b»ng bé WDT, vµ cã thªm 256 byte EEPROM. 2.3. Sù tæ chøc bé nhí Pic16F877. Pic16F877 cã 3 khèi bé nhí. Bé nhí ch−¬ng tr×nh PLASH, bé nhí d÷ liÖu RAM, bé nhí EEPROM. 2.3.1. Sù tæ chøc bé nhí ch−¬ng tr×nh FLASH vµ Stack nhí. Vi ®iÒu khiÓn PIC16F877 cã mét bé ®Õm ch−¬ng tr×nh 13 bit vµ cã 8Kx14 tõ m· cña bé nhí ch−¬ng tr×nh FLASH, ®−îc chia thµnh 4 trang mçi trang 2Kx14 tõ m·. Khi Reset ®Þa chØ b¾t ®Çu thùc hiÖn ch¹y lµ 0000h, Vector ng¾t b¾t ®Çu 0004h. Stack cã 8 møc dïng ®Ó l−u ®Þa(PC) chØ lÖnh thùc hiÖn tiÕp theo sau lÖnh CALL vµ khi xÈy ra ng¾t. B¶n ®å bé nhí ch−¬ng tr×nh vµ c¸c ng¨n xÕp. 2.3.2. Sù tæ chøc bé nhí d÷ liÖu RAM RAM lµ bé nhí cã thÓ ®äc vµ ghi, nã kh«ng l−u d÷ liÖu khi mÊt ®iÖn, bé nhí RAM cña PIC16F877 cã 4 bank, mçi bank cã d¶i ®Þa chØ 0-7FH(128byte) trªn c¸c bank nh÷ng thanh ghi ®a môc ®Ých, nã ho¹t ®éng nh− mét RAM
  9. Copyright (c) IRF Group tÜnh.(General purpose register), vµ nh−ng thanh ghi chøc n¨ng ®Æc biÖt(Special function registers) ë vïng ®Þa chØ thÊp. BÝt RP1(Status ) vµ bit RP0(Status ) dïng ®Ó lôa chän bank lµm viÖc. RP1:RP0 Bank 00 0 01 1 10 2 11 3 H×nh ¶nh c¸c bank nh− sau: C¸c thanh ghi ®a môc ®Ých: (General Purpose Register), c¸c thanh ghi nµy ®−îc truy cËp b»ng c¶ hai c¸ch trùc tiÕp hoÆc gi¸n tiÕp qua thanh ghi FSR,tæng céng cã 368 byte. C¸c thanh ghi chøc n¨ng ®Æc biÖt. C¸c thanh ghi nµy ®−îc dïng bëi CPU vµ c¸c khèi ngo¹i vi ®Ó ®iÒu khiÓn sù ho¹t ®éng theo yªu cÇu cña thiÕt bÞ.
  10. Copyright (c) IRF Group C¸c thanh ghi nµy cã thÓ ®−îc ph©n lo¹i vµo hai bé phËn trung t©m (CPU) vµ ngo¹i vi. Sau ®©y lµ mét sè thanh ghi ®Æc biÖt quan träng. * C¸c thanh ghi tr¹ng th¸i STATUS: Cã 4 thanh ghi tr¹ng th¸i trªn 4 d·y, t¹i c¸c ®Þa chØ 03h, 83h, 103h, 183h. C¸c thanh ghi nµy cho biÕt tr¹ng th¸i cña phÇn tö l«gic to¸n häc ALU, tr¹ng th¸i RESET, tr¹ng th¸i cña c¸c bit lùa chän d·y thanh ghi cho bé nhí d÷ liÖu. Thanh ghi tr¹ng th¸i cã thÓ lµ kÕt qu¶ cña mét sè lÖnh nh− lµ víi mét sè thanh ghi kh¸c. NÕu thanh ghi tr¹ng th¸i lµ kÕt qu¶ bëi mét lÖnh mµ t¸c ®éng ®Õn c¸c bit Z, DC, C th× viÖc ghi vµo c¸c bit nµy lµ kh«ng thÓ. * C¸c thanh ghi lùa chän OPTION_REG: Cã hai thanh ghi lùa chän t¹i c¸c ®Þa chØ 81h vµ 181h, c¸c thanh ghi nµy cã thÓ ®äc hoÆc ghi, nã chøa ®ùng nhiÒu bit ®iÒu khiÓn kh¸c nhau ®Ó x¸c ®Þnh hÖ sè ®Þnh tr−íc TMR0/hÖ sè ®Þnh sau WDT, ng¾t ngoµi INT, TMR0, c¸c ®iÖn ¸p treo trªn cæng B * C¸c thanh ghi INTCON: Cã 4 thanh ghi INTCON t¹i c¸c ®Þa chØ 0Bh, 8Bh, 10Bh, 18Bh. C¸c thanh ghi nµy cã thÓ ®äc vµ ghi, nã chøa ®ùng nhiÒu sù cho phÐp vµ c¸c bit cê cho viÖc trµn thanh ghi TMR0, c¸c ng¾t thay ®æi cæng RB vµ ch©n c¸c ng¾t ngoµI RB0/INT. * Thanh ghi PIE1: T¹i ®Þa chØ 8Ch, chøa ®ùng c¸c bit cho phÐp riªng lÎ cho c¸c ng¾t ngo¹i vi. * Thanh ghi PIR1: T¹i ®Þa chØ 0Ch, chøa ®ùng c¸c bit cê riªng lÎ cho c¸c ng¾t ngo¹i vi. * Thanh ghi PIE2: T¹i ®Þa chØ 8Dh, chøa ®ùng c¸c bit cho phÐp riªng lÎ cho c¸c ng¾t ngo¹i vi CCP2, ng¾t xung ®ét tuyÕn SSP vµ EEPROM ghi c¸c ho¹t ®éng ng¾t . * Thanh ghi PIE2: T¹i ®Þa chØ 8Dh, chøa ®ùng c¸c cê bit cho c¸c ng¾t ngo¹i vi CCP2, ng¾t xung ®ét tuyÕn SSP vµ EEPROM ghi c¸c ho¹t ®éng ng¾t . * Thanh ghi PCON (Power Control): Chøa bit cê cho phÐp ph©n biÖt gi÷a viÖc Reset hÖ thèng (POR) ®Ó Reset MCLR ngo¹i víi Reset WDT. * PCL vµ PCLATH. Ch−¬ng tr×nh ®Õm chØ râ ®Þa chØ cña lÖnh tiÕp theo ®−îc thùc hiÖn. PC cã ®é réng 13 bit, byte thÊp ®−îc gäi lµ thanh ghi PCL, thanh ghi nµy cã thÓ ®äc hoÆc ghi. Byte cao ®−îc gäi lµ thanh ghi PCH, nã chøa c¸c bit PC vµ kh«ng trùc tiÕp ®äc hoÆc ghi mµ toµn bé sù cËp nhËp cña nã th«ng qua thanh ghi PCLATH. Khi reset 5 bit PCLATH n¹p tíi PCH, khi thùc hiÖn c¸c lÖnh CALL, GOTO 11 bit Ofcode vµ 2 bit PCLATH t¹o thµnh 13 bit n¹p vµo PC. Do vËy khi dïng lÖnh CALL, GOTO chó ®Õn hai bit PCLATH ®ã còng chÝnh lµ hai bit chØ c¸c trang cña bé nhí ch−¬ng tr×nh. H×nh ¶nh sù n¹p PCLATH tíi PC
  11. Copyright (c) IRF Group 2.3.3. C¸c trang bé nhí ch−¬ng tr×nh. PIC16F877 cã 8Kx14 PLASH c¸c lÖnh CALL, GOTO chØ cung cÊp 11 bit ®Þa chØ cho phÐp rÏ nh¸nh ®−îc 2k211-1>cña mét trang bé nhí ch−¬ng tr×nh 2 bit cao ®−îc cung cÊp bëi 2 bit 3,4 cña PCLATH do vËy tuú viÖc thiÕt lËp c¸c bit 3,4 cña PCLATH tr−íc khi lÖnh CALL, GOTO thùc hiÖn cho phÐp rÏ nh¸nh tíi c¸c trang bé nhí kh¸c nhau. Chó ý c¸c lÖnh RETURN, RETFIE kh«ng lµm thay ®æi PCLATH VÝ dô tõ trang 0 gäi chu¬ng tr×nh con ë trang 1 nh− sau ORG 0000h Goto main … main … BSF PCLATH,3 BCF PCLATH,4 CALL SUB1 BCF PCLATH,3 BCF PCLATH,4 … LOOP … GOTO LOOP … ORG 0X800H … SUB1 …
  12. Copyright (c) IRF Group RETURN … END 2.3.4. Truy cËp bé nhí RAM b»ng ®Þa chØ trùc tiÕp, gi¸n tiÕp. * VÝ dô ®äc « nhí 0xE0 b»ng ®Þa chØ trùc tiÕp … BSF STATUS,RP0 ;chän bank 1 BCF STATUS,RP1 MOVF 0XE0,W ;copy « nhí 0xE0(ë bank 1) tíi W … BCF STATUS,RP0 ;chän bank0 BCF STATUS,RP1 MOVF 0X30,W ;copy « nhí 0x30(ë bank 0) tíi W … * Truy cËp RAM b»ng ®Þa chØ gi¸n tiÕp Thanh ghi FSR chØ ra ®Þa chØ(0->0XFF) « nhí cÇn truy cËp, thanh ghi INDF cho néi dung « nhí truy cËp, bit IRP thanh ghi STATUS chØ ra bank truy cËp vÝ dô xo¸ c¸c « nhí tõ ®Þa chØ 0x20-0xFF … MOVLW 0X1A MOVWF FSR BCF STATUS,IRP ;bank 0
  13. Copyright (c) IRF Group LOOP INCF FSR, F CLRF INDF MOVF FSR, W XORLW 0XFF BTFSS STATUS, ZR GOTO LOOP … 2.3.5. Bé nhí d÷ liÖu EEPROM vµ bé nhí ch−¬ng tr×nh FLASH. C¸c bé nhí nµy cã thÓ ®äc vµ ghi trong khi c¸c ho¹t ®éng vÉn diÔn ra b×nh th−êng. Bé nhí d÷ liÖu kh«ng trùc tiÕp s¾p xÕp d÷ liÖu trªn c¸c thanh ghi d÷ liÖu cßn trèng. Thay v× ®ã lµ ®¸nh c¸c ®Þa chØ gi¸n tiÕp qua c¸c thanh ghi chøc n¨ng ®Æc biÖt. Cã 6 thanh ghi SFR dïng ®Ó ®äc vµ ghi bé nhí ch−¬ng tr×nh vµ bé nhí d÷ liÖu EEPROM ®ã lµ c¸c thanh ghi: EECON1 EEDATH EECON2 EEADR EEDATA EEADRH Bé nhí d÷ liÖu EEPROM cho phÐp ®äc vµ ghi c¸c byte. Khi cã t¸c ®éng tíi khèi bé nhí d÷ liÖu. Thanh ghi EEDATA gi÷ 8 bit d÷ liÖu ®Ó ®äc/ghi vµ thanh ghi EEADR gi÷ ®Þa chØ vÞ trÝ cña EEPROM ®−îc truy cËp. C¸c thanh ghi EEDATH vµ EEADRH kh«ng ®−îc sö dông ®Ó truy cËp d÷ liÖu EEPROM. C¸c thiÕt bÞ nµy cã tíi 256 byte cña d÷ liÖu EEPROM víi ®Þa chØ tõ 00h tíi FFh. Bé nhí d÷ liÖu EEPROM ®−îc xÕp vµo lo¹i cao cho c¸c chu tr×nh xo¸/ghi. Thêi gian ®−îc ®iÒu khiÓn bëi mét bé ®Þnh thêi trªn chip. Thêi gian ghi sÏ thay ®æi cïng víi ®iÖn thÕ vµ nhiÖt ®é. Bé nhí ch−¬ng tr×nh cho phÐp ®äc vµ ghi c¸c kÝ tù. Khi t¸c ®éng ®Õn khèi ch−¬ng tr×nh nhí, c¸c thanh ghi EEDATH, EEDATA cã d¹ng 2 byte kÝ tù gi÷ 14 bit d÷ liÖu ®Ó ®äc/ghi vµ c¸c thanh ghi EEADRH, EEADR cã d¹ng hai bit tõ m· víi 13 bit ®Þa chØ cña vÞ trÝ EEPROM ®−îc truy cËp. Nh÷ng thiÕt bÞ nµy cã thÓ cã tíi 8K tõ m· cña ch−¬ng tr×nh EEPROM víi mét ®Þa chØ giíi h¹n tõ 0h tíi 3FFh. * Thanh ghi EEADR. Thanh ghi ®Þa chØ cã thÓ ®¸nh ®Þa chØ lín nhÊt lµ 256 Byte cña d÷ liÖu EEPROM hoÆc lín nhÊt lµ 8K kÝ tù cña ch−¬ng tr×nh FLASH. Khi lùa chän gi¸ trÞ mét ®Þa chØ ch−¬ng tr×nh, byte MS cña ®Þa chØ sÏ ®−îc ghi vµo thanh ghi EEADRH vµ byte LS ®−îc ghi vµo thanh ghi EEADR. Khi lùa chän mét gi¸ trÞ ®Þa chØ d÷ liÖu, chØ cã byte LS cña ®Þa chØ ®−îc ghi tíi thanh ghi EEADR. * C¸c thanh ghi EECON1 vµ EECON2. EECON1 lµ thanh ghi ®iÒu khÓn cho viÖc nhËp d÷ liÖu bé nhí. EECON2 kh«ng ph¶I lµ thanh ghi vËt lý. Khi ®äc thanh ghi EECON2 sÏ ®äc toµn bé lµ 0. Thanh ghi EECON2 ®ù¬c sö dông dµnh riªng cho viÖc ghi mét c¸ch tr×nh tù vµo bé nhí.
  14. Copyright (c) IRF Group Bit ®iÒu khiÓn EEPGD x¸c ®Þnh nÕu viÖc nhËp d÷ liÖu sÏ lµ nhËp mét ch−¬ng tr×nh hoÆc nhËp mét bé nhí d÷ liÖu. Khi xo¸, mét sè ho¹t ®éng tiÕp theo sÏ ho¹t ®éng trªn bé nhí d÷ liÖu. Khi set, mét sè ho¹t ®éng tiÕp theo sÏ ho¹t ®éng trªn bé nhí ch−¬ng tr×nh. C¸c bit ®iÒu khiÓn RD vµ WR kÝch ho¹t c¸c ho¹t ®éng ®äc vµ ghi theo thø tù. Trong phÇn mÒm nh÷ng bit nµy kh«ng thÓ bÞ xo¸, chØ ®−îc set. Chóng bÞ xo¸ trong phÇn cøng khi mµ c¸c ho¹t ®éng ®äc hoÆc ghi hoµn thµnh. ViÖc kh«ng thÓ xo¸ bit WR trong phÇn mÒm ng¨n ngõa sù kÕt thóc bÊt ngê hoÆc kÕt thóc sím cña mét ho¹t ®éng ghi. 2.3.6. §äc bé nhí d÷ liÖu EEPROM. §Ó ®äc mét vÞ trÝ bé nhí d÷ liÖu, ta ph¶i ghi ®Þa chØ vµo thanh ghi EEADR, xo¸ bit ®iÒu khiÓn EEPGD (EECON1) sau ®ã set bit ®iÒu khiÓn RD (EECON1). D÷ liÖu vÉn tån t¹i trªn nhiÒu lÖnh tiÕp theo ë trªn thanh ghi EEDATA, do ®ã nã cã thÓ ®−îc ®äc bëi lÖnh tiÕp theo. EEDATA sÏ gi÷ gi¸ trÞ nµy cho tíi khi cã ho¹t ®éng ®äc d÷ liÖu kh¸c hoÆc lµ tíi khi ®−îc ghi. VÝ dô: §äc d÷ liÖu EEPROM. BSF STATUS, RP1 ; BCF STATUS, RP0 ; Chän d·y 2 MOVF ADDR, W ; §Þa chØ bé nhí d÷ liÖu ®Ó ®äc MOVWF EEADR ; BSF STATUS, RP0 ; D·y 3 BCF EECON1, EEPGD ; ChuyÓn tíi bé nhí d÷ liÖu BSF EECON1, RD ; b¾t ®Çu ho¹t ®éng ®äc BCF STATUS, RP0 ; D·y 2 MOVF EEDATA, W ; W = EEDATA 2.3.7. Ghi vµo bé nhí d÷ liÖu EEPROM. §Ó ghi vµo bé nhí EEPROM th× ®Çu tiªn ®Þa chØ ph¶i ®−îc ghi vµo thanh ghi EEADR vµ d÷ liÖu ghi vµo thanh ghi EEDATA, vµ tr×nh tù ®−îc tiÕn hµnh nh− ë vÝ dô sau: VÝ dô: Ghi d÷ liÖu EEPROM. BSF STATUS, RP1 ; BSF STATUS, RP0 ; D·y 3 BTFSC EECON1, WR ; §îi cho GOTO $-1 ; viÖc ghi kÕt thóc BCF STATUS, RP0 ; D·y 2 MOVF ADDR, W ; §Þa chØ MOVWF EEADR ; ghi vµo EEADR MOVF VALUE, W ; d÷ liÖu MOVWF EEDATA ; ghi vµo EEDATA BSF STATUS, RP0 ; D·y 3 BCF EECON1, EEPGD ; Con trá tíi bé nhí d÷ liÖu
  15. Copyright (c) IRF Group BSF EECON1, WREN ; Cho phÐp ghi chØ khi c¸c ng¾t kh«ng cho phÐp BCF INTCON, GIE ; MOVLW 0x55 ; ghi 55h tíi MOVWF EECON2 ; EECON2 MOVLW 0xAA ; ghi AAh tíi MOVWF EECON2 ; EECON2 BSF EECON1, WR ; B¾t ®Çu ho¹t ®éng ghi chØ khi c¸c ng¾t cho phÐp BSF INTCON, GIE ; NÕu dïng c¸c ng¾t otherwise discard BCF ECON1,WREN ; kh«ng thÓ ghi 2.3.8. §äc ch−¬ng tr×nh FLASH. §äc mét vÞ trÝ bé nhí ch−¬ng tr×nh cã thÓ ®−îc thùc hiÖn bëi viÖc ghi 2 byte ®Þa chØ vµo c¸c thanh ghi EEADR vµ EEADRH, set bit ®iÒu khiÓn EEPGD (EECON1) vµ sau ®ã set bit ®iÒu khiÓn RD (EECON1). ChØ khi bit ®iÒu khiÓn ®äc ®−îc set, vi xö lý sÏ sö dông chu tr×nh lÖnh thø hai ®Ó ®äc d÷ liÖu. D÷ liÖu sÏ cã trong chu tr×nh thø 3, trong thanh ghi EEDATA vµ EEDATH, do ®ã nã cã thÓ ®−î ®äc lµ hai byte trong c¸c lÖnh tiÕp theo. D÷ liÖu cã thÓ ®−îc ®−a ra ngoµi cña EEDATH:EEDATA b¾t ®Çu víi lÖnh thø 3 sau lÖnh BSF EECON1, RD. Vµ hai thanh ghi EEDATA vµ EEDATH sÏ gi÷ gi¸ trÞ nµy cho tíi khi cã ho¹t ®éng ®äc mét gi¸ trÞ kh¸c hoÆc cã ho¹t ®éng ghi. VÝ dô: BSF STATUS, RP1 ; BCF STATUS, RP0 ; Bank 2 MOVF ADDRL, W ; Write the MOVWF EEADR ; address bytes MOVF ADDRH,W ;for the desired MOVWF EEADRH ; address to read BSF STATUS, RP0 ; Bank 3 BSF EECON1, EEPGD ;Point to Program memory BSF EECON1, RD ;Start read operation NOP ;Required two NOPs NOP ; BCF STATUS, RP0 ;Bank 2 MOVF EEDATA, W ;DATAL = EEDATA MOVWF DATAL ; MOVF EEDATH,W ;DATAH = EEDATH MOVWF DATAH ; 2.3.9. Ghi tíi FLASH. ghi mét vÞ trÝ bé nhí ch−¬ng tr×nh cã thÓ ®−îc thùc hiÖn bëi viÖc ghi 2 byte ®Þa chØ vµo c¸c thanh ghi EEADR vµ EEADRH, ghi d÷ liÖu 13 bit vµo 2 thanh ghi EEDATA vµ EEDATH theo vÝ dô sau.
  16. Copyright (c) IRF Group VÝ dô: BSF STATUS, RP1 ; BCF STATUS, RP0 ; Bank 2 MOVF ADDRL, W ; ghi ®Þa chi MOVWF EEADR ; MOVF ADDRH,W ; MOVWF EEADRH ; MOVF VALUEL,W ; ghi d÷ liÖu MOVWF EEDATA MOVF VALUEH,W MOVWF EEDATH BSF STATUS, RP0 ; Bank 3 BSF EECON1, EEPGD ;Point to Program memory BSF EECON1, WREN ;enable write operation BCF INTCON,GIE ; cÊm ng¾t nÕu ng¨t cho phÐp MOVLW 0x55 ; ghi 55h tíi MOVWF EECON2 ; EECON2 MOVLW 0xAA ; ghi AAh tíi MOVWF EECON2 ; EECON2 BSF EECON1,WR NOP NOP BCF EECON1, WREN ;disable write operation BSF INTCON,GIE ; ng¾t ho¹t nÕu ng¨t cho phÐp 2.4. Cæng vµo ra Mét sè ch©n cña c¸c cæng vµo/ra ®−îc tÝch hîp víi mét sè hµm cã thÓ thay ®æi ®Ó phï hîp víi nh÷ng thiÕt bÞ ngo¹i vi. Nh×n chung khi thݪt bÞ ngo¹i vi ho¹t ®éng, c¸c ch©n cã thÓ kh«ng sö dông víi môc ®Ých lµm ch©n vµo ra. 2.4.1. Cæng A vµ thanh ghi TRISA Cæng A lµ cæng hai chiÒu víi ®é réng ®−êng truyÒn lµ 6 bit. §Ó ®iÒu khiÓn viÖc truy xuÊt d÷ liÖu ng−êi ta dïng thanh ghi TRISA . NÕu ®Æt bÝt TRISA = 1 th× lóc nµy cæng A sÏ t−¬ng øng cã c¸c ch©n lµ ch©n vµo .NÕu xo¸ bÝt TRISA = 0 th× lóc nµy cæng A sÏ t−¬ng øng cã c¸c ch©n lµ ch©n ra. ViÖc ®äc cæng A chÝnh lµ ®äc tr¹ng th¸i cña c¸c ch©n, trong khi ®ã viÖc viÕt ph¶i qua viÖc viÕt c¸c chèt cña cæng. C¸c ch©n cña cæng A chñ yÕu ®−îc sö dông víi môc ®Ých chÝnh lµ nhËn tÝn hiÖu t−¬ng tù hoÆc lµm c¸c ch©n vµo ra. Riªng ch©n RA4 cã thÓ ®a hîp víi ch©n vµo bé Timer 0 vµ khi ®ã nã trë thµnh ch©n RA4/T0CKI. Ch©n nµy nh− mét ®Çu vµo cña Schmitt Trigger vµ nã më ®Çu ra. C¸c ch©n kh¸c cña cæng A lµ ch©n vµo víi bé TTL. ViÖc ®iÒu khiÓn c¸c ch©n nµy th«ng qua viÖc ®Æt hay xo¸ c¸c bÝt cña thanh ghi ADCON1. Thang ghi TRISA ®iÒu khiÓn trùc tiÕp c¸c ch©n cña cæng A,
  17. Copyright (c) IRF Group khi sö dông c¸c ch©n nµy ®Ó nhËn tÝn hiÖu t−¬ng tù vµo ta ph¶i ch¾c ch¾n r»ng c¸c bÝt cña thanh ghi TRISA ®· ®−îc ®Æt råi S¬ ®å khèi ch©n RA3:RA0 vµ ch©n RA5 vµ cña ch©n RA4/TOCKI cña cæng A 2.4.2. Cæng B vµ thanh ghi TRISB Cæng B lµ cæng hai chiÒu víi ®é réng ®−êng truyÒn lµ 8 bit.T−¬ng øng víi nã ®Ó ®iÒu khiÓn trùc tiÕp d÷ liÖu ta sö dông thanh ghi TRISB. NÕu ®Æt bÝt TRISB = 1 th× lóc nµy c¸c ch©n cña cæng B ®−îc ®Þnh nghÜa lµ ch©n vµo. NÕu xo¸ bÝt TRISB = 0 th× lóc nµy c¸c ch©n cña cæng B ®−îc ®Þnh nghÜa lµ ch©n ra. Néi dung cña chèt ra cã thÓ chän trªn mçi ch©n. Cã 3 ch©n cña cæng B cã thÓ ®a hîp víi c¸c ch−¬ng tr×nh vËn hµnh b»ng ®iÖn ¸p thÊp. §ã lµ c¸c ch©n sau: RB3/PGM, RB6/PGC, RB7/PGD. Sù thay ®æi ho¹t ®éng cña nh÷ng ch©n nµy ®−îc miªu t¶ ë trong phÇn ®Æc tÝnh næi bËt. Mçi ch©n cña cæng B cã mét kh¶ n¨ng dõng bªn trong nh−ng yÕu. §iÒu nµy ®−îc tr×nh bµy bëi viÖc xo¸ bÝt RBPU (bÝt 7 cña thanh ghi OPTION_REG). Kh¶ n¨ng dõng nµy sÏ tù ®éng t¾t ®i khi c¸c ch©n cña cæng ®−îc ®Þnh nghÜa lµ ch©n ra. Kh¶ n¨ng dõng nµy sÏ tù ®éng mÊt ®i khi ta RESET. Bèn ch©n cña cæng B, tõ RB7 ®Õn RB4 cã ®Æc tÝnh lµ ng¾t khi thay ®æi tr¹ng th¸i. ChØ nh÷ng ch©n ®−îc ®Þnh d¹ng lµ nh÷ng ch©n vµo th× ng¾t nµy míi tån t¹i. Mét vµi ch©n RB7:RB4 ®−îc ®Þnh d¹ng nh− ch©n ra no thi hµnh ng¾t trªn sù thay ®æi so s¸nh. Ch©n vµo RB7:RB4 ®−îc so s¸nh víi gi¸ trÞ cò cña chèt ë lÇn ®äc cuèi cïng cña cæng B.
  18. Copyright (c) IRF Group Sù ghÐp ®«i kh«ng khíp ch©n ra cña RB7:RB4 b»ng lÖnh OR lµm ph¸t ra ng¾t víi cê bÝt RBIF cña thanh ghi INTCON. Ng¾t nµy cã thÓ khëi ®éng thiÕt bÞ tõ tr¹ng th¸i SLEEP. S¬ ®å khèi cña ch©n RB3 §Õn RB0 , ch©n RB7 : RB4 cña Cæng B 2.4.3. Cæng C vµ thanh ghi TRISC Cæng C lµ cæng hai chiÒu víi ®é réng ®−êng truyÒn lµ 8 bit .T−¬ng øng víi viÖc ®iÒu khiÓn nã lµ thanh ghi TRISC. NÕu ®Æt bÝt TRISC = 1 th× t−¬ng øng víi ch©n cña cæng C lµ ch©n vµo. NÕu ta xo¸ bÝt TRISC = 0 th× t−¬ng øng víi nã ch©n cña cæng C lµ ch©n ra . §Æt néi dung cña chèt ra cã thÓ ®Æt trªn ch©n chän. Cæng C ®a hîp víi viÖc vËn hµnh thiÕt bi ngo¹i vi. Ch©n cña cæng C th«ng qua bé ®Öm Schmitt Trigger ®Çu vµo. Khi chÕ ®é I2C ho¹t ®éng, th× c¸c ch©n cæng PORTC cã thÓ ®−îc s¾p xÕp víi møc I2C th−êng hoÆc víi møc SMBUS b»ng c¸ch sö dông bit CKE (SSPSTAT) lµ bÝt 6 cña thanh ghi SSPSTAT. Khi vËn hµnh c¸c thiÕt bÞ ngo¹i vi b»ng viÖc x¸c ®Þnh bÝt TRIS cña mçi ch©n cæng C. Mét sè phÇn phô cã thÓ ghi ®Ì lªn bÝt TRISC lµm cho ch©n nµy trë thµnh ch©n ra, trong khi ®ã th× mét sè phÇn phô kh¸c l¹i ghi ®Ì lªn bÝt TRIS lµm cho ch©n nµy trë thµnh ch©n vµo. Tõ khi nh÷ng bit TRIS ghi ®Ì th× trong viÖc t¸c ®éng trong c¸c thiÕt bÞ ngo¹i vi lµ cã thÓ, nh÷ng lÖnh ®äc-söa- ghi (BSF, BCF, XORWF) víi thanh ghi TRISC nh− lµ n¬i göi tíi sÏ ®−îc tr¸nh. Ng−êi sö dông nªn ®Ò cËp tíi viÖc ph©n chia kÕt nèi c¸c thiÕt bÞ ngo¹i vi cho viÖc set chÝnh x¸c c¸c bit TRIS. S¬ ®å khèi ch©n RC RC< 5: 7 > vµ ch©n RC < 3: 4> cæng C
  19. Copyright (c) IRF Group 2.4.4. Cæng D vµ thanh ghi TRISD Cæng D cã 8 bÝt cã bé ®Öm ®Çu vµo Schmitt Trigger. Mçi ch©n ®−îc s¾p xÕp riªng lÎ nh− ®Çu vµo hoÆc ®Çu ra. Cæng D còng cã thÓ ®−îc s¾p xÕp nh− lµ mét cæng vi xö lý 8 bit (cæng phô song song) b»ng viÖc ®Æt bÝt ®iÒu khiÓn PSPMODE(TRISE) vµ trong chÕ ®é nµy vïng ®Öm ®Çu vµo lµ TTL. S¬ ®å khèi cæng D
  20. Copyright (c) IRF Group 2.4.5. Cæng E vµ thanh ghi TRISE Cæng E cã 3 ch©n lµ RE0/RD/AN5, RE1/WR/AN6, RE2/CS/AN7. C¸c ch©n nµy cã thÓ s¾p xÕp riªng lÎ lµ c¸c ®Çu vµo hoÆc c¸c ®Çu ra, vµ c¸c ch©n cã vïng ®Öm ®Çu vµo lµ c¸c m¹ch Schmitt Trigger. Cæng vµo/ra E trë thµnh ®Çu vµo ®iÒu khiÓn cho cæng vi xö lý khi bit PSPMODE(TRISE) ®−îc ®Æt. Vµ trong chÕ ®é nµy ph¶i ch¾c ch¾n r»ng c¸c bit TRISE ®−îc ®Æt (c¸c ch©n ®−îc ®Þnh d¹ng lµ c¸c ®Çu vµo sè), thanh ghi ADCON1 ph¶i ®−îc ®Þnh d¹ng cho viÖc sè vµo/ra vµ vïng ®Öm ®Çu vµo lµ TTL. C¸c ch©n cæng E còng ®−îc tÝch hîp víi c¸c ®Çu vµo t−¬ng tù vµ trong tr−êng hîp nµy c¸c ch©n sÏ ®äc lµ ‘0’. Thanh ghi TRISE ®iÒu khiÓn trùc tiÕp c¸c ch©n RE, ngay c¶ khi chóng ®−îc dïng lµ c¸c ®Çu vµo t−¬ng tù. S¬ ®å khèi cña cæng E :

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản