Upload
nguyennhutninh
View
14
Download
2
Embed Size (px)
DESCRIPTION
Giup cac ban moi hoc lam quen voi trinh bien dich hitech c
Citation preview
HNG DN LM QUEN VI HITECH PIC CTrong bi hng dn ln trc mnh hng dn cc bn to 1 project cho pic bng MPLAB, s dng Complier l Hitech PIC C. Hm nay mnh xin hng dn cho cc bn cch vit 1 chng trnh n gin lm quen vi cch vit chng trnh bng C thun (ANSI C) cho PIC.1. N LI CC KHI NIM C BN KHI VIT 1 CHNG TRNH BNG NGN NG C: Cc bn c th vo blog ca mnh xem li cc quy tc khi vit chng trnh bng C: http://tri-iuh.blogspot.com/2012/10/quy-uoc-khi-viet-ma-nguon-cc.html
2. VIT CHNG TRNH U TIN: Trnh bin dch: Hitech PIC C V9.83 IDE: MPLAB Mch np: PICKIT2 Chy th: Proteus m phng, KIT thc hnh PIC16F887 877A
//========================================================================//KHAI BO TH VIN CHO PIC//========================================================================#include
//========================================================================//KHAI BO CONFIG//========================================================================__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_ON & MCLRE_ON & LVP_OFF & DEBUG_OFF &BOREN_OFF & CP_OFF & CPD_OFF & FCMEN_OFF & IESO_OFF);__CONFIG(BOR4V_BOR21V);
#define _XTAL_FREQ 4000000//khai bo tn s thch anh s dng
//------------------------------------------------------------------------// CHNG TRNH CHNH//------------------------------------------------------------------------void main(){//cu hnh ng vo ANALOG - chn tt c ng vo ra l digitalANSEL=0;ANSELH=0;//cu hnh cho portB l ng raTRISB=0;PORTB=0;
//vng lp v hnwhile(1){PORTB=0x00;//tt portD__delay_ms(100);//to tr 0.1 giyPORTB=0xff;//bt portD__delay_ms(100);//to tr 0.1 giy}}
Trn y l mt chng trnh c bn vit cho PIC, by gi ta bt u phn tch chng trnh;on chng trnh 1://========================================================================//KHAI BO TH VIN CHO PIC//========================================================================#include
y l on chng trnh khai bo BT BUC cho PIC, dng cu hnh cc thanh ghi, trong PIC. on ny phi c trong bt k chng trnh no.on chng trnh th 2://========================================================================//KHAI BO CONFIG//========================================================================__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_ON & MCLRE_ON & LVP_OFF & DEBUG_OFF &BOREN_OFF & FCMEN_OFF & IESO_OFF);//khai bo config cho pic__CONFIG(BOR4V_BOR21V);
#define _XTAL_FREQ 4000000//khai bo tn s thch anh s dng
y l on chng trnh dng khai bo cc thit lp cu hnh config cho PIC (tng t nh ASM khi hc l thuyt). on chng trnh ny c th c hoc khng cng c. Tuy nhin ta nn vit vo (c th copy vo lun cho l)
Lu : khi s dng cc phin bn Hitech PIC khc nhau th cch config cng khc nhau nn ta cn ch n phin bn Hitech Pic ang s dng. Trong bi ny mnh s dng phin bn V9.83
Cu lnh #define _XTAL_FREQ 4000000 dng khai bo thch anh s dng. y ta dng thch anh 4MHz nn ta khai bo l 4000000 (4 triu). Nu s dng thch anh c tn s khc th thay gi tr tng ng. Tc dng ca khai bo ny c th s dng lnh __delay_ms() c sn ca chng trnh m khng cn phi vit mt chng trnh delay khc
on chng trnh 3://------------------------------------------------------------------------// CHNG TRNH CHNH//------------------------------------------------------------------------void main(){//cu hnh ng vo ANALOG chn tt c ng vo ra l digitalANSEL=0;ANSELH=0;//cu hnh cho portD l ng raTRISD=0;PORTD=0;
//vng lp v hnwhile(1){PORTD=0x00;//tt portD__delay_ms(100);//to tr 0.1 giyPORTD=0xff;//bt portD__delay_ms(100);//to tr 0.1 giy}}
PIC16F887 c 2 thanh ghi ANSEL v ANSELH L 2 thanh ghi dng quy nh cc chn ANx PortE, A, B l chn analog hay digital. y ta s dng n vi chc nng xut nhp c bn nn ta gn 2 thanh ghi ny bng 0 chn tt c cc chn l digital
Trong chng trnh ny ta thc hin sng tt PORTD vi thi gian tr l 0.1 giy (100ms) do ta cn cu hnh cc chn ca PORTD l ng ra. Vic cu hnh ny ta s dng lnh TRISD=0x00; sau ta thc hin xa PORTD bng lnh PORTD=0x00;
Ch n vng lp while(1) y l vng lp v hn ca chng trnh, ngha l PIC s thc hin lp i lp li cc cu lnh trong vng lp ny v khng thot ra khi vng lp. hiu r vui lng tham kho li cu trc vng lp trong mn lp trnh C/C++
Trong vng lp while ta c cc cu lnhPORTD=0x00;//tt portD__delay_ms(100);//to tr 0.1 giyPORTD=0xff;//bt portD__delay_ms(100);//to tr 0.1 giy
Ch n cu lnh __delay_ms(100); y l cu lnh c Hitech PIC C h tr sn, ta ch cn gi v s dng n, n c tc dng to mt khong thi gian tr 100ms, c th thay i s 100 vi gi tr khc m ta mun.
3. CHY TH CHNG TRNH Cc bn c th copy hoc vit li chng trnh ny vo ca s son tho code trong MPLAB (xem li bi hng dn to project trong MPLAB m mnh up ln nh) Sau khi bin dch bng cch nhn nt nu c thng bo nh sau th cc bn bin dch thnh cng
Mch m phng:
Chy thc t:
Kt ni mch np PICKIT2 v kit thc hnh
Kt qu chy thc t