Top Banner

of 26

Huong Dan Lap Trinh PIC 16F877A

Oct 14, 2015

Download

Documents

ngocthieu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 1

    Bi 1. Khi qut vi iu khin.Vi iu khin (microcontroller_ thng c vit tt l uC, MCU) l mt mch tch hp, bn trong c cuto bi cc nhn x l, b nh v c kh nng lp trnh giao tip vi thit b ngoi vi. Cc b vi iu khinthng c s dng trong cc sn phm, thit b iu khin t ng, cc h thng iu khin t xa, v cch thng nhng.

    Cc thnh phn c bn ca vi iu khin:

    Hnh 1.1 Cu trc c bn mt vi iu khin PIC.

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 2

    B nh (Memory)B nh c s dng lu tr d liu v chng trnh.

    Hnh 1.2 B nh trong vi iu khin.

    Hnh 1.3 Cc thanh ghi trong b nh vi iu khin.

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 3

    n v x l trung tm-CPUL ni x l d liu: nhn, chia, cng, tr hay di chuyn d liu t b nh ny n b nh khc.

    Hnh 1.4 CPU trong vi iu khin.

    Bus.Cc ng dn c gi l ng bus. V vt l, n i din ca 8, 16, hay nhiu hn s lng dy trongmt ng bus. C hai loi bus: bus a ch v bus d liu.

    Hnh 1.5 Cc dng Bus.

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 4

    n v ng vo ng ra.Cc ng nhp xut ca vi iu khin c gi l cc port. C nhiu loi port: port ng nhp, port ng xut,hay port hai hng.

    Hnh 1.6 Cc n v nhp xut.

    Truyn thng ni tip.L dng truyn thng vi s lng ng dy truyn dn t, c th chng ta s thc hin s dng ba ngdy dn, v mt trong cc ng dy dn c s dng nh l ng truyn d liu, dy dn khc cs dng nh l ng nhn d liu, cn ng dn th ba c s dng nh mt ng chun cho c nhpv xut. D liu trn ng truyn l cc mc logic 0 v 1.

    Hnh 1.7 Truyn thng ni tip.

    B nh thi(Timer)

    Hnh 1.8 B nh thi.

    Tuy nhin, s dng trong cng nghip chng ta cn thm mt vi khi. Mt trong cc khi l khitimer m n quan trng i vi chng ta bi v n c th cho chng ta thng tin v thi gian, khong thi

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 5

    gian, nghi thc, n v c bn ca timer l b m t do (free-run counter), trong thc t n l mtthanh ghi m gi tr s ca n tng ln 1 trong cc khong thi gian bng nhau, nhn ly gi tr ca ntrong sut khong T1 v T2 v trn c s ca cc im khc nhau ca n chng ta c th quyt nh thigian tri qua bao lu. l mt phn quan trng ca vi iu khin.

    Watchdog.

    Mt yu cu cn ch l chc nng hon chnh ca vi iu khin sut thi gian chy ca n. Gi s rng khic mt tr ngi (iu ny thng xy ra trong cng nghip) vi iu khin ca chng ta ngng thc thichng trnh, hay t hn, n lm vic khng ng.

    Hnh 1.9 Watchdog.

    D nhin, nu iu xy ra vi my tnh, chng ta n gin ch vic reset n v n s tip tc lm vic. Tuynhin, khng c nt reset a vo vi iu khin v gii quyt vn ca chng ta. gii quyt vn , chng ta cn a ra mt khi c gi l watchdog. S tht khi ny l mt b m chy t do khc,ti chng trnh chng ta cn ghi mt bit 0 trong mi ln thc thi ng. Trong trng hp chng trnh bnghn, bit 0 s khng c ghi, v b m s reset vi iu khin t gi tr ti a ca n. N s lmchng trnh thc thi li. l thnh phn quan trng ca mi ln lp trnh c th nhn ra m khng cngim st.

    Chuyn i tng t sang s.

    Khi ny c chc nng h tr vi iu khin giao tip vi cc tn hiu ngi vi. Tn hiu tng t bn ngis c ly mu v lng t ha thnh 0 v 1 vi iu khin c th x l.

    Hnh 1.10 B ADC.

    Lp trnh cho vi iu khin.Vit chng trnh l mt cng vic c bit vi vi iu khin, l vic s dng cc ngn ng lp trnh to lpiu khin qu trnh hot ng cho vi iu khin.

    Lp trnh c th c thc hin trong mt vi ngn ng nh Assembler(hp ng), C v Basic, m n cs dng thng dng. Hp ng thuc v mc ngn ng cp thp vi kh nng lp trnh chm, nhng n schim khong b nh t v cho kt qu tt nht. Lp trnh trong ngn ng C th n d dng hn vit, ddng hiu, nhng thc thi chm hn so vi hp ng. Basic l d nht hc, v cu trc ngn ng ca n

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 6

    gn vi chng ta, nhng ging ngn ng C n cng chm hn hp ng trong vic thc thi. Trong nhiutrng hp, chng ta cn ch n yu cu v tc x l, kch c b nh la chn ngn ng.

    Hnh 1.11 Lp trnh v bin dch.

    lp trnh cho vi iu khin, chng ta cn c cc thnh phn: my tnh, phn mm bin dch (compiler), blp trnh (kit np). Phn mm bin dch s bin dch ngn ng lp trnh thnh file bin hoc l file hex. B lptrnh s truyn cc file bin(hay file hex) vo trong b nh chng trnh ca vi iu khin v lu tr didng m nh phn 0 v 1.

    Hnh 1.12 Qu trnh lp trnh, bin dch v np cho vi iu khin.

    Vi iu khin c kt ni vi thit b ngi vi. Mi khi c cp ngun, vi iu khin s thc hin cc thaotc theo chng trnh c thit lp iu khin cc thit b ngi vi.

    Mt s loi vi iu khin thng gp trn th trng hin nay:

    - Vi iu khin h 8051: AT89C51, AT89C52,.....- Vi iu khin h AVR: AT90S8515, AT90S8535, ATMega32,....- Vi iu khin PIC: 16F84, 16F877A, Pic18F, Pic24C, dsPic,....

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 7

    Bi 2. S lc PIC16F877A2.1 Gii thiu:PIC 16F877A c c im chnh nh sau:- C 5 Port xut nhp.- C 8 knh chuyn i ADC 10-bit.- C 2 knh PWM 10-bit.- C 256bytes b nh d liu EEPROM.- Ngoi ra c tch hp cc dng giao tip I2C, SPI, serial,....

    2.2 S chn v chc nng cc chn:

    Hnh 2.1 S chn PIC16F877A.

    Chc nng cc chn:Chn PPVMCRL / (1) c 2 chc nng:

    * MCRL : l ng vo Reset tch cc mc thp.* VPP: khi lp trnh cho PIC th ng vai tr l ng vo nhn in p lp trnh.

    Chn RA0/AN0(2) c 2 chc nng:* RA0: nhp/ xut s.* AN0: ng vo tng t knh th 0.

    Chn RA1/AN1(3) c 2 chc nng:* RA1: nhp/ xut s.* AN1: ng vo tng t knh th 1.

    Chn RA2/AN2/VREF-/CVREF (4)* RA2: nhp/ xut s.* AN2: ng vo tng t knh th 2.

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 8

    * VREF-: ng vo in p chun(thp) ca b A/D.* CVREF: in p tham chiu VREF ng ra b so snh.

    Chn RA3/AN3/VREF+ (5)* RA3: nhp/ xut s.* AN3: ng vo tng t knh th 3.* VREF+: ng vo in p chun(cao) ca b A/D.

    Chn RA4/T0CKI/C1OUT (6):* RA4: nhp/ xut s.* T0CKI: ng vo xung clock bn ngi cho Timer.* C1OUT: ng ra b so snh 1.

    Chn OUTCSSANRA 2//4/5 (7):* RA5: nhp/ xut s.* AN4: ng vo tng t knh th 4.

    * SS : ng vo chn la SPI ph.* C2OUT: ng ra b so snh 2.

    Chn RB0/INT (33):* RB0: nhp/xut s.* INT: ng vo nhn tn hiu ngt ngi.

    Chn RB1 (34), RB2 (35): nhp / xut s.Chn RB3/PGM(36)

    * RB3: nhp/ xut s.* PGM: Chn cho php lp trnh in p thp ICSP.

    Chn RB4 (37), RB5 (38): nhp / xut s.Chn RB6/PGC(39)

    * RB6: nhp/ xut s.* PGC: xung clock lp trnh ICSP.

    Chn RB7/PGD(40)* RB7: nhp/ xut s.* PGD: mch g ri v d liu lp trnh ICSP.

    Chn RC0/T1OCO/T1CKl (15):* RC0: nhp/ xut s.* T1OCO: ng vo b dao ng Timer1.* T1CKl: ng vo xung clock bn ngoi Timer1

    Chn RC1/T1OSI/CCP2 (16):

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 9

    * RC1: xut/ nhp s.* T1OSI: ng vo b dao ng Timer1.* CCP2: Ng vo Capture 2, ng ra Compare 2, ng ra PWM 2.

    Chn RC2/CCP1 (17):* RC2: xut/ nhp s.* CCP1: ng vo Capture 1, ng ra Compare 1, ng ra PWM1.

    Chn RC3/SCK/SCL (18):* RC3: xut/nhp s.* SCK: ng vo xung clock ni tip ng b/ ng ra ca ch SPI.* SCL: xung clock ch I2C.

    Chn RC4/SDI/SDA (23):* RC4: xut/nhp s.* SDI: d liu vo SPI.* SDA: d liu I2C.

    Chn RC5/SDO (24):* RC5: xut/ nhp s.* SDO: d liu ra SPI.

    Chn RC6/TX/CK (25):* RC6: xut/nhp s.* TX: truyn bt ng b USART.* CK: xung ng b USART.

    Chn RC7/RX/DT (26):* RC7: xut/nhp s.* RX: nhn bt ng b USART.* DT: d liu ng b USART.

    Chn RD0/PSP0 (19):* RD0: xut/ nhp s.* PSP0: d liu port slave song song.

    Cc chn: RD1/PSP1 (20), RD2/PSP2 (21), RD3/PSP3 (22), RD4/PSP4 (27), RD5/PSP5 (28),RD6/PSP6 (29), RD7/PSP7 (30) tng t nh trn.Chn 5//0 ANRDRE (8):

    * RE0: xut/nhp s.

    * RD : iu khin c port slave song song.* AN5: ng vo tng t 5.

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 10

    Chn 6//1 ANWRRE (9):* RE1: xut/nhp s.

    *WR : iu khin ghi port slave song song.* AN6: ng vo tng t 6.

    Chn 7//2 ANCSRE (10):* RE2: xut/nhp s.

    *CS : iu khin ghi port slave song song.* AN7: ng vo tng t 7.

    Chn OSC1/CLKI (13):* OSC1: ng vo dao ng thch anh.* CLKI: ng vo ngun xung bn ngoi.

    Chn OSC2/CLKO (14):* OSC2: ng ra dao ng thch anh.* CLKO: ch RC, ng ra ca OSC2, bng tn s ca OSC1, v chnh l tc chu k cu

    lnh.Chn VDD(11, 32) v VSS(12, 31): cc chn ngun ca PIC.2.3 Port nhp xut v cc thanh ghi nh hng.

    Tng s chn nhp xut trong PIC c l 35 chn, cc chc nng kt ni vi hu ht cc thit b ngoivi, to thnh nhiu ng dng. 35 chn nhp xut ny c chia thnh 5 port vi tn gi: Port A, Port B, PortC, Port D, Port E. Mi Port ca PIC c mt thanh ghi nh hng TRIS qui nh cc chn ca Port l ngvo hay ng ra: khi thanh ghi TRIS = 0 th Port tng ng ng vai tr ng ra, khi thanh ghi TRIS = 1 thPort tng ng ng vai tr ng vo. V d: PortA kt ni vi cc thit b ngoi vi; vi nt nhn, tn hiu tcc mch logic l cc thnh phn ng vo, do khai bo cc chn c TRIS = 1; vi cc thnh phn cniu khin nh rle, led th cn khai bo cc chn c TRIS = 0.

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 11

    Hnh 2.2 iu khin vo ra cc PORT vi iu khin.

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 12

    Bi 3. S dng phn mm bin dch PIC C Compiler.C rt nhiu phn mm dng son tho v bin dch ngn ng C cho vi iu khin PIC: MPLABC18, Hitech C Compiler,.... chuyn ny, chng ta s s dng phn mm PIC C Compiler.

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 13

    3.1 Cc bc to mt Project trong PIC C Compiler.Khi ng PIC C Complier:

    Hnh 3.1 Khi ng PIC C Compiler.To Project mi:

    Hnh 3.2 To mt Project mi.t tn cho Project:

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 14

    Hnh 3.3 t tn Project mi.Chn PIC v thch anh s dng:

    Hnh 3.4Chn loi PIC lp trnh.Hon thnh to Project:

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 15

    Hnh 3.4 Giao din lp trnh.

    3.2 Vit chng trnh, bin dch v np cho PIC.Vit chng trnh:

    Hnh 3.5 Cch vit chng trnh.Bin dch: trn Menu Compile chn Compile, trnh bin dch to ra file Hex.

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 16

    Hnh 3.6 Bin dch chng trnh.

    3.3 Np chng trnh vo PIC dng PICkit 2 ProgrammerKhi ng PICkit 2:

    Hnh 3.7 Giao din PICkit2.

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 17

    Vo Menu File chn Import Hex, chn file hex va bin dch xong. Nhn Write np vo PIC.

    Hnh 3.8 Np PIC dng PICkit2.

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 18

    Bi 4. S dng phn mm Proteus m phng Vi iu khin.Phn mm Proteus ca hng Labcenter Electronics h tr m phng cc mch in t, c bit l mphng vi iu khin.

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 19

    Khi ng Proteus:

    Hnh 4.1Khi ng Proteus.Ly linh kin:

    Hnh 4.2Ly linh kin t th vin.Chn PIC 16F877A, nhn OK

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 20

    Hnh 4.3Nhp tn linh kin cn ly.t linh kin vo giao din:

    Hnh 4.4 t linh kin.Ly LED t th vin linh kin:

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 21

    Hnh 4.5 Ly n Led t th vin.t 8 led vo giao din:

    Hnh 4.6 t n Led.Ly in tr:

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 22

    Hnh 4.7 Ly in tr.V t in tr vo giao din:

    Hnh 4.8 t in tr.Thay i gi tr in tr bng cch click phi vo in tr, chn Edit Properties, ca s Edit Component chophp thay i gi tr in tr. i gi tr 10K thnh 180Ohm

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 23

    Hnh 4.9Ca s Edit Component.Ly GND:

    Hnh 4.10Ly GND.Kt ni dy bng cch click chut vo cc chn cn kt ni v i dy.

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 24

    Hnh 4.11 Ni dy.Kt ni cc thnh phn Reset v thch anh:

    Hnh 4.12 Thnh phn Reset v b dao ng thch anh.

    Mch sau khi hon thnh:

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 25

    Hnh 4.13 Mch kt ni hon chnh.Np File ONOFF.hex vo PIC:Click phi PIC chn Edit Properties, ti v tr Program File click tr n file ONOFF.hex.

    Hnh 4.14 Np file Hex cho PIC.

    Vo Menu Debug, chn Start chy m phng:

  • Hng dn lp trnh PIC 16F877A

    Bin son: L MINH TR 26

    Hnh 4.15 Thc hin m phng.Kt qu hin th:

    Hnh 4.16 Kt qu hin th.