Bài tập mẫu vi điều khiển 8051 - Pdf 13

K thut vi x lý cn bn và vi điu khin 8051

Written by Kieennx, MicroStudy group
Bài tp 1: Cho sáng ln lt tng LED, mi LED sáng 1 giây.


y
Tt LED 1, sán
g
LED 2
T
r
 1
g

y
Tt LED 2, sán
g
LED 3
Tt LED 7, sán
g
LED 8
T
r
 1
g

y
K thut vi x lý cn bn và vi điu khin 8051

Written by Kieennx, MicroStudy group
lcall tre_1s
;…
mov p1,#01111111b
lcall 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.
K thut vi x lý cn bn và vi điu khin 8051

Written by Kieennx, MicroStudy group
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.
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n
g
vào
Sán
g
c 8 LED
Tt c 8 LED

p
hím bm?
K thut vi x lý cn bn và vi điu khin 8051

Written by Kieennx, MicroStudy group
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

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:

org 00h
ljmp main
org 03h
ljmp ngat_0
org 40h
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…
sjmp loop
K thut vi x lý cn bn và vi điu khin 8051

Written by Kieennx, MicroStudy group
ngat_0:
mov a,P1
cpl a
mov P1,a


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status