5
0
1
0
1
1
1
Bộ đệm 3 trạng thái (Tri-state Buffer)
Output Input
Tri-state control
(kích hoạt
mức cao)
0
Trở kháng cao
(hở mạch)
6
8-3. Ghi ra cổng output
Vd:
MOV A, #55H
BACK: MOV P1, A
ACALL DELAY
CPL A
SJMP BACK
7
DQ
Clk Q
Vcc
Read DFF
Read pin
Write to DFF
M1
P1.x
2. Chân ra là
Vcc
P1.x
8051 IC
1. ghi 1
1
0
output 1
TB1
TB2
8-3-1. Ghi “1” ra chân output P1.x
Bus nội
Tải
8
DQ
Clk Q
Vcc
Read DFF
Read pin
Write to DFF
M1
P1.X
P1.x
8051 IC
1. ghi 0
0
1
output 0
TB1
TB2
Bus nội
8-3-2. Ghi “0” ra chân output P1.x
Tải
2. Chân ra
nối đất
9
8-4. Đọc từ chân input & bộ chốt
Khi đọc chân, có hai khả năng sau:
¾Đọc trạng thái của chân input (bên ngoài)
MOV A,Px
JNB P2.1,Label
JB P2.1,Label
¾Đọc dữ liệu bộ chốt của chân output (bên trong)
ANL P1,A
ORL P1,A
INC P1
Đọc-Sửa đổi-Ghi
10
8-4-1. Đọc từ chân input
Để P1 là input, P1 phải được lập trình bằng cách ghi “1”
vào tất cả các bit của P1
MOV P1,#0FFH ; P1=11111111B
; P1 là input
BACK: MOV A,P1
MOV P2,A
SJMP BACK
( tương tự cho P0, P2, P3
11
DQ
Clk Q
Vcc
Read DFF
Read pin
Write to DFF
M1
P1.x
P1.x
8051 IC
2. MOV A,P1
Chân ngoài=“1”
1. ghi 1
MOV P1,#0FFH
1
0
3. Read pin=1
Read DFF=0
Write to DFF=1
1
TB1
TB2
Bus nội
Tải
Đọc “1” tại chân input
12
DQ
Clk Q
Vcc
Read DFF
Read pin
Write to DFF
M1
P1.x
P1.x
8051 IC
2. MOV A,P1
Chân ngoài=“0”
1. Ghi 1
MOV P1,#0FFH
1
0
3. Read pin=1
Read DFF=0
Write to DFF=1
0
TB1
TB2
Bus nội
Tải
Đọc “0” tại chân input
13
Lệnh Ví dụ Mô tả
MOV A,PX MOV A,P2 Đọc P2 vào A
JNB PX.Y, JNB P2.1,TARGET Nhảy nếu P2.1 = 0
JB PX.Y, JB P1.3,TARGET Nhảy nếu P1.3 = 1
MOV C,PX.Y MOV C,P2.4
Copy trạng thái chân
P2.4 vào CY
Các lệnh đọc chân input
14
8-4-2. Đọc chân ouput tức đọc bộ chốt
MOV P1,#55H; P1=01010101
ORL P1,#0F0H; P1=11110101
¾ “Read DFF” kích hoạt TB2 và chuyển dữ liệu từ Q của
DFF vào CPU Æ đọc được P1.7 = 0
¾ CPU thực hiện OR dữ liệu này với bit 1 Æ được 1
¾ D của DFF bị thay đổi thành 1
¾ Ghi KQ ra chân Æ P1.7 = 1
Không có nhận xét nào:
Đăng nhận xét