You are on page 1of 57

NHAN XET CUA GIAO VIEN HNG DAN

..............................................................................................................................

............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................

Trang1_57

NHAN XET CUA HOI ONG PHAN BIEN


............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................

Trang2_57

LI CAM N
PIC la mot dong vi ieu khien kha mi me nc ta.
Lan au tien chung em tiep xuc vi no do o viec tm
hieu no gap rat nhieu kho khan. Tuy nhien nh s giup
nhiet tnh cua giao vien hng dan_thay Vo Tng
Quan cung vi s ho tr nhiet tnh cua cac ban trong lp,
chung em a hoan thanh tot o an nay. Chung em xin
chan thanh cam n Thay va cac ban.
Lan au tien tm hieu ve dong PIC nen chan khong
tranh khoi nhng thieu sot, chung em mong se nhan c
nhng hng dan quy bau cua cac Thay trong Bo mon
va cac y kien ong gop cua cac ban e co the tiep
tuc tm hieu sau hn ve dong vi ieu khien PIC.

Trang3_57

LI GII THIEU
Ngay nay, vi toc o phat trien manh me cua cong
nghe t ong trong tat ca moi lnh vc th viec tm hieu va
ng dung cac dong chip Vi ieu khien la mot van e can
c quan tam. Ho Vi ieu khien 8051 rat quen thuoc vi
chung ta, va no tng c xem la ho vi ieu khien rat u
viet. Tuy nhien vi nhu cau ngay cang cao ve tnh on nh,
toc o x ly cung nh kha nang tiep can de dang cua
ngi dung, th ho 8051 a khong phat huy c u the
cua mnh.
Cac chip vi ieu khien thuoc dong PIC cua hang

Microchip co le khong qua xa la. Vi cong nghe RISC


(Reduced Instruction Set Computer) nang cao ang ke toc o x ly,
kha nang chong nhieu, kha nang m rong tot, kha nang
nap lai tren 1000 lan, tap lenh n gian, c ho tr lap
trnh di dang Macro va a dang ve chung loai, th dong PIC
la mot dong vi ieu khien tot nhat trong cac ng dung t
ong t n gian en phc tap nhat. Tuy nhien en gi
no con kha mi me va van cha c ng dung rong
rai. V the viec tm hieu dong vi ieu khien nay la mot
nhu cau thc te va no ha hen mang lai nhieu hieu qua
thiet thc phuc vu cho cong nghe t ong.
PIC16F84 la mot tieu bieu, co the c coi la chip vi
ieu khien n gian nhat cua dong PIC. Vi 2 Port, 18 chan
va ay u cac tnh chat u viet cua dong PIC, PIC16F84
phu hp vi cac ng dung va va nho, nhat la cac th
nghiem phuc vu hoc tap, nghien cu.
Chung em mong rang vi o an PIC16F84 va mot so
ng dung se la bc khi au m ra cai nhn gan gui
hn ve dong PIC e t o chung ta co them mot cong cu
ac lc trong ieu khien t ong.

Trang4_57

MUC LUC
NHAN XET CUA GIAO VIEN HNG DAN................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
.............................................................................................................................1
NHAN XET CUA HOI ONG PHAN BIEN...................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
.............................................................................................................................2
LI CAM N......................................................................................................3
LI GII THIEU................................................................................................4
Phan I: GII THIEU VE PIC16F84.....................................................................7

I.1. Tong quan:..................................................................................7


I.1.1. Cau truc...........................................................................7
I.1.2. S o chan.......................................................................9
I.1.3. Bo tao xung.....................................................................10

Trang5_57

I.2.

I.3.
I.4.
I.5.
I.6.

I.1.4. Reset.................................................................................. 10
I.1.5. Bo x ly trung tam (CPU)..........................................10
I.1.6. Thanh ghi trang thai status.............................................11
I.1.7. Cac port...........................................................................12
I.1.8. PORTB va TRISB...............................................................12
To chc bo nh....................................................................14
I.2.1. Cac thanh ghi SFR............................................................15
I.2.2. Bo em chng trnh......................................................16
I.2.3. Lap trnh cho vi ieu khien...........................................16
I.2.4. Cac kieu nh a ch................................................16
Cac c che ngat..................................................................... 16
I.3.1. Thanh ghi ieu khien ngat (INTCON ) .........................17
Timer TMR0................................................................................. 19
Thanh ghi OPTION.......................................................................19
Bo nh d lieu EEPROM.......................................................21
I.6.1. Thanh ghi EECON1.............................................................21

Phan II: LAP TRNH HP NG CHO PIC16F84................................................23

II.1. Gii thieu:...............................................................................23


II.1.1. Bieu dien so trong trnh bien dch............................23
II.1.2. Cac yeu to cua hp ng:........................................23
II.2. Tap lenh cua PIC:..................................................................24
Phan III: PHNG PHAP NAP CHIP...................................................................32

III.1. Gii thieu phan mem MPLAB.............................................32


III.2. Phan mem nap chip IC PROG:............................................32
III.3. Mach nap JDM........................................................................... 33
Phan IV: NG DUNG......................................................................................35

IV.1. ieu khien LED......................................................................35


IV.1.1. Hoat ong.....................................................................35
IV.1.2. Mach ieu khien..........................................................36
IV.2. ieu khien ong c Servo...................................................37
IV.2.1. Hoat ong.....................................................................37
IV.2.2. Mach ieu khien..........................................................40
IV.3. ieu khien LCD......................................................................40
IV.3.1. Gii thieu ve LCD.......................................................40
IV.3.2. Hoat ong cua LCD trong ng dung.........................44
IV.3.3. S o mach ieu khien LCD......................................46
IV.4. Mo hnh tch hp:....................................................................46
IV.5. Ma chng trnh:.....................................................................48

Trang6_57

Phan I: Gii thieu ve PIC16F84

Phan I: GII THIEU VE PIC16F84


I.1. Tong quan:
I.1.1. Cau truc
PIC16F84
thuoc vi ieu khien 8 bit co cau truc
RISC( Reduce Instruction Set Computer). Cau truc tong quat
cua no c bieu dien di dang cac khoi sau :

Hnh I-1: S o khoi PIC

Bo nh chng trnh (Program memory) : Dung e cha


chng trnh nap. V c che tao bang cong nghe FLASH
nen bo nh nay co the c lap trnh hay xoa nhieu
lan.u iem nay khien cho con vi ieu khien nay thch hp
cho viec xay dng cac ng dung ieu khien.
EPPROM: ay la bo nh e lu tr d lieu khi khong
cap nguon. Thong thng no c dung e cha d lieu
quan trong khong the mat neu chang may nguon cap b
mat ot ngot.
RAM: Bo nh d lieu c s dung cho trong suot qua
trnh thc thi chng trnh trong vi ieu khien.
PORTA va PORTB: la cac ngo ket noi vat ly gia vi
ieu khien vi cac phan cng ben ngoai. PORTA co 5
chan giao tiep trong khi PORTB co en 8 chan.
FREE- RUN TIMER: ay la mot thanh ghi 8 bit ben trong
vi ieu khien, no hoat ong oc lap vi chng trnh. C
moi bon xung nhp cua bo dao ong th gia tr cua no

Trang7_57

Phan I: Gii thieu ve PIC16F84

tang len mot cho en khi at en gia tr toi a la 255, va


sau o no lai bat au em t 0. Neu nh chung ta biet
c chnh xac thi gia hai lan tang cua noi dung thanh
ghi Timer, th khi o no se c dung e nh thi gian,
mot ac iem het sc hu ch va c ng dung rat
nhieu trong thc te.
CPU(Central Processing Unit ): ong vai tro then chot trong
viec ket noi cac thanh phan trong vi ieu khien vi nhau,
c so sanh giong nh bo nao con ngi. No lien ket cac
hoat ong cua cac khoi trong vi ieu khien va thc thi
chng trnh.
RISC
Ngay phan au chung ta co noi rang PIC16F84 co cau
truc RISC, vay RISC co ngha la g? e co the thay c u
iem cua vi ieu khien nay, chung ta se i vao tm hieu
khai niem ve cau truc RISC thong qua viec so sanh hai
mo hnh khoi cau truc Von - Neuman va cau truc Harvards.

Hnh I-2: Cau truc Havard va Von - Neumann

Nh ta a biet, cau truc vi ieu khien cua Von Neuman


la mot cau truc co ien va c ng dung pho bien.
cau truc nay, bus d lieu va a ch c truy xuat tren
cung mot ng, do o no phan nao anh hng en toc
o thc thi cua vi ieu khien.
Khong giong nh cau truc Von Neuman, cau truc
Harvards tach rieng bus d lieu vi bus a ch. Chnh ieu
nay a tang toc o x ly cua vi ieu khien len mot
cach ang ke. Cac vi ieu khien co cau truc phan cng
kieu Harvards th c goi la vi ieu khien RISC. RISC la viet
tat cua thuat ng Reduce Instruction Set Computer.
Bi v PIC16f84 co cau truc RISC nen no co tap lenh
c tinh giam, cu the la 35 lenh. Tat ca cac lenh nay

Trang8_57

Phan I: Gii thieu ve PIC16F84

eu c thc thi trong mot chu ky may,tr cac lenh nhay


va re nhanh.
I.1.2. S o chan
PIC16F84 co tong cong 18 chan, ten goi va chc nang
tng chan nh sau:

Hnh I-3: Hnh dang ben ngoai PIC16f84

Chan1: RA2, chan th hai cua port A


Chan 2: RA3, chan th ba cua port A
Chan 3: RA4, chan th t cua port A. Ngoai ra, chan
nay co co chc nang la mot bo nh thi( TOCK1)
Chan 4: MCLR ngo reset va cap ap lap trnh cho vi ieu
khien.
Chan 5: Vss chan noi at cua nguon.
Chan 6: RB0, chan so 0 cua port B. Ngoai ra no con
la ngo vao cua ngat.
Chan 7: RB1, chan so 1 cua port B.
Chan 8: RB2, chan so 2 cua port B.
Chan 9: RB3, chan so 3 cua port B.
Chan 10: RB4, chan so 4 cua port B.
Chan 11: RB5, chan so 5 cua port B.
Chan 12: RB6, chan so 6 cua port B.
Chan 13:RB7, chan so 7 cua port B.
Chan 14: Vdd, chan cap nguon cho vi ieu khien.
Chan 15: OSC2,chan noi vi bo dao ong.
Chan 16: OSC1, chan noi vi bo dao ong.
Chan 17: RA2, chan so 2 cua port A.
Chan 18: RA1, chan so 1 cua port A.

Trang9_57

Phan I: Gii thieu ve PIC16F84

I.1.3. Bo tao xung


Bo tao xung dung e cap xung cho vi ieu khien hoat
ong.
PIC16F84 co the hoat ong vi bo tao xung dung thach
anh va mach dao ong RC.
ay chung ta ch s dung thach anh, v no on nh
va n gian.

Hnh I-4: Mach tao xung dung thach anh


I.1.4. Reset
Chc nang Reset dung e khi tao lai cho ieu khien
ve ieu kien ban au. Thc te trong qua trnh hoat ong,
co nhng luc vi ieu khien hoat ong khong nh mong
muon do b tac ong bi mot tac nhan nao o, khi ay
ta se dung chc nang Reset e khi tao lai chc nang cho
vi ieu khien, a cac thanh ghi ve v tr khi tao ban au.
Khong ch co the, Reset con co vai tro nh mot ngat
( Interupt ), giup thoat khoi mot chng trnh mot cach tc
thi.
Cac nhieu cach ( nguon ) e Reset lai vi ieu khien,
trong o co hai nguon quan trong nhat, o la Reset khi va
cap nguon ( Power On Reset _ POR ), va Reset bi chan MCLR.
I.1.5. Bo x ly trung tam (CPU)
CPU c v nh la bo nao cua vi ieu khien, no am
nhan vai tro tm kiem va giai ma cac cau truc lenh cho vi
ieu khien hoat ong.
CPU gan ket cac thanh phan cua vi ieu khien thanh
mot khoi thong nhat. Nh a noi tren, chc nang quan
trong nhat cua no chnh la giai ma lenh. Khi ta viet mot
chng trnh, cac cau lenh thng co dang gi nh nh
MOVLW 0x20. The nhng e cho vi ieu khien hieu c, th
cau lenh tren phai c dch thanh mot chuoi cac so 0
va 1, goi la ma lenh ( opcode ). Viec dch t dang ch
sang thanh ma lenh c thc hien bi cac trnh bien dch,

Trang10_57

Phan I: Gii thieu ve PIC16F84

chang han nh trnh dch hp ng. Sau o CPU se giai ma


va thc thi cac lenh.
I.1.6. Thanh ghi trang thai status

Hnh I-5: Thanh ghi trang thai

Bit 7_ IRP( Register bank Select bit ): la bit th 8 cua


thanh ghi STATUS lam
nhiem vu nh a ch gian tiep
cho RAM noi.
IRP = 1: bank 2 va 3
IRP = 0 bank 1 va 0 ( t a ch 00h en FFh).
Bit 6:5 _ RP1: RP0 ( Register Bank Select Bits ): Hai bit
nay dung e chon bank thanh ghi.
01 = Bank 1
00 = Bank 0
Bit 4 _TO (Time out ): bit nay c set bang 1 moi
khi WDT b tran.
1 = Cha tran
0 = B tran
Bit 3_ PD ( Power down bit ) bit nay c set moi khi
vi ieu khien c cap nguon, khi bat au chay, sau khi
reset, va sau khi thc hien lenh CLRWDT
Bit 2_ Z ( Zero bit ) Dung e ch ket qua ra 0, c
set moi khi ket qua tra ve cua mot phep toan so hoc
hay luan ly co gia tr la 0.
Bit 1_ DC ( Digit Carry ) B anh hng bi cac
phep toan cong, tr. No c set khi ta tr mot so cho
mot so ln hn.Va c reset trong trng hp ngc lai.
Bit 0_ C (Carry )anh hng bi cac lenh ADDWF,
ADDLW, SUBLW, SUBWF.

Trang11_57

Phan I: Gii thieu ve PIC16F84

I.1.7. Cac port


Port dung e ch mot nhom cac chan tren vi ieu
khien co the truy xuat ong thi, hoac co the set mot bit
mong muon len 1 hay xuong 0, hoac oc t chung trang
thai ang ton tai. Ve mat vat ly, Port la mot thanh ghi
ben trong vi ieu khien c noi bi day dan vi cac
chan cua vi ieu khien. No ai dien cho s ket noi vat ly
gia bo x ly trung tam vi the gii ben ngoai. Vi ieu
khien dung chung e hien th hay ieu khien cac cac
thanh phan hay thiet b khac. Tuy theo chc nang, ma
mot vai chan co the am nhiem ca vai tro, chang han
nh chan RA4/TOCKI, va la bi th 4 cua Port A, lai va la
ngo vao t ben ngoai cho bo em. Viec la chon mot
trong hai chc nang nay c thc hien qua viec thay oi
gia tr cho cac thanh ghi chuyen dung, chang han ay la
bit th 5 TOSC trong thanh ghi OPTION. Khi ta chon mot trong hai
chc nang th chc nang con lai se khong hoat ong
c.
Tat ca cac chan trong port eu co the c dung nh
cac ngo xuat hay nhap, tuy thuoc vao yeu cau cua thiet
b can ieu khien. e nh ngha mot chan la xuat hay la
nhap, th ta s dung cac thanh ghi TRIS bank1. Neu mot
bit trong thanh ghi TRIS bang 1, th bit tng ng vi v tr o
trong port luc nay se la ngo nhap, va ngc lai.Moi mot
port co mot thanh ghi TRIS rieng cho no, port A ng vi
TRISA, port B ng vi TRISB.Thanh ghi Port A va B nam trong
bank 0, trong khi TRISA va TRISB nam trong bank1.
I.1.8. PORTB va TRISB
Port B gom 8 chan. Thanh ghi tng ng cho viec xac
nh chieu d lieu la TRISB.

Trang12_57

Phan I: Gii thieu ve PIC16F84

Hnh I-6: Cau truc PORTB & TRISB

Moi chan trong Port B eu co san mot ien tr keo


len co gia tr nho ngay ben trong (dung e noi ngo
len mc logic 1 ) co the c kch hoat bang cach reset bit
th 7 RBPU trong thanh ghi OPTION. Cac ien tr keo len
nay t ong tat khi cac chan cua port c nh ngha la
cac ngo xuat. Khi vi ieu khien bat au hoat ong, cac
ien tr nay khong c kch hoat.
Cac chan t RB4 en RB7 cua port B co the gay ra
ngat khi trang thai cua no thay oi t mc 0 len mc 1
va ngc lai. Ch co nhng chan nao c nh ngha la
ngo nhap mi co the gay ra ngat c.
PORTA va TRISA

Port A co 5 chan xuat nhap, thanh ghi tng ng cua no


la TRISA co a ch 85h. Cung giong nh port B, viec set
mot bit trong thanh ghi TRISA se nh ngha bit tng ng trong
port A la xuat hay la nhap.
Mot ieu quan trong can chu y la chan RA4 cua port A
ch co the dng e nhap ma thoi. No cung dung e
nhap t ngoai cho bo nh thi TMR0.

Trang13_57

Phan I: Gii thieu ve PIC16F84

Hnh I-7: Cau truc PORTA & TRISA

I.2. To chc bo nh
PIC16F84 co hai khoi bo nh phan cach nhau, mot cho
d lieu va cai con lai cho chng trnh. Bo nh EPPROM vi
cac thanh ghi GPR va SFR trong bo nh RAM se quan ly
khoi d lieu, con bo nh FLASH quan ly khoi chng trnh.
Bo nh chng trnh

Bo nh chng trnh c che tao bang cong nghe


FLASH, no cho phep lap trnh cho vi ieu khien c nhieu
lan trc khi no c lap at vao thiet b, hoac ngay cac
sau khi no c lap at ma co mot s co nao o xay ra.
Dung lng cua bo nh chng trnh nay la 1024 dong lenh
vi o dai 14 bit, trong o cac v tr t 0h en 4h c
dung cho cac vector reset va ngat.
Bo nh d lieu
Bo nh d lieu bao gom bo nh RAM va EPPROM. Bo
nh EPPROM bao gom 64 byte, noi dung cua no khong b
mat i neu l nh mat nguon. EPPROM khong c nh a
ch trc tiep, ma c truy xuat gian tiep thong qua 2
thanh ghi la EEADR va EEDATA. Bi v bo nh EPPROM c
dung cho viec lu tr nhng thong so quan trong, cho nen
ngi lap trnh can phai tuan theo mot so quy tac e
tranh mac loi trong luc viet. Bo nh Ram co a ch t

Trang14_57

Phan I: Gii thieu ve PIC16F84

0x0C en 0x4F, bao gom 68 o nh 8 bit. Viec xac nh v tr


cua RAM cung c thc hien thong qua thanh ghi GPR
I.2.1. Cac thanh ghi SFR
ay la cac thanh ghi co chc nang ac biet, chiem 12 o
nh au tien trong cac bank 0 va bank 1.

Hnh I-8: To chc bo nh PIC16F84

Trang15_57

Phan I: Gii thieu ve PIC16F84

I.2.2. Bo em chng trnh


Bo em chng trnh (PC ) la mot thanh ghi 13 bit, no
cha a ch cua cac lenh can thc thi. No c xac nh
bang cach ket hp cua thanh ghi 5 bit PCLATCH cho 5 bit cao
ca a ch vi thanh ghi 8 bit PCL cho 8 bit thap cua a ch.
Bang cach tang dan noi dung cua PC, vi ieu khien se
tng bc thc hien cac lenh co trong chng trnh.
I.2.3. Lap trnh cho vi ieu khien
e lap trnh vao bo nh chng trnh,vi ieu khien phai
c set che o lam viec ac biet, cu the khi o chan
MCLR se c noi vi ap 13,5V, va nguon cung cap phai
on nh. Bo nh chng trnh co the c lap trnh noi tiep
s dung 2 chan data / clock .
I.2.4. Cac kieu nh a ch
a ch o nh trong RAM co the c truy xuat bang hai
cach:
_nh a ch trc tiep.
_nh a ch gian tiep.

I.3. Cac c che ngat


Ngat la mot ac tnh cua vi ieu khien ma cho phep
no ap ng c vi nhng s kien tai luc no xay ra, va
xac nh xem vi ieu khien se lam g tiep theo sau o. ay
la mot chc nang vo cung quan trong, bi v no tao nen
s gan ket gia vi ieu khien vi the gii xung quanh no.
Thong thng th ngat se lam ngng chng trnh ang thc
hien, con goi la chng trnh nen, va thc hien tiep chng
trnh ngat tng ng vi nguyen nhan gay ra ngat.

Trang16_57

Phan I: Gii thieu ve PIC16F84

Hnh I-9: Cau truc ngat

I.3.1. Thanh ghi ieu khien ngat (INTCON )


Thanh ghi ieu khien ngat (INTCON) c truy xuat bang
cach chon bank tng ng. No co chc nang cho phep hay
la cam xay ra ngat, va xac nh cac nguyen nhan ngat.

Hnh I-10: Thanh ghi ieu khien ngat

Bit 7_ GIE ( Global Interupt Enable bit ): ay la bit cho


phep hay khong cho phep ngat.
Neu GIE = 1: Cac ngat c cho phep.
Neu GIE = 0: Cac ngat b cam.
Bit 6 EEIE ( EPPROM Write Complete Interupt Enable bit ): Bit
cho phep ngat gay ra tai ni ket thuc cua viec viet
chng trnh con vao EPPROM.
Bit 5 TOIE ( TMR0 Overflow Interupt Enable bit ): Bit cho
phep kch hoat ngat gay ra bi s tran cua TMR0.
Bit 4 INTE( INT External Interupt Enable bit ): Bit cho phep
ngat gay ra bi ngat ngoai tat chan RB0/INT.

Trang17_57

Phan I: Gii thieu ve PIC16F84

Bit 3 RBIE ( RB port change Interupt Enable bit ) Cho phep


ngat xay ra khi co s thay oi trang thai tren cac chan
RB4 en RB7.
Bit 2 TOIF ( TMR0 Overflow Interupt Flag bit ): C bao tran
cua TMR0. Bit nay phai c xoa bang phan mem e
co the s dung ngat nay tiep theo.
Bit 1 INTF ( INT External Interupt Flag bit ): C bao khi xay
ra ngat ngoai.
Bit 0 RBIF ( RB Port Change Interupt Flag bit ): Bit xac nh
s thay oi tren cac chan t RB4 en RB7. Nit nay cung
can phai c xoa trong chng trnh con ngat e co the
ap ng cac ngat tiep theo xay ra sau o.

Ngat ngoai tren chan RB0/INT cua vi ieu khien

Ngat ngoai xay ra tren chan RB0/INT


c kch hoat bi tn hieu canh len ( neu bit INTEDG = 1
trong thanh ghi OPTION ) hoac bi tn hieu canh xuong ( neu
INTEDG = 0 ). Khi co tn hieu xuat hi65n tren chan INT, bit INTF
se c set trong thanh ghi INTCON. Bit nay phai c xoa i
trong chng trnh phuc vu ngat e ngat khong xay ra na
khi quay lai chng trnh chnh.
Ngat do s tran cua bo em TMR0

Khi TMR0 b tran, no se set bit TOIF len 1. ay la mot


chc nang quan trong, bi v nhieu van e hoc bua trong
thc te co the c giai quyet khi s dung chc nang
nay. Ngat do c che nay co the c cho phep hay cam
bang cach set/ reset bit T0IE.

Ngat do s thay oi trang thai tren cac chan


RB4:RB7.
S thay oi trang thai tren cac chan RB4: RB7 se set bit
RBIF (INTCON< 0 > ) len 1, t o kch hoat ngat xay ra.e
cho cac chan nay nhan c s thay oi trang thai cua tn
hieu, th chung phai c nh ngha la cac ngo nhap.
Neu mot trong chung c nh ngha la ngo xuat, th ngat
se khong xay ra c. Neu nh ta nh ngha tat ca chung
eu la ngo xuat, th trang thai hien thi cua chung se
c so sanh vi gia tr cu ma c lu lan oc cuoi
cung t port B.
Khi tao ngat
e co the c chc nang ngat cua vi ieu khien, th

au tien ta phai thc hien cac lenh khi tao ban au cho

Trang18_57

Phan I: Gii thieu ve PIC16F84

no, bang cach xac nh cac bit tng ng trong thanh ghi
ieu khien ngat INTCON.
I.4. Timer TMR0
Timer thng la phan gay kho hieu cua vi ieu
khien, the nhng neu tm hieu ky cang, ta se thay no
giup ch rat nhieu trong cong tac lap trnh cho vi ieu khien.
Mot trong nhng ng dung cua no la thiet lap moi quan
he gia mot ai lng thc, chang han nh thi gian va
mot bien so ma bieu th trang thai cua mot bo nh
thi vi vi ieu khien. Ve mat vat ly, timer la mot thanh
ghi 8 bit co gia tr tang dan t 0 en 255, va sau o lai
tiep tuc em len t 0. S tang len nay c thc hien
tren nen cua cac chng trnh ang thc hien cua vi ieu
khien. No a ra cho ngi s dung nhieu giai phap hu
hieu trong viec giai quyet toi u van e, mot trong chung
la tang mot bien so nao o len tai moi thi iem timer
b tran.
Nh a noi tren, PIC16F84 co mot bo timer 8 bit, va nh
vay gia tr toi a ma timer em la 256 ( t 0 en 255 ).

Sau moi lan timer em en 255, no se t reset gia tr


ve 0 va bat au em lai t au. Tai thi iem timer
chuyen gia tr t 255 ve 0, bit T0IF trong thanh ghi INTCON se
c set len 1. Neu nh cac ngat c cho phep xay ra, th
con tro chng trnh se nhay en chng trnh con phuc vu
ngat. Ben canh viec nhan xung noi, gia tr cua timer cung
co the tang len nh vao viec nhan xung t ben ngoai
thong qua chan RA4/ TOCKI, va khi o timer hoat ong nh
mot bo em.
I.5. Thanh ghi OPTION

Hnh I-11: Thanh ghi OPTION

Bit 7 RBPU ( PORTB Pull up Enable bit )

ay la bit kch hoat hay tat ien tr noi keo len co


trong cac chan cua port B.
1 = Kch hoat
0 = Vo hieu

Bit 6 INTEDG ( Interupt Edge Select bit )

Trang19_57

Phan I: Gii thieu ve PIC16F84

Neu s kien ngat c cho phep, bit nay se xac nh


xem ngat xay ra khi co s thay oi cua tn hieu tai canh
len hay canh xuong.
1 = Canh len
0 = Canh xuong

Bit 5_ T0CS( TMR0 Clock Source Select bit )

Bit nay se xac nh xem bo nh thi se tang tai


moi xung kch cua bo dao ong, hoac la tang dan thong
qua xung kch t b6n ngoai thong qua chan RA4/ T0CKI.
1 = Xung t ben ngoai
0 = xung ben trong

Bit 4 T0SE ( TMR0 Source Edge Select bit )

Neu s dung TMR0 nh la mot bo em xung ben ngoai


thong qua chan RA4 th bit nay se xac nh xem bo em se
tang tai canh len hay canh xuong cua xung kch.
1 = Canh xuong
0 = Canh len

Bit 3 PSA ( Presscaler Assignment bit )


Bit nay se xac nh t le gia TMR0 va WDT.
1 = T le gan cho WDT.
0 = T le c gan cho TMR0.

Bit 0: 2 PS0, PS1, PS2 ( Presscaler Assignment bit )

Trong trng hp s dung xung thach anh 4 MHz, th mot


chu ky lenh ton 1us. Cac bit PS0, PS1, PS2 se xac nh
khoang thi gian gia moi lan tang cua TMR0 hay WDT.

Trang20_57

Phan I: Gii thieu ve PIC16F84

I.6. Bo nh d lieu EEPROM


PIC16F84 co mot bo nh d lieu EPPROM vi dung
lng 64 bytes co a ch t 00h en 63h, co the c ghi
hay oc. ac tnh quan trong nhat cua no chnh la d lieu
cat trong no khong b mat i khi b mat nguon. Theo nha
san xuat th d lieu co the cat trong EPPROM se c bao
toan en 40 nam.
Bo nh EPPROM c at trong mot vung nh ac biet
va co the c truy xuat thong qua cac thanh ghi ac biet.
Chung la:
EEDATA cha cac d lieu oc viet.
EEADR cha a ch cua phan vung EPPROM can truy
xuat.
EECON1 cha cac bit ieu khien.
EECON2 thanh ghi nay khong ton tai ve mat vat ly,
ma no dung e bao ve EPPROM khoi nhng loi lap trnh
khong ang co.
I.6.1. Thanh ghi EECON1

Hnh I-12: Thanh hi EECON1

Bit 4 EEIF (EEPROM Write Operation Interupt Flag bit)

Bit dung e bao cho vi ieu khien biet qua trnh ghi d
lieu vao EPPROM a ket thuc. Khi ket thuc qua trnh ghi, th
bit nay se t ong set len 1. Ngi lap trnh can phai xoa
bit nay bang phan mem e no co the nhan biet c
mot s ket thuc cua viec ghi tiep theo.
1 = Ghi ket thuc
0 = Ghi cha xong, hoac cha bat au ghi

Bit 3 WRERR (Write EPPROM Error Flag )

Bao loi neu gap trong qua trnh ghi vao EPPROM. Bit nay
ch c set len khi qua trnh ghi vao EPPROM b ngat bi
mot tn hieu reset hoac b tran WDT khi WDT c kch hoat.
1 = Co loi xay ra
0 = Khong co loi

Bit 2 WREN ( EPPROM Write Enable bit ):

Trang21_57

Phan I: Gii thieu ve PIC16F84

Bit cho phep ghi vao EPPROM. Neu bit nay khong c set
len th vi ieu khien se khong cho phep ghi vao EPPROM.

Bit 1 WR (Write Control bit ):

Viec set bit nay len se khi tao viec ghi d lieu t
thanh ghi EEDATA en mot a ch cu the thong qua thanh
ghi EEDR.
1 = Khi tao ghi
0 = Khong khi tao

Bit 0 RD ( Read Control bit ):

Bit dung e ieu khien viec khi tao qua trnh chuyen
d lieu t mot a ch a c nh ngha trong EEDR en
thanh ghi EEDATA.
1 = Khi tao
0 = Khong khi tao

Trang22_57

Phan II: Lap trnh hp ng cho PIC16F84

Phan II: LAP TRNH HP NG CHO PIC16F84


II.1. Gii thieu:
Kha nang giao tiep la mot ieu rat quan trong trong
moi lnh vc. Tuy nhien, ieu o ch co the thc hien
c khi hai ben giao tiep biet cung mot ngon ng. Vi quy
tac tren th con ngi va vi ieu khien cung co the giao
tiep vi nhau. Ngon ng ma vi ieu khien va con ngi
dung e giao tiep goi la hp ng. Ten Hp Ng khong
co y ngha g sau xa, no tng t nh ten cac ngon ng
khac nh Tieng Anh hay Tieng Phap . Noi chnh xac hn
th hp ng ch la giai phap trung gian, bi v chng trnh
viet bang hp ng phai c dch sang ma nh phan e
ma vi ieu khien co the hieu c. Hp ng va trnh bien
dch hp ng la hai khai niem khac nhau. Hp ng la
ngon ng dung e viet chng trnh cho vi ieu khien, con
trnh bien dch hp ng la chng trnh tren may tnh ca
nhan ma no dch chng trnh viet bang hp ng sang ma
nh phan, chng trnh ma a c dch sang ma nh phan
th c goi la ngon ng may.
II.1.1. Bieu dien so trong trnh bien dch
Trong hp ng MPLAB, cac so co the bieu dien di
dang thap phan, thap luc phan, hoac nh phan.. Chung ta
se minh hoa ieu nay vi so 240:
.240
;Decimal
0xF0
;Thap luc phan
B11110000
;nh phan
So thap phan c bat au bang mot dau cham, so
thap luc phan c bat au bang 0x, va so nh phan bat
au bang ch b vi dau nhay n.
II.1.2. Cac yeu to cua hp ng:
Cac yeu to cua hp ng gom co:
Nhan
Lenh
Toan t
Cac ch dan
-Li chu thch
Nhan:

Trang23_57

Phan II: Lap trnh hp ng cho PIC16F84

Nhan bieu th a ch cua lenh theo sau. Khi co s re


nhanh en lenh nay, nhan c dung trong trng toan
hang cua lenh re nhanh hoac nhay.
Ma gi nh lenh:
Ma gi nh lenh hoac ch dan cua trnh hp ng theo
sau trng nhan. Cach thc ma chung ta viet lenh c
goi la cu phap. Trong v du sau, chung ta co the nhan ra
loi trong khi viet bi v lenh movlp va gotto khong ton tai
trong vi x ly PIC16F84.
Lenh viet ung:
Movlw H01FF
Goto Start
Lenh viet sai:
Movlp H01FF
Gotto Start
Toan hang:
Toan hang theo sau ma gi nh. Toan hang cha a
ch hoac d lieu ma lenh se s dung. Noi cach khac,
toan hang la nhan to cho lenh ang thc thi. Chung thng
la cac thanh ghi, bien hoac hang.
Li chu thch:
Li chu thch la mot chuoi ky t ma ngi lap trnh
viet e lam cho chng trnh ro rang. No c at sau lenh
va c bat au bang dau cham phay(;).
Ch dan:
Li ch dan th tng t nh mot lenh, nhng no khong
giong nh mot lenh ma no phu thuoc vao kieu vi ieu
khien, va no bieu dien ac tnh cua hp ng. Li ch
dan luon luon c cho y ngha thong qua bien va thanh
ghi. V du nh LEVEL co the la s ch nh cho bien trong
RAM tai a ch 0Dh. Bang cach nay, bien tai a ch
o co the c truy xuat thong qua li ch dan LEVEL.
ieu nay se de hn cho ngi lap trnh khi phai nh a
ch 0Dh cha ng thong tin LEVEL.
II.2. Tap lenh cua PIC:
Tap lenh cua PIC c xay dng tren c s ngon ng
Assemble. Tuy nhien e ngi dung de dang tiep can va
giup cho qua trnh lap trnh tr nen n gian hn, tap lech
cua PIC c toi thieu hoa con 35 lenh. Nhng khong v t
lech hn tap lenh cua cac ho vi ieu khien khac ma kha
nang ng dung cua PIC b han che. Theo nh nha san xuat

Microchip th tap lenh cua PIC co the ap ng c tat


ca cac ng dung ma cac ho vi ieu khien khac co the

Trang24_57

Phan II: Lap trnh hp ng cho PIC16F84

lam c. Va thc te cho thay trong qua trnh lap trnh cho
PIC ban se thay viec lap trnh se rat de dang hn cac ho
vi ieu khien khac va cha thay mot han che ve giai
thuat nao gay ra t tap lenh. Ben canh o, vi s ho tr
cua lap trnh di dang Macro, viec lap trnh tr nen nhe
nhang hn va kha nang m rong ng dung la rat ln.
Sau ay se liet ke cac lenh cua ho PIC
Movlw
Dang lenh: Movlw K
Hoat ong:
Ghi hang so K vao thanh ghi W
Gia tr cua K t 0 en 255
Khong tac ong len c
So chu ky:1
So byte: 2
Movwf
Dang lenh:
Movwf f
Hoat ong:
Noi dung cua thanh ghi W c chep sang thanh ghi F
Gia tr cua f t 0 en 127
Khong tac ong len c
So chu ky:1
So byte: 2
Movf
Dang lenh:
Movf f, d
Hoat ong:
Noi dung cua thanh ghi f c lu tr vao thanh ghi d
Tac ong len c :Z
So chu ky:1
So byte: 2
Clrw
Dang lenh:
Clrw
Hoat ong:
Xoa thanh ghi W
Tac ong len c :Z
So chu ky: 1
So byte: 2
Clrf
Dang lenh:
Clrf f
Hoat ong:
Xoa thanh ghi f
Thanh ghi f co gia tr t 0 en 127
Tac ong len c :Z
So chu ky:1
Trang25_57

Phan II: Lap trnh hp ng cho PIC16F84

So byte: 2
Swapf
Dang lenh:
Swapf f, d
Hoat ong:
Nibbles thap va nibbles cao cua thanh ghi f c hoan
oi v tr cho nhau.
Neu d = 0 ket qua c lu vao thanh ghi W
Neu d = 1 ket qua c lu vao thanh ghi F
Khong tac ong len c
So chu ky:1
So byte: 2
Addlw
Dang lenh:
Addlw K
Hoat ong:
Noi dung cua thanh ghi W c cong vi hang so tam
bit K, ket qua lu vao thanh ghi W
Tac ong len c:C,DC,Z
So chu ky:1
So byte: 2
Addwf
Dang lenh:
Addwf f,d
Hoat ong:
(W) + (f) => d
Neu d = 0 ket qua c lu vao thanh ghi W
Neu d = 1 ket qua c lu vao thanh ghi F
Gia tr cua thanh ghi F t 0 en 127
Tac ong len c: C,DC,Z
So chu ky:1
So byte: 2
Sublw
Dang lenh:
Sublw K
Hoat ong:
K-(W) => W
Hang so K co gia tr t 0 en 255
Tac ong len c:C,DC,Z
So chu ky:1
So byte: 2
Subwf
Dang lenh:
Subwf f,d
Hoat ong:
(F) (w) => d
Neu d = 0 ket qua c lu vao thanh ghi W
Neu d = 1 ket qua c lu vao thanh ghi F

Trang26_57

Phan II: Lap trnh hp ng cho PIC16F84

Gia tr cua thanh ghi F t 0 en 127


Tac ong len c:C,DC,Z
So chu ky:1
So byte: 2
Andlw
Dang lenh: Andlw K
Hoat ong:
(W) and k => W
Hang so K co gia tr t 0 en 255
Tac ong len c :Z
So chu ky:1
So byte: 2
Andwf
Dang lenh: Andwf f,d
Hoat ong:
(W) and F => d
Neu d = 0 ket qua c lu vao thanh
Neu d = 1 ket qua c lu vao thanh
Gia tr cua thanh ghi F t 0 en 127
Tac ong len c :Z
So chu ky:1
So byte: 2
Iorlw
Dang lenh: IORLW
Hoat ong:
Hang so K co gia tr t 0 en 255
Hoat ong cua lenh:(W) OR (K) => W
Hang so K co gia tr t 0 en 255
Tac ong len c :Z
So chu ky:1
So byte: 2
IORWF
Dang lenh:
IORWF f,d
Hoat ong:
(W) OR (F) => d
Neu d = 0 ket qua c lu vao thanh
Neu d = 1 ket qua c lu vao thanh
Gia tr cua thanh ghi F t 0 en 127
Tac ong len c :Z
So chu ky:1
So byte: 2
XORLW
Dang lenh: XORLW K

Trang27_57

ghi W
ghi F

ghi W
ghi F

Phan II: Lap trnh hp ng cho PIC16F84

Hoat ong:
Hang so K co gia tr t 0 en 255
Hoat ong cua lenh:(W) XOR (K) => W
Hang so K co gia tr t 0 en 255
Tac ong len c :Z
So chu ky:1
So byte: 2
XORWF
Dang lenh:
XORWF f,d
Hoat ong:
(W) XOR (F) => d
Neu d = 0 ket qua c lu vao thanh ghi W
Neu d = 1 ket qua c lu vao thanh ghi F
Gia tr cua thanh ghi F t 0 en 127
Tac ong len c :Z
So chu ky:1
So byte: 2
INCF
Dang lenh:
INCF f,d
Hoat ong:
(F) + 1 => d
Neu d = 0 ket qua c lu vao thanh ghi W
Neu d = 1 ket qua c lu vao thanh ghi F
Gia tr cua thanh ghi F t 0 en 127
Tac ong len c :Z
So chu ky:1
So byte: 2
DECF
Dang lenh:
DECF f,d
Hoat ong:
(F) - 1 => d
Neu d = 0 ket qua c lu vao thanh ghi W
Neu d = 1 ket qua c lu vao thanh ghi F
Gia tr cua thanh ghi F t 0 en 127
Tac ong len c :Z
So chu ky:1
So byte: 2

RLF
Dang lenh:
RLF f,d
Hoat ong:
Dich thanh ghi F sang trai 1 bit thong qua c c.
Neu d = 0 ket qua c lu vao thanh ghi W

Trang28_57

Phan II: Lap trnh hp ng cho PIC16F84

Neu d = 1 ket qua c lu vao thanh ghi F


Gia tr cua thanh ghi F t 0 en 127
Tac ong len c :C
So chu ky:1
So byte: 2
RRF
Dang lenh:
RRF f,d
Hoat ong:
Dich thanh ghi F sang phai 1 bit thong qua c C.
Neu d = 0 ket qua c lu vao thanh ghi W
Neu d = 1 ket qua c lu vao thanh ghi F
Gia tr cua thanh ghi F t 0 en 127
Tac ong len c :C
So chu ky:1
So byte: 2
COMF
Dang lenh:
COMF f,d
Hoat ong:
Lay bu noi dung cua thanh ghi F.
Neu d = 0 ket qua c lu vao thanh ghi W
Neu d = 1 ket qua c lu vao thanh ghi F
Gia tr cua thanh ghi F t 0 en 127
Tac ong len c :C
So chu ky:1
So byte: 2
BCF
Dang lenh:
BCF f,b
Hoat ong:
Xoa bit b cua thanh ghi f ve 0.
Gia tr cua thanh ghi f t 0 en 127
Gia tr cua b t 0 en 7
Khong tac ong len c
So chu ky:1
So byte: 2
BSF
Dang lenh:
BCF f,b
Hoat ong:
Set bit b cua thanh ghi f len 1.
Gia tr cua thanh ghi f t 0 en 127
Gia tr cua b t 0 en 7
Khong tac ong len c
So chu ky:1
So byte: 2
BTFSC

Trang29_57

Phan II: Lap trnh hp ng cho PIC16F84

Dang lenh: BTFSC f,b


Hoat ong:
- Neu bit b trong thanh ghi f bang 0,con tro chng
trnh se nhay en lenh ke tiep.
INCFSZ
Dang lenh: INCFSZ f,d
Hoat ong:
Neu d = 0 ket qua c lu vao thanh ghi w
Neu d = 1 ket qua c lu vao thanh ghi f
Hoat ong cua lenh:(f) + 1 => d
Gia tr cua thanh ghi f t 0 en 127
GOTO
Dang lenh: GOTO K
Hoat ong:
Nhay vo ieu kien en a ch K.
Gia tr cua K t 0 en 2048
Khong tac ong len c
So chu ky:1
So byte: 4
CALL
Dang lenh: CALL K
Hoat ong:
Goi chng trnh con
Gia tr cua K t 0 en 2048
Khong tac ong len c
So chu ky:1
So byte: 4
RETURN
Dang lenh:
RETURN
Hoat ong:
Lay noi dung t nh cua ngan xep lu vao bo
em chng trnh.
Khong tac ong len c
So chu ky:1
So byte: 4
RETLW
Dang lenh:
RETLW K
Hoat ong:
(K) =>w ; TOS => PC
Gia tr cua thanh ghi F t 0 en 255
Khong tac ong len c
So chu ky:1
So byte: 4
RETFIE
Trang30_57

Phan II: Lap trnh hp ng cho PIC16F84

Dang lenh: RETFIE


Hoat ong:
TOS =>PC;1=>GIE
Khong tac ong len c
So chu ky:1
So byte: 4
NOP
Dang lenh: NOP
Hoat ong:
Khong lam g ca.
Khong tac ong len c
So chu ky:1
So byte: 4
CLRW
DT
Dang lenh:
CLRWDT
Hoat ong:
0=> WDT
0=>WDT prescaler
1=> TO
1=>PD
Tac ong len c:TO,PD
So chu ky:1
So byte: 2
SLEEP
Dang lenh: SLEEP
Hoat ong:
Che o dng.

Trang31_57

Phan IV: ng dung

Phan III: PHNG PHAP NAP CHIP


III.1. Gii thieu phan mem MPLAB

MBLAP la phan mem c nha san xuat_Microchip cung


cap giup ngi dung lap trnh cho PIC bang ngon ng
Assemble cua no. Phan mem ho tr ay u cac modul
tien ch giup cho viec lap trnh va nap vao chip. Cac modul
cua phan mem gom:
Project: ho tr cong cu quan ly 1 Project. Gom cac
phan:
Quan ly project
Workspace: ho tr soan thao lenh
Build: Dch tap tin.Asm sang ma may.Hex
Debugger: Mo phong va sa loi
Programmer: ho tr phan mem nap chip vi cac
mach nap chuan:
PICSTART Plus
MPLAB MP3
MPLAB ICD2
PRO MATE 2
III.2. Phan mem nap chip IC PROG:
Trong cac ng dung nay, phan mem c dung e nap
cho chip PIC16F84 la phan mem IC-Prog.

ay la phan mem ho tr nap chip vi ieu khien kha


nho gon nhng rat hieu qua. Icprog khong ch ho tr nap
tat ca cac chip vi ieu khien thuoc dong PIC ma con ho
tr cac ho khac nh: 59Cxx, 24Cxx, 93Cxx, BR, CXK Moi loai
vi ieu khien eu c phan mem ho tr mach nap ma
chung
ta
co
the
tham
khao
tai
trang
web:
http\\www.Icprog.Com
Mot ac iem rat hay va tien li cua chng trnh la
no co kha nang dch ngc tap tin ma may.Hex ve dang
ma gi nh .Asm kha chnh xac. ieu o giup cho ngi
lap trnh co the kiem tra va sa loi ngay khi nap hay dung

Trang32_57

Phan IV: ng dung

lai ma lenh a c lu tren chip d nhien vi ieu kien


la ma nguon m (CP off_code protection)

Hnh III-13: Chng trnh nap chip ICProg

Trong cac ng dung ay, mach ho tr c dung la


mach JDM.
III.3. Mach nap JDM
JDM c thiet ke theo phng phap chuan nap cho
PIC16F84 (PIC16F84A) va PIC16C84 c nha san xuat
Mircochip hng dan. Mach nap kha n gian c trnh bay
trong hnh sau:

Trang33_57

Phan IV: ng dung

Mach tren c thiet ke theo chuan COM 25 chan.


Chung ta co the chuyen oi tng ng cac chan tng
ng sang chuan COM 9 chan theo bang sau:
Bang III-1: Chuyen oi tng ng Com25 va Com9

Chan (25
chan)

Chan (9
chan)

Ten goi

Txd

Truyen d lieu

RTS

Yeu cau gi. Bo


truyen at c nay
len cao khi san sang
truyen d lieu.

Chc nang

CTS

Xoa e gi. Bo gi
at ng nay len
mc cao e thong
bao cho bo truyen la
no san sang nhan
d lieu.

SG

at cua tn hieu

20

DTR

Trang34_57

au cuoi d lieu san


sang. Hoat ong giong
nh RTS nhng c kch
hoat bi bo nhan khi
muon truyen d lieu.

Phan IV: ng dung

Da tren mach nguyen ly JDM do Icpro cung cap chung


em a t lam mach nap cho PIC16F84. S o mach in c
gii thieu trong hnh sau:

Phan IV:

NG DUNG

Bang ng dung chip vi ieu khien PIC16F84 gom 3 modul:


ieu khien LED; ieu khien LCD va ieu khien ong c
Servol.
IV.1. ieu khien LED
IV.1.1. Hoat ong

Trang35_57

Phan IV: ng dung

Modul ieu khien LED la modul n gian nhat trong bang


ieu khien. Viec ieu khien ch n gian la xuat bit tn
hieu ra cac pin tng ng noi vi LED. Tn hieu c xuat
qua LED ngay khi ngat ngoai c kch (Start button) tren chip.
Chng trnh ieu khien LED nhap nhay c viet di dang
vong lap vo tan nen LED se nhap nhay theo mot chu trnh
c thiet ke trong chng trnh va lap lai mai en khi nao
ngi ieu khien an phm Stop hoac chip c Reset.
IV.1.2. Mach ieu khien
Trong mach ieu khien, cac Led c noi vi chip qua
cac chan RB1, RB2, RB4, RB5, RB6. Buttom SW1 noi chan ngat
ngoai RB0/INT vi mass, lam chc nang nh nut Start. Khi
ngat ngoai c kch, chng trnh se re nhanh en chng
trnh con ieu khien Led e ieu khien Led nhap nhay.
Button SW2 noi chan kiem tra ieu kien RA0 vi mass, lam
chc nang nh nut Stop. Khi nut Stop c nhan, lam cho
chan RA0 xuong mc ien ap thap, khi o chng trnh se
c thoat khoi chng trnh con ieu khien Led, tr ve
chng trnh chnh.

Trang36_57

Phan IV: ng dung

V C C
C 4
10k
R 6

U1
3
4
1
2
5
13
12
11
10
8
7

R A 4 /T O C K I
O S C 2 /C L K O U T
M C LR
O S C 1 / C L K IN
R A 2
R A 3
V DD
G
R
R
R
R
R
R

R
B
B
B
B
B
B

OU ND
7
6
5
4
2
1

R A 1
R B 0 /IN T
R B 3
R A 0

X 2

16
15

C1 n5

4M H z

14
1n
SW 1

18
6
9
17

2
SW 2

P IC 1 6 F 8 4

R 1
470R

D 1

R 2
470R

D 2

R3
470R

D3

R4
470R

D4

R 5
470R

D 5

IV.2. ieu khien ong c Servo


IV.2.1. Hoat ong
IV.2.1.1 ong c servo
ong c Servol chnh la mot ong c DC thong thng
c lap them bo giai ma (Encoder) e nhan tn hieu
phan hoi ve goc quay cua ong c. Encoder thng c
cau tao t 1 Led phat quang, 1 en 2 diode quang at oi
dien vi Led phat quang qua 1 khe h va bo khuech ai.

Trang37_57

Phan IV: ng dung

Tn hieu ra se mc cao (hoac thap) khi diode quang


nhan c tn hieu quang hoc t Led phat. V the, khi lap
a phan giai vao khe gia Led phat va diode quang va a
c ong c quay th tn hieu ra la dang xung. So xung phat
ra tren ngo ra cua Encoder chnh la so rang tren a phan
giai a lt qua khe h gia Led phat va diode quang.
Cong thc tnh goc quay cua ong c nh sau:
= 360 nC

Trong o: n- so xung nhan c


C- o phan giai cua a
C=

1
m

M- so rang tren vong


Tren hnh ve, encoder dung 2 kenh, 2 diode quang at
v tr ngc nhau ve tn hieu (khi diode 1 thay th diode 2
khong thay va ngc lai). Dung 2 tn hieu nay trong he vi
sai e chong nhieu. ng dung trong o an nay dung
encoder 1 kenh ngo ra.
Ngi ieu khien dung tn hieu xung nay e ieu
khien chnh xac goc quay cua ong c.

Trang38_57

Phan IV: ng dung

IV.2.1.2 Mach cau H


Mach cau H c thiet ke e ieu khien hoat ong
cua ong c DC. No cho phep tn hieu cong suat thap t
cac chip vi ieu khien co the ieu khien ong c DC. Ngan
dong ngc t ong c phat ra co the lam hong chip. Cung
cap cong suat cho ong c bang 1 nguon tach biet khoi
nguon nuoi chip. Co kha nang ao chieu va dng ong
c ot ngot (thang).

S o mach cau H
2

E
E

J 2 -1

47 0uF

Q5
P N 2222

J 2 -2
R3
1

C 1

J 3 -1

P N 2222

J 3 -2
R 2

47R

474R

Q4

R6
470R

10k

1
2
3
R3
10k

R7

3k3
1

1
B

B
E

R4
10k

T IP 1 2 0 E

P N 2222

Q3

Q6
P N 2 2 2 2 T IP 1 2 0
3

4 HE A DE R

TO MOTOR

R 1

JP
IN A
GROUMD
IN B

T IP 1 2 0

POWER IN

T IP 1 2 0

R8
10k

Trang39_57

Phan IV: ng dung

IV.2.2. Mach ieu khien


C 3
V CC

TO MOTOR

22P

JP 3
R7

VC C

4
3
2
1

1
2
3

4 H EA DE R
VCC
VSS
GROUND
OUT

R5
4 .7 k

3
4
1
2
5
13
12
11
10
8
7

R A 4 /T O C K I
O S C 2 /C L K O U T
M C LR
O S C 1 /C L K I N
RA 2
RA 3
V DD
G
R
R
R
R
R
R

C4

ENCO DER

U2

92R

JP 2

10k
R6

R
B
B
B
B
B
B

OUN D
7
6
5
4
2
1

R A1
R B 0 / IN T
R B3
R A0

16
15

X 2

C1 n5

4M H z

14
1n
18
6
9
17

P IC 1 6 F 8 4

IV.3. ieu khien LCD


IV.3.1. Gii thieu ve LCD
LCD (liquid Crystal Display)_man hnh tinh the long, ay la
phng phap hien th tiet kiem nang lng. Co nhieu loai
LCD, trong o thong dung la hien th 16x2 va 20x2 (hien th
2 hang vi 16 ky t tren moi hang va 2 hang 20 ky t).
LCD c thiet lap chuan e cho phep ta co the giao
tiep vi cac LCD bat chap hang san xuat vi ieu kien
la cac LCD dung cung IC ieu khien HD44780.
Hnh dang va kch thc LCD
Cac LCD c che tao t cac hang nh Densitron, Epson,
Hewlett Packard, Optrex, Shasp vi cac cau hnh thong dung
la 16, 20,24, 32, hay 40 ky t tren 1 hang vi man hnh hien
th 1, 2, hay 4 hang.

Hnh IV-14: Mo hnh man hnh LCD

LCD dung trong ng dung nay la loai 16x2, dung chip


HD44780.
Man hnh nen cua LCD c chieu sang bang en
chieu sang at pha sau bo hien th thay v dung phng
phap phan xa.
Cac chan ra cua LCD

Trang40_57

Phan IV: ng dung

Modul LCD tuan theo qui cach giao tiep chuan. Gom 14
chan, co 8 ng d lieu, 3 ng ieu khien va 3 ng
cap nguon bo tr tren 1 hang.
Chc nang cua cac chan c liet ke trong bang sau:

Trang41_57

Phan IV: ng dung

Bang IV-2: chc nang cua cac chan LCD


Chan so

Ten

Chc nang

Vss

VDD

Cc+ cua nguon

VEE

Tng phan (constrast)

RE

Chon thanh ghi (Register


Select)

R/W

Read/write

Cho phep (Enable)

D0

Bt d lieu 0

D1

Bt d lieu 1

D2

Bt d lieu 2

10

D3

Bt d lieu 3

11

D4

Bt d lieu 4

12

D5

Bt d lieu 5

13

D6

Bt d lieu 6

14

D7

Bt d lieu 7

at

Nguon cap cho LCD la 5VDC, tuy nhien LCD van hoat
ong tot vi nguon 6VDC hay 4.5VDC. LCD tieu thu ien
nang rat t. Tuy nhien en dung e chieu sang cho LCD lai
tieu thu ien nang kha ln. V vay moi khi co hien tng
sut ap tren nguon th ta thay en nen LCD toi ngay.
Chan 3 (VEE) dung e thay oi o tng phan cua man
hien th. Ly tng th chan nay nen noi vi nguon ap
thay oi c, ngi ta thc hien bang cach lap mach chia
ap dung bien tr co au ra thay oi a vao chan nay.
n gian nhat ta co the noi chan nay xuong mass e at
c o tng phan tot nhat.
Chan 4 (RS_Register Select) ay la 1 trong 3 ngo vao
ieu khien lenh. Khi chan nay c noi mass th cac d
lieu truyen en LCD c x ly nh cac menh lenh va
cac d lieu oc ra ch trang thai cua no. Bang cach a
chan nay len mc cao th d lieu ky t co the xuat
nhap tren modul nay.
Chan 5 (R/W_Read/Write), chan nay cho phep lenh hay
d lieu ky t c ghi vao modul khi no c keo xuong

Trang42_57

Phan IV: ng dung

mc thap. Khi c a len cao, no cho phep d lieu ky t


hay thong tin trang thai c oc t cac thanh ghi cua
modul.
Chan 6 (E_ Enable), ngo vao nay dung e khi ong
viec chuyen cac d lieu ky t hay cac lenh gia modul
va cac ng d lieu. Khi ghi ra man hnh LCD, d lieu ch
c chuyen khi co canh xuong cua tn hieu E nay. Tuy
nhien khi oc ra t LCD, th d lieu kha dung sau khi co
chuyen tiep t thap len cao va duy tr d lieu kha dung
en khi tn hieu E nay xuong thap 1 lan na.
Cac chan t 7 en 14 la 8 ng d lieu (D0 D7).
D lieu co the c chuyen en va lay ra khoi bo hien
th LCD theo dang mot byte hay dang na byte 4 bit (nibble).
Trong trng dung trong ng dung nay la dung 4 bit v che
o nay can t ng tn hieu hn.

S o ket noi c the hien nh hnh di ay:


Hnh IV-15: S o ket noi LCD 8 bit

Trang43_57

Phan IV: ng dung

Hnh IV-16: S o ket noi LCD 4 bit

IV.3.2. Hoat ong cua LCD trong ng dung


Trong ng dung nay, LCD hoat ong 3 tnh huong
khac nhau. Moi tnh huong LCD lam nhiem vu hien th li
gii thieu hay trang thai hoat ong cua mo hnh. Cac trang
thai hoat ong cua LCD c liet ke trong bang sau:
Tnh huong 1: va khi ong he thong, cac dong text
se hien th lan lt tren man hnh va lap lai lien tuc
Bang IV-3: Cac man hnh hien th trong tnh huong 1

Man hnh
1
2
3
4
5
6
7

Line

Text hien th

DO AN DKHT

DE TAI: pIC16F84

Gvhd

Ks. Vo tuong quan

Nhom thuc hien

(None)

Dinh Phuong Tan

Mssv: 20102326

Nguyen chinh phuc

Mssv: 2010

VUONG QUOC VIET

MSSV: 2010

TIEU BAO TRAN

MSSV: 2010

Trang44_57

Phan IV: ng dung

Tnh huong 2: Mo hnh ang hoat ong che o Led


nhap nhay, man hnh ch gom 2 dong hien th co nh.
Bang IV-4: Cac man hnh hien th che o 2

Man hnh
1

Line

Text hien th

Che do hoat dong

Led nhap nhay

Tnh huong 3: Mo hnh ang hoat ong che o ieu


khien ong c, man hnh ch gom 2 dong hien th co
nh.
Bang IV-5: : Cac man hnh hien th che o 3

Man hnh
1

Line

Text hien th

Che do hoat dong

Dong co servo

Trang45_57

Phan IV: ng dung

Hnh IV-17: Man hnh LCD trong ng dung

IV.3.3. S o mach ieu khien LCD


Hnh IV-18: S o mach ieu khien LCD
VC C
C1
U1
R 2
4 .7 k

1
2
10k 3

R 2

S W 1
1

R2
4 .7 k

6
17

9
3

M C LR

V DD

GROUN D

R
R
R
R
R
R

R B 0 /I N T
R A 0
R B 3

B
B
B
B
B
B

P IC 1 6 F 8 4
S W 3

7
6
5
4
2
1

16
15

X 1

14

4M H z

13
12
11
10
8
7

C2
22P

0
1
2
3
4
5
6

JP 1
D
D
D
D
R
E

4
5
6
7
S

TO LCD

S W 2
1

22P
R A 2
R A 3
O S C 2 /C L K O U T
R A 4 /T O C K IO S C 1 /C L K I N

H E A D ER 6

Trong s o tren, SW1 co vai tro nh nut Start, SW2 co


vai tro nh nut Stop, SW1 la nut gat chon che o ieu
khien Led hay ieu khien ong c.
IV.4. Mo hnh tch hp:
Cac modul tren c ket hp vi nhau tren 1 mach tch
hp. ay v cac ngo ieu khien nhieu hn kha nang
cua 1 chip vi ieu khien PIC16F84, do o chip vi ieu khien
th 2 c dung en. Hai chip nay c phan nhiem vu
ieu khien cac modul khac nhau. Tuy nhien, e ong bo
cac modul vi nhau th cac ngat ngoai va cac chan kiem
tra ieu kien cua 2 chip c noi vi nhau.
S o mach c trnh bay trong hnh sau:

Trang46_57

Phan IV: ng dung

TO MOTOR
JP 3

J1

C3

4 HE A D E R

1
2
3

2 2P

PO W ER
4
3
2
1

ENCO DER

VCC
VSS
GROUND
OUT

R7
92R

JP 2

C 4

U2

4
1
2

R A 4 /TO C K I
O S C 2 /C L K O U T
M C LR
O S C 1 /C L K IN
RA 2
RA 3
V DD

16
15

C1 n5

4M H z

14

1
2
3

R2

10k

1n

G
R
R
R
R
R
R

RO UND
B 7
B 6
B 5
B 4
B 2
B R1 8

RA1
R B 0 /IN T
RB3
RA0

R9

18
6
9
17

S W 2

4 .7 k

R3
4 .7 k

P IC 1 6 F 8 4

4 .7 k

S W 1

D1
1

D2
ri g h t L E D

R 1 R4 1 R3 1 R2 1 R1 1 0
1 k 1 k 4 7 04 R7 01 Rk

D 3
LE D

L e ft L E D

D3

D3

LE D

LE D

R 1

D3
LE D

R4

5
6
9
17

2 2P
R A 2
R A 3
O S C 2 /C L K O U T
R A 4 /T O C K IO S C 1 / C L K I N
M C LR
G ROU ND
R B 0 /I N T
R B 3
R A 0

P IC 1 6 F 8 4

V DD
R
R
R
R
R
R

B
B
B
B
B
B

7
6
5
4
2
1

16
15

X1

14

4M H z

13
12
11
10
8
7

C2
2 2P
JP 1
1
2
3
4
5
6

TO LCD

5
13
12
11
10
8
7

C1

U1
X2

2 1

10k
R6

R5
4 .7 k

H EA D ER 6

S W 6
2

D3
LE D

Hnh IV-19: S o mach tch hp

Trong mach tren, IC1 (U1) ieu khien LCD; IC2 (U2) ieu
khien LED va ong c.
Mach ien thc te c mo ta trong hnh sau:

Trang47_57

Phan IV: ng dung

Hnh IV-20: Mach ien thc te

IV.5. Ma chng trnh:

Trang48_57

Phan IV: ng dung

Chng trnh cho IC1


Oi4list P = 16F84
Include "P16f84.Inc"
Simulating = 1
; -------------------; nh ngha bien
; -------------------CBLOCK 0x20
DelayL
DelayM
DelayH
StrPtr
MessAddH
MessAddL
MessNum
Temp
PBtemp
Flag1
ENDC
LcdRS
equ 1h
LcdE equ 2h
LCDmd

equ 0h

; ------------------------------; Khi tao chng trnh chnh


; ------------------------------Org 0000h
;
start address = 0000h
Goto main
org 0x04
Goto ISR
Main
bcf OPTION_REG,INTEDG
Bsf OPTION_REG,NOT_RBPU
Bsf INTCON,INTE; interupt BB0
enabled
bsf INTCON,GIE
Banksel PORTA
Movlw 0x00; PORTA = all low
movwf PORTA
Movlw 0x00; PORTB = all low
movwf PORTB
Bsf STATUS,RP0 ; RAM Page 1

Movlw 0x01; RA1 = input


movwf TRISA
Movlw b'00001001';RB3 & RB0 =
input
Movwf TRISB
Bcf STATUS,RP0 ; RAM Page 0
Movlw 20h; 25mS powerup delay
@ 4MHz
Movwf DelayH; LCD data sheet
says 15mS
Clrf DelayL
PUPD decfsz DelayL,F
Goto PUPD
Decfsz DelayH,F
Goto PUPD
;
; ----------------------------------; Truyen d lieu khi tao
en LCD
; ----------------------------------;
Clrf Flag1; send instruction as 8
bit mode
movlw b'00110000' ; function set
8 bits
call LCDins
Movlw b'00110000'
; function
set 8 bits
call LCDins
Movlw b'00110000'
; function
set 8 bits
call LCDins
Movlw b'00100000'
; function
set 4 bits
call LCDins
Bsf Flag1,LCDmd ;che o 4 bit
Movlw b'00101000'
Call LCDins
Movlw b'00001000'
; display =
off
call LCDins
Movlw b'00000001'
; clear the
display
call LCDins
Movlw b'00000110'
;
increment - no display shift
call LCDins
Movlw b'00001100'
; display
on, cursor off, blink off

Trang49_57

Phan IV: ng dung

call LCDins
;
; ----------------; Chng trnh chnh
; ----------------;
Loop
Movlw 0h
hien th mess
ra man hnh
Number 0
Call MessLine1
; line 1
Movlw 1h
Number 1
Call MessLine2
; line 2
Call BigDel ; ch 1/2 s
movlw 1h
; xoa man
hnh
Call LCDins
Call BigDel ; wait 1/2 second
movlw 2h
Call MessLine1
Movlw 3h
Call MessLine2
Call BigDel
Movlw 1h
Call LCDins
Call BigDel
Movlw 4h
Call MessLine1
Call BigDel
Movlw 1h
Call LCDins
Call BigDel
Movlw 5h
Call MessLine1
Call BigDel
Movlw 1h
Call LCDins
Call BigDel
Movlw 6h
Call MessLine1
Call BigDel
Movlw 1h
Call LCDins
Call BigDel
Movlw 7h
Call MessLine1
Call BigDel
Movlw 1h
Call LCDins

Call BigDel
Movlw 8h
Call MessLine1
Call BigDel
Movlw 1h
Call LCDins
Call BigDel
Goto Loop
ISR bcf INTCON,INTF
Btfss PORTB,3
Call LED
Btfsc PORTB,3
Call SERVO
Retfie
LED
Movlw 9h
Call MessLine1
Movlw 0ah
Call MessLine2
Btfss PORTA,0
Goto main
call BigDel
Loop1
btfss PORTA,0
Goto main
goto loop1
SERVO
Movlw 9h
Call MessLine1
Movlw 0bh
Call MessLine2
Btfss PORTA,0
Goto main
call BigDel
Loop2
btfss PORTA,0
Goto main
goto loop2
; ---------------------------; Truyen d lieu en LCD
; ---------------------------;
MessLine1
Movwf MessNummovlw 0x80
Goto InMess
MessLine2
Movwf MessNummovlw 0xC0
InMess
call LCDins

Trang50_57

Phan IV: ng dung

Movf MessNum,W
Message number
addwf PCL,F
Goto Mess0 ; message 0
Goto Mess1 ; message 1
Goto Mess2
Goto Mess3
Goto Mess4
Goto Mess5
Goto Mess6
Goto Mess7
Goto Mess8
Goto Mess9
Goto Mess10
Goto Mess11
; --------; MESSAGE 0
; --------;
Mess0
movlw
High(Message0) ; get ROM page

addlw 8h
endif

if Simulating == 1
addlw 8h
endif

movwf MessAddH ; temp store it


movlw Low(Message2) ; get page
offset
goto ContMess
;
; --------; MESSAGE 1
; --------;
Mess3
movlw
High(Message3) ; get ROM page
if Simulating == 1
addlw 8h
endif
movwf MessAddH ; temp store it
movlw Low(Message3)
Mess4
movlw
High(Message4)
if Simulating == 1
addlw 8h
endif
movwf MessAddH
movlw Low(Message4)
goto ContMess
;
; --------; MESSAGE 1
; --------;
Mess5
movlw
High(Message5)
if Simulating == 1
addlw 8h
endif
movwf MessAddH
movlw Low(Message5)
goto ContMess
Mess6
movlw
High(Message6)

movwf MessAddH ; temp store it


movlw Low(Message1) ; get page
offset
goto ContMess
Mess2
movlw
High(Message2) ; get ROM page
if Simulating == 1

if Simulating == 1
addlw 8h
endif
movwf MessAddH
movlw Low(Message6)
offset
goto ContMess

if Simulating == 1
Addlw 8h
Endif
movwf MessAddH ; temp
store it
movlw Low(Message0) ;
get page offset
goto ContMess
;
; --------; MESSAGE 1
; --------;
Mess1
movlw
High(Message1) ; get ROM page

Trang51_57

Phan IV: ng dung

;
; --------; MESSAGE 1
; --------;
Mess7
movlw
High(Message7)
if Simulating == 1
addlw 8h
endif
movwf MessAddH
movlw Low(Message7)
goto ContMess
Mess8
movlw
High(Message8)
if Simulating == 1
addlw 8h
endif
movwf MessAddH ; temp
store it
movlw Low(Message8) ;
get page offset
goto ContMess
;
; --------; MESSAGE 1
; --------;
Mess9
movlw
High(Message9) ; get ROM page
if Simulating == 1
addlw 8h
endif
movwf MessAddH ; temp
store it
movlw Low(Message9) ; get page
offset
goto ContMess
Mess10
movlw
High(Message10) ; get ROM page
if Simulating == 1
addlw 8h
endif
movwf MessAddH ; temp store it
movlw Low(Message10)
;
get page offset

goto ContMess
;
; --------; MESSAGE 1
; --------;
Mess11
movlw
High(Message11) ; get ROM page
if Simulating == 1
addlw 8h
endif
movwf MessAddH ; temp store it
movlw Low(Message11) ; get
page offset
ContMess movwf MessAddL
;
temp store it
;
; -----------------------------------------; Nhan d lieu va hien th
tren LCD
; -----------------------------------------;
clrf StrPtr ; zero the character
offset
MessLoop call Messages
; get
the character
movwf temp
; temp store the
character
movlw High($)
; restore
PCLATH for this ROM page
if Simulating == 1
addlw 8h
endif
movwf PCLATH
movf temp,W
xorlw 0h
; test if zero
byte
btfsc STATUS,Z
return
; yes, all done
call LCDdata
; send character
to display
incf StrPtr,F ; set ready for next
character
goto MessLoop
; get next
character
;
; ---------------------------; CHARACTER ADDRESS
CALCULATOR

Trang52_57

Phan IV: ng dung

; ---------------------------;
Messages movf MessAddH,W
; high address byte to
PCLATH
movwf PCLATH
movf MessAddL,W
; get
low address byte
addwf StrPtr,W ; add
character offset
btfsc STATUS,C ; test
carry
incf PCLATH,F
; overflow
- increment PCLATH
movwf PCL
; low byte
to PCL
;
;
-----------------------------------------------; OUTPUT 1 INSTRUCTION BYTE
TO DISPLAY - 4 BIT MODE
;
-----------------------------------------------;
LCDins movwf temp ; temp
save instruction
andlw 0xF0 ; send high
nibble first
movwf PORTB
; send it
call Clock
bsf PORTB,lcdE
; (1)
clock it in
call Clock
bcf PORTB,lcdE
; (1)
call Clock
btfss Flag1,LCDmd
;
test if sending byte or 2 nibbles
goto bits8 ; 1 nibble
swapf temp,W
; now
send lower nibble
andlw 0xF0
movwf PORTB
; send it
call Clock
bsf PORTB,lcdE
; (5) enable
instruction
call Clock

bcf PORTB,lcdE
; (5)
bits8 clrf DelayL
movlw 8h
movwf DelayH
ctlp1
decfsz DelayL,F
goto ctlp1
decfsz DelayH,F
goto ctlp1
return
;
; -----------------------------------------; Xuat 2 byte ra man hnh
; -----------------------------------------;
LCDdata
movwf temp
; temp save
data
andlw 0xF0 ; send high nibble first
movwf PORTB
call Clock
bsf PORTB,lcdRS
; (0) Write
"data"
call Clock
bsf PORTB,lcdE
; (1) clock it in
call Clock
bcf PORTB,lcdE
; (1)
call Clock
swapf temp,W
; now send
lower nibble
andlw 0xF0
movwf PORTB
call Clock
bsf PORTB,lcdRS
; (0) Write
"data"
call Clock
bsf PORTB,lcdE
; (5) enable
instruction
call Clock
bcf PORTB,lcdE
; (5)
return
;
; ----------------------------; nh ngha tan so dao ong
; ----------------------------;
Clock movlw 40h
movwf DelayL
kdloop decfsz DelayL,F
goto kdloop
return

Trang53_57

Phan IV: ng dung

;
; -------------------------------; khi tao thi gian nhap
nhay ~ 0.5s
; -------------------------------;
BigDel
clrf DelayL
clrf DelayM
movlw 5h
movwf DelayH
BDloop
decfsz DelayL,F
goto BDloop
decfsz DelayM,F
goto BDloop
decfsz DelayH,F
goto BDloop
return
;
; --------------; chuoi
; --------------;
Message0 DT " DO AN DKHT ",
0h
Message1 DT "DE TAI:
PIC16F84", 0h
Message2 DT "
GVHD
",0h
Message3 DT "KS VO TUONG
QUAN" ,0h
Message4 DT " NHOM THUC
HIEN ",0H
Message5 DT " DINH PHUONG
TAN",0H
Message6 DT " NG. CHINH PHUC
",0H
Message7 DT " VUONG QUOC
VIET",0H
Message8 DT " TIEU BAO TRAN
",0H
Message9 DT " DIEU KHIEN
",0H
Message10 DT " LED NHAP
NHAY ",0H
Message11 DT " DONG CO
SERVO ",0H
End

Trang54_57

Phan IV: ng dung

Chng trnh cho IC2


list
p=16F84A
; list
directive to define processor
#include <p16F84A.inc>
; processor specific variable
definitions
__CONFIG _CP_OFF &
_WDT_OFF & _PWRTE_ON &
_XT_OSC
cblock 0x0c
TMP0
TMP1
TMP2
CNT
endc
org 0x00
goto main
org 0x04
goto ISR
main
banksel TRISA
movlw b'00010001' ; RA0,RA4 is
input
movwf TRISA
movlw b'00001001'; RB0,RB3 =
INPUT
movwf TRISB
banksel PORTA
clrf PORTA
clrf PORTB
movlw b'10110010'
movwf OPTION_REG
bsf INTCON,INTE
bsf INTCON,GIE
goto main
ISR
bcf INTCON,INTF
btfss PORTB,3
goto LED
btfsc PORTB,3
goto SERVO
LED
banksel PORTB
movlw b'00000010'
call blink
btfss PORTA,0
goto main

movlw b'00000100'
call blink
btfss PORTA,0
goto main
movlw b'00010000'
call blink
btfss PORTA,0
goto main
movlw b'00100000'
call blink
btfss PORTA,0
goto main
movlw b'01000000'
call blink
btfss PORTA,0
goto main
movlw b'00100000'
call blink
btfss PORTA,0
goto main
movlw b'00010000'
call blink
btfss PORTA,0
goto main
movlw b'00000100'
call blink
btfss PORTA,0
goto main
movlw b'00000010'
call blink
btfss PORTA,0
goto main
movlw b'00000110'
call blink
btfss PORTA,0
goto main
movlw b'00010110'
call blink
btfss PORTA,0
goto main
movlw b'00110110'
call blink
btfss PORTA,0
goto main
movlw b'01110110'
call blink
btfss PORTA,0
goto main
movlw b'00110110'
call blink

Trang55_57

Phan IV: ng dung

btfss PORTA,0
goto main
movlw b'00010110'
call blink
btfss PORTA,0
goto main
movlw b'00000110'
call blink
btfss PORTA,0
goto main
movlw b'00000010'
call blink
btfss PORTA,0
goto main
movlw b'01010010'
call blink
btfss PORTA,0
goto main
movlw b'00100100'
call blink
btfss PORTA,0
goto main
movlw b'01010010'
call blink
btfss PORTA,0
goto main
movlw b'00100100'
call blink
btfss PORTA,0
goto main
movlw b'01010010'
call blink
btfss PORTA,0
goto main
movlw b'00100100'
call blink
btfss PORTA,0
goto main
goto LED
SERVO
nop
PHAI
movlw .2
movwf CNT
movlw b'00001100'
movwf PORTA
call DEL
btfss PORTA,0
goto main
call DEL

clrf PORTA
PH1
movlw .12
movwf TMR0
loop1
btfsc TMR0,7
goto Cont1
lp1
bsf PORTA,2
bsf PORTB,7
btfss PORTA,0
goto main
goto loop1
Cont1
btfss TMR0,6
goto lp1
goto Ctr
Ctr
decfsz CNT,1
goto PH1
goto TRAI
TRAI
bcf PORTB,7
movlw b'00001100'
movwf PORTA
call DEL
btfss PORTA,0
goto main
call DEL
clrf PORTA
movlw .2
movwf CNT
TR1
movlw .12
movwf TMR0
loop2
btfsc TMR0,7
goto Cont2
lp2
bsf PORTA,3
bsf PORTA,1
btfss PORTA,0
goto main
goto loop2
Cont2
btfss TMR0,6
goto lp2
goto Ctr2
Ctr2
decfsz CNT,1

Trang56_57

Phan IV: ng dung

goto TR1
goto PHAI
blink
movwf PORTB
call DEL
return
DEL
MOVLW 0x02 ;2 DEC
MOVWF TMP2
MOVLW 0x0E5 ;229 DEC
MOVWF TMP1
MOVLW 0x0D9 ;217 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
DECFSZ TMP1,F
GOTO $-5
DECFSZ TMP2,F
GOTO $-9
return
end

Trang57_57

You might also like