You are on page 1of 19

Hung.rocket42@gmail.

com

M u
Sau nhiu nm c mt ti Vit Nam, hin nay dng vi iu khin PIC vn th hin u th ca n. T cc ng dng nh ti cc ng dng ln ta u c th chn loi PIC ph hp vi ng dng ca mnh m gi thnh vn ph hp. Vit Nam hin nay pht trin cc ng dng thng s dng cc trnh bin dch ngn ng C cho vi iu khin nh CSS, Keil C compiler Bi v l do n gin l cc hm, cc th vin m cc trnh dch ny cung cp tng i y v kh d s dng. Tuy nhin vic pht trin cc trnh ng dng ln v mang tnh chuyn nghip hn th cc trnh dch ny hu nh vn cha mang li. 1 c tnh na l trnh dch ny khng phi do chnh hng sn xut phn cng Microchip cung cp do vy tnh mi v tnh chuyn nghip s khng c cao nh chnh do nh sn xut cung cp. MPLAB l mi trng lp trnh tch hp do chnh Microchip cung cp, i km vi n ngn ng lp trnh ph hp vi tng dng vi iu khin. Pic16 c ngn ng C16, Pic 18 c ngn ng C18, Pic 30 c C30Theo ti thy cc th vin hm, cc v d ng dng do Microchip cung cp kh y v chuyn nghip. Hin nay vic pht trin cc ng dng trn nn MPLAB nc ta vn cha ph bin. Vi mong mun gp 1 phn nh v rt ngn thi gian hc tp ca cc bn mi lm quen vi mi trng ny. Trong ti liu ny ti xin gii thiu nhng nt chnh v ngn ng C18 v cc ng dng trn dng Pic18 s dng ngn ng ny

Phn I: Ngn Ng C18


Ngn ng ny c xy dng trn nn ngn ng C c s. Chnh v vy i vi nhng ai quen cu lnh lp trnh C ri th vic nm bt v s dng n s tr nn n gin hn rt nhiu. 1. Kiu d liu v cc gii hn Kiu s nguyn: bng sau trnh by cc kiu s nguyn s dng trong c18

Hung.rocket42@gmail.com

Kiu du phy ng

Vng lu tr kiu d liu endianness

Phn II: Lp trnh Pic18 bng MPLAB C18


Dowload phn mm MPLAB v C18 trn internet ri tin hnh ci t chng trn my tnh ca bn. C 1 lu cc loi phn mm u c phin bn ca n v tng ng vi loi phin bn ca MPLAB bn phi xem n h tr C18 ti phin bn no. V nu khng tng thch gia 2 ci ny khi thc hin dch chng trnh s bo li v bn chng bit li ch no.

Hung.rocket42@gmail.com

Download MPLAB: http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_IDE_8_76.zip Download C18: http://ww1.microchip.com/downloads/en/DeviceDoc/mplabc18_v3.40_windows_lit e.exe Bn download chng v my ri tin hnh ci t nh chng trnh bnh thng. Ti khng i su v vn ny. 1. S dng MPLAB 1.1. To project B1: M mi trng pht trin tch hp MPLAB: start/all program/Microchip/
MPLAB IDE v8.70/ MPLAB IDE

B2: to 1 file: file/New hoc n ctrl+N

Hung.rocket42@gmail.com

y l ca s ta vit code lp trnh. File s c dng add vo project khi bn tin hnh lm 1project (bc 3) Sau khi vit xong code tin hnh lu li file/save as hoc n ctrl+s.

Chn th mc bn mun lu file. Lu tn file bn phi c phn m rng .* sau tn. V d: file ca bn tn l sample th khi lu bn phi ch r l .c, .h hoc .asm

Hung.rocket42@gmail.com

B3: to project: project/project wizard n next ti ca s la chn thit b. y ta cn phi la chn thit b m mnh mun pht trin. Nh hnh di:

Ti y, cu hi t ra l, nu ti mun thay i thit b pht trin trong project th phi lm project li t u. Cng vic tht mt cng v thiu tnh chuyn nghip, ta c th tin hnh la chn li thit b nh sau: Configure/ select Device. Ta c:

Hung.rocket42@gmail.com

Sau tin hnh la chn thit b trong phn Device m ti khoanh trn. phn ny ta cng c th thy rng MPLAB s bo cho ta bit rng thit b m ta chn c h tr ti u. Biu tng mu xanh tc l c h tr v ngc li mu l khng h tr. V d vi pic18f4550 h tr hu ht cc chng trnh np ch c PICkit1 l khng Tip theo bn n next. Ta c ca s la chn ngn ng lp trnh:

Hung.rocket42@gmail.com

La chn ngn ng lp trnh trong phn Active Toolsuite. Nu ta s dng C18 th la chn nh trn, hoc ta c th la chn loi ngn ng khc. Trong phn Toolsuite Contents ta c th kch chut vo tng phn v xem v tr ci t cc phn di Location xem c ging th mc ta ci khng. Nu khng ging ta c th chn li bng n Browse. Nhng theo ti iu ny l khng cn thit cho lm. v thng l phn mm s t cp nht th mc ci t chng trnh Sau ny, sau khi to xong project ta cng c th kim tra v sa li ng dn ca chng bng cch: project/set language Tool locations

Hung.rocket42@gmail.com

Tip theo n next ta s c ca s chn th mc lu project v nhp tn project ca ta vo:

Hung.rocket42@gmail.com

Chn th mc lu project bng Browse > nhp tn file, n Save. sau n next:

y ta c th Add file to ra bc 1 hoc ta cng c th Add sau khi to xong project. Nu Add file y, ta tin hnh chn file phn tree_box bn tri, chn vo file cn add sau n Add, hoc ta cng c th xa b file add xong bng cch chn vo file bn phi ri n Remove. 1file ta ch cn phi add l file .lkr. file ny c tc dng bo cho trnh dch bit t chc b nh ca loi vi iu khin ta s dng. Vi mi thit b c 1 file .lkr tng ng. Ta chn file trong phn th mc: C:\ProgramFiles\Microchip\mplabc18\v3.38\bin\LKR Sau n next ta c ca s hon thnh to project:

Hung.rocket42@gmail.com

n finish hon thnh to project. Chng ta va hon thnh xong cch to 1 project. Ok, t gi c th thoi mi lm cc iu m mnh mun. Thoi mi th hin kh nng lp trnh ca mnh nh!!! M rng: MPLAB l mi trng pht trin tch hp. Chnh v th ta cng c th pht trin cc ng dng bng cc trnh dch khc trn nn ca mi trng ny. Cng vic pht trin bng ngn ng khc ch khc so vi phn to project trn trong phn la chn ngn ng lp trnh trnh by.

10

Hung.rocket42@gmail.com

Ta c th la chn ngn ng lp trnh khc. Nh v d trn ti pht trin bng CCS. Bn cng c th tin hnh bng trnh dch khc m bn quen thuc. Lu : Tt nhin rng trnh dch m bn mun pht trin trong mi trng MPLAB phi c ci t trn my ca bn ri 1.2. Tin ch s dng trong MPLAB Dch chng trnh: sau khi tin hnh to project ta tin hnh dch chng trnh bng cch n vo nt Build All trn thanh cng c hoc project/Build All

Nu chng trnh ca bn c li xut hin th trong ca s ouput s bo cho bit li v l do g. iu ny gip bn pht hin v sa li nhanh chng. Nu khng c li th trnh dch s dch ra file c tn tng ng vi tn project c phn m rng l .Hex. file c phn m rng .Hex ny c dng np vo phn cng vi iu khin Ca s ouput
11

Hung.rocket42@gmail.com

Ca s ny xut hin trong sau khi dch chng trnh. Cc thng bo trong ca s s bo cho bit chng trnh c li hay khng. Nu chng trnh xy ra li th n cng s bo cho ta bit li v tr no. bit v tr li u ta ch cn double click vo thng bo li . y l tin ch rt hay gip ta c th nhanh chng pht hin li v sa li. Debugger Chng trnh ca chng ta b li, hoc ta mun kim sot tng phn chng trnh Ta c th s dng cng c debug gii quyt vn ny. MPLAB c th tch hp c Debugger trong n. Tin hnh debugger c th thc hin trn phn cng hoc phn mm. Mnh thng s dng debug bng phn mm v l do ti tin..hjhj tin hnh chn cng c debugger: debugger/select Tool. Ta s c 1 lot cc cng c la chn cho debugger tng ng vi loi m ta c. V d ta c mch debugger pickit3 th sau khi cm mch picket3 vo my tnh ta chn cng c debug l pickit3(debugger/select Tool/ picket3), MPLAB s t kt ni vi phn cng v ta c th thc hin debugNu ta khng c mch phn cng s dng cho debugger th ta chn debug bng phn mm bng cch chn debugger/select Tool /MPLAB SIM.
12

Hung.rocket42@gmail.com

Tin hnh debug bng phn mm tng t nh vi debug cc trnh dch khc vi cc thao tc nh l set breakpoint, step over, step in, step out.V vy trnh mt thi gian ti khng i vo vn ny c th v c th s c trnh ny c th phn v d d hiu hn. Programmer Tip theo, khi chng trnh ca chng ta c dch ra file.Hex v ta mun np chng vo phn cng xem kt qu th no. Ti y ta phi c mch np v chng trnh np. Mch np bn c th mua trn th trng Vit Nam cng nhiu, khi bn mch np chng trnh phn mm s c cung cp i km cho bn. Hoc nu c nhiu thi gian th bn cng c th t lm mch np cho mnh (ci ny bn t ln internet tm hiu nh). OK, let goMPLAB tch hp lun c s dng np chng trnh trong n, tc l khi np chng trnh ta khng cn phi np bng chng trnh i km vi mch np. d hiu gi s ti c mch np pickit2 v chng trnh pickit2 c ci t trong my. Khi dch xong chng trnh ok khng c li g c, gi y cng vic ca ti l np file.hex xung phn cng. Ta tin hnh nh sau: cm mch np vo my tnh v nht con vi iu khin cn np vo mch np (phn ny lm nh bnh thng) sau chn chng trnh np trong MPLAB programmer/select programmer/PICkit2. MPLAB s t kt ni phn cng v a ra giao din np chng trnh cho bn. Nu kt ni phn cng thc hin khng c vn g th ca s output s cho bn bit kt ni success. T y ta c th np chng trnh bnh thng nh vi giao din cung cp bi ngi bn cho bn mch np. Khi np xong chng trnh hoc bn mun quay tr li vi giao din pht trin phn mm nh trc bn chn: programmer/select programmer/None

2. V d lp trnh Pic18 bng C18 Phn ny mnh s trnh by cc v d n gin s dng C18 trn mi trng MPLAB thc hin cc chng trnh c bn s dng cc module trong vi iu khin Pic18. Mc ch gip hiu v cch lm vic trn MPLAB, s dng C18 v iu khin cc module trong Pic18 m Microchip tch hp sn.

13

Hung.rocket42@gmail.com

Ti gi s rng bn c kin thc c bn v phn cng v th khng di dng mt thi gian v sai mc ch ca ti liu ny ti s khng ni ti phn cng. Nu cha c kin thc v phn cng VK Pic18 th bn download ti y. Tip: xem chng trnh c thc hin ng nh mnh mong mun hay khng ti s dng m phng bng Proteus. Chng trnh ny l chng trnh dng m phng thit k mch ph bin v khng kh s dng. Bn tin hnh download v vi ci t trong my. Nu c phn cng thc th cng tt, nhng theo ti l khng cn thit lm. 2.1. I/O c bn v delay 2.1.1. I/O y l chc nng c bn nht ca cc loi vi iu khin. s dng cc k hiu gi nh cng ta phi khai bo: #include<p18fxxx.h> (trong xxx l tn loi vi iu khin ta s dng. v d nu ta s dng loi vi iu khin p18f4550 th khai bo #include<p18f4550.h>). Hoc c th khai bo cch khc nh sau: defined(__18F4550) #include <p18f4550.h> Thit lp pin l in hay out: vi iu khin VK Pic ging nh tt c cc loi VK khc. pin no c cu hnh 0 th l pin out. Ngc li pin no c cu hnh 1 th l pin in. Loi port PortA PortB PortC
Bng 2.1

K hiu tng ng TRISA TRISB TRISC

V d: ta cu hnh in/out cho PortA TRISA=0; //A l cng out //pinA0,..,A3 l out, pinA4,..,A7 l in

TRISA=0xf0 (hoc TRISA=0b11110000)

Tng t thit lp cu hnh in/out vi cc Port khc

14

Hung.rocket42@gmail.com

Xut d liu trn cc Port xut d liu trn cc cng ta phi cu hnh cng l out v gn cc gi tr ti cc k hiu cng tng ng: Loi port PortA PortB PortC
Bng 2.2

K hiu tng ng PORTA PORTB PORTC

c d liu trn cc cng c d liu trn cc cng th tng ng cng ta phi cu hnh l cng vo v c gi tr tng ng vi k hiu cng V d c th v xut nhp d liu trn cc cng ti khng lm trc tip y. tng minh hn ti s c trnh by chi tit phn v d pha di. 2.1.2. Delay Trong C18 h tr cc hm sn cc hm delay. s dng cc hm ny ta phi khai bo #include<delays.h> Hm Delay1TCY() = Nop() : hm ny delay 1 chu k dao ng thch anh. Ty theo thch anh tn s bao nhiu m delay by nhiu. V d ta s dng thch anh tn s f=4Mhz th hm ny s delay 1/(4.10^6)=0.25s Hm Delay10TCY() : hm ny delay 10 chu k dao ng thch anh Hm Delay10TCYx(unsigned char): hm ny delay bi s ca 10 chu k dao ng thch anh V d: Delay10TCYx(5) : delay 5*10*(1/f) = 10/f (giy) unsigned char: nm trong khong [0,255] Delay100TCYx(unsigned char): hm ny delay bi s ca 100 chu k dao ng thch anh unsigned char : nm trong di [0,255] Delay1KTCYx(unsigned char): hm ny delay bi s ca 1000 chu k dao ng thch anh
15

Hung.rocket42@gmail.com

unsigned char : nm trong di [0,255] Delay10KTCYx(unsigned char): hm ny delay bi s ca 10.000 chu k dao ng thch anh unsigned char : nm trong di [0,255] Tt c cc hm delay u tr v gi tr Void y l phn u tin v th ti s trnh ny chi tit cch to project, add file, dch chng trnh v np chng trnh m phng trn proteus. T phn sau cc bc tin hnh tng t. 2.1.3. V d Ti s dng pic18f4550 lm v d v m phng trn proteus:

Bn to file mi, sau nhp on m sau vo #include<p18f4550.h> #include<delays.h> void main() { TRISB=0x00; //cau hinh PortB l cong out

16

Hung.rocket42@gmail.com

PORTB=0x88; while(1) { PORTB=0X00; Delay100TCYx(250); PORTB=0X01; Delay100TCYx(250); PORTB=0X02; Delay100TCYx(250); PORTB=0X03; Delay100TCYx(250); } }

//xuat d lieu PortB

//xuat gia tri ra ngoai //delay 0.25ms

//delay 0.25ms

Ri tin hnh lu vo th mc m bn mun trn my tnh ca mnh vi tn io.c

17

Hung.rocket42@gmail.com

To project nh ti trnh by trn vi tn ty . y ti ly tn l io Trong phn add file bn phi add file io.c va mi to trn v file 18f4550_g.lkr (xem li phn add file trang 9). c nh sau:

Sau tin hnh dch chng trnh. Ta c file io.hex. Np file ny vo trnh m phng protues Double-click vo vi iu khin trn proteus. Xut hin ca s np file io.hex
18

Hung.rocket42@gmail.com

Sau click vo phn ti khoanh trong dn ti th mc bn lu project v MPLAB dch ra file io.hex v lu . Sau khi np file xong bn n nt m phng nh bnh thng. V d rt n gin c nhim v cu hnh PortB v xut d liu, delay sau 1 khong thi gian, xut d liu 2.2. 3.

19

You might also like