Huong Dan Lap Trinh PIC 16F877A
Transcript of Huong Dan Lap Trinh PIC 16F877A
-
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.