20
 TRƯNG I HC BÁCH KHOA HÀ NI KHOA IN T VI N THÔNG 00O00 BÁO CÁO BÀI TP L N MÔN VI X   TÀI MCH O NHIT VÀ CNH BÁO Thy giáo hư ng dn: ThS. Hàn Huy Dũng Sinh Viên thc hin:  Nguyn Th L i  ng  ình Tài  Nguyn Huy Hoàng  Ngô Thanh Xuân  ng c Cư ng L p : T2-K48 Hà Ni 05-2006

Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

  • Upload
    tuu-vu

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 1/20

 TRƯNG I HC BÁCH KHOA HÀ NI

KHOA IN T VIN THÔNG00O00

BÁO CÁO BÀI TP L N MÔN VI X LÝ

  TÀI 

MCH O NHIT VÀ CNH BÁO

Thy giáo hư ng dn: ThS. Hàn Huy DũngSinh Viên thc hin:

  Nguyn Th L i  ng  ình Tài  Nguyn Huy Hoàng  Ngô Thanh Xuân  ng c Cư ng

L p : T2-K48

Hà Ni 05-2006

Page 2: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 2/20

 Ch c năng ca tài

 o và hin th nhit ca môi trư ng   mt im bt kỳ trongkhong -400C n 1000C

  Báo ng khi nhit ca môi trư ng  trong mt khong nào ó mà

ta chn

PHN M  U

GI I THIU VK 8 BÍT PIC16F877 VÀ SO SÁNHV I VK 8051

Ngy nay, c¸c bé vi ®iÒu khiÓn ®ang  cã øng  dông  ngy cng réng  ri trong c¸c lÜnh 

vùc kü  t huË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  ̧thnh), b¶o mËt, tÝnh chñ ®éng  trong  c«ng viÖc... ngy cng ®ß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 hon ton cÊp thiÕt  mang  tÝnh thùc tÕ  cao. 

 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Ó  lm  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  vo  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 vo ra v  c¸c  bé  ®Þnh  thêi  ngoi  ®Ó   lm  cho  chóng   ho¹t   ®éng   ®− îc.  MÆc  dï  viÖc bæ  xung  c¸c  RAM,  ROM,  c¸c cæng  vo  ra  sÏ   lm  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ý ny  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 vo 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 ny 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 vo 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 vo 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í   ngoi,  sè   c¸c cæng vo ra hoÆc bé ®Þnh thêi cho nã. Víi sè  l− îng   RAM,  ROM  v sè  c¸c cæng vo ra cè  ®Þnh nh−  vËy l mét  mÆt  h¹n chÕ  (kÐm linh ho¹t)  x ong  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  ̧thnh, 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  

Page 3: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 3/20

®− îc s¶n  xuÊt  ra bëi c¸c hng s¶n  xuÊt  chÝp kh¸c nhau. 

 Nh÷ng  yªu cÇu ®Ó  lùa chän mét  bé vi  ®iÒu khiÓn l: 

+  §¸p  øng   nhu  cÇu  tÝ nh  to¸n  cña  bi  to¸n  mét   c¸ch  hiÖu  qu¶  vÒ   mÆt   gi  ̧thnh 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. 

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 bi to¸n vÒ  mÆt  c«ng suÊt  tÝ nh to¸n, gi  ̧thnh 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 no 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 bi 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 ny ®Æ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 vo  –  ra, bé ®Þnh thêi, sè  ng¾t  trªn chÝp. +  Kh¶ n¨ng  dÔ  dng n©ng  cÊp cho hiÖu suÊt  cao hoÆc gi¶m c«ng suÊt   tiªu thô. +  Gi¸ thnh cho mét  ®¬n vÞ: §iÒu ny quan träng quyÕt  ®Þnh gi¸ thnh cuèi cïng  cña 

s¶n  phÈm m mét  bé vi ®iÒu khiÓn ®− îc sö  dông. 

 Bé Vi ®iÒu khiÓn 8 bit   PIC16F877   §Æ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å  vo 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Ý  ny +  Kh¶ n¨ng  ng¾t  ( lªn tíi 14 ng uån ng¾t  trong  v ng¾t  ngoi ) + Ng¨n nhí   Stack  ®− îc  ph©n chia lm 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) 

Page 4: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 4/20

 

+  Bé ®Õm  xung   thêi gian (W  DT) víi nguån dao ®éng   trªn chÝp (nguåndao ®é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  /EEPRO M nguån møc thÊp ,tèc ®é cao. +  ThiÕt  kÕ  hon ton 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 +  Dy 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 u A víi nguån 3V,  32 kHz < 1 u 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 ngoi. +  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  I  2C(chñ/phô) +  Bé  truyÒn nhËn  t h«ng   tin ®ång  bé,  dÞ bé(USAR T/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.

Page 5: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 5/20

  S¬  ®å  c¸c ch©n  PIC16F87X.

Page 6: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 6/20

 

 S¬  ®å  khèi bé vi ®iÒu khiÓn  PIC16F87X 

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  ny: 

+   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 ngoi (ROM  ngoi). + Cã kh¶ n¨ng  qu¶n lý ®− îc 64  KB bé nhí  d÷  liÖu ngoi (RAM  ngoi) + 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  ny ®  ®− îc ®Þa chØ  ho¸) + Cã 5 ng¾t  +   Dïng nguån dao ®éng  ngoi

 +   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 vo/ra hoÆc l cæng chuyÓn d÷  liÖu v ®Þa chØ. 

Page 7: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 7/20

*Cæng   P1:  L cæng vo/ra cã 8 ch©n (8 bit). *Cæng   P2: Cã 8 ch©n (8 bit) l cæng  vo/ra hoÆc l cæng chuyÓn d÷  liÖu v 

®Þa chØ. *Cæng   P3: Cã 8 ch©n, cæng ny cã  thÓ   l cæng vo/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ÒnnhËn d÷  liÖu truyÒn th«ng  nèi tiÕp, ®äc v ghi c¸c bé nhí  ngoi… 

 S¬  ®å  khèi cña V§K  8051

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  RAM   Bé ®Þnh thêi C¸c ch©n vo ra Cæng nèi tiÕp Nguån ng¾t  

 4K  byte 128 byte  2  32 1 6 

 ROM  trªn chÝp  RAM   Bé ®Þnh thêi C¸c ch©n vo ra Cæng nèi tiÕp Nguån ng¾t  

8K   368 byte  3  40  2 14 

Ngoi 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 ny 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  ny  sÏ   tr¸nh  ®− îc  nh÷ng   sai  sè   kh«ng   cÇn  thiÕ t   trong   viÖc  t¹o xung ng, V K PIC16F877 có kh  n ăng t  RESET b ng b  W T, và có thêm 256 byte EEPROM 

Page 8: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 8/20

 PHN I

THIT K PHN C NG 

Sơ   khi ca mch

♣ Khi x lý nhit và khi ADC : Là mt sensor nhit LM335 và mt b ADC 10 bitSơ   ca sensor nhit LM335

LM335 c u vào là nhit môi trư ng và u ra là din áp  Chân 1 là chân mang du “-”, thư ng ư c ni t khi phân

cc  Chân 2 là chân mang du “+”, ư c ni v i V+ thông qua mt

in tr và chân 2 cũng là u ra ca LM335  Chân 3 là chân mang ch “ADJ”, thư ng ư c ni v i mt

bin tr   iu chnh nhit ban u cho phù h p

Ngư i ta thư ng phân cc cho nó như sau:

Nhit  môi trư ng

Khi x lýnhit  

Khi hinth và cnh

báo

KhiADC

Khi x lývào ra

Khi x lý chung

Page 9: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 9/20

 Còn b bin i ADC , ta dùng ADC ca PIC là ADC 10 bít

 Nguyên lý làm vic và các công th c tính toán:

o nhit môi trư ng ti mt im thông qua sensor nhit LM335 (Chitit v LM335 xem thêm trong datasheet). LM335 là sensor o nhit, o ư cnhit trong khong t -400C n 1000C, u ra là 10mV/K. u ra này ư cưa vao chân Analog ca b ADC (C th   ây là ưa vào Chân AN0 ).Vì   âylà tính theo K nên  o C ta cn có công thc chuyn i giá tr t  Ksang C.  ây ta dùng ADC ca PIC là 10 bit => max=1023, Vref =Vcc, gi thitlà Vcc = 5V nên ti 0 C hay 273K thì u ra ca LM335 có giá tr là 2.73V.Như vy khi mun tính toán ra C ta cn phi tr i mc in áp là 2.73V. Lyví d: nhit là 30 C = 303K -> out = 303 x 10mV/K =3.03V. Ta tính toángiá tr c ư c t ADC 10 bit (ADC_Vin  là in áp ưa vào chân ADC ca PIC,ADC_value là giá tr u ra ca ADC dư i dng thp phân):

ADC_Vin = 5V => ADC_value = 1023ADC_Vin = 2.73V => ADC_value = (1023/5)x2.73=558.558 (tươ ng  ng

0 C)ADC_Vin = 3.03V => ADC_value = (1023/5)x3.03=619.938 (tươ ng  ng

30 C)Mt khác do V_ref = Vcc =5V nên ADC_value=1 tươ ng ng 5/1023 =

4.887mV(~ 5mV). Trong khi ó LM335 cho ra in áp là 10mV/1K nên giá tr ADCthay i 1 ơ n v thì nhit phi thay i là 0.5K (hay gn 5mV) T ó ta cócông thc y sau tính giá tr  C:

C=(ADC_value - 558.558)x(4.887mV/10mV)=> C=(ADC_value - 558.6)/ 2.046

♣Khi hin th và cnh báo

Ta dùng LED 7 thanh hin th nhit ca môi trư ng và dùng loa  phát ra cnh báo khi nhit môi trư ng   trong khong nguy him. C th trong mch này ta dùng Hai LED 7 thanh Anot chung (chúng ta cũng có th dùng LCD thay th)

Sau ây là sơ   mch nguyên lý:

Page 10: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 10/20

Sơ   nguyên lý

LM335Z

    1

    2

3

10K

        4 5

    7    9    1    0

    2        1 3

        8 6

      a b

   c    d   e

    f   g

    V    C    C

    V   c   c

    D    O    T

11

12

21

22

23

24

25

26

27

28

14

13

16

17

40

39

38

37

36

35

34

33

4

5

6

7

8

9

10

29

18

19

20

1

2

3

15

30

32

31

VDD

VSS

RD2/PSP2

RD3/PSP3

RC4/SDI/SDA

RC5/SDO

RC6/TX/CK

RC7/RX/DTRD4/PSP4

RD5/PSP5

OSC2/CLKO

OSC1/CLKI

RC1/CCP2

RC2/CCP1

RB7/PGD

RB6/PGC

RB5

RB4

RB3/PGM

RB2RB1

RB0/INT

RA2/AN2

RA3/AN3

RA4

RA5/AN4

RE0/AN5

RE1/AN6

RE2/AN7

RD6/PSP6

RC3/SCK/SCL

RD0/PSP0

RD1/PSP1

VPP

RA0/AN0

RA1/AN1

RC0/T1CKI

RD7/PSP7

VDD1

VSS1

       H       I

A1015

4K7

SPEAKER

4K7

HI

4K7

22pF

A1015

22pF

SW2

    S    W

_    P    B

_    S    P    S    T

       H       I

       H       I

10MHz

VR10K

1K

Q3

PIC16F877A

H I     

H I     

        4 5

    7    9    1    0

    2        1 3

        8 6

      a b

   c    d   e

    f   g

    V    C    C

    V   c   c

    D    O    T

 

Gii thích sơ   nguyên lý:

Các Transistor A1015 (chúng ta gi là các èn T1, T2, T3) ư c cp ngun 5V   chân E , chân C ca T1 và T2 ư c ni v i 2 chân Vcc ca LED 7 thanh, cácchân B ca T1, T2 ư c ni ln lư t v i các chân 20 và 19 ca VKPIC16F877A (c th là ni v i các chân RD0 và RD1 là các chân output caPORTB). Khi RD1  mc thp thì u C ca èn T1 s  mc cao lúc ó LED 1

ư c phân cc úng và có th sáng, ngư c li thì LED 1 b phân cc sai lúc ó nós không sáng. Tươ ng t cho chân RD0 và LED còn li. èn T3 cũng như vynhưng thay LED bng mt cái Loa (và chân output là chân RE0 ca PORTE)dùng cnh báo .u ra ca sensor nhit LM335 s ư c ưa vào chân 2 ca VK (là chân AnalogAN0 ca ADC 10 bít tích h p sn trong VK PIC, chân AN0 này s ư c thitlp là chân vào Analog ca ADC) .Cui cùng là VK PIC16F877A,   ây ta ch nói n nhng tính năng mà ta dùngcho tài này, nó là mt con VK tích h p rt nhiu chc năng mà chúng ta cóth tham kho thêm trong Datasheet ca nó. Nhìn vào sơ   nguyên lý ta có th 

thy ngay rng các chân 19, 20 là các chân output (ã ư c nói  trên) ,ngoài ra

T1 T2

T3

Page 11: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 11/20

còn có các chân 33 n 39 cũng là các chân output (chính là các bít RB0 nRB6 ư c thit lp là các chân output ca PORTB), các chân này ư c ni v iLED 7 thanh hin th nhit , khi LED ư c phân cc úng thì nu các chânnày  mưc cao thì LED s sáng. Chân 2 là chân Input, là chân vào Analog caADCCác chân 11,12,31,32 là các chân cp ngun cho VK, riêng chân Vpp (chân 1)

chính là chân RESET. Chân 13, 14 là các chân dùng cho vic thiêt lp xung Clockcho VK

Page 12: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 12/20

Page 13: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 13/20

PORTB=a[high]; // LED 2 RD1=0;delay_ms(2);RD1=1;

} // Chươ ng trình con thc hin vic báo ng 

void bao_dong(){int8 i;for(i=0;i<200;i++){

RE0=0;delay_us(100);RE0=1;delay_us(100);

} // Kêu 200 ting } // Chươ ng trình chính void main() {

float value;int16 i;

trisb = 0x00; // thit lp các chân ca PORTB là các chân Outputtrisc = 0x00; // thit lp các chân ca PORTC là các chân Outputtrisd = 0x00; // thit lp các chân ca PORTD là các chân Output trise = 0x00; // thit lp các chân ca PORTE là các chân Output trisa = 0xff; // thit lp các chân ca PORTa là các chân Intput portC = 0xff; // thit lp các chân ca PORTC xut ra in áp  mc cao portD = 0xff; // thit lp các chân ca PORTd xut ra in áp  mc cao

  // Thit lp cho ADC setup_adc(ADC_CLOCK_INTERNAL);  //Ch ra cách thc hot ng ca

ADC là th i // gian ly mu bng xung clock

 //Thit lâp.chân ly tín hiu Analog là chân AN0setup_adc_ports(AN0);setup_ADC_channel(0)

delay_us(10);  //Tr 10 usvalue=(float)read_adc();value = (value - 558.5)/2.048;convert_bcd((int8)value);i=0;

 // Vòng lp vô tn while(1){i++;value = (float)read_adc();

Page 14: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 14/20

value = (value - 558.5)/2.048; //for 5V supplyif (i==150) { convert_bcd((int8)value);i=0;}if(((int8)value > 40) || ((int8)value < 15)) bao_dong();display();}

}

-------------------------------------------------------------------------------------------------- Lư u ý:

●Ti sao khi gn a[low] =PORTB thì LED 1 li hin th giá tr ca low?B i vì mng hng s:

a[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};s tươ ng ươ ng v i mng giá tr các s nh phân như sau:a[10] ={11000000,11111001,10100100,10110000,10011001,10010010,10000010,11111000,10000000,10010000};K t phi qua trái (b qua s nh phân cui cùng b i vì ta không s dng chan

RB7 ca PORTB) các s nh phân này ch ra mc in áp  các thanha,b,c,d,e,f,g,h ca LEDTc là mng này tươ ng ng v i các giá tr hin th trên LED là các s:0,1,2,3,4,5,6,7,8,9

●Mt s các hàm trong CCS ã ư c s dng là:Hàm

delay_us(time)

delay_ms(time)

ví d : delay_us(2) ; //t o tr  2us

delay_ms(2); //t o tr  2ms

Hàm: setup_adc(ADC_CLOCK_INTERNAL);

hàm này dùng  xác nh cách th c hot ng ca b bi n  i ADC, c th  là xác nh th i gian l  y m u b ng mt xung clock 

Hàm:setup_adc_ports(AN0);

setup_ADC_channel(0)

các hàm này dùng xác nh chân ly tín hiu Analog là chân AN0

Còn ây là file nh ng ĩ a “def_877a.h” mà ta ã khai báo  trên:--------------------------------------------------------------------------------------------------- // register definitions

#define W 0#define F 1

 // register files#byte INDF =0x00#byte TMR0 =0x01

Page 15: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 15/20

#byte PCL =0x02#byte STATUS =0x03#byte FSR =0x04#byte PORTA =0x05#byte PORTB =0x06#byte PORTC =0x07

#byte PORTD =0x08#byte PORTE =0x09

#byte EEDATA =0x10C#byte EEADR =0x10D#byte EEDATH =0x10E#byte EEADRH =0x10F#byte ADCON0 =0x1F#byte ADCON1 =0x9F#byte ADRESH =0x9F

#byte ADSESL =0x9F

#byte PCLATH =0x0a#byte INTCON =0x0b#byte PIR1 =0x0c#byte PIR2 =0x0d#byte PIE1 =0x8c#byte PIE2 =0x8d

#byte OPTION_REG =0x81

#byte TRISA =0x85#byte TRISB =0x86#byte TRISC =0x87#byte TRISD =0x88#byte TRISE =0x89

#byte EECON1 =0x18C#byte EECON2 =0x18D

#byte SSPBUF =0x13

#byte SSPCON =0x14#byte SSPCON2 =0x91#byte SSPADD =0x93#byte SSPSTAT =0x94 // SSPCON bit#bit SSPWCOL = 0x14.7#bit SSPOV = 0x14.6#bit SSPEN = 0x14.5#bit SSPCKP = 0x14.4#bit SSPM3 = 0x14.3#bit SSPM2 = 0x14.2

Page 16: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 16/20

#bit SSPM1 = 0x14.1#bit SSPM0 = 0x14.0 // SSPSTAT bit#bit SSPSMP = 0x94.7#bit SSPCKE = 0x94.6#bit SSPDA = 0x94.5

#bit SSPP = 0x94.4#bit SSPS = 0x94.3#bit SSPRW = 0x94.2#bit SSPUA = 0x94.1#bit SSPBF = 0x94.0

 //DINH NGHIA BIT#bit ra5 =0x05.5#bit ra4 =0x05.4#bit ra3 =0x05.3

#bit ra2 =0x05.2#bit ra1 =0x05.1#bit ra0 =0x05.0

#bit rb7 =0x06.7#bit rb6 =0x06.6#bit rb5 =0x06.5#bit rb4 =0x06.4#bit rb3 =0x06.3#bit rb2 =0x06.2

#bit rb1 =0x06.1#bit rb0 =0x06.0

#bit rC7 =0x07.7#bit rC6 =0x07.6#bit rC5 =0x07.5#bit rC4 =0x07.4#bit rC3 =0x07.3#bit rC2 =0x07.2#bit rC1 =0x07.1

#bit rC0 =0x07.0#bit rD7 =0x08.7#bit rD6 =0x08.6#bit rD5 =0x08.5#bit rD4 =0x08.4#bit rD3 =0x08.3#bit rD2 =0x08.2#bit rD1 =0x08.1#bit rD0 =0x08.0

Page 17: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 17/20

#bit rE2 =0x09.2#bit rE1 =0x09.1#bit rE0 =0x09.0

#bit trisa5 =0x85.5

#bit trisa4 =0x85.4#bit trisa3 =0x85.3#bit trisa2 =0x85.2#bit trisa1 =0x85.1#bit trisa0 =0x85.0

#bit trisb7 =0x86.7#bit trisb6 =0x86.6#bit trisb5 =0x86.5#bit trisb4 =0x86.4

#bit trisb3 =0x86.3#bit trisb2 =0x86.2#bit trisb1 =0x86.1#bit trisb0 =0x86.0

#bit trisc7 =0x87.7#bit trisc6 =0x87.6#bit trisc5 =0x87.5#bit trisc4 =0x87.4#bit trisc3 =0x87.3

#bit trisc2 =0x87.2#bit trisc1 =0x87.1#bit trisc0 =0x87.0

#bit trisd7 =0x88.7#bit trisd6 =0x88.6#bit trisd5 =0x88.5#bit trisd4 =0x88.4#bit trisd3 =0x88.3#bit trisd2 =0x88.2

#bit trisd1 =0x88.1#bit trisd0 =0x88.0

#bit trise2 =0x89.2#bit trise1 =0x89.1#bit trise0 =0x89.0

 // INTCON Bits for C#bit gie = 0x0b.7#bit peie = 0x0b.6#bit tmr0ie = 0x0b.5

Page 18: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 18/20

#bit int0ie = 0x0b.4#bit rbie = 0x0b.3#bit tmr0if = 0x0b.2#bit int0if = 0x0b.1#bit rbif = 0x0b.0

 // PIR1 for C#bit pspif = 0x0c.7#bit adif = 0x0c.6#bit rcif = 0x0c.5#bit txif = 0x0c.4#bit sspif = 0x0c.3#bit ccp1if = 0x0c.2#bit tmr2if = 0x0c.1#bit tmr1if = 0x0c.0

 //PIR2 for C#bit cmif = 0x0d.6#bit eeif = 0x0d.4#bit bclif = 0x0d.3#bit ccp2if = 0x0d.0

 // PIE1 for C#bit adie = 0x8c.6#bit rcie = 0x8c.5#bit txie = 0x8c.4

#bit sspie = 0x8c.3#bit ccp1ie = 0x8c.2#bit tmr2ie = 0x8c.1#bit tmr1ie = 0x8c.0

 //PIE2 for C#bit osfie = 0x8d.7#bit cmie = 0x8d.6#bit eeie = 0x8d.4

 // OPTION Bits#bit not_rbpu = 0x81.7#bit intedg = 0x81.6#bit t0cs = 0x81.5#bit t0se = 0x81.4#bit psa = 0x81.3#bit ps2 = 0x81.2#bit ps1 = 0x81.1#bit ps0 = 0x81.0

 // EECON1 Bits

Page 19: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 19/20

#bit eepgd = 0x18c.7#bit free = 0x18C.4#bit wrerr = 0x18C.3#bit wren = 0x18C.2#bit wr = 0x18C.1#bit rd = 0x18C.0

 //ADCON0#bit CHS0 =0x1F.3#bit CHS1 =0x1F.4#bit CHS2 =0x1F.5

Page 20: Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

8/3/2019 Đo và cảnh báo nhiệt độ PIC16f877 [machdientu.net]

http://slidepdf.com/reader/full/do-va-canh-bao-nhiet-do-pic16f877-machdientunet 20/20

PHN TNG KT

1. Nhn xét kt qu nhn ưcNhit o dưc khá chun xác, tuy nhiên sai s vn còn khá ln

(ti mt C), iu này ta có th khc phc ưc bng cách dùng ba

LED hin th, lúc ó sai s s gim xung còn 0,1oC (bi vì ADCtrong con PIC này là 10 bít => giá tr nó xut ra ti 1023). Nu munchun xác hơn na ta có th dùng ADC ngoài có s bít cao hơn, hocdùng LCD hin th

ng dng ca tài rt rng rãi trong cuc sng, nht là trongcác nhà máy bia, các h thng làm lnh trong vic kim soát nhit

2.Hưng phát trin m rng tài:- Nâng cao chính xác hin th bng cách dùng ADC có phân giicao hơn (có th dùng ADC ngoài)- Thêm bàn phím giao tip có th thay i trc tip khong nhit theo dõi, cùng vi ó ta thêm vào LED 7 hin th hai giá tr nhit này- S dng EEPROM lưu giá tr nhit mà ngưi dùng thit lp, cácln thay i khác...- Ghép ni máy tính truyn giá tr nhit n máy tính- Ghép ni LCD và mt mch m thi gian thc (DS1307) ng vimi thi im chương trình s t ng chn khong thit lp nhit thích hp theo tng mùa, tng thi im nh trưc...

- S dng PID trong iu khin t ng kt hp vi các mch iukhin tăng gim nhiêt m bo nhit luôn bám theo mt giátr cho trưc, h n nh nhit (giá tr thay i là rt nh)