Huong Dan Lap Trinh PIC 16F877A

Embed Size (px)

Citation preview

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