8
HƯỚNG DẪN LÀM QUEN VỚI HITECH PIC C Trong bài hướng dẫn lần trước mình đã hướng dẫn các bạn tạo 1 project cho pic bằng MPLAB, sử dụng Complier là Hitech PIC C. Hôm nay mình xin hướng dẫn cho các bạn cách viết 1 chương trình đơn giản để làm quen với cách viết chương trình bằng C thuần (ANSI C) cho PIC. 1. ÔN LẠI CÁC KHÁI NIỆM CƠ BẢN KHI VIẾT 1 CHƯƠNG TRÌNH BẰNG NGÔN NGỮ C: - Các bạn có thể vào blog của mình để xem lại các quy tắc khi viết chương trình bằng C: http://tri-iuh.blogspot.com/2012/10/quy-uoc-khi-viet-ma-nguon- cc.html 2. VIẾT CHƯƠNG TRÌNH ĐẦU TIÊN: - Trình biên dịch: Hitech PIC C V9.83 - IDE: MPLAB - Mạch nạp: PICKIT2 - Chạy thử: Proteus mô phỏng, KIT thực hành PIC16F887 – 877A //======================================================================== // KHAI BÁO THƯ VIỆN CHO PIC //======================================================================== #include <htc.h> //======================================================================== // KHAI BÁO 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 báo tần số thạch anh sử dụng //------------------------------------------------------------------------ // CHƯƠNG TRÌNH CHÍNH //------------------------------------------------------------------------ void main() { //cấu hình ngõ vào ANALOG - chọn tất cả ngõ vào ra là digital ANSEL=0; ANSELH=0; //cấu hình cho portB là ngõ ra TRISB=0; PORTB=0; //vòng lặp vô hạn while(1) {

Lap Trinh Co Ban Voi Hitech C

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