Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
0Activity
0 of .
Results for:
No results containing your search query
P. 1
Tai Lieu Hoc Asm Cho Pic 6236

Tai Lieu Hoc Asm Cho Pic 6236

Ratings: (0)|Views: 2|Likes:
Published by Key Trần

More info:

Published by: Key Trần on Sep 19, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/19/2013

pdf

text

original

 
Dson1
Thanh ghi (Register):
Thanh ghi
đượ
c
đặ
t trong PIC, nó có th
 
đượ
c ghi,
đọ
c. Hãy t
ưở
ng t
ượ
ng các thanh ghigi
ng nh
ư
các m
u gi
y mà chúng ta có th
 
đọ
c hay vi
ế
t thông tin lên nó. Hình bên d
ướ
imô t
file thanh ghi (register file)
đượ
c ánh x
vào PIC16F84.PIC
đượ
c chia làm 2 ph
n, Bank0 vàBank1.
Bank1
dùng
để
 
đ
i
u khi
n các ho
t
độ
ngc
a PIC, ví d
nh
ư
nói cho nó bi
ế
t nh
ngbit nào trên PortA là
đ
i vào (Input) vành
ng bit nào xu
t ra (Output).
Bank0
dùng
để
thao tác trên d
li
u, ví d
 ta mu
n làm cho bit nào
đ
ó trên PortA lênm
c cao,
đầ
u tiên ta ta ph
i chuy
n
đế
nBank1
để
set 1 bit c
a 1 chân c
th
nào
đ
ó trên PortA tr 
thành Output, sau
đ
ó tachuy
n
đế
n Bank0 và g
i m
c 1 t
i chân
đ
ó.Nh
ng thanh ghi thông th
ườ
ng nh
t trênBank1 mà chúng ta s
s
d
ng cácthanh ghi
STATUS
,
TRISA
and
TRISB
.
 Đầ
u tiên chúng ta hãy quay vào Bank1,thanh ghi
TRISA
cho phép ta ch
n chânnào
đ
ó trên PortA làm ngõ Output hayInput, thanh ghi
TRISB
cho phép ta ch
nchân nào
đ
ó trên PortB làm ngõ Outputhay Input, thanh ghi STATUS cho phépch
n s
d
ng Bank0 hay Bank1.
STATUS:
 Để
thay
đổ
i t
Bank0 sang Bank1 ta s
 d
ng thanh ghi tr 
ng thái STATUS, set bit5c
a thanh ghi tr 
ng thái lên1
để
ch
nBank1 ho
c xoá bit5 v
0
để
ch
n Bank0,thanh ghi STATUS có
đị
a ch
ỉ 
03H.
TRISA và TRISB:
2 thanh ghi TRISA and TRISB
đặ
t t
i
đị
ach
ỉ 
85H và 86H,
để
l
p trình cho các chântrên 2 thanh ghi này thông th
ườ
ng ng
ườ
i tag
i m
c 0 hay 1
đế
n các bit t
ươ
ng
ngtrên thanh ghi, có th
làm
đ
i
u này trong c
 2 d
ng ho
c là b
ng s
binary (bin) hayhex. Dùng ki
u binary thì rõ ràng h
ơ
n ki
u hex nh
ư
ng mà trông l
ượ
m th
ượ
m h
ơ
n !.Trên PortA ta có 5 chân t
ươ
ng
ng 5 bit, n
ế
u mu
n
đặ
t 1 trong 5 chân này thành Outputta ph
i g
i 1
đế
n bit t
ươ
ng
ng v
i nó, nh
ng bít này có tên bit
đ
úng chính xác v
i tênc
a nó, nói cách khác bit0 là RA0, bit1 là RA1, bit2 là RA2…. Hãy xem ví d
:N
ế
u ta mu
n set RA0, RA3 và RA4 thành Output RA1, RA2 thành Inputs, ta ph
ig
i 00110 (=06h), nên nh
bit th
p n
m bên ph
i, xem hình:Port A Pin RA4 RA3 RA2 RA1 RA0Bit Number 4 3 2 1 0Binary 0 0 1 1 0
 
Dson2
 T
ươ
ng t
chúng ta c
ũ
ng làm nh
ư
v
y cho TRISB.
PORTA và PORTB:
 Để
làm cho 1 trong nh
ng chân Output lên m
c cao ta g
i 1
đế
n bit t
ươ
ng
ng trênthanh ghi PORTA ho
c PORTB, gi
ng nh
ư
cách làm trên thanh ghi TRISA và TRISB, cóth
ki
m tra l
i trên t
ng chân c
a Port.
Thanh ghi W:
Thanh ghi W là là thanh ghi m
ch
đ
ích chung mà có th
 
đặ
t lên nó b
t k
giá tr 
nào tamu
n, khi gán cho thanh ghi W m
t giá tr 
nào
đ
ó, ta có th
c
ng nó v
i 1 giá tr 
khácho
c có th
copy nó (Mov). N
ế
u b
n gán 1 giá tr 
nào
đ
ó lên thanh ghi W thì n
i dungtr 
ướ
c
đ
ó c
a nó s
b
ghi
đ
è lên.Xem ví d
s
d
ng PortA:
 Đầ
u tiên chúng ta c
n ch
n Bank0 ho
c Bank1 b
ng cách set trên thanh ghi STATUS,
đị
a ch
ỉ 
c
a STATUS là 03H và hãy set bit5 c
a nó lên 1 theo cách sau:BSF 03h,5
BSF
có ngh
 ĩ 
a là Bit Set F, t
F ngh
 ĩ 
a là chúng ta s
s
d
ng m
t v
trí nào
đ
ó trongmemory ho
c trong thanh ghi, 2 con s
“03H” sau câu l
nh BSF ngh
 ĩ 
a
đị
a ch
ỉ 
c
athanh ghi STATUS, con s
“5” t
c là bit5 c
a nó, nh
ư
v
y ý ngh
 ĩ 
a c
a câu l
nh trên làset bit5 c
a STATUS lên 1.Bây gi
chúng ta thao tác trong Bank1.MOVLW b'00110'Ta
đ
ã
đặ
t giá tr 
binary 00110 vào trong thanh ghi m
ch
đ
ích chung W, ch
b có ngh
 ĩ 
alà binary, d
 ĩ 
nhiên ta c
ũ
ng có th
vi
ế
t l
i trong d
ng s
hex, nó nh
ư
sau:MOVLW 06h
MOVLW
có ngh
 ĩ 
a là là ‘Move Literal Value Into W’ t
m d
ch là di chuy
n giá tr 
c
aLiteral vào thanh ghi W,
để
rõ ràng h
ơ
n ta có th
nói là “
đặ
t giá tr 
tr 
c ti
ế
p sau
đ
ây(06H) vào trong thanh ghi W “Bây gi
ta ti
ế
p t
c
đặ
t giá tr 
 
đ
ó vào trong thanh ghi TRISA
để
thi
ế
t l
p tr 
ng thái choPort:MOVWF 85hL
nh này có ngh
 ĩ 
a là “MOV n
i dung c
a W vào (thanh ghi có)
đị
a ch
ỉ 
85h”, trongtr 
ườ
ng h
p này con tr 
 
đị
a ch
ỉ 
s
tr 
t
i TRISA, thanh ghi TRISA bây gi
ch
a giá tr 
 00110, xem l
i mô t
các câu l
nh b
ng hình sau:Port A Pin RA4 RA3 RA2 RA1 RA0Binary 0 0 1 1 0Input/Output O O I I OBây gi
chúng ta s
thi
ế
t l
p các chân trên PORTA, hãy quay v
Bank0
để
thao tác trêncác d
li
u.BCF 03h,5
 
Dson3
L
nh BCF
thì
đố
i ngh
ch v
i BSF, nó có ngh
 ĩ 
a là “ Bit Clear F” t
m d
ch là xoá bit nào
đ
ó trong vùng memory hay trong thanh ghi nào
đ
ó, trong tr 
ườ
ng h
p này là thanh ghiSTATUS (vì
đị
a ch
ỉ 
c
a nó là 03H) và l
nh này xoá bit5 c
a STATUS.Bên d
ướ
i là
đ
o
n code:BSF 03h,5 ; vào Bank 1MOVLW 06h ;
 Đặ
t giá tr 
00110 vào WMOVWF 85h ; Move 00110 vào trong TRISABCF 03h,5 ; Quay tr 
v
Bank 0Hãy
đọ
c k
 
đ
o
n code trên cho
đế
n khi nào b
n hi
u nó
đ
ang làm cái gì.
Ghi lên Port:
Trong ph
n trên chúng ta
đ
ã nói
đế
n làm th
ế
nào
để
thi
ế
t l
p các chân c
a Port tr 
 thành Input hay Output, trong ph
n này ta s
nói ti
ế
p làm sao có th
g
i data t
i Port vàtrong ph
n k
ế
ti
ế
p chúng ta s
k
ế
t thúc v
i m
t
đ
o
n code làm cho
đ
èn Led ch
p t
t v
ic
s
ơ
 
đồ
m
ch
để
có th
hi
u rõ con Pic làm vi
c chính xác
đế
n m
c
độ
nào,
đừ
ng cóth
compile và n
p
đ
o
n code vào con Pic c
a b
n vì nó ch
ỉ 
là ví d
mà thôi.
 Đầ
u tiên hãy setup bit2 c
a Port A thành Output.Bsf 03h,5 ; Vào Bank 1Movlw 00h ;
 Đặ
t giá tr 
00000 vào trong WMovwf 85h ; Copy 00000 vào trong TRISA, t
t; c
các chân bây gi
s
tr 
;thànhOutputbcf 03h,5 ; Quay tr 
v
Bank0
 Đ
o
n code trên là nh
ng gì
đ
ã nói trong ph
n tr 
ướ
c, ch
ỉ 
khác là bây gi
ta set t
t c
cácchân c
a PortA tr 
thành Output b
ng cách g
i giá tr 
0
đế
n thanh ghi w (thanh ghi W làlo
i thanh ghi có 3 tr 
ng thái tri-state register).Bây gi
nh
ng gì mà ta mu
n con Pic ph
i làm là b
t t
t c
Led lên,
để
làm
đ
i
u này taph
i g
i m
c 1
đế
n các chân Led, hãy xem làm nh
ư
th
ế
nào
đ
ây:movlw 02h ; Ghi 02h vào thanh ghi W. 00010 n
ế
u; vi
ế
t theo d
ng binary, nh
ư
v
y nó
đặ
t 0 vào; bit 2 (chân 18) trong khi gi
các chân khác
;;m
c 0.movwf 05h ;Bây gi
copy n
i dung c
a W (02H) vào;PortA (
đị
a ch
ỉ 
là 05H).Con Led bây gi
 
đ
ã b
t on, chúng ta th
t
t nó xem:movlw 00h ; Ghi 00h vào thanh ghi W. 00000 n
ế
u; vi
ế
t theo d
ng binary, nh
ư
v
y nó
đặ
t 0 vào; t
t c
các chân.movwf 05h ; Bây gi
copy n
i dung c
a W ( 02H) vào; PortABây gi
Led
đ
ã b
t
t.
 Để
làm cho led sáng, t
t liên t
c chúng ta ph
i làm cho ch
ươ
ng trình quay tr 
l
i
đ
i
mb
t
đầ
u b
ng cách
đặ
t nhãn cho ch
ươ
ng trình và nói cho nó bi
ế
t
đ
ó là
đ
i
m b
t
đầ
u mànó ph
i quay l
i th
c hi
n l
n n
a. R
t
đơ
n gi
n, hãy
đặ
t 1 cái nhãn có tên là STARTngay t
i
đ
i
m b
t
đầ
u c
a
đ
o
n code.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->