You are on page 1of 113

Chucng 3

CHU0NC 1kNH 8|EN D[CH VA NAP CH0


V| |EU KH|EN P|C6F877A

CHU0NC 1kNH 8|E N D[CH
3 , \/
3 ,
CHU0NC 1kNH NA P CH0 P|C
3 / N`
3 /
NC0N NCU LAP 1kNH A5M CU A MPLA8
/ / 3 3 \/
[nhon}
Lenh vo coc thom sc
Quy uc c k| h|eu trcng MPLA8
/ /
Lenh: ADDLW
Lenh: ADDWF
Lenh: ANDLW
Lenh: ANDWF
Lenh: BCF
Lenh: BSF
Lenh: BTFSS
Lenh: BTFSC
Lenh: CALL
Lenh: CLRF
Lenh: CLRW
Lenh: CLRWDT
Lenh: COMF
Lenh: DECF
Lenh: DECFSZ
Lenh: GOTO
Lenh: INCF
Lenh: INCFSZ
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
124 . + y
Lenh: IORLW
Lenh: IORWF
Lenh: MOVLW
Lenh: MOVF
Lenh: MOVWF
Lenh: RETFIE
Lenh: RETLW
Lenh: RLF
Lenh: RETURN
Lenh: RRL
Lenh: SLEEP
Lenh: SUBLW
Lenh: SUBWF
Lenh: SWAPF
Lenh: XORLW
Lenh: XORWF
NC0N NCU LAP 1kNH C CU A CC5 C
3
3 3 /
/ / ./ 3 , / 3, \/3
Kho| bo c b|en, hong, mo ng
Co ch su du ng b|e n
/ /
| , /
#A5M vo #ENDA5M
#|NCLUDE
#8|1, #81E, #L0CA1E vo #D|F|NE
#DEV|CE
#0kC
#U5E
Mct sc ch| th| t|e n xu |y khoc
/ /\ / , / , /
Co c hom xu |y sc
Co c hom xu |y b|t vo co c phe p tcon
Co c hom xu |y b|t vo co c phe p tcon
/ / ./ / /\ 3
Co c hom xu |y ADC
5E1UP_ADC_pcrt (vo|ue[
5E1UP_ADC_chonne| (chonne|[
keod_ADC (mcde[
Co c hom |0 trcng C
/ / 3/ ./ / /\ / / 3 3/
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
125 . + y
Kho| bo c ngot
Co c hom th|et |o p hcot dcng ngo t
Co c hom g|oc t|e p vc| mo y t|nh quo ccng C0M
CA C CHU0NC 1kNH V DU
3 ` /
3 ' \ / 3 / /3 /
3 ` / 3
3 \ 3333 7 /
3 \/ / ,


H|nh vo bo ng
H|nh 3-. Cu o sc khc | dcng.
H|nh 3-2. Cu o sc |om v|e c cu o MPLA8.
H|nh 3-3. Mo n h|nh khc | dc ng cu o CC5 C.
H|nh 3-4. Luu f||e.
H|nh 3-5. 1oc Prcject mc|.
H|nh 3-6. Cu o sc |om v|e c cu o CC5C.
H|nh 3-7. 1hcng boc sou kh| b|en d|ch.
H|nh 3-8. Cu o sc cu o W|NP|C800.
H|nh 3-. Cu o sc Hordwore 5ett|ng.
H|nh 3-0. Mo n h|nh cu o |C-Prc.
H|nh 3-. Cu o sc Hordwore 5ett|ng.
H|nh 3-2. Cu o sc 5ett|ng.
H|nh 3-3. Cu o sc |u o chcn.
H|nh 3-4. Cu o sc |u o chcn.
H|nh 3-5. Co | dot Dr|ver.
H|nh 3-6. Chc n P|C con no p.
H|nh 3-7. |nh do ng chung chc mc t sc |enh cuo P|C 6F877A.
8o ng 3-. K| h|eu coc thonh gh| trcng MPLA8.
8o ng 3-2. 1cm to t to p |enh.
8o ng 3-3. 1o p |e nh ngcn ngu C.
8o ng 3-4. Ket quo dcc ADC.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
126 . + y

|. CHU0NC 1kNH 8|E N D[CH:
Hie n nay co ra t nhieu chng trnh bien dch cho PIC vie t tren nhieu ngon ng kha c nhau nh
ASM, BASIC, C, hai pha n mem MPLAB cu a hang Microchip va pha n mem CCS C. Ngoa i ra con
co ca c pha n mem bien dch kha c nh: Mikro BASIC, Mikro C, HI-TECH,
' 3 , \/
Chng trnh bien dch MPLAB IDE cu a hang Microchip cho mien ph ta i website
http://www.microchip.com.
Pha n mem MPLAB IDE tng thch v i he ieu hanh:
Windows 98 SE
Windows ME
Windows NT 4.0 SP6a Workstations (NOT Servers)
Windows 2000 SP2
Windows XP Home and Professional
Sau khi ca i at xong th click vao bieu t ng th ma n hnh se xua t hien bie u tng:

H|nh 3-. Cu o sc khc | dc ng.
Sau o co man hnh soan thao nh sau:
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
127 . + y


H|nh 3-2. Cu o sc |om v|e c cu o MPLA8.
Khi muon bien dch t file .ASM sang file .HEX va o menu Project ro i chon Build all hoa c
QuickBuild e bie n dch.
Neu chng trnh vie t b lo i th ta i ca so Output se xua t hien mot thong bao la bien dch tha t
ba i (BUILD FAILED) va so loi cu a chng trnh vi v tr cu a tng lo i nam trong chng trnh.
Khi du ng MPASM, ca c so co the c bie n dch mo t trong ca c he thong so c ban. Ma c nh
cho file nguon co the c thiet lap ba ng ch dan Radix:
Radix dec
Ben trong file nguo n, gia tr ma co the nhap va o ca c c so khac nhau s dung cau tru c sau:
D123 .123 ; thap phan
H1AF 0x1F ; thap lu c phan
O777 ; ba t phan
B 00111001 ; nh pha n
0B00111001 ; nh pha n
A C ; 7-bit ASCII
dt This is a string ; day ASCII
Cau tru c mo t chng trnh ASM trong MPLAB nh sau:
Title ten go i cu a chng trnh
Include <p16f877a.inc>; Ten PIC can viet chng trnh
_CONFIG CP_OFF & ; khai bao cho PIC
;-------- Khai bao bie n---------------------
temp EQU 0x20 ; at bien co ten temp co a ch la o nh 0x20
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
128 . + y
;------------------------------------------------
ORG 0x0000 ;vector reset
GOTO START
;----------------Chng trnh ngat---------
ORG 0x0004 ;vector interrupt
; .ma nga t ay.
RETFIE ; thoat kho i chng trnh nga t
;-----------------Ke t thu c chng trnh nga t-----
;==========Chng trnh chnh=========
Start
ma chng trnh chnh ay

END ;ke t thu c chng trnh chnh
;=================================
Cong cu MPLAB SIM trong MPLAB IDE (co ng cu mo phong cho chng trnh):
Chon Debugger Select Tool e chon cong cu, sau o cho n MPLAB SIM. ay la co ng cu
mo phong dung e gia lap tn hieu ien cu a cac chan va trang thai ca c thanh ghi cua con chip c
dung. Co hai loai: ong bo va khong o ng bo .
ong bo : tn hie u c gia lap ong bo v i nhng vong lenh cu a chip.
Khong ong bo : tn hieu c ap a t bi ng i dung trong th i gian thc (real time) khi
MPLAB SIM ang chay.
3 ,
Chng trnh bien dch CCS C c cung cap ta i a ch:
http://www.ccsinfo.com/download.shtml.
V la trnh bien dch co thu ph nen phien ban demo co mo t so han che so vi phien ban co
thu ph.
CCS la trnh bien dch lap trnh ngon ng C cho Vi ieu khien PIC cu a hang Microchip.
Chng trnh la s tch hp cu a 3 trnh bie n dich rieng biet cho 3 dong PIC kha c nhau o la :
PCB cho dong PIC 12bit opcodes
PCM cho dong PIC 14bit opcodes
PCH cho dong PIC 16 va 18bit
Tat ca 3 trnh bien dch nay uc tch h p la i va o trong mo t chng trnh bao gom ca trnh
soa n tha o va bien dch la CCS.
Gio ng nh nhieu trnh bien dch C kha c cho PIC, CCS giup cho ngi s du ng nam ba t nhanh
c vi ieu khien PIC va s du ng PIC trong ca c d an. Ca c chng trnh ieu khien se c th c
hien nhanh cho ng va at hieu qua cao thong qua vie c s dung ngo n ng lap trnh cap cao ngon
ng C.
Khi kh i o ng chng trnh CCS th ca so chng hnh nh hnh di:
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
129 . + y

H|nh 3-3. Mo n h|nh khc | dc ng cuo CC5 C.
Hng da n tao mo t Project m i trong CCS:
e tao mot Project trong CCS co nhieu ca ch, co the dung Project Wizard, Manual Create,
hay la tao mo t Files m i va them vao o ca c khai bao ban au can thie t. Vao Project chon PIC
Wizard sau khi chon mo t ca so hie n ra yeu cau nhap ten file can tao nh hnh sau:

H|nh 3-4. Luu f||e.
Chon Save mo t ca so m i hien ra nh hnh sau:
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
130 . + y

H|nh 3-5. 1oc Prcject mc|.
Sau o nhap OK la a tao c mo t Project m i va co c a so lam vie c m i nh hnh sau:


H|nh 3-6. Cu o sc |om v|e c cu o CC5C.
Nh vay, chung ta a tao c mot Project mi va tien hanh vie t chng trnh cho PIC.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
131 . + y
Khi muon bien dch t file *.c sang file *.Hex th va o Compile cho n Compile hoa c bam F9
th CCS se tien hanh bien dch file *.c sang file *.Hex e nap cho PIC. Khi bien dch th trnh bien
dch se xuat hien ca so nh hnh sau la chng trnh bien dch thanh cong (chng trnh khong co
lo i ve cau tru c lenh).

H|nh 3-7. 1hcng boc sou kh| b|en d|ch.
Neu chng trnh vie t co lo i th khi bien dch se bao lo i ta i v tr con tro trong chng trnh.
||. CHU0NC 1kNH NA P CH0 P|C:
Hie n nay co ra t nhieu phan mem na p khac nhau cho PIC nh phan mem nap Winpic800 va
IC-Pro e gi i thieu v hai phan mem nay c s dung nhieu va c cong ong s dung PIC
anh gia to t.
' 3 / N`
Hng dan cai at Winpic800: chay file WinPic800_V3_59.exe e ca i a t Winpic800, sau o
chon next e tien hanh ca i a t.
Khi ca i a t xong th tren ma n hnh desktop xua t hien bie u tng Winpic800, click vao bieu
tng Winpic800 e chay chng trnh nap, c a so cu a Winpic800 nh hnh sau:

H|nh 3-8. Cu o sc cu o W|NP|C800.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
132 . + y
Sau o va o Settings chon Hardware e tien hanh cai a t phan cng cho chng trnh nap,
man hnh hardware settings xuat hien nh sau:

H|nh 3-. Cu o sc Hordwore 5ett|ng.
Chon hardware la JMD Programmer, chon Apply Edits e chap nhan.
Sau o chon ho PIC va ten PIC muon nap chng trnh. V du nh muon nap cho
PIC16F877A th chon ho 16F ten PIC la 16F877A.
Hng da n nap chng trnh cho PIC16F877A bang Winpic800:
Chon File Open hoac cho n e chon file *.Hex can nap. Sau o chon Device
Program All (Ctrl+P) hoa c chon e na p chng trnh.
3 /
Hng da n ca i at IC-Pro: gia i nen file IC-pro vao th mu c bat k nh IC-Pro sau o chay file
ICProg.exe bo qua ta t ca cac loi e m chng trnh ra. Sau o cho n Settings >> Clear Settings nh
hnh sau:

H|nh 3-0. Mo n h|nh cu o |C-Prc.
Sau khi nhan Yes lien tu c, mo t man hnh Hardware settings se hien ra nh sau:
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
133 . + y

H|nh 3-. Cu o sc Hordwore 5ett|ng.
Do chung ta chon dung bo nap PG1A la mo t bo nap c pha t trien cu a JDM, cho ne n phan
Programmer chung ta se chon JDM Programmer. Pha n cong, chung ta se chon COM1, COM2 hoa c
COM3 tuy theo may tnh. Phan Interface, ca c ba n cho n Windows API va phan Communication
khong anh da u g ca, sau o chon OK. Khi s dung Windows API, kho ng can quan tam en phan
I/O Delay.
Man hnh ban au sau khi khi ong la i IC-Prog hien ra nh hnh d i. Chung ta se chon
Settings Options e tiep tu c ca i a t cho IC-Prog.

H|nh 3-2. Cu o sc 5ett|ng.
Man hnh Options se hien ra. Ch quan tam t i phan Misc, con ca c phan kha c khong can quan
tam. C e ma c nh nh chng trnh ban au a co.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
134 . + y

H|nh 3-3. Cu o sc |u o chcn.
Chon Enable Vcc control for JDM, sau o m i chon tiep Enable NT/2000/XP Driver. Khi
chon Enable Driver xong, ngay la p tc se co mo t man hnh Confirm hien len nh trong hnh ben
di nhan Yes e ca i at.
Lu y rang, driver a na m san trong th mu c ICProg. Do va y, ICProg se t ong nhan ra va
khi ong la i ICProg.

H|nh 3-4. Cu o sc |u o chcn.
Mot man hnh Confirm kha c se hie n ra e ye u cau xac nhan viec ca i a t driver cho Windows
NT/2000/XP,cho n Yes.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
135 . + y

H|nh 3-5. Co | dot Dr|ver.
Nh vay cong viec ca i at a hoa n ta t.
Hng dan nap cho PIC16F877A bang ma ch nap PG1A:
Kh i ong chng trnh nap IC-Pro sau o chon ten PIC can nap nh hnh sau:

H|nh 3-6. Chc n P|C con no p.
V du nh chon PIC16F877A, sau o vao File -> chon Open file hoa c chon e chon file
.HEX can na p. Sau o cho n Command ->Program All (F5) hoac chon e na p chng trnh cho
PIC16F877A.
|||. NC0N NCU LAP 1kNH A5M CU A MPLA8:
' / / 3 3 \/
[nhan] LE NH tham so 1, tham so 2
Mot dong nh tren go i la mot dong lenh. Chng trnh MPLAB c chia lam 4 co t ro rang:
Cot th nhat e vie t nhan.
Cot th hai e vie t ten lenh muon th c hien.
Cot th 3 la tham so th nha t cua lenh.
Cot th t la tham so th hai cu a lenh.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
136 . + y
Gi a tham so th nhat va tham so th 2 luon cach nhau mo t dau phay (,). Ca c cot c ca ch
nhau ba ng t nha t mo t ky t TAB (khoang trang rong) hay mo t k t tra ng.
o. [nhon}:
[nhan] la mo t chuoi ky t e anh da u mo t iem nao o trong chng trnh, thay v phai ghi
a ch bo nh th chung ta thay a ch o bang mo t ca i [nha n]. [nha n] nay thng c go i la i
bang le nh GOTO hoac CALL.
Moi cau lenh, co the co hoac kho ng co [nhan]. Tuy nhien, ne n vie t sao cho so [nhan] la t
nha t e tranh s lam lan va roi mat khi lap trnh.
[nhan] c vie t trong co t th nhat cu a dong le nh. [nhan] khong c bat a u bang ca c ky
t ac bie t nh: *,&, khoa ng trang, ca c con so (0,1,2) Gia ca c ky t cu a nhan cung khong c
co ca c ky t a c bie t *,^,
o da i cua mo t [nhan] khong gi i ha n, tuy nhien, chu ng ta pha i viet sao cho [nhan] luon
nam trong cot th nha t cua dong lenh, o da i nhan va pha i e de quan sa t, u thong tin gi nh va
thuan tien khi lap trnh.
Chung ta hoan toan co the ky hieu ca c [nhan] la NHAN_1, NHAN_2 nhng no i dung thong
tin cua nhan khong u e the hien cong vie c se c thc hie n, nh va y se ra t kho nh khi lap
trnh, nhat la khi chng trnh viet da i va co e n ha ng chu c hang tram nhan trong chng trnh.
V du:
Nha n ung:
Good_bye
Exit
KHOIDONG
Lap_1
Nha n sai:
1Exit
Good^bye
Khoi dong
b. Lenh vo coc thom sc :
LENH la ten cu a ca c le nh g i nh c lie t ke theo bang be n d i. LE NH c vie t vao co t
th hai, mo i dong lenh phai co ten LENH, neu khong co th se khong bie t dong lenh o lam vie c
g. LE NH the hien cong vie c pha i lam cu a dong lenh.
Tuy theo LE NH ma co the co tham so 1 va tham so 2, hoac ch co tham so 1, hoa c khong co
tham so na o he t. Trong mo t do ng lenh, phai viet u tham so cu a LENH o.
c. Quy uc c k| h|eu trcng MPLA8:
Ba ng 3-1: K hieu quy c ca u tru c lenh
K hieu Chc na ng
f a ch cua file thanh ghi t 000 en 07F
w Thanh ghi W - Working register (accumulator)
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
137 . + y
b La a ch nam trong file thanh ghi 8 bit
k Hang so hoac nha n
x Khong quan tam la 0 hay 1
d L c chon ni nhan d lieu
d =0 lu ket qua vao thanh ghi W
d =1 lu ket qua vao trong thanh ghi f
Mac nh d = 1
PC Bo em chng trnh
TO Bit Time-out
PD Bit Power-down
8o ng 3-. K| h|eu coc thonh gh| trcng MPLA8.

H|nh 3-7. Khucn khc chung chc mct sc |e nh cu o P|C 6F877A.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
138 . + y
Ba ng 3-2: Tap le nh cua PIC16F877A:


8o ng 3-2. 1cm to t to p |e nh.
Chu y (1): khi thanh ghi IO b thay o i (v du nh lenh MOVF PORT, 1) th gia tr du ng trong
lenh la gia tr xua t hien ngo ra. V du thanh ghi cho t d lieu la 1 e nh cau hnh la ngo ra va
c ieu khie n xuong m c tha p b i thie t b ben ngoai th d lie u o c vao la mc.
Chu y (2): ne u lenh na y c thc hien cho thanh ghi TMR0 th bo chia tr c se b xoa neu
gan cho kho i Timer0.
Chu y (3): neu thanh ghi PC b thay oi th can 2 chu ky , chu ky th 2 th c hien le nh NOP.
/ /
a. Lenh: ADDLW Cong ha ng so k vao W
Cu phap: ADDLW k
Tac to : 0 k 255
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
139 . + y
Th c thi: (W) + k (W)
C anh hng: C,DC,Z
Chc na ng: cong no i dung thanh ghi W v i hang so k 8 bit va ket qua lu vao W.
Chu ky th c hie n: 1.

b. Lenh: ADDWF Cong W v i f
Cu phap: ADDWF f,d
Tac to : 0 f 127, d [0,1]
Th c thi: (W) + (f) (dest)
C anh hng: C,DC,Z
Chc nang: cong noi dung thanh ghi W v i thanh ghi f. Neu d= 0 th lu ket qua vao
thanh ghi W, con d=1 th lu vao thanh ghi f.
Chu ky th c hie n: 1.

c. Lenh: ANDLW Anal hang so v i W
Cu phap: ADDLW k
Tac to : 0 k 255
Th c thi: (W) AND (k)(W)
C anh hng: Z
Chc nang: no i dung thanh ghi W c AND vi hang so k 8 bit, ke t qua lu vao
thanh ghi W
Chu ky th c hie n: 1.

d. Lenh: ANDWF Anal W vi F
Cu phap: ANDWF f,d
Tac to : 0 f 127, d [0,1]
Th c thi: (W) AND (f) (dest)
C anh hng: Z
Chc nang: AND thanh ghi W v i thanh ghi f. Neu d = 0 th ke t qua lu vao thanh
ghi W, neu d=1 th ket qua lu vao thanh ghi f.
Chu ky th c hie n: 1.

e. Lenh: BCF xoa bit trong thanh ghi F
Cu phap: BCF f,d
Tac to : 0 f 127, 0 b <7
Th c thi: 0 (f<b>)
C anh hng: khong
Chc na ng: bit b trong thanh ghi f b xoa
Chu ky th c hie n: 1.

f. Lenh: BSF set bit trong thanh ghi F
Cu phap: BSF f,d
Tac to : 0 f 127, 0 b <7
Th c thi: 1 (f<b>)
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
140 . + y
C anh hng: khong
Chc na ng: bit b trong thanh ghi f c set len 1.
Chu ky th c hie n: 1.

g. Lenh: BTFSS kiem tra 1 bit trong thanh ghi F va nhay ne u bang 1
Cu phap: BTFSS f,d
Tac to : 0 f 127, 0 b <7
Th c thi: nhay neu f<b>=1
C anh hng: khong
Chc nang: ne u bit b trong thanh ghi f bang 1 th lenh ke b bo qua va thay bang lenh
NOP.
Chu ky th c hie n: 1(2).

h. Lenh: BTFSC kiem tra 1 bit trong thanh ghi F va nha y neu bang 0
Cu phap: BTFSC f,d
Tac to : 0 f 127, 0 b <7
Th c thi: nhay neu f<b>=0
C anh hng: khong
Chc nang: neu bit b trong thanh ghi f=0 th lenh ke b bo qua va thay ba ng lenh
NOP.
Chu ky th c hie n: 1(2).

i. Lenh: CALL go i chng trnh con
Cu phap: CALL k
Tac to : 0 k 2047
Th c thi: (PC) + 1 TOS; kPC<10:0>; (PCLATH<4:3>)(PC<12:11>)
C anh hng: khong
Chc nang: goi chng trnh con. 13 bit a ch tr ve (PC+1) c ca t vao ngan xep.
Tiep Theo 11bit a ch <10:0> c ta i vao PC. Hai bit cao cu a PC c nap t
PCLATH<4:3>.
Chu ky th c hie n: 2.

j. Lenh: CLRF xoa thanh ghi f
Cu phap: CLRF f
Tac to : 0 f 127
Th c thi: 00h (f); 1 Z
Trang tha i anh hng: Z
Chc na ng: Xoa thanh ghi f va bit Z c set.
Chu ky th c hie n: 1.

k. Lenh: CLRW xoa thanh ghi W
Cu phap: CLRW
Tac to : khong
Th c thi: 00h (W), 1 Z
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
141 . + y
C anh hng: Z
Chc na ng: xoa thanh ghi W va bit Z len 1.
Chu ky th c hie n: 1.

l. Lenh: CLRWDT xoa WDT
Cu phap: CLRWDT
Tac to : khong
Th c thi: 00 WDT; 0 Bo em chia trc cu a WDT; 1 TO; 1 PD
C anh hng: TO , PD
Chc nang: lenh CLRWDT se xoa bo nh th i WDT va xoa luon bo em chia tr c
cu a WDT. Ca c bit PD, TO c set len 1.
Chu ky th c hie n: 1.

m. Lenh: COMF bu thanh ghi f
Cu phap: COMF f,d
Tac to : 0 f 127, d [0,1]
Th c thi: ( f ) (dest)
C anh hng: Z
Chc nang: bu 1 no i dung thanh ghi f. Neu d=0 th ket qua lu vao thanh ghi W. Neu
d=1 th ke t qua lu vao thanh ghi f.
Chu ky th c hie n: 1.

n. Lenh: DECF giam no i dung thanh ghi f
Cu phap: DECF f,d
Tac to : 0 f 127, d [0,1]
Th c thi: (f) 1 (dest)
C anh hng: Z
Chc na ng: giam noi dung thanh ghi f i 1. Ne u d= 0 th ke t qua lu va o thanh ghi W.
Neu d= 1 th ke t qua lu vao thanh ghi f.
Chu ky th c hie n: 1.

o. Lenh: DECFSZ giam no i dung thanh ghi f va nhay neu bang 0
Cu phap: DECFSZ f,d
Tac to : 0 f 127, d [0,1]
Th c thi: (f) 1 (dest); Nhay neu ke t qua = 0
C anh hng: khong
Chc nang: no i dung thanh ghi f giam i 1. Neu d = 0 th ke t qua lu vao thanh ghi f.
Neu d = 1 th ke t qua lu vao thanh ghi W. Neu ke t qua bang 0 th bo qua lenh ke va
thay bang le nh NOP (do ma on ve trong lu c lenh ang th c hien).
Chu ky th c hie n: 1(2).

p. Lenh: GOTO lenh re nhanh khong ieu kie n
Cu phap: GOTO k
Tac to : 0 k 2047
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
142 . + y
Th c thi: k PC<10:0>; PCLATH<4:3> PC<12:11>
C anh hng: khong
Chc nang: GOTO la le nh nhay khong ieu kien. Gia tr cua 11bit <10:0> c ta i
vao PC. Ca c bit cao cu a PC c tai t PCLATH<4:3>.
Chu ky th c hie n: 2.

q. Lenh: INCF le nh tang no i dung thanh ghi f
Cu phap: INCF f,d
Tac to : 0 f 127, d [0,1]
Th c thi: (f) + 1 (dest)
C anh hng: Z
Chc nang: no i dung cu a thanh ghi f tang le n 1. Neu d = 0 th ke t qua lu va o thanh
ghi W. Neu d = 1 th ke t qua lu tr lai vao thanh ghi f.
Chu ky th c hie n: 1.

r. Lenh: INCFSZ lenh ta ng no i dung thanh ghi f va nhay neu bang 0
Cu phap: INCFSZ f,d
Tac to : 0 f 127, d [0,1]
Th c thi: (f) + 1 (dest)
C anh hng: khong.
Chc nang: no i dung cua thanh ghi f tang. Neu d= 0 th ke t qua lu va o thanh ghi W.
Neu d= 1th ke t qua lu vao thanh ghi f. Neu ke t qua la bang 0 th bo qua lenh ke va
c thay ba ng lenh NOP.
Chu ky th c hie n: 1(2).
V du: HERE INCFSZ CNT,1
GOTO LOOP
CONTI

Tr ng hp 1: Trc khi thc hien lenh th PC=a ch HERE, CNT = 0FF.
Sau khi th c hien lenh th PC=a ch CONTI, CNT = 000. Bo qua lenh GOTO
Tr ng hp 2: Trc khi thc hien lenh th PC=a ch HERE, CNT = 000.
Sau khi th c hien lenh th PC=a ch HERE+1, CNT = 001. Lenh GOTO c th c hien.

s. Lenh: IORLW lenh OR hang so vi W
Cu phap: IORLW k
Tac to : 0 k 255
Th c thi: (W) OR k W
C anh hng: Z
Chc nang: OR ha ng so k 8 bit v i W. Neu d= 0 th ket qua c lu vao thanh ghi
W. Neu d= 1 th ket qua lu vao thanh ghi f.
Chu ky th c hie n: 1.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
143 . + y
t. Lenh: IORWF le nh OR W v i f
Cu phap: IORWF f,d
Tac to : 0 f 127
Th c thi: (W) OR k (dest)
C anh hng: Z
Chc nang: no i dung thanh ghi W c OR vi no i dung thanh ghi W. Neu d= 0 th
ket qua lu vao thanh ghi W. Neu d= 1 th ket qua lu vao thanh ghi f.
Chu ky th c hie n: 1.
V du: IORWF RESULT,0
Trc khi th c hien lenh th W=091 va RESULT =013.
Sau khi th c hien lenh th W=093 va RESULT =013 va Z=0.

u. Lenh: MOVLW lenh copy d lieu
Cu phap: MOVLW k
Tac to : 0 k 255
Th c thi: k W
C anh hng: khong.
Chc na ng: d lieu 8 bit k nap va o thanh ghi W.
Chu ky th c hie n: 1.

V du1: MOVLW 05A
Sau khi th c hien lenh th W=05A
V du2: MOVLW MYREG
Trc khi th c hien lenh th W=001.
K hie u MYREG la d lieu cu a o nh la 037.
Sau khi th c hien lenh th W=037.
V du3: MOVLW HIGH(LU_TABLE)
Trc khi th c hien lenh th W=001.
LU_TABLE la nhan cu a o nh co a ch la 09375.
Sau khi th c hien lenh th W=093.

v. Lenh: MOVF lenh copy d lieu
Cu phap: MOVF f,d
Tac to : 0 f 127, d [0,1]
Th c thi: (f) W
C anh hng: Z.
Chc nang: no i dung thanh ghi f c copy sang ni en tuy thuo c vao gia tr cu a
d. Neu d = 0 th ni en la thanh ghi W. Neu d=1 th ni en chnh la thanh ghi
f. Trng hp d=1 ra t tien l i e kiem tra thanh ghi file v trang tha i cu a c Z b
anh hng.
Chu ky th c hie n: 1.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
144 . + y

V du1: MOVF FSR,0
Trc khi th c hien lenh th: W=001, FSR=0C2.
Sau khi th c hien lenh th W=0C2 va c Z=0.
V du2: MOVLW FSR,1
Tr ng hp 1: Trc khi thc hien lenh th FSR=0C2.
Sau khi th c hien lenh th FSR=0C2 va Z =0.
Tr ng hp 2: Trc khi thc hien lenh th FSR=000.
Sau khi th c hien lenh th FSR=000 va Z =1.

w. Lenh: MOVWF lenh copy d lie u
Cu phap: MOVWF f
Tac to : 0 f 127, d [0,1]
Th c thi: (W) f
Trang tha i anh hng: khong.
Chc na ng: no i dung thanh ghi W c copy sang thanh ghi f.
Chu ky th c hie n: 1.

V du1: MOVWF OPTION_REG
Trc khi th c hien lenh th: OPTION_REG=0FF, W=04F.
Sau khi th c hien lenh th OPTION_REG=04F, W=04F.
V du2: MOVLW INDF
Trc khi th c hien lenh th W=017, FSR=0C2 va no i dung cu a a ch (FSR)=000.
Sau khi th c hien lenh th W=017, FSR=0C2 va no i dung cu a a ch (FSR)=017.

x. Lenh: RETFIE lenh tr ve t chng trnh con phu c vu nga t.
Cu phap: RETFIE
Tac to : khong co.
Th c thi: TOS PC, 1 GIE.
C anh hng: khong.
Chc nang: tr ve t chng trnh phuc vu nga t. 13 bit a ch nh nga n xep (TOS)
c nap cho thanh ghi PC. Bit cho phe p nga t toan cu c t ong c set le n mc 1
e cho phe p ngat.
Chu ky th c hie n: 2.

y. Lenh: RETLW lenh tr ve t chng trnh con phu c vu ngat.
Cu phap: RETLW k
Tac to : 0 k 255
Th c thi: k W, TOS PC.
Trang tha i anh hng: khong.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
145 . + y
Chc nang: thanh ghi W c nap gia tr 8 bit k. 13 bit a ch nh ngan xe p (a
ch tr ve) c nap cho thanh ghi PC.
Chu ky th c hie n: 2.

z. Lenh: RLF lenh xoay tra i qua c C
Cu phap: RLF f,d
Tac to : 0 f 127, d [0,1]
Th c thi:

Trang tha i anh hng: C
Chc nang: no i dung cua thanh ghi f c xoay sang tra i mo t bit qua c C. Neu d= 0
th ket qua c lu vao thanh ghi W. Ne u d= 1 th ke t qua lu vao thanh ghi f.
Chu ky th c hie n: 1.

V du1: RLF REG1,0
Trc khi th c hien lenh th: REG1=1110 0110 va C =0.
Sau khi th c hien lenh th REG1=1110 0110, W=1100 1100 va C =1.
V du2: RLF INDF,1
Tr ng hp 1: Tr c khi thc hie n le nh th: FSR=0C2, noi dung cua a ch (FSR) = 0011
1010 va C = 1.
Sau khi th c hien lenh th: FSR=0C2, no i dung cu a a ch (FSR) = 0111 0101 va C = 0.
Tr ng hp 2: Tr c khi thc hie n le nh th: FSR=0C2, noi dung cua a ch (FSR) = 1011
1001 va C = 0
Sau khi th c hien lenh th: FSR=0C2, no i dung cu a a ch (FSR) = 0111 0010 va C = 1.

aa. Lenh: RRL lenh xoay pha i qua c C
Cu phap: RRF f,d
Tac to : 0 f 127, d [0,1]
Th c thi:

Trang tha i anh hng: C
Chc nang: no i dung cua thanh ghi f c xoay sang pha i mo t bit qua c C. Neu d= 0
th ket qua c lu vao thanh ghi W. Ne u d= 1 th ke t qua lu vao thanh ghi f.
Chu ky th c hie n: 1.

V du1: RRF REG1,0
Trc khi th c hien lenh th: REG1=1110 0110, W= va C =0.
Sau khi th c hien lenh th REG1=1110 0110, W=0111 0011 va C =0.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
146 . + y
V du2: RRF INDF,1
Tr ng hp 1: Tr c khi thc hie n le nh th: FSR=0C2, noi dung cua a ch (FSR) = 0011
1010 va C = 1.
Sau khi th c hien lenh th: FSR=0C2, no i dung cu a a ch (FSR) = 1001 1101 va C = 0.
Tr ng hp 2: Tr c khi thc hie n le nh th: FSR=0C2, noi dung cua a ch (FSR) = 0011
1001 va C = 0
Sau khi th c hien lenh th: FSR=0C2, no i dung cu a a ch (FSR) = 0011 1100 va C = 1.

bb. Lenh: RETURN lenh ke t thu c chng trnh con
Cu phap: RETURN
Tac to : khong
Th c thi: TOS PC
Trang tha i anh hng: khong
Chc nang: le nh tr ve t chng trnh con. No i dung nh ngan xep tra cho PC.
Lenh nay th c hien trong 2 chu k le nh.
Chu ky th c hie n: 2.

cc. Lenh: SLEEP lenh ngu
Cu phap: SLEEP
Tac to : khong
Th c thi: 00h WDT; 0 bo em chia tr c cua WDT; 1 TO ; 0 PD
C anh hng: TO , PD
Chc nang: bit trang tha i giam nguon PD (Power Down Status bit) b xo a. Bit trang
thai tam ngh TO (Time-Out) c set. Bo nh th i WDT va bo chia tr c b xo a.
Vi x l b c vao che o ngu (SLEEP) va bo dao ong ngng hoa t ong.
Chu ky th c hie n: 1.

dd. Lenh: SUBLW lenh tr ha ng so cho thanh ghi W
Cu phap: SUBLW k
Tac to : 0 k 255
Th c thi: k (W) (W)
C anh hng: C, DC, Z
Chc nang: hang so k 8 bit tr cho no i dung thanh ghi W va ke t qua c lu vao
thanh ghi W.
Chu ky th c hie n: 1.

V du1: SUBLW 0x02
Tr ng hp 1: Trc khi thc hien lenh th: W=001, c C = va Z = .
Sau khi th c hien lenh th: W=001, c C = 1 (ke t qua dng) va Z = 0.
Tr ng hp 2: Trc khi thc hien lenh th: W=002, c C = va Z = .
Sau khi th c hien lenh th: W=000, c C = 1 (ke t qua bang 0) va Z = 1.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
147 . + y
Tr ng hp 3: Trc khi thc hien lenh th: W=003, c C = va Z = .
Sau khi th c hien lenh th: W=0FF, c C = 1 (ke t qua am) va Z = 0.
V du2: SUBLW MYREG
Trc khi th c hien lenh th: W=010, k hieu MYREG la noi dung o nh co gia tr 037.
Sau khi th c hien lenh th: W=027, c C = 1 (ke t qua dng) va Z = 0.

ee. Lenh: SUBWF lenh tr thanh ghi f cho thanh ghi W
Cu phap: SUBLW f,d
Tac to : 0 f 127, d [0,1]
Th c thi: (f) (W) (dest)
C anh hng: C, DC, Z
Chc na ng: no i dung thanh ghi f tr cho no i dung thanh ghi W. Neu d= 0 th ke t qua
lu vao thanh ghi W. Neu d= 1 th ke t qua lu va o thanh ghi f.
Chu ky th c hie n: 1.
V du1: SUBWF REG1,1
Tr ng hp 1: Trc khi thc hien lenh th: REG1=003, W = 002, c C = va Z = .
Sau khi th c hien lenh th: REG1=001, W=002, c C = 1 (ke t qua dng) va Z = 0.
Tr ng hp 2: Trc khi thc hien lenh th: REG1=002, W = 002, c C = va Z = .
Sau khi th c hien lenh th: REG1=000, W=002, c C = 1 (ke t qua zero) va Z = 1.
Tr ng hp 3: Trc khi thc hien lenh th: REG1=001, W = 002, c C = va Z = .
Sau khi th c hien lenh th: REG1=0FF, W=002, c C = 1 (ke t qua am) va Z = 0.

ff. Lenh: SWAPF lenh hoa n chuye n 4 bit cua thanh ghi f
Cu phap: SWAPF f,d
Tac to : 0 f 127, d [0,1]
Th c thi: (f<3:0>) (dest<7:4>); (f<7:4>) (dest<3:0>)
C anh hng: khong
Chc na ng: 4 bit cao va 4 bit thap cu a thanh ghi f c oi v i nhau. Ne u d= 0 th ke t
qua lu va o thanh ghi W. Neu d= 1 th ket qua lu vao thanh ghi f.
Chu ky th c hie n: 1.
V du1: SWAPF REG1,0
Trc khi th c hien lenh th: REG1=0A5.
Sau khi th c hien lenh th: REG1=0A5, W=05A.
V du2: MOVLW FSR,1
Trc khi th c hien lenh th FSR=0C2, no i dung cu a a ch (FSR) = 020.
Sau khi th c hien lenh th FSR=0C2 va no i dung cua a ch (FSR) = 002.

gg. Lenh: XORLW lenh XOR ha ng so v i W
Cu phap: XORLW k
Tac to : 0 k 255
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
148 . + y
Th c thi: (W) XOR k (W)
C anh hng: Z
Chc nang: no i dung thanh ghi W c XOR v i hang so k 8 bit va ke t qua lu vao
thanh ghi W.
Chu ky th c hie n: 1.
V du: XORLW 0AF
Trc khi th c hien lenh th: W=0B5.
Sau khi th c hien lenh th: W=01A, Z=0.

hh. Lenh: XORWF le nh XOR W v i f
Cu phap: XORLW f,d
Tac to : 0 f 127, d [0,1]
Th c thi: (W) XOR (f) (dest)
C anh hng: Z
Chc na ng: no i dung thanh ghi W c XOR v i noi dung thanh ghi f. Neu d= 0 th
ket qua c lu vao thanh ghi W. Neu d= 1 th ke t qua lu vao thanh ghi f.

|V. NC0N NCU LAP 1kNH C CU A CC5 C:
' 3
CCS C la trnh bie n dch dung ngon ng C cho vi ieu khien PIC ay la ngon ng cap cao
giup viet chng trnh de dang hn ngon ng Assembly.
Ma le nh c to i u khi bien dch.
CCS cha nhie u ham phu c vu cho moi mu c ch va co nhieu ca ch lap trnh cho mot van e
dan en khac nhau ve to c o th c thi ma va bo nh chng trnh, s toi u cu a chng trnh la do
ng i lap trnh quyet nh.
3 3 /
e viet mo t chng trnh C m i chay CCS vao New tao mo t Project m i.
Tre n thanh toolbar: Chon Microchip 12 bit e vie t chng trnh cho PIC 12 bit. Microchip
14 bit e vie t chng trnh cho PIC 14 bit. Microchip PIC18 e vie t chng trnh cho PIC18.
Chon Compiler e bien dch chng trnh.
Cau tru c mo t chng trnh C viet trong CCS:
#include <16F877A.h> // khai bao PIC s dung cua chng trnh
#device RS232 // Khai bao thie t b can s du ng
#use delay(clock=20000000) // khai ba o ham delay
. . . .
Int16 a,b; // khai ba o bien
. . . .
Void xu_ly_ADC ( ) //chng trnh con
{ . . .
. . .
}
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
149 . + y
#INT_TIMER1 // khai ba o nga t
Void xu_ly_ngat_timer ( ) //chng trnh x l ngat
{ . . .
. . .
}
Main ( ) // chng trnh chnh
{ . . .
. . .
}
/ / ./ 3 , / 3, \/3
o. Kho| bo c b|en, hong, mo ng:
Ca c loa i bie n sau c ho tr :
int1 : so 1 bit = true hay false (0 hay1)
int8 : so nguyen 1 byte (8 bit)
int16 : so nguyen 16 bit
int32 : so nguyen 32 bit
char : ky t 8 bit
float : so thc 32 bit
short : ma c nh nh kieu int1
byte : ma c nh nh kieu int8
int : ma c nh nh kieu int8
long : ma c nh nh kieu int16
Them signed hoa c unsigned pha trc e ch o la so co dau hay khong dau.
Khai bao hang:
V du: int8 const a=12;// a la hang so co gia tr la 12
Khai bao 1 mang ha ng so :
V du: int8 const a[2]={1,2,0};// mang co 3 pha n t va ch so mang au tien la 0 v i a[0]=1
va o l n cua mo t pha n t la 1byte (hay 8bit).
oi vi vi ieu khien PIC16F877A th ch so mang co kch thc to i a la 256 byte.
b. Co ch su du ng b|e n:
Khi s dung cac phep toan can lu y : tran so, tnh toan v i so am, o i kieu va e p kieu.
Gio ng nh C trong lap trnh C cho may tnh. Bien co the c khai bao nh toan cu c hay cu c
bo. Bien khai bao trong ham se la cu c bo va ch dung c trong ham o, ke ca trong ham main().
Ngoai ra co n co the khai bao ngay trong 1 kho i lenh, va cung ch to n ta i trong kho i lenh o.
- / /
Gom ca c lenh nh while . . do, case, . . .
while (expr) stmt: xe t ieu kien tr c roi thc thi bieu thc sau.
do stmt while (expr): th c thi bieu thc ro i m i xe t ieu kie n sau.
Return: dung cho ham co tra ve tr, hoac khong tra ve tr cung c, khi o ch can
dung: return (ngha la thoat kho i ham ta i o).
Break: nga t ngang (thoa t kho i) vong lap while. Continue: quay tr ve au vo ng lap
while.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
150 . + y
Ba ng 3-3: Tap le nh cua ngon ng C
STATEMENT EXAMPLE
if (expr) stmt; [else stmt;] if (x==25)
x=1;
else
x=x+1;
while (expr) stmt; while (get_rtcc()!=0)
putc(n);
do stmt while (expr); do {
putc(c=getc());
} while (c!=0);
for (expr1;expr2;expr3) stmt; for (i=1;i<=10;++i)
printf(%u\r\n,i);
switch (expr) {
case cexpr: stmt; //one or more case
[default:stmt]
... }
switch (cmd) {
case 0: printf(cmd 0);
break;
case 1: printf(cmd 1);
break;
default: printf(bad cmd);
break; }
return [expr]; return (5);
goto label; goto loop;
label: stmt; loop: I++;
break; break;
continue; continue;
expr; i=1;
; ;
{[stmt]}
Zero or more
{a=1;
b=1;}
8o ng 3-3. 1o p |e nh ngcn ngu C.
Ca c mu c trong [ ] la co the co hoac khong.
| , /
o. #A5M vo #ENDA5M:
Cho phe p at 1 oan ma ASM gi a 2 ch th na y, ch a t trong ham. CCS nh ngha san 1
bien 8 bit RETURN e gan gia tr tra ve cho ham t oa n ma Assembly.
Khi s dung ca c bien khong bank hien ta i, CCS sinh them ma chuyen bank t ong cho
cac bien o . Ne u s dung #ASM ASIS th CCS khong sinh them ma chuye n bank t ong. Ma
assembly ung theo ma tap lenh cu a vi ieu khien, khong phai la ma lenh cu a MPLAB.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
151 . + y
V du:
int find_parity (int data) {
int count;
#asm
movlw 0x8
movwf count
movlw 0
loop:
xorwf data,w
rrf data,f
decfsz count,f
goto loop
movwf _return_
#endasm
}
b. #|NCLUDE:
Cu phap: #include <filename> hay #include filename
Filename: ten file cho thie t b co the *.h hay *.c. Ne u ch nh file ng da n khac th
them ng dan vao va luo n co e khai bao chng trnh viet cho vi ieu khie n na o va a t dong
au tien.
V du: #include <P16F877A.h> //khai bao chng trnh vie t cho PIC16F877A
#include <lcd.c> // khai bao ca c ham hay chng trnh con cho LCD
c. #8|1, #81E, #L0CA1E vo #D|F|NE:
#BIT id = x.y v i id la ten bien, x la bien (8,16,32bit,.) hay hang so a ch thanh ghi, y la v
tr cua bit trong bien x.
V du: #bit TMR1Flag = 0xb.2 //bit c nga t timer1 a ch 0xb.2 (PIC16F877A)
Khi o TMR1Flag = 0 // xoa c nga t Timer1
#BYTE id = x. Trong o id la ten bie n, x: a ch thanh ghi.
V du: #BYTE portB=0xC6; // Thanh ghi PortB co gia tr la 0xC6
Khi muon xua t ra PortB gia tr 120 th ta dung le nh portB=120;
# LOCATE id = x giong nh #byte id=x nhng co them ch c na ng bao ve kho ng cho CCS s
dung a ch o vao mu c ch kha c.
# DEFINE id text v i text la chuo i hay so id la ten bien.
d. #DEV|CE:
Cu phap # DEVICE chip option
chip: te n vi ieu khien s dung, khong dung tham so nay neu a khai bao te n chip #
include.
Option: toan t tieu chuan theo tng chip:
* = 5 dung pointer 5 bit (tat ca PIC)
* = 8 dung pointer 8 bit (PIC14 va PIC18)
* = 16 dung pointer 16 bit (PIC14, PIC 18)
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
152 . + y
ADC=x s dung ADC x bit (8, 10, . . . bit tuy chip), khi dung ham read_adc( ), se tra ve gia tr
x bit.
e. #0kC:
# org start, end
# org segment
#org start, end { }
Start, end: ba t au va ke t thuc vung ROM danh rieng cho ham theo sau, hoa c e rieng kho ng
dung.
V du:
Org 0x30, 0x1F
Void xu_ly( )
{

} // ham nay ba t au a ch 0x30

Org 0x30, 0x1F { }
// khong co g ca a t trong vung ROM nay
-Thng th kho ng dung ORG.
f. #U5E:
#USE delay(clock=speed)//khai bao ham delay cho vi ieu khien
Vi speed la to c o dao ong ang dung.
V du: nh dung tha ch anh 20MHz th khai bao la: #USE delay(clock=20000000)
Khi s dung ch th #USE delay(clock=20000000) th go i ham delay nh sau:
Delay_ms(100); // lenh nay e th c hien delay 100ms.
#USE fast_io(port)
Port: la ten port: t A-E (oi v i PIC16F877A)
Khi dung ch th na y th trong chng trnh neu du ng cac le nh I/O nh output_low(), . . . th no
se set ch v i 1 le nh, nhanh hn so vi khi kho ng du ng ch th nay.
Trong ham main( ) pha i dung ham set_tris_x( ) e ch ro chan vao ra th ch th tren mi co
hieu l c, khong th chng trnh se chay sai.
V du: # use fast_io(A)
#USE I2C (options)
Thie t la p giao tiep I2C.
Option bao gom cac thong so sau, ca ch nhau b i dau phay:
Master: chip che o master
Slave: chip che o slave
SCL=pin : ch nh cha n SCL
SDA=pin : ch nh chan SDA
ADDRESS=x : ch nh a ch che o slave
FAST: ch nh FAST I2C
SLOW: ch nh SLOW I2C
RESTART_WDT: restart WDT trong khi ch I2C_READ()
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
153 . + y
V du:
#use I2C(master, sda=pin_B0, scl = pin_B1)
#use I2C (slave, sda= pin_C4, scl= pin_C3, address = 0xa00, FORCE_HW)
#USE RS232 ( options )
Thie t la p giao tiep RS232 cho chip (co hieu l c sau khi nap chng trnh cho chip, khong pha i
giao tiep RS232 ang s dung e nap chip).
Option bao gom:
BAUD=x: thie t lap toc o baud rate: 19200, 38400, 9600, . . .
PARITY=x: x= N,E hay O, v i N: khong dung bit chan le.
XMIT=pin: set cha n transmit (chuye n data)
RCV=pin : set chan receive (nhan data)
Ca c thong so tre n hay dung nha t, ca c tham so khac se bo sung sau.
V du:
#use rs232(baud=19200,parity=n,xmit=pin_C6,rcv=pin_C7)
g. Mct sc ch| th| t|e n xu |y khoc:
#CASE: cho phep pha n biet ch hoa/thng cua ten bien, danh cho ngi quen lap trnh C.
#OPT n: vi n=0-9: ch nh cap o to i u ma.
#PRIORITY ints: v i ints la danh sa ch ca c ngat theo th t u tien th c hie n khi co nhieu
nga t xay ra ong th i, nga t ng au se la nga t u tie n nha t.
/ /\ / , / , /
o. Co c hom xu |y sc:
Bao gom ca c ham:
Sin(), cos(), tan(), asin(), acos(), atan()
Asin(), acos(), atan(): la ca c ham arcsin, arccos, arctan
Abs() : lay gia tr tuye t o i
Exp() :la ham mu ex
Log() : ham logarit
Log10(): ham logarit c so 10
Pow() : ham tnh lu y tha
Sqrt() : ham tnh ca n th c
Ca c ham nay co the lam cho chng trnh chay cham v tren vi ieu khien khong co bo nhan
va chia phan cng, do o neu khong oi ho i toc o th dung ca c ham na y cho n gia n.
b. Co c hom xu |y b|t vo co c phe p tcon:
Bao go m ca c ham sau:
Shift_right()
Shift_left()
Bit_clear()
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
154 . + y
Bit_set()
Bit_test()
Swap()
Make8()
Make16()
Make32()
Ham Shift_right(address,byte,value)
Ham Shift_left(address,byte,value)
Dch pha i (tra i) 1 bit vao mot mang hay mot cau tru c.
a ch co the la a ch ma ng hay a ch tro t i cau tru c.
Ham Bit_clear(var,bit)
Ham Bit_set(var,bit)
Bit_clear dung e xoa bit c nh b i v tr bit trong bien var.
Bit_set dung e set =1 bit c nh bi v tr trong bien var.
Var: bie n 8,16,32 bit ba t k.
Bit: v tr clear (set): t 0-7 (bien 8 bit), t 0-16 (bien 16bit), t 0-32 (bien 32bit).
V du:
Int8 x;
x=9; //x=0b1001
bit_clear(x,0); //x=0b1000
Ham Bit_test(var,bit)
Dung e kiem tra v tr bit trong bien var, ham tra ve 0 hay 1 la gia tr bit trong bien
var.
var la bien 8, 16 hay 32 bit
bit la v tr bit trong bien var
V du: neu muon kiem tra x=256 cha th co the s du ng
If (x >=256) th ma t gan 5us
If (bit_test(x,9)) th ch mat 0.4us (oi v i tha ch anh 20MHz)
Ham Swap(var)
Var la bien mot byte
Ham nay ao v tr cua 4 bit cao cho 4 bit thap trong mo t byte. Ham nay khong tra ve
gia tr.
V du:
Int8 x;
X=0b00000101; //x=0b00000101
Swap(x); //x=0b01010000
Ham Make8(var,offset)
Ham nay trch 1 byte t bien var
Var la bien 8,16,32 bit
Offset la v tr cua byte ca n trch (0,1,2,3)
V du:
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
155 . + y
X=0x12A4;
Y=Make8(x,2); // y=02h
Ham Make16(varhigh,varlow)
Tra ve gia tr 16 bit ke t hp t hai bien 8bit la varhigh va varlow, byte cao la varhigh
byte thap la varlow.
V du:
X=0x02;
Y=0xAF;
Z=make16(x,y); // z=0x02AF
Ham Make32(var1,var2,var3,var4)
Ham tra ve gia tr 32 bit ket hp gia tr 8 bit hay 16 bit t var1 en var4 trong o t
var2 en var4 co the co hoa c khong. Gia tr var1 se la MSB, ke tiep la var2, Neu
tong so bit ke t hp nho hn 32 bit th 0 c them vao MSB e u 32 bit.
V du:
Int a=0x01, b=0x02, c=0x03, d=0x04; // ca c gia tr hex
Int32 e ;
e = make32 (a,b,c,d); // e = 0x01020304
e = make32 (a,b,c,5) ; // e = 0x01020305
e = make32 (a,b,8); // e = 0x00010208
e = make32 (a,0x1237) ; // e = 0x00011237
c. Co c hom xu |y b|t vo co c phe p tcon:
e s dung cac ham delay th can pha i co khai bao tien x l au file.
Nh thach anh 20MHz th khai bao la #USE delay(clock=20000000)
Co ba ham phu c vu delay:
Ham delay_cycles(count):
Count : la hang so t 0-255 la so chu k lenh, 1 chu k lenh bang 4 chu k may.
V du: delay_cycles(10);//delay 10 chu k le nh
Ham delay_us(time) : ham delay micro giay
Time: la bie n so th co gia tr t 0-255, la ha ng so th co gia tr t 0-65355
Ham nay khong tra ve gia tr.
V du: delay_us(1); // delay 1 micro giay
Ham delay_ms(time) : ham delay mili gia y
Time: co gia tr 0-255 neu la bien, co gia tr t 0-65355 neu la ha ng so .
Ham khong tra ve gia tr.
V du: delay_ms(1000); // ham delay 1 giay
7 / / ./ / /\ 3
o. Co c hom xu |y ADC:
Ham Setup_ADC(mode)
Ham khong tra ve gia tr, dung xac nh ca ch th c hoa t ong bo bien oi ADC. Tham so
mode tuy thuo c file thie t b *.h co ten tng ng ten chip ang dung, nam trong th mu c DEVICES
cu a CCS. Muon bie t co bao nhieu tham so co the dung cho chip o.
Ham ADC_OFF: ta t hoa t ong ADC (tiet kiem ien, danh chan cho hoa t ong kha c).
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
156 . + y
Ham ADC_CLOCK_INTERNAL: th i gian lay ma u ba ng xung clock IC (ma t 2-6 us) thng
la chung cho ca c chip.
Ham ADC_CLOCK_DIV_2: th i gian lay mau ba ng xung clock / 2 (ma t 0.4 us tre n tha ch anh
20MHz)
Ham ADC_CLOCK_DIV_8: thi gian lay mau bang xung clock / 8 (1.6 us)
Ham ADC_CLOCK_DIV_32: th i gian lay mau bang xung clock / 32 (6.4 us)
b. 5E1UP_ADC_pcrt (vo|ue[:
Xa c nh chan lay tn hieu analog va ien the chuan s dung. Tuy thuo c bo tr chan tren chip,
so chan va chan nao dung cho ADC va so ch c nang ADC mo i chip ma value co the co nhng gia
tr kha c nhau, v i Vref: ap chua n, Vdd: ap nguo n
Sau a y la ca c ham khai bao ADC cu a 16F877A:
Ham ALL_ANALOGS: dung tat ca chan sau lam analog : A0 A1 A2 A3 A5 E0 E1 E2
(Vref=Vdd)
Ham NO_ANALOG: khong dung analog, cac chan o se la chan I /O.
Ham AN0_AN1_AN3: A0 A1 A3, Vref = Vdd
Ham AN0_AN1_VSS_VREF: A0 A1 VRefh = A3
Ham AN0_AN1_AN4_AN5_AN6_AN7_VREF_VREF: A0 A1 A5 E0 E1 E2 VRefh=A3,
VRefl=A2.
Ham AN0_AN1_AN2_AN4_AN5_VSS_VREF: A0 A1 A2 A5 E0 VRefh=A3
Ham AN0_AN1_AN4_AN5_VREF_VREF: A0 A1 A5 E0 VRefh=A3 VRefl=A2
Ham AN0_AN1_AN4_VREF_VREF: A0 A1 A5 VRefh=A3 VRefl=A2
Ham AN0_VREF_VREF: A0 VRefh=A3 VRefl=A2
V du : setup_adc_ports (AN0_AN1_AN3) ; // A0, A1, A3 nha n analog, ap nguon +5V cap cho
IC se la ien ap chuan
c. 5E1UP_ADC_chonne| (chonne|[:
Chon chan e o c tn hieu analog bang le nh Read_ADC( ). Gia tr channel tuy so chan ch c
nang ADC mo i chip. Vi 16F877A, channel co gia tr t 0 -7: 0-chan A0, 1-chan A1, 2-cha n A2, 3-
chan A3, 4-chan A5, 5-chan E0, 6-cha n E1, 7-chan E2.
Ham khong tra ve tr. Ne n delay 10 s sau ham nay ro i m i dung ham read_ADC ( ) e bao
am ke t qua ung. Ham ch hoa t ong vi A/D phan cng tren chip.
d. keod_ADC(mcde[:
Dung o c gia tr ADC t thanh ghi ch a ket qua bien o i ADC.
Neu gia tr ADC la 8 bit nh khai bao trong ch th #DEVICE, gia tr tra ve cua ham la 8 bit,
ng c la i la 16 bit neu khai bao #DEVICE s dung ADC 10 bit tr len.
Khi dung ham na y th se chuyen oi ADC cu a ngo vao a cho n trong ham
Set_ADC_channel( ) trc o. Ngha la mo i lan ch oc 1 kenh muon oi sang o c chan nao, dung
ham set_ADC_channel( ) cho chan o . Neu khong co oi chan, dung read_ADC( ) bao nhie u lan
cung c.
Mode co the co hoac khong, gom co :
ADC_START_AND_READ : gia tr mac nh.
ADC_START_ONLY : bat au chuyen o i va tra ve.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
157 . + y
ADC_READ_ONLY : o c ke t qua chuyen oi lan cuo i.











8o ng 3-4. Ket quo dcc ADC.
PIC16F877A ch ho tr ADC 8 va 10 bit.
e. Co c hom |0 trcng C:
Bao gom ca c ham sau:
Output_low()
Output_high()
Output_bit()
Input()
Ouput_X()
Input_X()
port_b_pullups()
Set_tris_X()
Ham Output_low (pin), Output_high (pin)
Dung thie t la p mc 0 (low, 0V) hay m c 1 (high,5V) cho chan IC, pin ch v tr cha n.
Ham nay se a t pin lam ngo ra, xem ma asm e bie t cu the.
Ham nay thc hien mat 2-4 chu ky may. Cung co the xua t xung dung set_tris_X() va
#use fast_io.
V du : chng trnh sau xua t xung vuong chu ky 500ms, duty =50% ra cha n B0, no i B0 v i 1 led se
lam nhap nhay led.
#include <16F877A.h>
#use delay( clock=20000000)
Main()
{
while(1)
{
output_high(pin_B0) ;
Delay_ms(250) ; // delay 250ms
Output_low (pin_B0);
Delay_ms (250 );
}
#DEVCE 8 bit 10 bit 11 bit 16 bit
ADC=8 0-255 0-255 00-255 00-255
ADC=10 x 0-1023 x x
ADC=11 x x 0-2047 x
ADC=16 0-65280 0-65472 0-65504 0-65535
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
158 . + y
}
Ham Output_bit (pin,value)
pin: ten chan value: gia tr 0 hay 1
Ham nay cung xua t gia tr 0 / 1 tren pin, tng t 2 ham tren. Th ng dung no khi gia
tr ra tuy thuo c gia tr bien 1 bit nao o, hay muon xua t ao cua gia tr ngo ra tr c o .
V du:
Khai bao int1 x; // x ma c nh = 0
Trong ham main:
Main()
{
while (1 )
{
output_bit( pin_B0, !x ) ;
Delay_ms(250 );
}
}
Chng trnh tren cung xua t xung vuong chu ky 500ms,duty =50%
Ham Input_bit (pin)
Ham nay tra ve gia tr 0 hay 1 la trang tha i cua chan IC. Gia tr la 1 bit
Ham Output_X(value)
X la ten port co tren chip. Value la gia tr 1 byte.
Ham nay xua t gia tr 1 byte ra port. Tat ca chan cua port o eu la ngo ra.
V du :
Output_B ( 255 ); // xua t gia tr 11111111 ra port B
Ham Input_X( )
X: la ten port (A,B,C,D,E).
Ham nay tra ve gia tr 8 bit la gia tr ang hie n hu cu a port o.
V du: m=input_E();
Ham Port_B_pullups(value)
Ham nay thie t lap ngo vao port B pullup (ien tr ke o len). Value =1 se kch hoa t tnh
nang na y va value =0 se ngng.
Ch cac chip co port B co tnh nang na y m i dung ham nay.
Ham Set_tris_X(value)
Ham nay nh ngha chan IO cho 1 port la ngo vao hay ngo ra. Ch c dung v i
#use fast_IO. S dung #byte e ta o bien ch en port va thao ta c tre n bien na y chnh
la thao ta c tre n port.
Value la gia tr 8 bit. Moi bit a i dien 1 chan va bit=0 se set chan o la ngo va o, bit=
1 set cha n o la ngo ra.
V du: chng trnh thao ta c tren portB
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
159 . + y
#include < 16F877A.h > //chip s dung la PIC16F877A
#use delay(clock=20000000) // du ng thach anh 20MHz
#use Fast_IO(B)
#byte portB = 0x6 // 16F877 co port b a ch 6h
#bit B0 = portB. 0 // bien B0 ch en chan B0
#bit B1=portB.1 // bien B1 ch en chan B1
#bit B2=portB.2 // bien B2 ch en chan B2
#bit B3=portB.3 // bien B3 ch en chan B3
#bit B4=portB.4 // bien B4 ch en chan B4
#bit B5=portB.5 // bien B5 ch en chan B5
#bit B6=portB.6 // bien B6 ch en chan B6
#bit B7=portB.7 // bien B7 ch en chan B7
Main()
{
set_tris_B (80) ; //B0-B6 ngo ra, B7 ngo vao
if (B7) //neu ngo vao chan B7 la 1 th xua t ra B0-B6 gia tr la 1
{
B1 = 1;
B2 = 1;
B3 = 1;
B4 = 1;
B5 = 1;
B6 = 1;
}
Else B1=B2=B3=B4=B5=B6= 0;
}
` / / 3/ ./ / /\ / / 3 3/
o. Kho| bo c ngot:
Moi ho PIC co so lng nguo n ngat khac nhau: PIC 14 co 14 ngat, PIC 18 co 35 ngat.
Danh sa ch ca c nga t v i ch c nang tng ng:
#INT_GLOBAL: ngat toan cu c
#INT_AD: nga t khi chuyen o i A /D a hoan ta t
#INT_CCP1: nga t khi co Capture hay compare tren CCP1
#INT_CCP2: nga t khi co Capture hay compare tren CCP2
#INT_COMP: kiem tra bang nhau tre n Comparator
#INT_EEPROM: hoan thanh ghi EEPROM
#INT_EXT: ngat ngoai
#INT_EXT1: nga t ngoa i 1
#INT_EXT2: nga t ngoa i 2
#INT_I2C: co hoa t ong I2C
#INT_LOWVOLT: pha t hie n ap thap
#INT_PSP: co data vao cong Parallel slave
#INT_RB: ba t ky thay o i nao tren chan B4 en B7
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
160 . + y
#INT_RDA: data nhan t RS 232 sa n sang
#INT_RTCC: tra n Timer 0
#INT_SSP: co hoat ong SPI hay I2C
#INT_TBE: bo em chuyen RS 232 trong
#INT_TIMER0: mot ten khac cu a #INT_RTCC
#INT_TIMER1: tran Timer 1
#INT_TIMER2 : tran Timer 2
#INT_TIMER3: tran Timer 3
#INT_TIMER5 : tran Timer 5
#INT_OSCF: loi OSC
b. Co c hom th|et |o p hcot dcng ngo t:
Ham enable_interrupts(level)
level la ten ca c nga t a cho tren hay la GLOBAL e cho phep ngat cap toan cu c.
Moi nga t cu a vi ieu khien eu co 1 bit c ngat, 1 bit cho phep ngat. Khi co nga t th
bit c nga t len m c 1, nhng nga t co hoa t ong c hay khong tuy thuo c bit cho phep
nga t. Ham enable_interrupts (int_xxx) se cho phep ngat. Nhng ta t ca ca c nga t eu
khong the thc thi neu bit cho phe p nga t toan cu c bang 0, ham
enable_interrupts(global) se cho phep nga t toan cu c.
V du: e cho phep nga t timer0 va timer1 hoat ong:
enable_interrupts (int_timer0);
enable_interrupts (int_timer1);
enable_interrupts (global);
Ham disable_interrupts (level)
level giong nh tren.
Ham nay vo hieu 1 ngat bang ca ch set bit cho phep ngat = 0.
disable_interrupts(global) set bit cho phe p nga t toan cuc =0, cam tat ca ca c nga t.
Khong dung ham nay trong ham phuc vu ngat v khong co tac du ng, c ngat luon b
xoa t ong.
Ham clear_interupt(level)
level khong co GLOBAL.
Ham nay xoa c ngat cu a nga t c ch nh b i level.
Ham ext_int_edge (source, edge)
Ham nay thie t la p nguon nga t ngoa i EXTx la ca nh len hay canh xuong.
source: nguon ngat. Tren PIC 18 co 3 nguon nga t tren 3 cha n EXT0, EXT1, EXT2 ng
vi source = 0,1, 2. Cac PIC kha c ch co 1 nguon EXT nen source = 0.
edge: chon canh kch nga t, edge = L_TO_H neu chon canh le n (t m c tha p chuyen
len mc cao) hay H_TO_L neu chon canh xuo ng.
c. Co c hom g|oc t|e p vc| mo y t|nh quo ccng C0M:
e s dung ch c nang na y can phai co hai khai bao: khai bao s dung RS232 va khai bao
dao ong cu a chip.
V du:
#use rs232 (baud=9600, parity=n, xmit=pin_C6, rcv=pin_C7)//to c o baud la 9600. khong
chan le, chan truyen C6, cha n nhan C7
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
161 . + y
#use delay (clock = 20000000 ) // ne u chip ang du ng OSC 20Mhz
Ham x l lien quan:
Ham printf (string)
Ham Printf (cstring,values . . .)
Dung xua t chuoi theo chuan RS232 ra PC.
string la 1 chuo i hang hay 1 mang ky t (ket thuc b i ky t null).
value la danh sa ch cac bien, cach nhau b i dau pha y.

Lu o ch p ta t PORTB (led n)
V. CA C CHU0NC 1kNH V DU:
' 3 ` /
Ket no i portB v i 8 led n.
Luu dc cu o chucng tr|nh .


Chucng tr|nh d|eu kh|en 8 |ed chc p to t v|et bo ng A5M:

title "choptat_Port_B.asm"
processor p16f877a
include <P16f877a.inc>
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC &_LVP_OFF
;==================================================
; Chuong trinh chinh
;==================================================
count_1 equ 0x20
count_2 equ 0x21
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
162 . + y
org 0x000
GOTO start

;------------------------------------------------------------
;khoi tao Port B
;------------------------------------------------------------
start org 0x0005
banksel TRISB
clrf TRISB
banksel PORTB
;------------------------------------------------------------
; vong lap chuong trinh chinh
;------------------------------------------------------------
loop clrf PORTB
call delay
movlw h'ff'
movwf PORTB
call delay
goto loop
;=================================================
; CHUONG TRINH CON
;=================================================
;-------------------------------------------------------------
; chuong trinh delay
;-------------------------------------------------------------
delay clrf count_1
d2 clrf count_2
d1 decfsz count_2
goto d1
decfsz count_1
GOTO d2
return
;-------------------------------------------------------------

end
;===============================================
Chucng tr|nh d|eu kh|en 8 |ed chc p to t v|et bo ng C:

/*=====================================================
* Title : Chuong trinh chop tat PortB
* Writer :
* Hardware : PIC16F877A
* Compiler : CCS C
*=====================================================*/
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
163 . + y
#include<16F877A.h>
#include<def_16f877a.h>
#fuses NOWDT,PUT,HS,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use fast_io(b)
main()
{
trisb=0;
while(true)
{
portb=0xff
delay_ms(500);
portb=0;
delay_ms(500);
}
}
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
164 . + y


Lu o chng trnh Led sa ng 1 iem t tra i qua pha i
3 ' \ / 3 / /3 /
Ket no i portB v i 8 led n.
Luu dc d|e u kh|e n:


Chucng tr|nh d|em so ng d| chuye n tu tro| song pho | v|et bong A5M:
title chuongtrinhdich_led.asm
processor p16f877a
include <p16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC &
_LVP_OFF & _CPD_OFF
;----------------------------------------------------------
; Khoi tao cac bien
;----------------------------------------------------------
count1 EQU 0x20 ; cac bien dung cho doan chuong trinh delay
count2 EQU 0x21
;======================================================
; CHUONG TRINH CHINH
;======================================================
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
165 . + y
ORG 0x000
GOTO start
start
;----------------------------------------------------------
; khoi tao PORT B
;----------------------------------------------------------
BCF STATUS,RP1
BSF STATUS,RP0
CLRF TRISB
BCF STATUS,RP0
;-------------------------------------------------------
; vong lap chuong trinh chinh
;-------------------------------------------------------
main MOVLW b'00000001'
MOVWF PORTB
clrc
loop CALL delay
RLF PORTB,1
BTFSS STATUS,0
GOTO loop
GOTO main
;======================================================
; CHUONG TRINH CON
;======================================================
delay clrf count_1
d2 clrf count_2
d1 decfsz count_2
goto d1
decfsz count_1
GOTO d2
return
END
;=================================================
Chucng tr|nh d|em so ng d| chuye n tu tro| song pho | v|et bong C:
#include<16F877A.h>
#include<def_16f877a.h>
#fuses NOWDT,PUT,HS,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use fast_io(b)
int8 a;
main()
{
trisb=0;
while(true)
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
166 . + y
{
a=a<<1; // dich trai a 1bit
if(a==256)
{
a=1;
}
portb=~a;
delay_ms(100);
}
}


3 ` / 3
Ket no i portB v i 8 led n.
Luu dc d|e u kh|e n: be n duc|
Chucng tr|nh v|et bo ng ngc n ngu A5M:

title "sang don_Port_B.asm"
processor p16f877a
include <P16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC
& _WRT_OFF & _LVP_OFF & _CPD_OFF
;-------------------------------------------------------------------------
;Dat bien
;-------------------------------------------------------------------------
cblock 0x020
count1
counta
countb
m
sck
slx
btg
endc
;-------------------------------------------------------------------------
;=================================================
; Chuong trinh chinh
;=================================================
org 0x0000
;------------------------------------------------------------------------
;khoi tao PortB
;------------------------------------------------------------------------
banksel TRISB
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
167 . + y
clrf TRISB
banksel PORTB
;------------------------------------------------------------------------
main2 clrf PORTB
call delay
clrf m
movlw d'8'
movwf sck
x21 movf sck,0
MOVWF slx
movlw h'00'
movwf btg
setc
x11 rlf btg
clrc
movf btg,0
iorwf m,0
movwf PORTB
call delay
decfsz slx
goto x11
movf PORTB,0
movwf m
decfsz sck
goto x21
goto main2
;-----------------------------------------------------------------
;chuong trinh con delay
;-----------------------------------------------------------------
delay movlw d'255'
movwf count1
d1
movlw 0xC7
movlw counta
movlw 0x01
movlw countb
delay_0 decfsz counta,1
goto $+2
decfsz countb,1
goto delay_0
decfsz count1,1
goto d1
return
end
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
168 . + y
;================================================
Chucng tr|nh v|et bo ng ngc n ngu C:
/*====================================================
* Title : Chuong trinh sang don portB
* Writer :
* Processer : PIC16F877A
* Compiler : CCS C
*====================================================*/
#include<16F877A.h>
#include<def_16f877a.h>
#fuses NOWDT,PUT,HS,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use fast_io(b)
int8 sck,slx,bienxoay,bienluu,giatri;
main()
{
trisb=0;
while(true)
{
sck=8;
bienluu=0;
portb=0;
delay_ms(100);
while(sck>0)
{
bienxoay=1;
slx=sck;
while(slx>0)
{
giatri=bienluu|bienxoay;
portb=giatri;
delay_ms(100);
bienxoay=bienxoay<<1;
slx--;
}
bienluu=giatri;
sck--;
}
}
}
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
169 . + y


Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
170 . + y
- 3 \ 3333 7 /
Ket no i portB v i 7 oan va dau cha m thap phan cu a led 7 oan.
Ket no i portD v i 8 transistor ie u khien que t 8 led 7 oan.
Luu dc d|e u kh|e n:

begin
Khi to PORTB,
PORTD l cc ng
ra
Nghn = 0
Trm = 0
Chc = 0
BCD- m 7 on
Hin th
n v= n v +1
Chc = chc + 1
n v = 10
n v = 0
X1
X1
X2
X3
S
X4
Trm = trm + 1
Nghn = nghn + 1
Chc = 10
Trm = 10
Nghn = 10
End
X2
X3
S
S
S

X4



Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
171 . + y
Chucng tr|nh v|et bo ng ngc n ngu A5M:
title "dem BCD 0-9999 hien tren led 7 thanh.asm"
processor p16f877a
include <P16f877a.inc>
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC &_LVP_OFF
;=================================================
; Chuong trinh chinh
;=================================================
;---------- cac bien --------------------------------
cblock 0x020
count1
count2
count3
nghin
tram
chuc
dvi
bien1
bien2
bien3
bien4
endc
;----------------------------------------------------
org 0x000
clrf STATUS
movlw 0x00
movwf PCLATH
goto start
;------------------------------------------------------------
;khoi tao Port B
;------------------------------------------------------------
start org 0x005
BCF STATUS,RP1
BSF STATUS,RP0 ;chon BANK1
CLRF TRISB ;PORTB <- outputs
CLRF TRISD
BCF STATUS,RP0 ;chon BANK0
;------------------------------------------------------------
; vong lap chuong trinh chinh
;------------------------------------------------------------
x5 movlw 0x00
movwf nghin
x4 movlw 0x00
movwf tram
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
172 . + y
x3 movlw 0x00
movwf chuc
x1 movlw 0x00
movwf dvi
x2 call bcd_7doan
call delayhthi
incf dvi
movf dvi,0
xorlw d'10'
btfss STATUS,Z
goto x2
incf chuc
movf chuc,0
xorlw d'10'
btfss STATUS,Z
goto x1
incf tram
movf tram,0
xorlw d'10'
btfss STATUS,Z
goto x3
incf nghin
movf nghin,0
xorlw d'10'
btfss STATUS,Z
goto x4
goto x5
bcd_7doan
movf dvi,0
call table
movwf bien1
movf chuc,0
call table
movwf bien2
movf tram,0
call table
movwf bien3
movf nghin,0
call table
movwf bien4
return
delayhthi
movlw 0x04
movwf count1
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
173 . + y
del1 movlw 0x100
movwf count2
del2 call hienthi
decfsz count2
goto del2
decfsz count1
goto del1
return
hienthi
movf bien1,0
movwf PORTB
movlw 0xfe
movwf PORTD
call delay
movf bien2,0
movwf PORTB
movlw 0xfd
movwf PORTD
call delay
movf bien3,0
movwf PORTB
movlw 0xfb
movwf PORTD
call delay
movf bien4,0
movwf PORTB
movlw 0xf7
movwf PORTD
call delay
return

delay movlw 0xff
movwf count3
dela1 decfsz count3
goto dela1
return
table addwf PCL,1
DT 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
End
;====================================================
Chucng tr|nh v|et bo ng ngc n ngu C:

-Chng trnh em len t 0 en 9999 tren led 7 oan vie t bang C:
/*===============================================
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
174 . + y
* Title : Chuong trinh dem BCD 0-999999
* Writer :
* Hardware : PIC16F877A
* Compiler : CCS C
*==============================================*/
#include<16F877A.h>
#include<def_16f877a.h>
#fuses NOWDT,PUT,HS,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use fast_io(b)
#use fast_io(d)
int8 i,chuck,nghin,tram,chuc,dvi;
int32 a,bien;
const unsigned char dig[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void hex_bcd()
{
chuck=a/10000;
a=a%10000;
nghin=a/1000;
a=a%1000;
tram=a/100;
a=a%100;
chuc=a/10;
dvi=a%10;
}
void hienthi()
{
i=0;
while (i<200)
{
portb=dig[dvi];
portd=0xfe;
delay_us(100);
portb=dig[chuc];
portd=0xfd;
delay_us(100);
portb=dig[tram];
portd=0xfb;
delay_us(100);
portb=dig[nghin];
portd=0xf7;
delay_us(100);
portb=dig[chuck];
portd=0xef;
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
175 . + y
delay_us(100);
portb=dig[tramk];
portd=0xdf;
delay_us(100);
i++;
}
}
void main()
{
trisb=0x0;
trisd=0x0;
bien=0;
while(1)
{
bien=bien+1;
if(bien==100000)
{
bien=0;
}
a=bien;
hex_bcd();
hienthi();
}
}

3 \/ / ,
Ket no i portB v i hang cu a led ma tran.
Ket no i portD v i 8 transistor ie u khien cot.
Luu dc d|e u kh|e n:

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
176 . + y
Begin
m := 0
m := m + 1
Count1 := 5
Count2 := 30
Bin xoay: = 01
Count := m
c gi tr t bng
vi v tr l count
xut ra PORTB
PORTD:= bin xoay
Count= 44
Count2:= count-1
Count1: =count1-1
Count2 = 0
Count1 = 0
m = 0
m: = m + 1
End
Xoay tri bin xoay
Goto loop2
loop4
loop1
loop3
loop2
loop4
loop1
loop3

S
S
S
S
Count:=count+1


Chucng tr|nh v|et bo ng A5M:
title chuongtrinhhienthi SPKT.asm
processor p16f877a
include <p16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON &_XT_OSC &
_WRT_OFF & _LVP_OFF & _CPD_OFF

;----------------------------------------------------
; Khoi tao cac bien
;-----------------------------------------------------
count1 EQU 0x20
Bxoay EQU 0x21
count2 EQU 0x22
count EQU 0x23
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
177 . + y
a EQU 0x24
dem equ 0x25

;=================================================
;CHUONG TRINH CHINH
;=================================================
ORG 0x000
GOTO start
start
;---------------------------------------------------
; Khoi tao PortB
;---------------------------------------------------
BCF STATUS,RP1
BSF STATUS,RP0
CLRF TRISB
CLRF TRISD
BCF STATUS,RP0
;---------------------------------------------------
; vong lap chuong trinh chinh
;---------------------------------------------------
main movlw 0x00
movwf dem
loop4 incf dem,1
movlw 0x05
movwf count1
Loop1 movlw 0x30
movwf count2
loop3 movlw 0x01
movwf bxoay
movf dem,0
movwf count
Loop2 MOVF count, 0
CALL table
MOVWF PORTB
movf bxoay,0
movwf PORTD
CALL delay
movlw 0x00
MOVWF PORTD
INCF count, 0
XORLW d'44'
BTFSC STATUS,Z
GOTO loop11
INCF count, 1
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
178 . + y
rlf bxoay
GOTO Loop2
loop11 decfsz count2
goto loop3
decfsz count1
goto Loop1
movf dem,0
xorlw d'43'
BTFSC STATUS,Z
goto main
goto loop4
;=================================================
; Cac chuong trinh con
;=================================================
;---------------------------------------------------
; Chuong trinh con cho ki thuat bang
;---------------------------------------------------
table
ADDWF PCL,1
DT 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
DT 0xff,0xff,0xcd,0xb6,0xb6,0xd9 ;S
DT 0xff,0xff,0x80,0xb7,0xb7,0xcf ;P
DT 0xff,0xff,0x80,0xeb,0xdd,0xbe ;K
DT 0xff,0xbf,0xbf,0x80,0xbf,0xbf ;T
DT 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
;---------------------------------------------------
; Chuong trnh con delay
;---------------------------------------------------
delay movlw 0xff
movwf a
del1 decfsz a
goto del1
return
END
;=======================================
Chucng tr|nh v|et bo ng C:
/*====================================================
* Title : Chuong trinh hien thi chu SPKT
* Writer :
* Hardware : PIC16F877A
* Compiler : CCS C
*====================================================*/
#include<16F877A.h>
#include<def_16f877a.h>
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
179 . + y
#fuses NOWDT,PUT,HS,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use fast_io(b)
#use fast_io(d)
int8 dem,a,i,j;
int16 b;
const unsigned char dig[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,\
0xcd,0xb6,0xb6,0xd9,0xff,0x80,0xb7,0xb7,0xcf,0xff,0x80,0xeb,0xdd,0xbe,\
0xff,0xbf,0xbf,0x80,0xbf,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
void main()
{
trisb=0;
trisd=0;
while(1)
{
dem=0;
while(dem<38)
{
i=dem;
for(b=0;b<10000;b++)
{
a=a<<1;
if(a==256)
{
a=01;
i=dem;
}
portb=dig[i];
portd=a;
delay_us(100);
i++;

}
dem++;
}
}
}
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
180 . + y
3
Ket no i portB v i 8 ng d lieu cu a LCD.
Ket no i portD v i 3 bit ieu khien cu a LCD.
Luu dc d|e u kh|e n:


Chucng tr|nh v|et bo ng A5M:
title hienthichu Truong DHSPKT TP Ho Chi Minh.asm
processor p16f877a
include <p16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON &_HS_OSC
;=================================================
; Khoi tao cac bien
;=================================================
count1 EQU 0x20
count2 EQU 0x21
count3 EQU 0x22
count EQU 0x23
a EQU 0x24
;=================================================
;CHUONG TRINH CHINH
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
181 . + y
;=================================================
ORG 0x000
clrf STATUS
movlw 0x00
movwf PCLATH
GOTO start
Start
;---------------------------------------------------
; Khoi tao PortB,PortD
;---------------------------------------------------
BCF STATUS,RP1
BSF STATUS,RP0 ;
CLRF TRISB ;
clrf TRISD
BCF STATUS,RP0 ;
;---------------------------------------------------
; vong lap chuong trinh chinh
;---------------------------------------------------
main call khoitaolcd
call delay40ms
call dong1
call dong2
call delay40ms
goto $
khoitaolcd
movlw 0x01
movwf a
call ghimadkhien
call delay40ms
movlw 0x38
movwf a
call ghimadkhien
call delay40ms
movwf a
call ghimadkhien
call delay40ms
movlw 0x0C
movwf a
call ghimadkhien
call delay40ms
movlw 0x01
movwf a
call ghimadkhien
call delay40ms
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
182 . + y
return
ghimadkhien
movf a,0
movwf PORTB
bcf PORTD,0
bcf PORTD,1
BSF PORTD,2
BCF PORTD,2
Return

delay40ms movlw d'255'
movlw count1
del1 movlw 0xff
movwf count2
del2 decfsz count2
goto del2
decfsz count1
goto del1
return
dong1
movlw 0x80
movwf a
call ghimadkhien
call delay
clrf count
loop2 movf count,0
call table
movwf a
call ghidata
call delay
incf count,0
xorlw d'15'
btfsc STATUS,Z
goto exit
incf count,1
goto loop2
exit return

dong2 movlw 0xc1
movwf a
call ghimadkhien
call delay
clrf count
loop4 movf count,0
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
183 . + y
call table1
movwf a
call ghidata
call delay
incf count,0
xorlw d'14'
btfsc STATUS,Z
goto exit1
incf count,1
goto loop4
exit1 return

ghidata movf a,0
movwf PORTB
bsf PORTD,0
bcf PORTD,1
bsf PORTD,2
bcf PORTD,2
return

table addwf PCL,1
DT " Truong DHSPKT"
table1 addwf PCL,1
DT "TP Ho Chi Minh"
;--------------------------------------------------------------------------
delay movlw d'255'
movwf count3
dela1 decfsz count3
goto dela1
return
end
;========================================
;Ket thuc chuong trinh
;========================================

Chucng tr|nh v|et bo ng C:
/*==============================================
* Title : Hien chuoi truong DHSPKT TP Ho Chi Minh len LCD
* Writer :
* Hardware : PIC16F877A
* Compiler : CCS C
*===============================================*/
#include <16F877A.h>
#include <DEF_16F877A.h>
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
184 . + y
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#define RS RD0
#define RW RD1
#define E RD2
#define LCD PORTB

/*Ham yeu cau goi lenh dieu khien LCD*/
void comnwrt()
{
RS = 0;
RW = 0;
E = 1;
E = 0;
delay_ms(1);
}
/*Ham yeu cau goi du lieu hien thi len LCD*/
void datawrt()
{
RS = 1;
RW = 0;
E = 1;
E = 0;
delay_ms(1);
}
/*Ham main*/
void main()
{
trisb=0;
trisd=0;
delay_ms(100);
LCD = 0x01;
comnwrt();
LCD = 0x01;
comnwrt();
LCD = 0x38;
comnwrt();
LCD = 0x0C;
comnwrt();
LCD = 0x81;
comnwrt();
LCD = 'T'; // Xuat dong chu "Truong DHSPKT" ra dong 1 LCD
datawrt();
LCD = 'r';
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
185 . + y
datawrt();
LCD = 'u';
datawrt();
LCD = 'o';
datawrt();
LCD = 'n';
datawrt();
LCD = 'g';
datawrt();
LCD = ' ';
datawrt();
LCD = 'D';
datawrt();
LCD = 'H';
datawrt();
LCD = 'S';
datawrt();
LCD = 'P';
datawrt();
LCD = 'K';
datawrt();
LCD = 'T';
datawrt();
LCD = 0xC0; //Vi tri hang 2,cot 2
comnwrt();
LCD = 'T'; //Xuat dong chu "TP Ho Chi Minh" ra dong 2 LCD
datawrt();
LCD = 'P';
datawrt();
LCD = ' ';
datawrt();
LCD = 'H';
datawrt();
LCD = 'o';
datawrt();
LCD = ' ';
datawrt();
LCD = 'C';
datawrt();
LCD = 'h';
datawrt();
LCD = 'i';
datawrt();
LCD = ' ';
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
186 . + y
datawrt();
LCD = 'M';
datawrt();
LCD = 'i';
datawrt();
LCD = 'n';
datawrt();
LCD = 'h';
datawrt();
}
7 3 /
Ket no i portB v i 8 ng d lieu cu a LCD.
Ket no i portD v i 3 bit ieu khien cu a LCD.
S dung kenh AN0 va hien th ke t qua nh pha n tren 8 led hien th portB
Luu dc d|e u kh|e n:

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
187 . + y
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
188 . + y
Chucng tr|nh v|et bo ng A5M:
title "Chuyen doi ADC kenh AN0.asm"
processor p16f877a
include <P16f877a.inc>
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC &_LVP_OFF
;=============================================
; Chuong trinh chinh
;=============================================
count_1 equ 0x20
count_2 equ 0x21
DLY12 equ 0x22
;--------------dat bien ADC---------------------
ORG 0x030
REGAD1 RES 1
;----------------------------------------------
org 0x000
goto start
;------------------------------------------------------------
;khoi tao Port B
;------------------------------------------------------------
start org 0x0005
banksel TRISB
clrf TRISB
banksel PORTB
;----------------------
;Khoi tao cac ngo vao
;----------------------
ADC movlw B'00000000' ;Tat ca portA la ngo vao ADC
movwf ADCON1 ;chon Vref = VDD
;------------------------------------------------------------
; vong lap chuong trinh chinh
;-----------------------------------------------------------
;=============================
; Doc ADC
; Su dung bit GO/DONE
;=============================

main movlw B'00000001'
call docADC
movwf REGAD1
movf REGAD1,0
movwf PORTB
goto main
;====================================
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ +++ :++ :- + + .~ +~ + . -. + -+ '`77/ .y- + ++ +.
189 . + y
; CHUONG TRINH CON
;====================================
docADC movwf ADCON0
DELAY12 decfsz DLY12,F
goto DELAY12
bsf ADCON0,2
GODONE btfsc ADCON0,2
goto GODONE ;Cho den khi convert xong
movf ADRESL,W
return
end
;===========================================
Chucng tr|nh v|et bo ng C:
#include <16F877.h>
#include <def_16f877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#device 16F877*=16 ADC=8
#use delay(clock=20000000)
Int8 adc;
main()
{
setup_adc(adc_clock_internal);
setup_adc_ports(AN0);
set_adc_channel(0);
delay_ms(10);
while(true)
{
adc=read_adc();
output_B(adc);
}
}



return

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M

Chucng 4
V| |EU KH|EN AVk

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
2 . + y
Chip AVR ra t a dang ay ch trnh bay chip AT90S8535.
1. Cac chc na ng cua chip AVR AT90S8535 c tom ta t nh sau:
Co cau truc RISC cong suat tieu thu thap va th c hien cao.
Co 118 lenh thi gian thc hien mo i lenh la 1 chu ky may.
Co 32 thanh ghi a na ng 8 bit.
Co the th c hien 8 trie u lenh tren 1 gia y neu hoa t ong vi tan so tha ch anh la 8MHz.
D lieu va chng trnh c lu trong bo nh khong bay hi (khong ma t d lieu khi ma t
ien).
Co 8Kbyte bo nh chng trnh cho phep nap no i tie p tren he thong ang hoa t ong ISP
(In System Programmable Flash) va cho phep nap xoa chng trnh 1000 lan.
Co 512 byte EEPROM va am bao cho phep na p xo a 100000 lan.
Co 512 byte SRAM no i ben trong.
Co chc na ng lap trnh bao mat chng trnh.
Cau tru c ngoai vi:
Co 8 kenh ADC 10 bit.
Cho phe p lap trnh UART.
Co 2 timer/ counter 8 bit co bo chia trc va co mode hoa t ong so sanh.
Co 1 timer/counter 16 bit co bo chia tr c, co so sanh va co ch c nang ba t kp va co ch c
nang ieu che o rong xung.
Co mot watchdog timer v i tan so hoa t ong tren chip.
Co ma ch so sanh ien ap tng t tren chip.
Cac cau tru c a c biet cua vi ieu khien:
Co ma ch ien reset khi cap ien.
Co xung ong ho thc Real Time Clock (RTC) v i mach dao ong chia san va mode
hoa t ong counter.
Co nhieu tn hieu bao ngat ben ngoai va ca ben trong.
Co 3 che o hoa t giam cong sua t: mode ngh (idle), mode tie t kiem cong sua t (power
save) va mode giam cong sua t (power down).
Cong suat tieu tan cua chip AVR AT90S8535 c o tai tan so hoat ong 4MHz, nguon cung cap
3V va nhiet o moi trng la 20 C:
Che o hoa t ong la 6,4 mA.
Che o ngh (idle) la 1,9A.
Che o power down la < 1A.
Tan so la m viec la:
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
3 . + y

T 0 en 8 MHz oi v i AT90S8535.
T 0 en 4 MHz oi v i AT90LS8535.
2. Ca u truc chan cu a AT90S8535: hnh 1 trnh bay s o chan cu a AVR AT90S8535.











Hnh 1. S o chan chip AVR AT90S8535.
Chip AVR AT90S8535 co 40 chan giong nh ho 89 nhng ch kha c la chan cap nguon kha c v
tr. Tn hieu reset tch c c m c tha p. Co 4 port nhng vi ten thay o i la portA, portB, portC va portD.
Ch c nang ca c chan tn hie u:
Vcc : cha n cap nguon.
GND: chan noi mass 0V.
Port A: (PA7.. PA0)
Port A la port xua t nhap (IO) 8 bit 2 chieu. Cac cha n cu a port A co the tao ra ca c ien tr keo
len ben trong ( c la chon cho t ng bit). Bo em cu a portA co the nha n dong kho ang 20mA va co
the ieu khien thuc tr c tie p ca c led hien th. Khi cac chan t PA0 en PA7 c du ng nh la cac ngo
vao va keo xuong m c thap ben ngoai th chu ng se cung cap do ng ra ne u ca c ien tr keo len be n
trong c tac ong.
Port A con ong vai tro la ca c ngo va o cua cac bo chuyen o i ADC.
Ca c cha n cua port A se tra ng tha i tong tr cao khi reset b ta c ong va ngay ca khi mach dao
ong khong hoa t o ng.
Port B: (PB7.. PB0)
Port B la port xua t nhap (IO) 8 bit 2 chie u v i ca c ien tr keo len ben trong. Bo em cu a portB
co the nhan dong khoang 20mA. Khi c du ng nh la ca c ngo va o va keo xuong m c thap be n
ngoa i th chung se cung cap dong ra neu ca c ie n tr ke o len ben trong c ta c ong.
Port B con phuc vu nhieu ch c nang v i nhieu ca u tru c a c bie t kha c nhau c trnh ba y
phan sau.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
4 . + y
Ca c chan cu a port B se trang tha i tong tr cao khi reset b ta c ong va ngay ca khi mach dao
ong khong hoa t o ng.
Port C: (PC7.. PC0)
Port C la port xuat nha p (IO) 8 bit 2 chieu v i ca c ien tr keo len ben trong. Bo em cua port
C co the nha n dong kho ang 20mA. Khi c du ng nh la ca c ngo vao va keo xuong m c thap be n
ngoa i th chung se cung cap dong ra neu ca c ie n tr ke o len ben trong c ta c ong.
Hai chan cu a Port C co the c s dung nh la ngo va o cua timer/counter2.
Ca c chan cu a port C se trang tha i tong tr cao khi reset b ta c ong va ngay ca khi mach dao
ong khong hoa t o ng.
Port D: (PD7.. PD0)
Port D la port xuat nha p (IO) 8 bit 2 chieu vi cac ie n tr keo len be n trong. Bo em cua port
D co the nhan dong kho ang 20mA. Khi c dung nh la cac ngo vao va keo xuong mc thap be n
ngoa i th chung se cung cap dong ra neu ca c ie n tr ke o len ben trong c ta c ong.
Port D con phuc vu nhieu ch c nang v i nhieu cau tru c a c biet kha c nhau c trnh bay
phan sau.
Ca c cha n cua port D se trang tha i tong tr cao khi reset b tac ong va ngay ca khi ma ch dao
ong khong hoa t o ng.
RESET:
La ngo vao tac ong mc tha p. Xung reset da i hn 50ns se reset AVR ngay ca khi ma ch dao
ong khong hoa t o ng.
XTAL1:
La ngo vao cu a ma ch khuech a i dao ong a o va ngo vao cu a mach ien tao dao o ng be n
trong.
XTAL2:
La ngo ra cu a mach khuech a i dao ong ao.
AVCC:
La chan cung cap nguo n ien ap cho bo chuyen o i AD. Chan AVCC na y se c ke t no i v i
Vcc thong qua mo t ma ch loc tho ng thap. Pha n sau se trnh bay hoa t ong cu a ma ch.
AREF:
La chan ngo vao cung cap ien ap tham chieu (ien a p chuan) cho bo chuyen oi AD. oi v i
hoa t ong cua ADC th phai cung ca p mo t ien a p nam trong khoang t AGND en Avcc en ngo va o
chan AREF.
AGND:
La chan no i mass cu a tn hieu tng t. Neu bo mach co mass analog th ket no i cha n nay en
mass analog, con neu kho ng co th no i chung v i GND.
S dung dao o ng thach anh:
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
5 . + y

XTAL1 va XTAL2 theo th t la ngo vao va ngo ra cu a mach khuech a i ao c thiet ke s
dung nh ma ch dao ong no i c trnh bay hnh 2. Tha ch anh hoa c mach co ng h ng ceramic e u
co the s du ng e tao dao o ng.

H|nh 3. Ke t nc| tho ch onh vc | 2 ngc voc X1AL vo X1AL2.
3. Ca u truc phan cng:
Cau truc pha n c ng cu a AVR AT90S8535 c trnh ba y hnh 3.
Ca c kho i ben trong bao gom:
- Kho i khue ch a i thu c cho cac port A, B, C, D (port driver), kho i thanh ghi d lieu port (Data
Register Port - DRP) va kho i ieu khien hng cho ca c port (Data Direction Register port - DDRP).
- Kho i chuye n o i tn hie u tng t sang so (ADC) va kho i a hp chon kenh ngo vao (analog
mul).
- Kho i dao o ng noi vi tu thach anh ben ngoa i (oscillator) va kho i dao o ng nhan tn hieu dao
ong t be n ngoa i.
- Kho i th i gian va ieu khien (timing and control).
- Khoi ie u khien lap trnh (programming control): ay la khoi quan trong nha t cua toan bo he
thong.
- Khoi thanh ghi con tro nga n xe p Stack pointer (Sp): co ch c na ng quan ly bo nh ngan xep
(dung bo SRAM ben trong ) e lu tr ca c d lieu tam th i trong qua trnh x ly d lieu.
- Bo nh SRAM dung e lu tr ca c d lieu phuc vu cho chng trnh va dung lam bo nh ngan
xep e lu tr ca c d lieu tam thi va lu tr a ch khi th c hien ca c chng trnh con hay ca c
chng trnh con phu c vu ngat.
- Kho i thanh ghi bo em chng trnh Program Counter (PC): co chc nang qua n ly bo nh
chng trnh hay chnh xa c hn la quan ly lenh. Khi thanh ghi PC tro en lenh nao th lenh o c
th c hien.
- Kho i bo nh chng trnh Program Flash: du ng e lu tr ma le nh cu a chng trnh. Thanh ghi
PC se quan ly bo nh nay.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
6 . + y

H|nh 3. 5c dc co u truc ben trcng cu o AVk A1058535.
- Thanh ghi lenh (Instruction Register) co ch c nang lu tr ma lenh.
- Kho i gia i ma lenh (Instruction Decoder) co ch c nang gia i ma lenh e cho khoi ieu khien
chng trnh biet le nh yeu cau thc hie n co ng vie c x ly g. Sau khi gia i ma xong ca c yeu cau th c
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
7 . + y

hien cu a lenh se chuye n sang cho kho i ieu khie n chng trnh thc hien. Ro i tiep tuc thc hie n vie c
giai ma lenh tie p theo.
- Khoi thanh ghi a nang va cac thanh ghi x, y, z: co chc nang phuc vu cho vie c lu tr d lieu
e chng trnh x ly.
- Khoi ALU co chc nang th c hien ca c le nh x ly d lieu nh cong, tr , nhan, chia, tang, giam,
and, or, exor, so sanh, Khoi nay se th c hien ca c phep toa n v i ca c d lieu cha trong cac thanh ghi
tren.
- Thanh ghi trang tha i Status Register co ch c nang cho biet trang tha i cu a d lieu sau khi x
ly d lieu b i kho i ALU.
- Khoi dao o ng ben trong e ta o ra nhieu ca p tan so kha c nhau e phu c vu cho ca c ng du ng
kha c nh truye n d lieu.
- Kho i Watch Dog timer c tch hp e phu c vu cho vie c nh thi thoa t khoi ca c vong lap vo
han.
- Khoi timer/counter dung e phu c vu cho ca c bo nh thi cho ca c ng dung ieu khien va ca c
ng dung nhan xung em t ben ngoa i.
- Khoi ieu khien nga t (interrupt): bao gom ca c chc nang nhan tn hieu yeu ca u ngat t ben
ngoa i, x ly nga t, u tie n ngat, ieu khien cho phe p hay khong cho phep ngat.
- Kho i bo nh EEPROM cho phep lu tr cac d lieu ma khi ma t ien th d lieu van con, so lan
cho phep ghi xoa len en 100 000 la n.
- Kho i truyen d lieu ba t o ng bo UART: cho phep AVR truyen d lie u v i ca c o i t ng kha c.
- Bus d lie u ben trong dung e ke t no i ta t ca ca c kho i vi nhau e trao oi d lieu.
4. To ng quan ve ca u truc AVR
Kha i niem file thanh ghi truy xua t nhanh ch a 32 thanh ghi 8 bit hoat ong a nang to ng qua t
vi th i gian truy xua t trong mo t chu ky xung clock duy nha t. ieu nay co ngha la trong mo i 1 chu ky
xung clock mot phep toan trong kho i ALU c th c hien. Hai toan t c xua t ra t file thanh ghi,
phep toan c thc hie n va ke t qua c lu tr la i trong file thanh ghi ch trong 1 chu ky xung clock.
Sau trong 32 thanh ghi co the c du ng nh la cac con tro thanh ghi a ch gian tiep 16 bit e
nh a ch vung nh d lieu (Data Space ) cho phep tnh toa n a ch mo t ca ch hieu qua . Mo t trong
3 con tro a ch cung c s dung nh la con tro a ch cho chc nang tm kiem ha ng so bang (for
the constanr table look up function). Ca c thanh ghi ch c nang nay la X register, Y regiester va Z
register.
Kho i ALU th c hien cac phep toan a i so va ca c phep toan logic gi a cac thanh ghi hoa c gi a
hang so va thanh ghi. Cac phep toan ch xay ra tre n 1 thanh ghi cung c th c hien b i kho i ALU.
Hnh 4 trnh bay cau truc RISC cu a vi ieu khien AVR AT90S8535.
Them va o ca c hoa t ong cu a thanh ghi th ca c kieu nh a ch bo nh theo qui c cung co the
c s dung tre n file thanh ghi. ieu na y c cho phep b i file thanh ghi c ga n bi 32 a ch
vung nh d lieu thap nha t ($00 $1F) cho phep chung c truy xuat nh la nhng o nh bnh
th ng.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
8 . + y

H|nh 4. Cou truc k|5C cu o AVk A1058535.
Vung nh IO co 64 a ch phuc vu cho kho i ngoai vi cua CPU nh ca c thanh ghi ie u khien
(control registers), timer/counters, A/D converters va cac ch c nang IO kha c. Vung nh IO co the truy
xua t tr c tiep hoa c c xem nh la mo t vung nh d lieu tiep theo sau file thanh ghi t $20 e n $5F.
AVR dung y tng cau tru c Harvard v i vie c chia ca c vung nh va bus cho bo nh chng
trnh va bo nh d lieu. Bo nh chng trnh c th c hien v i 2 tang ng o ng (two stage
pipeline). Trong khi 1 lenh c th c hien th lenh tiep theo se c on t bo nh chng trnh. Y
tng nay cho phep cac lenh c thc hien trong moi chu ky xung clock. Bo nh chng trnh c
tch hp trong he thong bo nh Flash.
Vi cac lenh nhay va lenh go i tng o i trong pham vi 4k khong gian bo nh th c truy xua t
tr c tiep. Hau he t ca c lenh cua AVR eu co t ma lenh 16 bit. Mo i mot a ch o nh chng trnh
ch a lenh 16 bit hoa c 32 bit.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
9 . + y

Khi thc hie n ngat va lenh goi ca c chng trnh con th a ch tr ve chng trnh chnh lu
thanh ghi PC c lu trong ngan xep. Bo nh nga n xep c cap phat trong vu ng nh SRAM a dung
va do o kch th c bo nh nga n xep se b gii han b i kch th c toa n bo bo nh SRAM va vie c s
dung bo nh SRAM. Ta t ca ca c chng trnh cu a ng i dung pha i c kh i tao vi SP trong thu tu c
reset (tr c khi chng trnh con hoa c ngat c th c hie n). Con tro SP quan ly bo nh nga n xep co
chieu da i 10 bit co the c truy xua t oc/ghi trong vu ng nh IO.
Vung nh d lieu SRAM 512 byte co the de dang c truy xua t thong qua 5 kieu nh a ch
kha c nhau c xay d ng trong cau truc cu a AVR.
Ca c vung nh trong cau tru c cua AVR la ca c bang o nh tuyen tnh va quy tac. Ca u tru c bo nh
ben trong cu a AVR nh hnh 5:


H|nh 5. 8o ng dc cu o coc bc nhc .
Trong bang o nh tren chung ta thay co 3 loa i bo nh khac nhau tch hp trong AVR gom bo
nh chng trnh (Program Memory) va hai loa i bo nh d lieu (Data Memory): gom bo nh SRAM
va bo nh EEPROM.
Bo nh chng trnh cua AT90S8535 co dung lng la 8Kbyte, mo i mo t o nh la 16 bit, con ca c
loai bo nh d lieu th mo i mo t o nh la 8 bit. Ba ng o nh tre n co 2 thong so th tho ng so ng
trc la cua AT90S4434, con thong so ng sau la cu a AT90S8535.
Bo nh d lieu be n trong gom co 3 thanh phan: th nha t la 32 thanh ghi hoat ong a nang co
a ch t $000 e n $01fh, thanh phan th 2 la 64 o nh cu a cac thie t b ngoa i vi IO va 512 byte
SRAM.
Bo nh d lie u EEPROM co 512 o nh du ng e lu tr d lieu va khong co g a c bie t.
File thanh ghi hoat ong a na ng:
Hnh 6 trnh bay cau tru c cu a 32 thanh ghi hoa t ong a na ng trong CPU.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
10 . + y

H|nh 6. Coc thonh gh| hcot dc ng do nong cu o CPU AVk.
Tat ca ca c lenh x ly trong tap lenh eu co the truy xuat tr c tiep tren ca c thanh ghi nay va ch
th c hien trong khoang th i gian 1 chu ky may - ngoa i tr 5 lenh th c hien ca c phep toan ai so va
logic: SBCI, SUBI, CPI, ANDI, ORI xay ra gia hang so va thanh ghi va lenh LDI nap d lieu hang
so trc tiep. Ca c lenh nay ch ap dung cho phan n a ca c thanh ghi con lai trong file thanh ghi t R16
en R31. Ca c lenh tong qua t SBC, SUB, CP, AND va tat ca ca c le nh kha c xay ra gi a 2 thanh ghi va
tren 1 thanh ghi eu co the ap du ng cho toan bo file thanh ghi.
Nh a trnh ba y trong hnh 6, mo i thanh ghi cung co the c ga n mot a ch bo nh d lie u,
nh v chung tr c tie p trong 32 o nh a u tie n cua vung nh d lieu cu a ng i s dung. Ma c du
khong s du ng a ch va t ly nh ca c o nh cua SRAM nhng vung nh nay c to chc cung ca p
mot s linh hoa t ra t ln trong viec truy xua t cua ca c thanh ghi nh thanh ghi X, Y va Z co the c
thie t lap e ch ti ba t ky thanh ghi nao trong file thanh ghi.
Thanh ghi X, Y va Z:
Ca c thanh ghi t R26 en R31 c ke t h p lai tao ra 3 thanh ghi X, Y va Z e s dung cho ca c
muc ch a nang kha c. Ca c thanh ghi nay la cac con tro a ch e nh a ch gian tie p cac o nh
trong vung nh d lieu.
Hnh 7. Trnh bay ca c thanh ghi X, Y va Z.


Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
11 . + y

H|nh 7. 1r|nh bo y coc thonh gh| X, vo Z.
Chu y th t cac thanh ghi khi ke t hp.
Trong ca c kieu nh a ch kha c nhau, ca c thanh ghi nay co ch c nang lu tr a ch co nh,
a ch tang len e truy xua t e n o nh tiep theo sau khi th c hie n xong lenh, a ch giam xuo ng e
truy xuat o nh ke sau khi thc hien xong lenh.
Khoi ALU:
Kho i ALU trong AVR thc hie n ket no i tr c tiep vi ta t ca 32 thanh ghi hoa t ong a nang to ng
qua t. Trong mot chu ky duy nhat cu a xung clock, ca c phep toan cu a khoi ALU xa y ra gi a ca c thanh
ghi trong file thanh ghi c th c hien. Ca c phe p toa n cua kho i ALU c chia ra lam 3 loa i: phe p
toan so ho c, phe p toan logic va ca c phe p toa n x ly bit.
Bo nh chng trnh flash co the lap trnh trong he tho ng:
AT90S8535 co 8K byte bo nh chng trnh flash co the lap trnh trong he thong e lu tr
chng trnh. Do ta t ca ca c lenh eu co chie u dai la 16 bit nen bo nh FLASH to ch c theo 4K x 16.
Bo nh flash co the am bao c cho 1000 chu ky na p xo a. Thanh ghi PC cu a AT90S8535 co chie u
da i 12 bit do o co the truy xuat 4096 a ch cu a bo nh chng trnh.
Bo nh d lieu SRAM:
Hnh 8 se trnh bay cach thc to chc cu a bo nh SRAM cu a AT90S8535:





Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
12 . + y

H|nh 8. 1r|nh bo y co u tru c bc nhc 5kAM.
Vung nh d lieu tha p co 608 a ch dung e nh ch cho: file thanh ghi, cho bo nh IO va cho
bo nh SRAM. 96 o nh a u tien la a ch cu a file thanh ghi va cu a vung nh IO. 512 o nh tiep theo
la a ch cu a vung nh d lie u SRAM ben trong.
Nam kieu nh a ch khac nhau cho vung nh d lieu bao gom: nh a tr c tiep (direct), nh
a ch gian tie p (indirect with displacement) va gian tiep v i tang a ch. Trong file thanh ghi, thanh
ghi t R26 e n R31 to ch c tha nh thanh ghi con tro a ch co the nh a ch gian tiep.
a ch ho a tr c tiep toan bo vung d lie u.
Trong a ch ho a gian tiep v i cau truc kieu th 63 o nh co the truy xua t t a ch ne n c
cho bi thanh ghi Y hoa c thanh ghi Z.
Khi du ng ca c kieu nh a ch gia n tiep dung thanh ghi vi a ch t ong tang hoac giam,
thanh ghi a ch X, Y va Z ta ng hoa c giam.
32 thanh ghi hoa t ong a nang tong qua t, 64 thanh ghi IO va 512 byte cu a bo nh d lieu
SRAM ben trong AT90S8535 co the c truy xuat thong qua tat ca ca c kieu nh a ch nay.
Hay xem phan tiep theo se trnh bay chi tiet ca c kie u nh a ch kha c nhau.
Ca c kie u truy xuat bo nh d lieu va bo nh chng trnh:
Vi ieu khien AVR AT90S8535 cung ca p nhie u kieu nh a ch manh va hie u qua e truy xua t
bo nh chng trnh (flash) va bo nh d lieu (SRAM, file thanh ghi va vung nh IO). Vai tro cu a
nhie u kieu nh a ch kha c nhau c cung cap b i cau truc cu a AVR. Trong cac hnh k hie u OP
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
13 . + y

(operation code) co ngha la phan ma tac to cu a t le nh. e n gian, kho ng pha i hnh nao cung trnh
bay v tr chnh xa c cu a ca c bit nh a ch.
a. Kie u nh a ch tr c tie p, thanh ghi n Rd:
Kie u nh a ch tr c tie p dung thanh ghi va 2 thanh ghi nh hnh 9.





Hnh 9. Kieu nh a ch tr c tiep dung thanh ghi va 2 thanh ghi.
Tac to c ch a trong thanh ghi d (Rd).
b. Kie u nh a ch tr c tie p, du ng 2 thanh ghi Rd va Rr:
Kie u nh a ch tr c tie p dung thanh ghi va 2 thanh ghi nh hnh 10.



Hnh 10. Kieu nh a ch tr c tiep dung thanh ghi va 2 thanh ghi.
Ca c ta c to c ch a trong thanh ghi r (Rr) va d (Rd). Ket qua c lu trong thanh ghi d (Rd).
c. Kie u nh a ch tr c tie p IO:
Kie u nh a ch tr c tie p IO nh hnh 11.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
14 . + y


Hnh 11. Kieu nh a ch tr c tiep IO.
a ch cua ta c to c ch a trong 6 bit cu a t ma lenh: n la a ch cua thanh ghi en
(destination) hoa c thanh ghi nguo n (suorce).
d. Kie u nh a ch tr c tie p d lie u:
Kie u nh a ch tr c tie p d lieu nh hnh 12.



Hnh 12. Kieu nh a ch tr c tiep d lieu.
a ch 16 bit cu a d lieu trong t ma lenh th 2 cua t ma le nh 2 word. Rd/Rr ch nh thanh ghi
en hoa c thanh ghi nguon.
e. Kie u nh a ch gia n tiep d lieu v i displacement:
Kie u nh a ch gia n tiep d lieu v i displacement nh hnh 13.


Hnh 13. Kieu nh a ch gian tiep d lieu vi displacement.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
15 . + y

a ch cu a ta c to la ke t qua cu a no i dung lu trong thanh ghi Y hoac Z cong vi a ch 6 bit a
co trong t ma le nh.
f. Kie u nh a ch gia n tiep d lieu:
Kie u nh a ch gia n tiep d lieu nh hnh 14.



Hnh 14. Kieu nh a ch gian tiep d lieu.
a ch cua ta c to lu trong thanh ghi X hoac Y hoa c Z .
g. Kie u nh a ch gia n tiep d lieu v i pre - displacement:
Kie u nh a ch gia n tiep d lieu v i pre displacement nh hnh 15.


Hnh 15. Kieu nh a ch gian tiep d lieu vi pre - displacement.
Noi dung cu a thanh ghi X, Y hoa c Z giam i 1 tr c khi th c hien lenh. a ch cu a ta c to lu
trong thanh ghi X, Y hoac Z sau khi a giam i 1.
Nhn va o hnh 15 cho chung ta tha y c no i dung cu a X, Y hoac Z cong v i so -1 va ta o ra a
ch m i c cap nhat tr lai thanh ghi X, Y hoac Z va o cung chnh la a ch cu a o nh can truy
xua t d lieu.
h. Kie u nh a ch gia n tiep d lieu v i Post - Increment:
Kie u nh a ch gia n tiep d lieu v i Post Increment nh hnh 16.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
16 . + y

Hnh 16. Kieu nh a ch gian tiep d lieu vi Post - Increment.
a ch cu a ta c to lu trong thanh ghi X, Y hoa c Z . Sau khi thc hien xong viec truy xua t d lieu
th no i dung thanh ghi X, Y hoac Z tang le n 1.
Nhn vao hnh 16 cho chu ng ta thay c noi dung cu a X, Y hoa c Z la a ch can try xua t d
lieu sau o no i dung thanh ghi X, Y hoa c Z ta ng le n 1 va cap nhat tr la i thanh ghi X, Y hoac Z .
i. Kie u nh a ch dung lenh LPM:
Kie u nh a ch dung lenh LPM nh hnh 17.


Hnh 17. Kieu nh a ch dung lenh LPM.
a ch cu a byte d lieu c ch nh b i noi dung thanh ghi Z. 15 bit cao l a chon a ch
(trong pham vi 0 2K/4K), bit thap nhat trong thanh ghi Z neu bang 0 th lenh se truy xua t byte d
lieu thap, neu bang 1 th se truy xuat byte cao trong vung nh 2 byte.
j. Kie u nh a ch gia n tie p bo nh chng trnh, IJMP va ICALL:
Kie u nh a ch gia n tiep bo nh chng trnh nh hnh 18.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
17 . + y


Hnh 18. Kieu nh a ch gian tiep bo nh chng trnh.
Vie c th c hie n chng trnh tiep tu c ta i a ch lu trong thanh ghi Z.
k. Kie u nh a ch tng o i bo nh chng trnh, RJMP va RCALL:
Kie u nh a ch gia n tiep bo nh chng trnh nh hnh 19.


Hnh 19. Kieu nh a ch gian tiep bo nh chng trnh.
Vie c thc hien chng trnh tie p tuc ta i a ch lu m i ba ng PC + k + 1. a ch tng oi k nam
trong pha m vi t -2048 en 2047.
Bo nh IO:
Vung a ch kho ng gian bo nh IO cua At90S8535 c trnh bay bang 1:
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
18 . + y






Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
19 . + y


Bang 1. Bo nh IO.

Tat ca IO va ca c ngoa i vi cua AT90S8535 c a t trong vu ng nh IO. Ca c o nh IO c truy
xua t bi lenh IN va OUT e truyen d lieu gi a 32 thanh ghi hoat ong a ch c nang va vung nh IO.
Ca c thanh ghi IO nam trong vung a ch t $00 e n $1F cho phep truy xua t bit du ng ca c lenh SBI va
CBI. Trong cac thanh ghi nay, gia tr cu a ca c bit n co the c kiem tra bang cach dung cac lenh
SBIS va SBIC. Hay tham khao tap lenh e co them chi tie t.
Khi s dung ca c lenh IN, OUT e nh a cac IO th ca c a ch truy xua t ca c IO nam trong
khoang t $00 en $3F. Khi xem ca c thanh ghi IO nh la mo t pha n cu a bo nh SRAM th a ch cu a
chung phai c cong them $20 (hay xem trong bang o nh SRAM). Ta t ca a ch cua thanh ghi IO
c trnh bay trong suot tai lieu na y c trnh bay v i a ch SRAM nam trong da u ngoa c n.
e tng thch v i cac thiet b se c xa y d ng trong tng lai th ca c bit cha s du ng se c
ghi so 0 neu chung ta truy xuat. Ca c a ch cu a vung nh IO cha s dung se khong bao gi c ghi
d lieu.
Nhieu c trang tha i c xo a bang ca ch ghi logic en chung (a logical one to them). Chu y ra ng
cac lenh CBI va SBI se hoa t ong tren tat ca ca c bit trong thanh ghi IO. Ca c lenh CBI va SBI se hoa t
ong v i cac thanh ghi ch nam trong khoang t $00 en $1F.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
20 . + y
Ca c thanh ghi IO va ca c thanh ghi ieu khien ngoa i vi c gia i thch phan tiep theo sau.

Thanh ghi tra ng thai status register - SREG:
Thanh ghi trang thai SREG cua AVR co a ch trong vung nh IO la $3F ($5F) c xa c nh
nh sau:

Chc na ng cua ca c bit:
Bit 7: Global Interrupt Enable - bit I: bit cho phep ngat toan cu c:
Bit I pha i c thie t lap m c logic 1 e cho phep ngat.
Sau o tng bit ieu khie n ngat o c lap c th c hien trong thanh ghi ieu khie n rieng. Neu
Bit I mc 0 th khong cho ba t ky nga t nao xay ra cho du tng bit ieu khien nga t trang tha i cho
phep.
Bit I se b xo a b i phan cng sau khi ngat xay ra va se tr la i m c 1 e cho phep nga t sau khi
th c hien le nh tr ve t chng trnh con phuc vu nga t RETI
Bit 6: Bit Copy Storage - bit T: bit copy va lu tr :
Ca c lenh copy bit BLD (Bit Load) va BST (Bit Store) dung bit T nh la bit source va bit
destination cho ca c hoa t ong bit. Mot bit t 1 thanh ghi trong file thanh ghi co the copy va o bit T
bang lenh BST va bit T co the c copy vao mo t bit trong thanh ghi nam trong file thanh ghi bang
lenh BLD.
Bit 5: Half Carry flag - bit H: bit c tra n phu :
Bit c tra n phu lu tra ng tha i tran phu trong 1 so ca c phe p toa n. Hay xem chi tie t phan le nh.
Bit 4: Sign bit - bit S S = N (+) V: bit dau :
Bit dau S thng la ke t qua cu a phep toan ex-or gia bit N (bit Negative) va bit V (over flow).
Hay xem chi tie t pha n lenh.
Bit 3: Bit Twos Complement Overflow Flag bit V:
C tran bu 2 V c xay dng e thc hien ca c phep toan bu hai.
Bit 2: Bit Negative Flag bit N:
C so am N xa c nh ke t qu a phe p toa n la so am.
Bit 1: Zero Flag bit Z:
C zero xa c nh ket qua phep toan bang 0 hay kha c 0.
Bit 0: Carry flag bit C:
C tran xa c nh ke t qu a phep toan co b tra n hay khong.
Chu y: thanh ghi trang tha i se khong t o ng lu tr khi th c hie n chng trnh con phu c vu nga t
va se kho ng khoi phu c la i khi tr ve chng trnh chnh. Chung ta phai t lu tr bang pha n mem neu
can.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
21 . + y


Thanh ghi con tro ngan xep stack pointer register - SP:
Thanh ghi con tro nga n xep cua AT90S8535 c thie t ke nh la 2 thanh ghi 8 bit nam tai a
ch $3E ($5E) va $3D ($5D) trong vung nh IO. Do vung nh d lie u ch co $25F o nh nen thanh ghi
SP ch co 10 bit c s dung.
Cau truc cu a thanh ghi Sp nh hnh sau:


Thanh ghi con tro quan ly vung nh d lieu ngan xep cu a bo nh SRAM, ta i vu ng nh ngan xep
dung e lu ca c d lieu cua chng trnh con va chng trnh con phuc vu nga t. Vung nh ngan xe p
trong vung nh SRAM phai c xa c nh bi chng trnh tr c khi co bat ky chng trnh con na o
c thc hien hoa c ca c nga t c phep.
Con tro ngan xep pha i c thie t lap ta i a ch tren $60.
Con tro nga n xep giam i 1 khi d lie u c ca t vao bo nh ngan xep b i lenh PUSH, con tro
ngan xep giam i 2 khi a ch c ca t vao ngan xe p khi th c hie n lenh go i chng trnh con hoa c khi
chng trnh con phu c vu ngat c th c hien.
Con tro ngan xe p tang len 1 khi d lieu c lay ra t ngan xep bang lenh POP, va con tro se
ta ng len 2 khi a ch c lay ra kho i ngan xe p khi thc hien lenh ket thu c chng trnh con RET tr
ve chng trnh chnh hoa c lenh ke t thu c chng trnh con phu c vu ngat RETI e tr ve chng trnh
chnh.

ieu khien RESET va ngat:
AT90S8535 cung cap 16 nguo n tn hie u nga t khac nhau. Cac nga t nay va ca c vector ngat eu co
1 vector chng trnh rie ng trong vung nh chng trnh. Ta t ca ca c nga t c gan v i ca c bit cho
phep ngat o c la p bit cho phep nga t pha i c thie t lap m c 1 cung v i bit I nam trong thanh ghi
trang tha i e cho phep nga t xay ra.
Ca c a ch thap trong vu ng nh chng trnh c xa c nh khi reset va ca c vector ngat hoan
toan t ong. Danh sach liet ke ay u ca c vector c trnh bay bang 2. Danh sa ch na y cung xa c
nh ca c m c o u tien cu a nhieu nga t kha c nhau. a ch cang tha p th mc o u tien ngat cang
cao. RESET co mc o u tien ngat cao nha t, tiep theo la INTO External interrupt request 0.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
22 . + y


Bang 2. Reset va bang vector ngat.

T bang vector nga t nen mo t chng trnh thng c bat au nh sau e tranh cac vung a
ch nga t nh chng trnh sau:
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
23 . + y



Nguon RESET:
AT90S8535 co 3 nguon reset:
Reset khi cap ien: MCU se b reset khi co ien a p cung cap thap hn ien ap ngng reset khi
m ien (power on reset threshold Vpot).
Nga t ngoai: MCU b reset khi co mc thap c xua t hien ngo vao cha n RESET\ ke o dai hn
50ns.
Watchdog reset: MCU b reset khi chu k thi gian watchdog het hieu l c va watchdog c phep.
Trong qua trnh reset tat ca ca c thanh ghi IO c khi tao cac gia tr bat au va chng trnh c bat
a u tai a ch $000. Lenh at tai a ch $000 phai la lenh RJMP lenh nhay tng oi e nhay e n mot ni
kha c tra nh vung nh cu a ca c vector ngat. Neu chng trnh khong bao gi s dung ngat, ca c vector nga t khong
c s dung th ma lenh cua chng trnh co the viet bat a u tai a ch $000 ma khong can phai nhay. Mach
ien hnh 20 trnh bay mach reset. Bang 3 xa c nh thi gian va ca c thong so ien cu a mach ien reset.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
24 . + y

H|nh 20. Mo ch d|e n reset.


8o ng 3. Coc thcng sc reset vc| ngucn Vcc = 5V.

Chu y : reset khi ca p nguon se khong hoat ong tr khi nguon cung cap co ie n ap d i Vpot.


8o ng 4. 5c chu ky doc dcng cu o Wotchdcg t|mer.

5. Ta p lenh cu a AVR:
Thuat ng cua tap lenh:
SREG: status register thanh ghi trang thai.
C: Carry flag in status register
Z: Zero flag in status register
N: Negative flag in status register
V: Twos complement overflow indicator
S: N (+) V for signed test
H: Half carry flag in status register
T: Transfer bit used by BLD and BSt instructions.
I: Global interrupt enable/ disable flag.

Thanh ghi va tac to
Rd: Destination (and source) register trong file thanh ghi.
Rr: Source register trong file thanh ghi.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
25 . + y

R: Result after instruction is executed ket qua sau khi lenh th c hien xong
K: constant data thong so d lieu
k: constant address thong so a ch
b: Bit trong file thanh ghi hoa c thanh ghi IO (3bit)
s: bit trong thanh ghi trang thai (3 bit)
X, Y, Z: thanh ghi a ch gian tiep.
(X = R26:R27, Y = R29:R28, Z = R31:R30).
A: IO location address a ch cu a IO
q: displacement for direct addressing (6 bit)

IO REGISTER:
RAMPX, RAMPY, RAMPZ
Cac thanh ghi c ket noi vi X, Y va Z cho phep nh a ch gian tiep cua toan bo khong gian bo nh d lieu
trong MCU vi dung lng bo nh hn 64k byte va on d lieu trong MCU vi dung lng bo nh chng
trnh hn 64K byte.
RAMPD
Thanh ghi c ket noi vi thanh ghi Z cho phep nh a ch tr c tiep toa n bo khong gian bo nh d lieu trong
MCU vi dung lng ln hn 64K byte.
EIND
Thanh ghi c ket noi vi t ma lenh cho phep nhay gian tiep va goi bat ky ni nao trong bo nh chng trnh
tren MCU vi dung lng khong gian bo nh ln hn 64K byte.
STACK
Stack: dung e lu ca c a ch tr ve va noi dung cac thanh ghi cat tam thi.
SP: con tro quan ly bo nh ngan xep.
FLAG
K hieu cho biet s anh hng cu a lenh en ca c bit trang thai trong thanh ghi trang tha i.


Tap lenh c tom ta t bang 5:





Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
26 . + y

8o ng 5. 1cm tot to p |e nh.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
27 . + y


8o ng 5. 1cm tot to p |e nh (t|e p thec[.



Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
28 . + y

8o ng 5. 1cm tot to p |e nh (t|e p thec[.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
29 . + y


8o ng 5. 1cm tot to p |e nh (t|e p thec[.




Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
30 . + y

8o ng 5. 1cm tot to p |e nh (t|e p thec[.

6. Thie t ke phan cng he thong:
Sau khi nam bat c ca u tru c, to ch c va kha nang ng dung cua chp AVR ta c gia pha i th c hien
cac co ng vie c nh sau:
- Phai thiet ke ma ch nap chip AVR dang noi tiep va giao tiep vi may tnh bang cong COM hoa c cong
LPT.
- Chip AVR th nghiem phai a ra ay u ca c chan ieu khien e giao tiep vi ca c thiet b ngoai vi.
- L a chon ca c ng dung pho bien nh giao tiep vi led n, giao tiep v i led 7 oan, giao tiep v i led
ma tra n, giao tiep vi LCD va giao tiep vi ma tran ban phm. Cac giao tiep phai co ay u ten cac
ngo va o ra, trang thai ieu khien va thuan tien cho vie c ket noi mo t ca ch de dang.
- Thiet ke nguo n cung cap cho he thong.
S o ket noi cac he thong nh hnh 21:










Kho i vi ieu
khie n 89S th c
hien qua trnh
nap (master)
Kho i AVR
th c hien ca c
th nghiem
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
31 . + y















Hnh 21. S o khoi cua he thong.
Trong s o khoi tren tr 3 khoi au tien lien ket vi nhau, con cac khoi con lai khong lien ke t vi
nhau nhng trong ca c ng dung th chung se lien ket vi nhau bang cac day bus gan the m vao.
Chip AVR th c hien ca c th nghiem giao tiep se ket noi vi ca c khoi ngoai vi bang day bus. Khi thc
hien th nghie m giao tiep vi khoi nao th ngi s du ng se ket noi vi khoi o .
S o nguyen ly cu a ca c khoi nh sau:
a. S o nguyen ly giao tiep gia ma y tnh va chip AVR AT90S8535:
Chip AVR ngoa i ch c nang cho phep nap chng trnh dang song song con co ch c na ng cho phep
na p chng trnh dang noi tiep.
Khi nap noi tiep ma ch giao tiep gi a thiet bit nap vi AVR AT90S8535 ch can dung 3 ng ieu
khien cua port 1 o la PB.5, PB.6, PB.7.
Chan PB.5 co ten la MOSI: la ng nha p d lie u vao noi tiep cu a vi ieu khien nap.
Chan PB.6 co ten la MISO: ng xuat d lieu vao noi tiep cua vi ieu khien nap.
Chan PB.7 co ten la SCK: ng cung cap xung ong ho e ong bo d lieu noi tiep.
Ngoai 3 chan ieu khien tre n th phai them mot ng tn hieu ieu khien chan reset: khi na p th chan
reset m c thap va sau khi nap xong th phai cho chan reset len mc cao e chip AVR co the th c hie n
chng trnh sau khi nap xong.
Hay xem s o trnh bay ca c ng tn hie u ieu khien nap nh hnh 22.





Kho i nguon
cung cap cho
ta t ca ca c khoi

Kho i giao tie p
cong COM
Hoa c LPT

Kho i giao tie p
vi led n

Kho i giao tie p
vi led ma
tran

Kho i giao tie p
vi ong c
bc.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
32 . + y








Hnh 22. S o giao tiep mach nap.
Co rat nhieu oi tng giao tiep vi vi ieu khien nap, theo tac gia chon mot vi ieu khien thc hien
qua trnh nap va giao tiep vi may tnh e nhan lenh va d lieu nap. Nhng trong qua trnh thc hien th ke t
qua la cha tha nh cong nen ta c gia s du ng mach nap dung cong LPT cua hang ATMEL va chng trnh na p
va bien dch cua chnh ha ng ATMEL.
S o ke t noi may tnh du ng cong LPT va giao tiep vi chip AVR nap nh hnh 23.
Trong he thong nay co luon ca he thong ma ch nguon o n a p 5 V va 12V cung cap cho toan bo ma ch
ien nap va cac ma ch giao tiep.
Do bo ma ch v a nap va th c hie n ca c th tren bo nen cac port cu a vi ieu khien th nghiem phai s
dung ien tr keo len.

H|nh 23 5c dc g|oc t|e p mo ch nop AVk dung cc ng LP1.
e nap d lieu cho vi ieu khien th phai thc hien theo u ng trnh t yeu cau cua nha che tao. Cac
qua trnh th c hien c cho bang 6:
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
33 . + y


8ong 6. Coc quo tr|nh no p bc nhc f|osh cuo AVk A1058535.
Trnh t th c hien dang song cu a 3 ng tn hieu ieu khien nh hnh 24.

H|nh 24. C|on dc thc | g|on cu o coc duc ng t|n h|eu no p cu o AVk A1058535.



7. Hng dan s dung pha n mem:
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
34 . + y
Cach s dung chng trnh tren may tnh e soan thao va bie n dch chng trnh:
Nh a trnh bay tren do nghien cu cha thanh cong mach nap dung vi ie u khien ne n tac gia s
dung mach nap va chng trnh bie n dch cu a hang ATMEL. Chng trnh bien dch co te n la AVRStudio
co chc nang soa n thao chng trnh va mo pho ng.
Ca ch th c s du ng chng trnh nh sau:
Sau khi cai at xong chng trnh ta tien hanh khi ong chng trnh khi o man hnh soan thao
xuat hie n nh hnh 33:

H|nh 33. Mo n h|nh sco n thoc cu o chucng tr|nh AVk5tud|c.
Mot cua so menu nho xuat hien cho phep ban chon project mi hay m mot project co san.
Chon xay dng mot project m i th man hnh tiep theo nh hnh 34 se xuat hien.
Ngi lap trnh hay a nh ten cho project se soan thao va mo phong vao o project name va chon th mu c
lu tr project nay hay xem hnh 35. Trong hnh na y ten project mi la choptat32led. Sau khi nhap ten va
lu cho n th mu c xong ta nhan nut next e chuyen sang l a chon IC nh hnh 36.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
35 . + y


H|nh 34. Mo n h|nh sco n thoc prcject mc | cu o chucng tr|nh AVk5tud|c.

H|nh 35. Mo n h|nh nho p te n vo thu mu c cu o prcject mc|.
Chon mu c AVR Simulator nh trong hnh 36 va chon loai vi ieu khien AT90S8535 nh hnh 37 roi nhan
nut le nh co ten la Finish.



Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
36 . + y

H|nh 36. Mo n h|nh chcn mc phcng cu o prcject mc|.

H|nh 37. Mon h|nh chcn |C mc phc ng cu o prcject mc|.
Ket qua ta c man hnh soa n thao chng trnh nh hnh 38.



Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
37 . + y


H|nh 38. Mo n h|nh sco n thoc chucng tr|nh cu o prcject mc|.
Hay nhap chng trnh chop tat 32 led vao nh hnh 39.


Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
38 . + y

H|nh 3. Mo n h|nh sco n thoc chucng tr|nh chc p tot 32 |ed.
Tien ha nh bien dch bang ca ch vao menu le nh project va chon vao muc nh hnh 40 th khi o chng
trnh se c bien dch.
Neu chng trnh soa n thao ung cu phap th se thay xuat hien thanh trang thai cho bie t qua trnh bien
dch ang tien hanh va sau khi bien dch xong se xuat hien da u mui ten cho phep qua trnh mo phong se th c
hien hay xem hnh 41.
Neu soan thao kho ng ung th sau khi bien dch xong se khong tha y xuat hien thanh trang thai cho biet
qua trnh bien dch ang tien hanh va cung khong co dau mui ten cho vie c mo phong sau khi bien dch xong.
Trong trng hp na y chung ta ha y tien hanh xem lai chng trnh xem cac lenh ta viet co ung cu pha p hay
khong va lenh o co ton tai hay khong. Tien ha nh bien dch la i cho en khi he t lo i th xong.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
39 . + y


H|nh 40. Menu |e nh b|e n d|ch chucng tr|nh chc p tot 32 |ed.











Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
40 . + y

H|nh 4. Dou mu| ten mo u vo ng chc b|et chucng tr|nh b|en d|ch tct.

Tien hanh mo phong:
Sau khi chng trnh a bien dch thanh cong th ta tien ha nh mo phong chng trnh ba ng ca ch vao
menu tool roi chon lenh auto step hay nhan to hp phm ALT + F5 nh hnh 42. Khi o qua trnh mo
phong se c th c hien. Trong ca so Workspace ban hay bam vao muc I/O AT90S8535 th cau hnh
phan cng mo phong se xuat hien va ban ba71, vao cac portA, portB, portC va portD th ban se thay
ket qua th c hien chng trnh mo phong se lam thay oi noi dung ca c o nh nay.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
41 . + y


Hnh 42. Chon lenh e bat au mo phong.

Vie t cac bai th nghiem:
Cac bai th nghiem c xay dng e cho khai thac het cac kha nang cu a vi ieu khien.
Ta t ca cac bai th nghiem khong trnh bay trong bao cao na y nhng co to chc thanh ca c th mu c lu
trong a CD ke m theo ba o cao nay.
Cac bai thc hanh giao tiep vi led n.
S dung he thong vi ieu khien ket noi 4 port vi 32 led n e viet ca c chng trnh ng dung ieu
khien led sang theo ca c yeu cau tng ba i. Muc ch lam quen vi mot so lenh c ban va lap trnh.
Trnh t th c hien ha y dung 4 day bus 8 si ket noi portA, portB, portB va portD en 32 led theo u ng
th t t bit thap en bit cao.
Cac bai th nghiem giao tiep vi 32 led n nh sau:
Bai so 11: Vie t chng trnh ieu khie n sang tat 32 led .
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
42 . + y
Bai so 12: Vie t chng trnh ieu khie n 32 led sang dan va tat dan.
Bai so 13: Vie t chng trnh ieu khie n 32 led sang don.
Bai so 14: Vie t chng trnh ieu khie n 32 led tat don.
Bai so 15: Vie t chng trnh ieu khie n 32 led sang tong hp ca c chng trnh tren.
Cac bai thc hanh giao tiep vi 8 led 7 oan.
Vi led 7 oan th co the cho phe p hie n th ch va so - khi o co rat nhieu chng trnh ng dung co the
thc hien c tren he thong nay nh chng trnh em san pham, chng trnh e m tan so , chng trnh ong
ho so, chng trnh ong ho the thao
Vi he thong nay co the cho thay ro hoat ong cu a phng phap quet led hien th, vie c giai ma led hien
th bang chng trnh quet hien th, nguyen ly lam vie c va chng trnh quet phm.
Cac bai th nghie m phuc vu cho vie c ieu khien ca c led gom ca c bai c ban va rat nhieu bai tap kem
theo.
Khi giao tiep vi 8 led 7 oan phai s dung 2 port ket noi vi led 7 oan, trong tng bai co ghi ro port
na o ieu khien transistor quet va port nao ieu khien ca c oan th phai ket noi ung port va ung th t bit.
Cac bai th nghiem giao tiep vi led 7 oan nh sau:
Bai so 21: Cac chng trnh th 8 led 7 oan.
Bai so 22: Chng trnh em len 2 so .
Bai so 23: Cac chng trnh em giay.
Bai so 24: Ca c chng trnh em phut.
Bai so 25: Chng trnh em gi - phut - giay.
Bai so 26: Chng trnh ieu khien en giao thong.
Bai so 27: Chng trnh ieu khien en giao thong co hien th th i gian e m xuong.
Bai so 28: Chng trnh em san pham 1 kenh.
Bai so 29: Chng trnh em san pham 2 kenh.
Cac bai thc hanh giao tiep vi led ma tra n 8x8 hai mau xanh o.
Vi phan cng a thiet ke tren s dung led ma tran 8x8 co 2 ma u xanh va o, e ieu khien led ma
tran sang ta tien hanh gi d lieu ra hang va ma que t ra cot. Trong 4 port ta s dung portD la m port ie u khie n
ha ng va portA ieu khien co t xanh va portC ie u khien cot o.
Cac chng trnh ieu khien led ma tran bao gom ca c ba i nh sau:
Bai so 31: Chng trnh hien th k t A.
Bai so 32: Chng trnh chp tat k t A.
Bai so 33: Chng trnh hien th chuoi SPKT mau xanh.
Bai so 34: Chng trnh hien th chuoi SPKT mau o .
Bai so 35: Chng trnh hien th chuoi SPKT mau cam.
Bai so 36: Chng trnh hien th chuoi SPKT ba mau xanh o cam.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
43 . + y

Bai so 37: Chng trnh hien th chuoi SPKT hai mau: n a tre n xanh, n a di o va ng c lai.
Bai so 38: Chng trnh hien th trai tim ri t tre n xuong va t di len.

Cac bai thc hanh giao tiep vi LCD
Nh a trnh bay tren khi giao tiep vi LCD th phai dung 11 ng tn hieu ieu khien, trong o co 3
ng ieu khien va 8 ng d lieu phai s dung nguyen 1 port.
Trong ca c bai th nghiem ta c gia s dung portA e giao tiep 8 ng t lieu (chu y theo ung th t bit t
0 en 7) va 3 bit 0, 1, 2 cua portC lam 3 ng ieu khien.
Cac bai th nghiem giao tiep vi LCD bao gom:
Bai so 41: Chng trnh hien th chuoi d lieu ng yen.
Bai so 42: Chng trnh hien th chuoi d lieu dch chuyen.
Bai so 43: Chng trnh hien th gi phu t giay.
Bai so 44: Chng trnh em san pham hien th tren LCD.
Cac bai thc hanh giao tiep vi ma tra n phm va 8 led 7 oan.
Ban phm ong vai tro nha p d lieu cho he thong ieu khie n, e th c hien giao tiep vi ban phm th
ngoai giao tiep chip AVR v i ban phm th phai co them giao tiep gi a chip AVR vi led n hoa c led 7 oa n
hoa c LCD th chung ta mi biet c qua trnh th c hien ca c yeu cau ung hay sai.
Cac bai th nghiem giao tiep vi led 7 oan nh sau:
Bai so 51: Chng trnh nhan phm so nao th hien th tren ma hnh ung so o.
Bai so 52: Chng trnh em co cac nut ieu khien start, stop.
Bai so 53: Chng trnh ieu khie n ong c DC co 2 nut ieu khien Start, Stop.
Ngoai vie c khai thac kha nang ng dung cua timer nh a trnh ba y tren th ca c bai th nghiem nay khai
tha c kha nang s du ng nga t cu a timer, khai tha c kha nang truyen d lieu noi tiep, ngat truyen d lieu.
Nga t co nhieu u iem trong ieu khien nhng rat kho ieu khien va ph c tap do o ieu can phai quan
tam la cac bai th nghiem va ca c ng dung c thiet ke sao cho de hieu.
Trong ca c bai th nghiem ngat c dung e truyen d lieu, e nh thi, e x l nhie u chng trnh
phan chia theo thi gian ay la mot ng dung mach nhat cua ngat.







return




Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
44 . + y












































Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M
+++ - . -. + -+ /. .y- + ++ +.
45 . + y













Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M

TAI LIEU THAM KHA O

[1]. Website cua ha ng Microchip
http://www.microchip.com
[2] Datasheet cu a chip PIC16F877A
[3]. Users Guide
MPASM Assembler,MPLINK Object Linker,MPLIB Object Librarian
[4]. CCS C Compiler v4 Help.
[5]. PICmicro Language Tools and MPLAB IDE
[6]. Quick Reference Guide for C language


Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM - http://www.thuvienspkt.edu.vn
B
a
n

q
u
y
e
n


T
r
u
o
n
g

D
H

S
u

p
h
a
m

K
y

t
h
u
a
t

T
P
.
H
C
M

You might also like