P
1
R7
P2.4=1
P0.0=0
P2.4=0
R7P1
7
0H=1
P
1
R7
P2.4=1
P0.0=1
P2.4=0
L
CALL
MO1
P
1
R7
P2.4=1
P0.1=0
P2.4=0
R7P1
7
1H=1
P
1
R7
P2.4=1
P0.1=1
P2.4=0
L
CALL
MO2
P
1
R7
P2.4=1
P0.2=0
P2.4=0
R7P1
7
2H=1
P
1
R7
P2.4=1
P0.2=1
P2.4=0
L
CALL
MO3
P
1
R7
P2.4=1
P0.3=0
P2.4=0
R7P1
7
3H=1
P
1
R7
P2.4=1
P0.3=1
P2.4=0
L
CALL
MO4
Chng 11: CHệễNG TRèNH CON Mễ THIET Bề
1. Lửu ủo giaỷi thuaọt.
BEGIN
A = 1 ẹ P2.0=1 ẹ
S S
ẹ ẹ
A = 2 P2.1=1
S S
A=3 ẹ P2.2=1 ẹ
S S
Ñ Ñ
A=4 P2.3=1
S S
RET
2. Giải thích:
S
au khi bấm đúng mã thứ nhất để mở thiết bò thì chương
trình sẽ hỏi tiếp A=1 chưa. nếu đúng A=1 thì chương trình hỏi
tiếp P2.0=1 chưa (P2.0 là trạng thái của công tắc bên ngoài).
Nếu P2.0=1 là đúng thì ta phải xóa P0.0=0 để mở thiết bò 1 ( vì
tín hiệu P0.0 và P2.0 được đưa qua cổng EXOR cho nên muốn
đưa ra mứ c logic 1 thì mức logic của 2 trạng thái này sẽ khác
nhau ). Sau đó đặt ô nhớ 70H=1 để báo là thiết bò 1 đã được mở.
Sau đó gọi chương trình tiếng nói báo là “ Thiết bò 1 đã được
mở”. Nếu P2.0=0 thì muốn mở thiết bò ta phải đặt P0.0=1 và đặt
70H=1 để báo thiết bò 1 đã được mở. Sau đó gọi chương trình
báo mở thiết bò 1.
Nếu điều kiện A=1 sai thì chương trình sẽ hỏi tiếp A=2
chưa. Nếu A=2 đúng, chương trình hỏi tiếp P2.1=1 chưa. Nếu
P2.1=1 thì xóa P0.0=0 để mở thiết bò 2 và đồng thời đặt 71H=1
để báo là thiết bò 2 đã được mở. Sau đó gọi chương trình báo mở
thiết bò 2. Nếu điều kiện P2.1=1 sai tức P2.1=0, muốn mở thiết
bò 2 thì đặt P0.1=1 và đặt 71H=1 để báo là thiết bò 2 đã được mở
và gọi chương trình báo mở thiết bò 2.
Nếu điều kiện A=2 sai thì chương trình sẽ hỏi tiếp A=3 chưa.
Nếu A=3 đúng, chương trình hỏi tiếp P2.2=1 chưa. Nếu P2.2=1
thì xóa P0.2=0 để mở thiết bò 3 và đồng thời đặt 72H=1 để báo
là thiết bò 3 đã được mở. Sau đó gọi chương trình báo mở thiết bò
3. Nếu điều kiện P2.2=1 sai tức P2.2=0, muốn mở thiết bò 3 thì
đặt P0.2=1 và đặt 72H=1 để báo là thiết bò 3 đã được mở và gọi
chương trình báo mở thiết bò 3.
Nếu điều kiện A=3 sai thì chương trình sẽ hỏi tiếp A=4 chưa.
Nếu A=4 đúng, chương trình hỏi tiếp P2.3=1 chưa. Nếu P2.3=1
thì xóa P0.3=0 để mở thiết bò 4 và đồng thời đặt 73H=1 để báo
là thiết bò 4 đã được mở. Sau đó gọi chương trình báo mở thiết bò
4. Nếu P2.3=0 thì đặt P0.3=1 để mở thiết bò 4 và đặt 73H=1 để
báo là thiết bò 4 đã được mở và gọi chương trình báo mở thiết bò
4.
Nếu điều kiện A=4 sai thì thoát.
P
1
R7
P2.4=1
P0.0=1
P2.4=0
R7P1
7
0H=0
P
1
R7
P2.4=1
P0.0=0
P2.4=0
L
CALL
TAT1
P
1
R7
P2.4=1
P0.1=1
P2.4=0
R7P1
7
1H=0
P
1
R7
P2.4=1
P0.1=0
P2.4=0
L
CALL
TAT2
P
1
R7
P2.4=1
P0.2=1
P2.4=0
R7P1
7
2H=0
P
1
R7
P2.4=1
P0.2=0
P2.4=0
L
CALL
TAT3
P
1
R7
P2.4=1
P0.3=1
P2.4=0
R7P1
7
3H=0
P
1
R7
P2.4=1
P0.3=0
P2.4=0
L
CALL
TAT4
V. CHệễNG TRèNH CON TAẫT THIET Bề
1 Lửu ủo giaỷi thuaọt:
BEGIN
A = 1 ẹ P2.0=1 ẹ
S S
ẹ ẹ
A = 2 P2.1=1
S S
A=3 ẹ P2.2=1 ẹ
S S
Đ Đ
A=4 P2.3=1
S S
RET
2. Giải thích:
Sau khi bấm đúng mã thứ nhất để tắt thiết bò thì chương
trình sẽ hỏi tiếp A=1 chưa. Nếu đúng A=1 tức là tắt thiết bò 1,
sau đó chương trình hỏi tiếp P2.0=1 chưa (P2.0 là trạng thái của
công tắc bên ngoài). Nếu P2.0=1 là đúng thì ta phải đặt P0.0=1
để tắt thiết bò 1 ( vì tín hiệu P0.0 và P2.0 được đưa qua cổng
EXOR cho nên muốn đưa ra mứ c logic 1 thì mức logic của 2
trạng thái này sẽ khác nhau ). Sau đó xóa ô nhớ 70H=0 để báo
là thiết bò 1 đã được tắt. Sau đó gọi chương trình tiếng nói báo là
“ Thiết bò 1 đã được tắt”. Nếu P2.0=0 thì muốn tắt thiết bò ta
phải xóa P0.0=0 và xóa 70H=0 để báo thiết bò 1 đã được tắt.
Sau đó gọi chương trình báo tắt thiết bò 1.
Nếu điều kiện A=1 sai thì chương trình sẽ hỏi tiếp A=2
chưa. Nếu A=2 đúng, chương trình hỏi tiếp P2.1=1 chưa. Nếu
P2.1=1 thì đặt P0.0=1 để tắt thiết bò 2 và đồng thời xóa 71H=0
để báo là thiết bò 2 đã được tắt. Sau đó gọi chương trình báo tắt
thiết bò 2. Nếu điều kiện P2.1=1 sai tức P2.1=0, muốn tắt thiết bò
2 thì xóa P0.1=0 và xóa 71H=0 để báo là thiết bò 2 đã được tắt
và gọi chương trình báo tắt thiết bò 2.
Nếu điều kiện A=2 sai thì chương trình sẽ hỏi tiếp A=3 chưa.
Nếu A=3 đúng, chương trình hỏi tiếp P2.2=1 chưa. Nếu P2.2=1
thì đặt P0.2=1 để tắt thiết bò 3 và đồng thời xóa 72H=0 để báo là
thiết bò 3 đã được tắt. Sau đó gọi chương trình báo tắt thiết bò 3.
Nếu điều kiện P2.2=1 sai tức P2.2=0, muốn tắt thiết bò 3 thì xóa
P0.2=0 và xóa 72H=0 để báo là thiết bò 3 đã được tắt và gọi
chương trình báo tắt thiết bò 3.
Nếu điều kiện A=3 sai thì chương trình sẽ hỏi tiếp A=4 chưa.
Nếu A=4 đúng, chương trình hỏi tiếp P2.3=1 chưa. Nếu P2.3=1
thì đặt P0.3=1 để tắt thiết bò 4 và đồng thời xóa 73H=0 để báo là
thiết bò 4 đã được tắt. Sau đó gọi chương trình báo tắt thiết bò 4.
Nếu P2.3=0 thì xóa P0.3=0 để tắt thiết bò 4 và xóa 73H=0 để
báo là thiết bò 4 đã được tắt và gọi chương trình báo tắt thiết bò
4.
Nếu điều kiện A=4 sai thì thoát.