Chương 6:
Ch
−
¬ng
tr×nh xö lý
p
h
Ým
chung
Keybo
a
rd
yes
R
u
n=
0?
y
e
s
Flo
_
C
all?
ye
s
Bu
z
y
=1
?
un=0?
Bu
s
y
=
1
y
e
s
Call SBN07 Call
SBN09 Call
SBN
08
R
un=0?
yes
Call SBN04 Call SBN05 Call
SB
N0
6
Reset
K
ey_
buff0
2
H
×
nh
2
-
íc
2,
ng
−
îc
l¹i
sang
b
−
íc 8.
2. KiÓm tra cê busy, nÕu busy = 1 chuyÓn sang
b
−
íc
3,
ng
−
îc
l¹i
sang
b
−
íc 6.
3. KiÓm tra cê run, nÕu run = 0 chuyÓn sang
b
−
íc
4, nÕu
run = 1 chuyÓn
sang b
SBN
001, sang
b
−
íc 8.
7. Reset cê key_buff1 ( cã
phÝm
gäi tÇng ) = 0, sang
b
−
íc 8.
8. KiÓm tra xem cã phÝm gäi thang kh«ng, cã sang
b
−
íc
9,
ng
−
îc
l¹i
sang b
−
íc 21.
9. KiÓm tra cê run, run = 0
th×
sang
b
−
íc
10, run = 1 sang
17, busy = 0
sang
b
−
íc 16.
13. Gäi
ch
−
¬ng
tr×nh
con
SBN
007, sang
b
−
íc 20.
14. Gäi
ch
−
¬ng
tr×nh
con
SBN
009, sang
b
−
íc 20.
15. Gọi
ch
ch
ơng
trình
con
SBN
005, sang
b
ớc 20.
19. Gọi
ch
ơng
trình
con
SBN
006, sang
b
ớc 20.
20. Reset cờ key_buff 02 ( có
phím
gọi thang ) =
0.
21. Kết thúc
ch
ơng
trình.
Cl
o
s e _ f a s t?
ye s
Cl
o
s
e
d
o o
r
Se
t
T
IM
0 3
TIM
3 = 0
ye s
Re
a
d
k e y
H
ì
n
h
2-
11
:
2.
2. Kiểm tra xem
đã
hết thời gian trễ
ch
a,
nếu
ch
a th
ì
sang
b
ớc
3,
ng
ợc
lại
sang
b
ớc 5.
3. Gọi
ch
ơng
trình đọc phím
ớc 6.
6. Kiểm tra xem
đã
hết thời gian trễ
ch
a,
nếu
ch
a th
ì
sang
b
ớc
7,
ng
ợc
lại
sang
b
ớc 8.
7. Gọi
ch
ơng
r
<
=
Sensor
CMP 3
>
Set S03
=1
Set S04
=1
<
=
Sensor CMP 5
Set S05
=1
En
d
Sơ
đ
ồ
thuật
toán
xử lý ngắt Sensor
St
art
No
Key_buff01=1 ?
St
art
No
gọi
tầng
Sơ đồ
thuật
toán
xử lý ngắt
bàn
ph
í
m
gọi
thang
H
ì
nh
2-12
:
C
á
c s
ơ
đồ
thu
ậ
t
toán
xử lý
ngắt.
1.
Tăng giá
ớc 7.
4. So
sánh giá
tr
ị
của sensor với số 5, nếu
bằng
sang
b
ớc
5, nhỏ hơn
sang b
ớc 6.
5. Set cờ S05 = 1, Reset
giá
tr
ị
sensor = 0, chuyển sang
b
ớc 7.
6. Set cờ S04 = 1, chuyển sang
b
ớc 7.
7. Kết thúc
ch
key_buff
= 1 )
thì
sang
b
ớc
3, rồi ( key_buff1 = 0 )
thì
sang
b
ớc 2.
2.
Tính toán
v
à
đ
a
ra
mã
của
p
h
í
m
đợc
gọi ( Scan code
), set
key_buff1=1.