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

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

5 8 0

Đ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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hôm nay tôi muốn giới thiệu với các bạn 1 phương pháp khá hay đó là sử dụng kỹ thuật MIX MÀU của AGP để ghép hình. Với kỹ thuật này thì các bạn mới cũng có thể làm dễ dàng. Bước 1 : Mở 2 bức hình nguồn , mình chọn 2 hình sau

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: 11/05/2021, 19:59

w