You are on page 1of 10

Ti liu Vi X L Pic

CHNG 1: GII THIU TNG QUAN V PIC 16F877A

I. TNG QUAN V CC LOI B NH


1. B nh RAM
B nh RAM ( Random Access Memory - B nh truy cp ngu nhin ) : B nh ny lu cc
chng trnh phc v trc tip cho qu trnh x l ca CPU, b nh RAM ch lu tr d liu tm thi v
d liu s b xo khi mt in.
Theo cng ngh ch to RAM c phn thnh:
SRAM (Static RAM): RAM tnh
DRAM (Dynamic RAM): RAM ng

2. B nh ROM
B nh ROM ( Read Olly Memory - B nh ch c ) : y l b nh c nh, d liu khng b mt
khi mt in, b nh ny dng np cc chng trnh BIOS ( Basic Input Output System - Chng trnh
vo ra c s ) y l chng trnh phc v cho qu trnh khi ng my tnh v chng trnh qun l cu
hnh ca my
3. B nh Flash
B nh flash l mt loi b nh my tnh c th xa v ghi li bng in. y l cng ngh c
s dng trong cc th nh, USB flash lu tr v truyn d liu gia cc my tnh v cc thit b k
thut s khc. Khng nh EEPROM, n c xa v ghi li theo khi gm nhiu v tr
4. Bng so snh gia cc loi b nh

II. GII THIU V H VI X L PIC 16F877A

y l vi iu khin thuc h PIC16Fxxx vi cc c im:

Tc hot ng ti a cho php l 20 MHz vi mt chu k lnh l 200ns.


B nh chng trnh 8Kx14 bit, B nh flash vi kh nng ghi xa c 100.000 ln.
B nh d liu 368x8 byte RAM
B nh d liu EEPROM vi dung lng 256x8 byte, vi kh nng ghi xa c 1.000.000 ln v
c th lu tr trn 40 nm.
S PORT I/O l 5 vi 33 pin I/O.
Timer0: b m 8 bit vi b chia tn s 8 bit.
Timer1: b m 16 bit vi b chia tn s, c th thc hin chc nng m da vo xung clock
ngoi vi ngay khi vi iu khin hot ng ch sleep.
B Mn T ng Trng Cao ng K Thut Cao Thng Trang 1
Ti liu Vi X L Pic

Timer2: b m 8 bit vi b chia tn s, b postcaler.


Hai b Capture/so snh/iu ch rng xung.
Chun giao tip ni tip SSP (Synchronous Serial Port), SPI v I2C.
Chun giao tip ni tip USART vi 9 bit a ch.
Cng giao tip song song PSP (Parallel Slave Port) vi cc chn iu khin RD, WR, CS bn
ngoi.
8 knh chuyn i ADC 10 bit.
Kh nng t np chng trnh vi s iu khin ca phn mm.
Np c chng trnh ngay trn mch in ICSP (In Circuit Serial Programming) thng qua 2
chn.
Watchdog Timer vi b dao ng trong.
Chc nng bo mt m chng trnh.
Ch Sleep.
C th hot ng vi nhiu dng Oscillator khc nhau.

III. CU TRC V PHN CNG CA PIC 16F877A


1. S CHN

a. Cc chn c chc nng xut (output), nhp (input) d liu


Vi x l 16f877a c 33 chn xut nhp d liu vi cc thit b ngoi vi (thit b bn ngoi). Chng
c chia thnh 5 port, cc port ny gm PortA, PortB, PortC, PortD v PortE. Cc chn ny c kt
ni v khai bo chc nng khc nhau cn ty thuc vo ng dng thc t.
Cc chn ny c k hiu l RXY, trong X l tn port v Y l thc t chn trong Port. V d
RA0 l chn thc 0 trong Port A
b. Cc chn c chc nng khc
Cc chn ny c chc nng c nh: chn VDD, Vss dng cp ngun cho vi x l, chn
OSC1/CLK1 v OSC2/CLK0 dng kt ni vi thch anh, chn dng kt ni vi
mch Reset

B Mn T ng Trng Cao ng K Thut Cao Thng Trang 2


Ti liu Vi X L Pic

2. CU TRC PHN CNG

CHNG 2: GII THIU V C COMPILER

I. Gii thiu C COMPILER


PIC C compiler l ngn ng lp trnh cp cao cho PIC c vit trn nn C. chng trnh vit trn
PIC C tun th theo cu trc ca ngn ng lp trnh C. Trnh bin dch ca PIC C compiler s chuyn
chng trnh theo chun ca C thnh dng chng trnh theo m Hexa (file.hex) np vo b nh
ca PIC. Qu trnh chuyn i c minh ho nh hnh sau.

PIC C compiler gm c 3 phn ring bit l PCB, PCM v PCH. PCB dng cho h MCU vi b
lnh 12 bit, PCM dng cho h MCU vi b lnh 14 bit v PCH dng cho h MCU vi b lnh 16 v

B Mn T ng Trng Cao ng K Thut Cao Thng Trang 3


Ti liu Vi X L Pic

18 bit. Mi phn khc nhau trong PIC C compiler ch dng c cho h MCU tng ng m khng
cho php dng chung (V d khng th dng PCM hoc PCH cho MCU 12 bit c m ch c th
dng PCB cho MCU 12 bit).

II. Ci t v s dng Pic C compiler


1. Ci t Pic C Compiler
ci t PIC C compiler, bn phi c a CD cha software PCW. Phn mm ny c th
download trn mng a ch . Khi c a CD software, vic ci t PIC C compiler c thc hin
theo cc bc sau:
chn th mc PCW -> chn setupPCW -> clickOK. Khi xut hin ca s welcome.
Trn ca s Welcome, click chut vo nt Next, sau khi click Next, ca s Software License
Agreement s xut hin, click nt nhn Yes.
Trong ca s Readme information, click nt nhn Next.
Sau khi click Next trong ca s Readme information, ca s Choose Destination Location s
xut hin. Th mc mc nhin ci t PIC C compiler l c:\Program files\PICC. Ta c th
thay i th mc ci t PCW bng cch chn nt Browse v ch ng dn ti th mc hoc
a cn ci t, nu mun th mc mc nhin, click nt nhn Next tip tc ci t.
Trong ca s Select Program Folder, click nt nhn Next.
Click nt nhn Next tong ca s Start Copying Files sau ch cho qu trnh setup thc hin.
Trong ca s Select Files .crg, nhp vo tn file pcb.crg, pcm.crg hoc pch.crg nu mun
dung PIC C compiler cho MCU 12 bit, MCU 14 bit hay MCU 16, 18 bit sau click nt OK.
Click nt Finish hon tt vic ci t.

2. S dng Pic C Compiler


Sau khi ci t xong PIC C compiler, trn Desktop ca window s xut hin biu tng ca PIC C
compiler. Double Click vo biu tng ca PIC C compiler chy chng trnh khi ca s
chng trnh ca PIC C compiler s xut hin nh sau:

Trong ca s chng trnh ca PIC C compiler gm c cc thc n (Menu): File, Project, Edit,
Options, Compile, View, Tools v Help. Chi tit v cc thc n nh sau:
a. File (tp): File l thc n qun l tp gm cc thc n nh hnh

B Mn T ng Trng Cao ng K Thut Cao Thng Trang 4


Ti liu Vi X L Pic

+ New: To file.c mi
+ Open: M mt file.c c, c lu tr trong a.
+ Save: Lu file.c vo a.
+ Save As: Lu tr file.c vo a cng vi tn khc.
+ Save All: Lu tr tt c cc file c m vo a.
+ Close: ng file hin hnh.
+ Close All: ng tt c cc file.
+ Print: In file hin hnh.

b. Project (D n): L thc n qun l d n (mt chng trnh ng dng). Thc n Project
gm cc thc n nh hnh

+ New: To mt d n mi. D n mi c th c to mt cch th cng hoc to t ng thong


qua PIC Wizard. Nu chn phng thc th cng th ch c file.pjt c to gi thng tin c bn
ca d n v mt file.c mc nh trc hoc mt file.c rng c to son tho chng trnh. Nu
to d n thng qua PIC Wizard, th ngi s dng c th xc nh tham s ca d n v khi hon tt
th cc file.c, file.h v file.pjt c to. M ngun chun v cc hng s c sinh ra da trn tham
s ca d n. Vic chn la cc tham s cho d n mi c thc hin trn mu c PIC C
compiler ngh, trong mu gm cc chn la nh c tnh ca ng vo ra theo chun RS232,
I2C, chn la timer, chn la ADC, s dng ngt, cc driver cn thit v tn ca tt c cc chn ca
MCU. Sau khi hon tt vic chn la cc tham s cho d n th file.c v file.h s to ra vi #defines,
#include v mt s lnh ban u cn thit cho d n. y l cch nhanh nht to mt da n mi.
+ Open: M mt file.pjt c trong a.
+ Open All: M mt file.pjt v tt c cc file dng trong d n.
+ Find text in project: Tm kim mt t hay mt k t trong d n.
+ Include Dirs: Cho php xc nh cc th mc c dng tm kim cc file include cho d n.
Thng tin ny c lu vo file.pjt.
+ Close Project: ng tt c cc file trong d n.

c. Edit: Thc n Edit gn cc thnh phn nh hnh.

B Mn T ng Trng Cao ng K Thut Cao Thng Trang 5


Ti liu Vi X L Pic

Cc thnh phn trong thc n Edit c chc nng tng t nh trong cc trnh ng dng trn mi
trng window quen thuc nh word, excel

d. Option: Thc n Option gm cc thnh phn nh hnh.

Trong thc n Option c 4 thnh phn cn lu l: File Formats, Global Defines,


Debugger/Programer v Include Dirs. Cc thnh phn khc th tng t nh cc trnh ng dng
quen thuc.
+ File Format: Cho php chn la kiu nh dng ca file xut. Khi chn Option->File Format,
ca s File Format s xut hin. Trong ca s File Format c cc chn la chn kiu nh dng cho
file xut ra sau khi bin dch.
Ca s File Format c dng nh sau:

B Mn T ng Trng Cao ng K Thut Cao Thng Trang 6


Ti liu Vi X L Pic

Debug File: File g ri chng trnh cht trn MPLAB. Chn Standard.COD nu mun chy g
ri chng trnh, chn None nu khng cn chy g ri.
Error File: Xut ra file li khi chng trnh c li trong qu trnh bin dch. Chn Standard cho
cc MCU chun hin hnh ca Microchip, chn Original cho cc MCU th h trc ca
Microchip.
List Format:Chn Simple cho nh dng c bn vi m C v ASM. Chn Standard nh dng
chun MPASM vi m my. Chn Old cho nh dng MPASM th h trc. Chn Symbolic
nh dng gm m C trong ASSEMBLY.
Object File: Chn kiu cho file.hex, Chn 8 bit HEX cho file hex intel 8 bit v chn 16 HEX cho
file hex intel 16 bit.
Sau khi chn la kiu nh dng file xut ra sau khi bin dch, click OK.
+ Global Defines: Cho php t #define s dng cho bin dch chng trnh. iu ny tng t nh
vic khai bo #define u chng trnh.
+ Debug/Programer: Cho php xc nh thit b lp trnh c s dng khi chn la cng c lp trnh cho
chip.
+ Include Dirs: Tng t nh trong thc n Project.

e. Compiler: Bin dch d n hin hnh


f. View: Thc n view gm cc thnh phn nh hnh

C/ASM List: M file.lst ch ch c, file ny phi c bin dch trc t file.c. Khi c m,
file ny s trnh by theo dng va c m C va c m Assembly.
V d File.lst
delay_ms(3);

B Mn T ng Trng Cao ng K Thut Cao Thng Trang 7


Ti liu Vi X L Pic

0F2: MOVLW 05
0F3: MOVWF 08
0F4: DESCZ 08,F
0F5: GOTO 0F4
.while input(pin_0));
0F6: BSF 0B,3

Symbol Map: M file dng m ASM ch ch c. File ny phi c bin dch t file.c. File ny
cho bit a ch ca cc thanh ghi s dng trong chng trnh.
+ Binary file: M file nh phn ch ch c, File ny c hin th m HEX v m ASCII.

g. Tool: Thc n Tool qun l mt s cng c c bit. Cc thnh phn trong thc n tool nh
hnh.

Trong thc n tool ch c mt cng c kh c bit m ngi s dng MCU cn lu l cng c


disassembler, cng c ny cho php dch ngc file.bin hoc file.hex thnh file theo kiu m ASM.

h. Help: thc n tr gip, trong thc n ny cha phn hng dn s dng PIC C compiler di dng
HYML.

3. Cc bc vit chng trnh trn Pic c Compiler


Chy PIC C Compiler bng cch double click vo biu tng ca phn mm.
Trn Menu Bar ca phn mm, chn Project -> New -> PIC Wizard to d n mi hoc chn
Project > Open m d n trong lu trong a.
Nu l d n mi th sau khi chn PIC Wizard, t tn cho d n v click SAVE.
Sau khi click SAVE, ca s cho php chn thng s cho d n theo mu hin ra, chn cc thng
s cn thit cho d n v click OK.
Sau khi click OK, ca s son tho chng trnh theo m C xut hin, vit m theo gii thut
thc hin d n. Chn File save all lu tr cc file trong d n vo a cng.
Sau khi vit m xong, chn Compiler -> compiler bin dch chng trnh thnh file.hex. Nu
chng trnh khng c li th file.hex c to ra cn ngc li th sa li chn gtrnh ri bin
dch li.
Sau khi to c file.hex, dng chng trnh PIC downloader np chng trnh vo b nh
FLASH ca MCU.

B Mn T ng Trng Cao ng K Thut Cao Thng Trang 8


Ti liu Vi X L Pic

III. MT CHNG TRNH TRN C COMPILER


1. Cu trc chng trnh
Chng trnh c vit trn PIC C compiler gm 4 phn t chnh, Trong mi phn t s bao gm
nhiu chi tit to nn chng trnh. Cu trc chng trnh nh sau:
a. Phn ghi ch
phn ghi ch, ngi lp trnh s ghi nhng ch thch cn thit cho chng trnh. Phn ch thch
c bt u t du // hoc /* cho ti cui hng. Khi bin dch, trnh bin dch s b qua phn ghi
ch. Phn ghi ch c th xut hin bt c ch no trong chng trnh thm ch c th t ngay sau
hng m lnh ch thch cho hng lnh.
b. Ch nh cc tin x l
Phn ny s ch nh cc tin x l c s dng khi bin dch. Cc tin x l c bt u bng
du #.
V d: khai bo cc tin x l, chi tit v tng tin x l s c trnh by chi tit sau.
# include // Ch nh tin x l include
# device
c. nh ngha cc d liu
y l phn khai bo hng, khai bo bin v kiu d liu s dng trong chng trnh.
V d: int a,b,c,d; // Khai bo bin a,b,c,d kiu nguyn
Cc kiu d liu n gin dng trong PIC C compiler tng t nh trong C chun, gm cc kiu
nh trong bng sau:

Kiu d liu M t
int1 nh ngha mt d liu 1 bit (kiu nguyn)
int8 nh ngha mt d liu 8 bit (kiu nguyn
int16 nh ngha mt d liu 16 bit (kiu nguyn)
int32 nh ngha mt d liu 32 bit (kiu nguyn)
char nh ngha mt d liu kiu k t 8 bit
float nh ngha mt d liu 32 bit dng du chm ng (kiu thc)
short Mc nhin l int1
int Mc nhin l int8
long Mc nhin l int16
void Ch mt kiu d liu khng xc nh
static nh ngha bin tnh ton cc v c gi tr ban u bng 0. Khi khai
bo bin ny th b nh s dnh mt vng nh tu theo kiu bin
lu tr v vng nh ny c gi cho d bin khng c s
dng
auto nh ngha mt bin kiu ng, bin ny ch tn ti khi hm s dng
n hot ng, vng nh cha bin ny s c tr li khi hm thc
hin xong.
double D tr mt word nh nhng khng h tr kiu d liu
extern Kiu d liu m rng
register Kiu thanh ghi

d. nh ngha cc hm
nh ngha cc hm (Function) c dng thc hin gii thut ca chng trnh. Hm c cu
trc nh sau:
Tn hm (Cc i s ca hm)
{
Cc pht biu
}
Trong Tn hm c t tu ca ngi vit chng trnh. Cc i s ca hm l cc

B Mn T ng Trng Cao ng K Thut Cao Thng Trang 9


Ti liu Vi X L Pic

thng s dng trao i d liu ca hm, i s c th l rng nu hm khng trao i d liu hoc
c th c nhiu i s, cc i s phn cch nhau bng du ,
V d:
void lcd_putc(char c ) // nh ngha hm
{
...
}
2. Cc pht biu iu kin v vng lp trong chng trnh
a. Pht biu iu kin if - else
Pht biu iu kin if else c dng r nhnh chng trnh, pht biu if else c dng nh
sau:
If (iu kin)
{
Cc lnh trong chng trnh
}
else
{
Cc lnh trong chng trnh
}
b. Vng lp WHILE
Vng lp while c dng lp chng trnh. Cu trc ca vng lp while nh sau:
while (biu thc iu kin)
{
Cc lnh trong chng trnh
}
Hot ng ca vng lp while l s thc hin cc lnh trong cp t kho {} khi m biu thc iu
kin l ng.
c. Vng lp do while
Vng lp do while c s dng tng t nh vng lp while tuy nhin, vng lp while kim tra
iu kin trc khi thc hin cc lnh cn vng lp do while s kim tra iu kin sau khi thc hin
cc lnh. Cu trc ca vng lp do while nh sau:
do
{
Cc lnh trong chng trnh
}
while (biu thc iu kin);
d. Vng lp for
Vng lp for c dng lp li chng trnh theo mt bin m. Cu trc ca vng lp for nh
sau:
For (biu thc 1; biu thc 2; biu thc 3)
{
Cc lnh trong chng trnh
}
Trong biu thc 1 l gi tr khi u ca bin m, biu thc 2 l gi tr cui ca bin m,
biu thc 3 l biu thc m.
e. Pht biu SWITCH CASE

B Mn T ng Trng Cao ng K Thut Cao Thng Trang 10

You might also like