TÀI LI U H NG D N L P TRÌNH CHO H VI X LÝ <ph n I> Khi m t bài toán th c t đ c đ a ra, ta c n ph i tìm hi u c n k các yêu
c u do bài toán đ t ra và th c hi n gi i quy t theo các b c sau:
− B c 1: nh h ng gi i quy t
− B c 2: L a ch n ph ng án thi t k ph n c ng
− B c 3: L p l u đ thu t toán cho thi t k ph n m m
− B c 4: Th hi n l u đ thu t toán b ng các l nh c th
Các b c 1 và 2 đã đ c trình bày trong các tài li u h ng d n thi t k các
m ch thí nghi m, đây ch chú tr ng vào gi i quy t các b c 3 và 4 Trong giai
đo n thi t k ph n m m, b c 3 không ch là b c tiên phong mà còn là b c
có ý ngh a quy t đ nh đ i v i s thành công và ch t l ng c a s n ph m B c
4 ch là b c hoàn thi n cu i cùng c a vi c gi i quy t m t bài toán
I Cách xây d ng m t l u đ thu t toán:
Tr c h t nói v l u đ thu t toán, nh đã đ c p đ n trong ph n các ki n
th c c n b n trong K thu t Vi x lý, l u đ thu t toán có vai trò đ c bi t quan
tr ng trong thi t k ph n m m V c b n, m t l u đ thu t toán có th đ c xây d ng b ng các bi u t ng sau đây:
ây là bi u t ng dùng đ ch s b t đ u hay k t thúc m t nhi m v hay m t
ch ng trình Bi u t ng này ch có m t đ u vào ho c m t đ u ra
ây là bi u t ng dùng đ di n đ t s th c hi n m t thao tác nào đó Bi u
t ng này có m t đ u vào và m t đ u ra
Trang 2ây là bi u t ng dùng đ di n đ t s l a ch n m t trong hai ph ng án đúng
ho c sai đ i v i đi u ki n hay tình hu ng đ c nêu ra trong đó Bi u t ng này
ch có m t đ u vào nh ng l i có hai đ u ra
L u ý là ph i đ c bi t tuân th s l ng các đ u vào ra đ i v i m i lo i bi u
t ng
làm rõ h n cách xây d ng m t l u đ c th , MicroStudy s đ a ra m t bài toán m u đ n gi n trên c s ph n m ch ph n c ng thí nghi m và l u đ m u
đ gi i quy t bài toán đó
Bài toán đ t ra: nh p nháy 8 LED đ n n i v i c ng P1 theo chu k 1 giây sáng
và 1 giây t t
Nh v y sau khi phân tích yêu c u do bài toán đ t ra, l u đ thu t toán ph i
đ c xây d ng nh sau:
Ho c n u không quan tâm đ n tr ng thái b t đ u c a s nh p nháy (t c là không
c n bi t sáng tr c hay t t tr c), ta có th có đ c l u đ đ n gi n h n:
Begin
Sáng 8 LED
Tr 1 giây
T t 8 LED
Tr 1 giây
Begin
o tr ng thái c a
8 LED
Tr 1 giây
Trang 3V i l u đ thu t toán th nh t ta có th th c hi n b c 4 nh sau:
#include <sfr51.inc>
org 00h ; đ a ch reset c a vi đi u khi n h 8051
ljmp main
org 40h ; đ t ch ng trình chính b t đ u t đ a ch này
đ tránh không đè lên vùng các véct ng t
main:
mov p1,#0 ;cho sáng 8 đèn LED n i v i P1
lcall delay1s ;tr 1 giây
mov p1,#0ffh ;t t 8 đèn LED n i v i P1
lcall delay1s ;tr 1 giây
sjmp main ;quay tr l i ti p t c nh th
delay1s: ; đây là ch ng trình con t o tr 1 giây
mov r1,#10
loop1:
mov r2,#100
loop2:
mov r3,#100
loop3:
nop
nop
nop
nop
nop
nop
nop
nop
djnz r3,loop3
djnz r2,loop2
djnz r1,loop1
ret
V i l u đ thu t toán th hai, ch ng trình có th đ c vi t là:
#include <sfr51.inc>
org 00h
ljmp main
org 40h
main:
Trang 4mov a,p1 ;l y giá tr hi n th i c a c ng P1
cpl a ;đ o nó đi (l t tr ng thái, 0 thành 1, 1 thành 0)
mov p1,a ;đ a ra tr l i P1 đ th c hi n đ o tr ng thái các đèn LED
lcall delay1s
sjmp main
delay1s:
mov r1,#10
loop1:
mov r2,#100
loop2:
mov r3,#100
loop3:
nop
nop
nop
nop
nop
nop
nop
nop
djnz r3,loop3
djnz r2,loop2
djnz r1,loop1
ret
end
Trong hai ch ng trình trên có s d ng ch ng trình con “delay1s” Ch ng trình con này s d ng các l nh NOP đ tiêu th th i gian ch t kho ng 1µs v i
th ch anh 12MHz Có 3 vòng l p đ t o ra 10(c a vòng ngoài cùng)*100(c a vòng gi a)*100(c a vòng trong cùng)*10µs(do 8 l nh NOP và m t l nh djnz gây ra) = 1,000,000µs = 1 giây L u đ thu t toán cho ch ng trình con
“delay1s” nh sau:
Trang 5End
bi n đ m 1 = 10
bi n đ m 2 = 100
bi n đ m 3 = 100
Tr 10 µs
bi n đ m 3 = 0?
bi n đ m 3 - 1
bi n đ m 2 = 0?
bi n đ m 2 - 1
bi n đ m 1 = 0?
bi n đ m 1 - 1
Begin
s
s
s
Trang 6II Bài t p th c hành:
Vi t l u đ thu t toán gi i quy t các bài toán sau:
− Sáng l n l t các LED n i v i c ng P1 (theo th t P1.0 đ u tiên, P1.7 sau cùng r i l i quay v P1.0) T i m t th i đi m ch có m t LED sáng và
th i gian sáng c a các LED đ u là 1 giây
− Ki m tra và đáp ng l i s ki n phím b m c ng P3.2 N u phím b m thì
b t sáng c 8 LED n i v i c ng P1 Nh phím ra thì t t t t c 8 LED
− Hi n th s 123 các LED 7 thanh
− Hi n th s đ m t ng d n b ng các LED 7 thanh (đ m t 000 đ n 999 r i
l i v 000, m i giây t ng s đ m m t l n)
− Xác đ nh phím b m trong s 16 phím c a ma tr n phím và hi n th s th
t c a phím đ c b m lên các LED 7 thanh (t 1 đ n 16, không có phím
b m thì hi n s 0)