1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập vi xử lý căn bản ppt

5 308 4

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 156,85 KB

Nội dung

Trang 1

Bài t p 1: Cho sáng l n l t t ng LED, m i LED sáng 1 giây

Trên đây là l u đ , vi c th hi n b ng l nh l u đ trên có th b ng cách chân ph ng (làm

l n l t) ho c có th dùng l nh quay đ đ a bit = 0 ra l n l t các chân c ng làm LED sáng theo l n l t T bài t p này tr đi, m c đ nh ch ng trình đã có khai báo:

#include <sfr51.inc>

Cách chân ph ng:

main:

;Vi c t t t t c các LED đ c t đ ng làm do khi reset lên, các chân c ng đ u = 1

mov p1,#11111110b ;sáng LED 1

lcall tre_1s

mov p1,#11111101b ;t t LED 1, sáng LED 2

lcall tre_1s

mov p1,#11111011b ;t t LED 2, sáng LED 3

Begin

Sáng LED 1

T t t t c các LED

Tr 1 giây

T t LED 1, sáng LED 2

Tr 1 giây

T t LED 2, sáng LED 3

T t LED 7, sáng LED 8

Tr 1 giây

Trang 2

lcall tre_1s

;…

lcall tre_1s

tre_1s:

loop1:

loop2:

loop3:

nop

;…<t t c 8 l nh Nop>

nop

ret

end

N u s d ng l nh quay thì ch ng trình s g n h n:

;…

main:

mov a,#11111110b

main_loop:

lcall tre_1s

tre_1s:

;…nh trên…

end

L u ý là trong các đo n ch ng trình trên, ng n x p đ c kh i t o v i giá tr ban đ u c a thanh ghi con tr ng n x p SP là 5fh, t c là các đ a ch hay d li u c t vào ng n x p s b t

đ u t ô nh 60h tr đi Vi c kh i t o ng n x p là m t thao tác không th thi u khi trong

ch ng trình có s d ng l nh g i ch ng trình con ho c các ng t

Trang 3

Bài t p 2: ki m tra phím b m n i v i P3.2, khi phím đ c b m thì sáng c 8 LED, khi không

b m phím thì t t c 8 LED

V i l u đ thu t toán nh trên ta vi t đ c ch ng trình sau:

main:

;vi c đ t c ng P3.2 làm c ng vào đ c t đ ng th c hi n khi 8051 reset xong

;các LED c ng t đ ng đ c t t vì khi 8051 reset xong, các c ng đ u = 1

mov P1,#0ffh ;t t t t c các LED n u không có phím b m

phim_bam:

mov P1,#0 ;sáng t t c các LED n u có phím b m

end

V i cùng m ch ph n c ng nh trên, ta có th th c hành v ng t c a vi đi u khi n Bài toán

th c hành đ t ra có th là n u có phím b m thì đ o tr ng thái c a 8 LED (đang sáng thì thành

t t và ng c l i) Nh v y n u ta b m phím, tr ng thái c a LED s đ c đ o l i, m i l n b m phím đ o m t l n

N u không s d ng ng t, ta có th vi t ch ng trình g n gi ng v i ch ng trình trên, ch khác là ph i thêm thao tác đ i nh phím ra tr c khi quay tr l i quét ki m tra đi n áp t i chân P3.2 N u không có thao tác này, chân P3.2 xu ng m c 0 s b gây ra nhi u l n đ o

tr ng thái LED b i vì chân P3.2 s đ c quét liên t c, th y còn m c 0 là l i đ o tr ng thái, cho đ n khi nh phím ra thì các LED s cùng sáng ho c cùng t t, tùy thu c vào vi c l n đ o

tr ng thái nào đ c th c hi n cu i cùng Nh v y s không đúng v i mong mu n là ch đ o

m t l n khi b m m t l n

main:

jb P3.2,$ ;nh y t i ch ch cho đ n khi nào P3.2 = 0 (t c là ch

cho đ n khi có phím b m

Begin

t P3.2 là c ng vào

Sáng c 8 LED T t c 8 LED

Có phím b m?

Trang 4

phim_bam:

mov a,P1 ;đ c giá tr hi n th i c a c ng P1

cpl a ;đ o tr ng thái đ c đ c đi

mov P1,a ;đ a tr l i c ng P1 gây ra đ o tr ng thái LED

jnb P3.2,$ ;nh y t i ch đ đ i cho đên khi nào P3.2 = 1 tr l i

end

N u s d ng ng t, tr c khi s d ng ta ph i đ t ch đ và cho phép ng t x y ra Phím đ c

n i v i chân P3.2 là chân ng t ngoài s 0 (INT0) Ng t này có 02 ch đ là ng t theo m c và

ng t theo s n Ng t theo m c s liên t c gây ra ng t CPU ch ng nào m c đi n áp c a chân P3.2 còn m c th p Nh v y n u CPU th c hi n xong ch ng trình ph c v ng t mà chân P3.2 v n m c th p thì CPU s l i th c hi n ti p ch ng trình ph c v ng t đó Ng t theo

s n thì ng c l i, ch gây ra ng t khi có s n tín hi u (trong tr ng h p 8051 là s n

xu ng), còn sau đó chân tín hi u ng t dù là m c th p hay cao hay có s n lên thì c ng không gây ra ng t n a Vi c đ t ch đ cho ng t ngoài 0 đ c th c hi n b ng bit IT0 trong thanh ghi TCON N u bit này = 1 thì ng t theo s n và ng c l i Th c hành v i hai tr ng h p IT0 =

0 ( ng v i ch đ ng t theo m c) và IT0 = 1 ( ng v i ch đ ng t theo s n xu ng), ta s

th y đ c s khác bi t gi a chúng Tr ng h p ng t theo s n s cho ta k t qu gi ng nh

gi i pháp không dùng ng t mà không thêm thao tác đ i chân P3.2 tr v m c 1 Hi n t ng

s là gi s LED đang sáng, khi ta b m phím và nh tay ra sau đó, có th LED s v n sáng

ch không t t!

Ng t c a 8051 đ c cho phép b i 2 c p, th nh t là c p dành riêng cho m i ng t, c p th hai

là c p chung cho t t c các ng t Nh v y đ cho phép m t ng t x y ra thì ph i th a mãn c 2

c p đó: cho phép riêng và cho phép chung Các bit quy đ nh các n c này đ u n m trong thanh ghi IE Ngoài ra đ s d ng m t ng t ta ph i vi t ch ng trình ph c v ng t đó và đ t m t

l nh nh y t i ch ng trình đã vi t vào đ a ch c a vector ng t t ng ng ó là do khi x y ra

ng t, CPU s t đ ng (xin nh là t đ ng!) th c hi n l nh đ t t i đ a ch c a vector ng t

t ng ng Trong tr ng h p này (tr ng h p ng t ngoài s 0) thì đ a ch vector ng t là 03h trong b nh ch ng trình

Ch ng trình gi i quy t bài toán trên s nh sau:

main:

mov SP,#5fh ;kh i t o ng n x p vì có dùng ng t

setb it0 ;đ t ng t ch đ ng t theo s n cho ng t ngoài 0, n u mu n

ng t theo m c thì không c n có l nh này vì khi 8051 reset xong, t đ ng m c đ nh là ng t theo m c (IT0 = 0)

setb ex0 ;cho phép ng t ngoài 0 c p riêng

setb ea ;cho phép ng t c p chung

;khác v i ch ng trình tr c, bây gi s d ng ng t nên CPU không c n ph i th m dò

m c đi n áp c a chân P3.2 mà s có th i gian làm các vi c khác, khi có s ki n phím

b m x y ra, c u trúc ng t s t phát hi n và thông báo cho CPU đ x lý và đáp ng main_loop:

;…có th làm gì tùy thích đây…

Trang 5

ngat_0:

reti

end

Qua bài t p này ta th y đ c u đi m c a ng t là CPU đ c t do làm các công vi c khác, khi nào có s ki n x y ra thì ng t s t báo cho CPU đ d ng công vi c đang làm l i và đáp

ng x lý

Ngày đăng: 29/07/2014, 10:20

TỪ KHÓA LIÊN QUAN

w