You are on page 1of 21

GII THIU V PIC Microcontrollers (MCUs)

1>TNG QUAN:

H vi iu khin PIC v dsPIC do hng


ch to v sn xut vi cng
ngh hin i, ph hp cho cc ng dng n gin cho n phc tp. c bit ngoi
ngn ng lp trnh assembler nh cc MCU khc, ngi dng c th lp trnh PIC
trn ngn ng C quen thuc thng qua cc phn mm h tr ( PIC18C ; CCS C ;
.)
Gm cc h c bn nh sau:
8 bit:
+
+
+
+
16 bit:
+
+
+
+

PIC10
PIC12
PIC16
PIC18
PIC24F
PIC24H
dsPIC30
dsPIC33

Ty theo cc ng dng c th m ngi dng c th chn ra Chip ph hp ( theo


hng dn ca nh sn xut ti trang ch ca microchip: www.microchip.com ).
1

Trong PIC18F4431 l IC chuyn dng iu khin ng c 3 pha theo ngh


ca ca Microchip

2> NHNG BC CHUN B KHI LM VIC VI PIC:


Sau khi cc bn la chn c chip ph hp vi mc ch s dng th cng vic
tip theo l chun b:
Mch np
Phn mm bin dch => debug/ program
Datasheet => thit k phn cng cho MCU v tham kho trong qu trnh lp
trnh
2.1) Mch np
Mch np (programmer) c h tr chc nng real time debug cho PIC v sdPIC hin
nay thng dng nht l ICD2. Sau y l hnh nh mch mt s mch ICD2 trn th
trng.

Sn phm thng mi ca Microchip

Sn phm trn th trng vit nam (HCM)

i vi mch ICD2 ca microchip, y l sn phm thng mi do vn hnh rt


n nh. Tuy nhin gi c kh cao so vi mch np thit k ti VN. i vi cc bn
HCM th c th lin h vi Bi Ngc Thng mua mch np v mch th nghim
PIC, dsPIC hoc AVR vi gi c phi chng. i vi cc bn ni khc th tham
kho trn website www.picvietnam.com mc mch np, ngoi ra picvietnam.com
cng l din n chnh thc ca ngi dng PIC v dsPIC ti VN. Cc bn c th
tham kho kh nhiu ti liu, kin thc v kinh nghim v PIC ca cc user ti trang
ny.
2.1) PHN MM BIN DCH MPLAB:
Dng complie v chuyn file lp trnh dng text sang file *.HEX sau np vo
PIC. Cc bn vo trang ch microchip( www.microchip.com) Home Products
Development Tools : dowload MPLAB IDE phin bn mi nht.
Sau khi download xong, cc bn gii nn v ci t bnh thng

Qu trnh ci t hon tt, cc bn restart li PC. Sau khi ci t xong MPLAB IDE
th ch c th lp trnh trn ngn ng assembler (ASM). Nu mn lp trnh thm ngn
ng C th phi ci t thm phn mm h tr. C nhiu phn mm h tr lp trnh
cho PIC trn C ( tham kho thm trn picvietnam.com mc ngn ng lp trnh).
y ch gii thiu phn mm h tr CCS C
4

2.2) Hng dn ci t CCS C:


Tng t nh MPLAB cc bn download CCS C v mplab-ccs-plugin-install ti
www.ccsinfo.com .Ngoi ra cc bn c thm tham kho source code vit trn CCS
do USER chia s trn forum ca trang web ny http://www.ccsinfo.com/forum/
Sau y l hng dn ci t CCS C version 3.249 ( c crack sn)

n finish hon tt. Tip theo ci mplab-ccs-plugin-install tch hp phn


mm CCS vo MPLAB IDE

Tip theo n finished hon tt vic ci t. Ci t xong CCS bn c th lp


trnh bng ngn ng C quen thuc trn nn MPLAB
Khi cc bn c trong tay y mc cp trn :
1) Mch np;
2) KIT th nghim;
3) Phn mm bin dch - debug program: ( MPLAB CCS)
4) Datasheet
=>th mi c th bt tay vo vit chng trnh u tin
3> CCH TO MT PROJECT
u tin bn phi xc nh trc l vit code trn ngn ng no assembler hay
CCS. Vi assembler bn phi hiu rt r cu trc phn cng bn trong ca chip m
bn s dng. i vi CCS th ko hiu lm cu trc bn trong vn c th vit c.
ng thi c th chn on code ASM ( assembler) vo trong chng trnh vit trn
CCS . y l im kh hay ca CCS, do cc bn mun lp trnh cc project phc
tp th phi s dng c thun thc c hai ngn ng , cng nh hiu r cu trc
bn trong ca chip mnh s dng.
3.1) Cch to project vit trn ngn ng ASM:
Double click vo biu tng MPLAB trn destop, sau :

Click chn Project Wizard

u tin click vo du mi tn la chn chip .vd y chn PIC18F4431 , sau


click Next tip tc

Chn Mircochip MPASM Toolsuite, click next tip tc

10

in tn v n nt Browse to ng dn n th mc bn mun cha project,


sau click NEXT

11

Click finish thot khi Project wizard

Mt project n gin nht phi gm c 2 thnh phn Source files v Hearder Files.
Th mc Source files cha file text dng *.txt cha code lp trnh. Th mc Hearder
Files cha file *.h hoc *.INC: file c sn ca microchip; user khai bo dng loi chip
g => add vao th mc ny.
12

1) add Header files:


Cc bn nn copy hearder file vo th mc cha project tin cho vic s dng
sau ny . ( vd y: nu bn dng chip 18F4431 -> chp 18F4431.INC t
C:\Program Files\Microchip\MPASM Suite vo th mc D/Project_1 )

13

Tip theo chng ta add file v th mc Source Files


2) add Source Files

Click chn biu tng NEW trn toolbar


14

Mn hnh s hin ra 1 son tho text tng t notepad vi tn Untiled => chon File
/ Save as lu li

t tn cho file text v chn Save lu li

15

Click chn add file

Click chn file text lu

16

Chng ta hon tt vic add file vo cc th mc Source files v header files. Cng
vic tip theo l vit code ( ca s text editor : D:\project_1\baitap_1.asm ). y
ch l vd in hnh vic to 1 project, c th c nhiu cch khc hay hn !
i vi project m s dng cng 1 loi chip, cng loi ngn ng lp trnh ( ASM hay
C) th ch cn to 1 ln. Nhng ln sau, ch cn add/ remove file text (*.asm hoc *.c)
vo th mc Source files
3.2) Cch to project vit trn ngn ng CCS C:
Tng t nh to project vit bng ASM, ch khc nhau bc chn ngn ng lp
trnh. u tin: t menu => project / project wizard.

17

Chn dng CCS C conpliler for PIC.( Dng ny ch hin ra khi ci CCS C v CCSmplab-plugin ).

Chn NEXT tip tcCc bc sau lm tng t nh i vi project vit trn


ASM.
18

Copy file 18F4431.h t C:\Program Files\PICC\Devices vo th mc cha project,


sau add vo Header Files . Sau khi hon tt vic to project, bn c th bt tay
vo vit chng trnh u tin cho PIC.
4> VIT CHNG TRNH U TIN:
4.1) Cu trc ca 1 chng trnh vit trn ASM:
#include <P18F4431.inc>
org 0x000000
goto MAIN
org 0x000008
goto ISR_HIGH
org 0x000018
goto ISR_LOW
org 0x000030
MAIN

. ..
chng trnh con 1
chng trnh con 2

1) header file
2) a ch vector ngt :
Khi c ngt xy ra th pointer s nhy
n nhn ISR_HIGH hoc ISR_LOW .
ISR: vit tt ca Interrupt Service
Rountine . a ch ngt c th ca tng
loi chip, loi ngt cao hay thp do
datasheet cung cp.

3) Bt u chng trnh chnh

Chng trnh con bt u bng TN (


lable) ca chng trnh v kt thc
bng bng ch RETURN. Chng trnh
ngt c xem l chng trnh con, kt
thc bng RETFIE

END
19

VD1: Chng trnh xut tn hiu 0xFF ra port D ca P18F4431 (PIN D0 -> D7) => led
sng
#include <P18F4431.INC>
org
0x000000
goto
MAIN
MAIN
clrf
TRISD
movlw
0XFF
movwf
PORTD
goto
$
END

; set port D as OUTPUT


; move 0xFF value => W (Working register)
; move value in W => port D

4.2) Cu trc ca 1 chng trnh vit trn CCS:


#include <18F4431.h>
#use delay.
#fuses
#use rs232 .

Khai bo bin ton cc

Chng trnh ngt


chng trnh con 1
chng trnh con 2

1) header file
2) Cc lnh tin khai bo :
#use delay(clock=20000000) =>
khai bo tn s thch anh (Hz) s
dng hm delay
#use rs232 => khai bo s dng
cng thu pht ni tip
3) Khai bo tn v kiu bin s dng,
c th khai bo bin cc b bn trong
chng trnh con v bn trong hm
MAIN
4) Chng trnh ngt
5) Chng trnh con
6) Chng trnh chnh

MAIN ()
{
.
..
Gi cc chng trnh con
..
..
}

VD: Chng trnh xut tn hiu 0xFF ra port D ca P18F4431 (PIN D0 -> D7) => led
sng
#include <18f4431.h>
#byte PORTD=0XF83
#byte TRISD =0xF95
void main()
{
While(1)
{
20

TRISD=0X00;
PORTD=0XFF;
}
}

21

You might also like