You are on page 1of 19

Chương 3: Điều khiển I/O

1. Port của vi điều khiển AT89S52


• Cấu hình cho các port
• Lập trình truy xuất port dùng ngôn ngữ Assembly
• Lập trình truy xuất port dùng ngôn ngữ C
2. Các ứng dụng port của VĐK AT89S52
• Điều khiển led đơn
• Điều khiển led 7 đoạn trực tiếp
• Điều khiển led 7 đoạn quét
• Giao tiếp với nút nhấn, bàn phím
• Giao tiếp với LCD
1. Port của vi điều khiển AT89S52
1. Cấu hình cho các port
AT89S52 có 4 port 0,1,2,3

Các port xuất t/h ở mức logic 1:

- Điện áp khoảng 3.5V đến 4.9V

- Dòng xuất ra rất nhỏ khoảng 5mA (P0,P2 dòng xuất


khoảng 1mA; P1,P3 dòng xuất ra khoảng 1mA đến 5mA)
1. Port của vi điều khiển AT89S52
1. Cấu hình cho các port
AT89S52 có 4 port 0,1,2,3
Các port xuất t/h ở mức logic 0:
- Điện áp khoảng 3.5V đến 4.9V
- Dòng điện cho phép đi qua lớn hơn nhiều
Dòng lớn nhất qua P0 : -25mA
Dòng lớn nhất qua P1,P2,P3 : -15mA
1. Port của vi điều khiển AT89S52
 Điều khiển led sáng mức 0
1. Port của vi điều khiển AT89S52
 Điều khiển led sáng mức 1
- Khi Px.x ở mức 0 thì có chênh lệch
áp giữa Vcc và chân Px.x do đó
dòng điện đi từ Vcc qua R4 vào
chân Px.x.
- Khi Px.x ở mức 1 thì dòng điện
không vào chân Px.x mà đi qua led
về mass.
- Cách mắc như hình vẽ gọi là sử
dụng điện trở treo (pull-up resistor)
1. Port của vi điều khiển AT89S52
 Điều khiển led sáng mức 1
Ngoài cách sử dụng điện trở
treo, việc sử dụng cổng đệm
cũng có tác dụng thay đổi
cường độ dòng điện xuất ra khi
ngõ ra ở mức 1, cổng đệm xuất
ra tín hiệu ở mức 1 với áp và
dòng lớn khi có tín hiệu mức 1
đặt ở ngõ vào
1. Port của vi điều khiển AT89S52
2. Lập trình truy xuất dùng ngôn ngữ Assembly
 Lệnh truy xuất port 8 bit: Các port khi truy xuất dùng địa
chỉ trực tiếp nên các lệnh xử lý dùng kiểu định địa chỉ
trực tiếp.
VD: MOV P0,#0FH
MOV P1,A
MOV R1,P1
 Lệnh truy xuất bit của port: dùng lệnh xử lý bit
VD: SETB P1.2
MOV C,P2.0
1. Port của vi điều khiển AT89S52
3. Lập trình truy xuất dùng ngôn ngữ C
Lệnh truy xuất port 8 bit: ngôn ngữ lập trình Keil-C cho
phép truy xuất rất đơn giản
VD: P1 = 0x0F ; gửi dữ liệu 0Fh ra port 1
X = P2 ; đọc dữ liệu P2 gán cho biến X
Lệnh truy xuất của port:
VD: P1_0 = 0 ; làm bit thứ 0 của port 1 = 0
P2_2 = 0 ; làm bit thứ 2 của port 2 = 1
2. Các ứng dụng port của VĐK AT89S52
1. Điều khiển led đơn
Bài 1: Điều khiển 8 LED được nối với Port 0
sáng tắt

BẮT ĐẦU

SÁNG 8 LED, DELAY

TẮT 8 LED, DELAY


2. Các ứng dụng port của VĐK AT89S52
1. Điều khiển led đơn
Bài 2: Điều khiển BẮT ĐẦU
đếm lên nhị phân 8
bit và hiển thị trên 8 TẮT 8 LED, DELAY
LED được nối với
port 0 TĂNG GIÁ TRỊ LÊN 1, DELAY
2. Các ứng dụng port của VĐK AT89S52
BẮT ĐẦU
1. Điều khiển led đơn
TẮT 8 LED, DELAY
Bài 3: Điều khiển 8 ĐIỀU KHIỂN 1 LED SÁNG
ĐIỀU KHIỂN 5 LED SÁNG

LED được nối với DELAY500MS

port 0 sáng dần và


DELAY500MS
ĐIỀU KHIỂN 6 LED SÁNG
tắt hết ĐIỀU KHIỂN 2 LED SÁNG

DELAY500MS
DELAY500MS

ĐIỀU KHIỂN 3 LED SÁNG ĐIỀU KHIỂN 7 LED SÁNG

DELAY500MS DELAY500MS

ĐIỀU KHIỂN 4 LED SÁNG ĐIỀU KHIỂN 8 LED SÁNG

DELAY500MS DELAY500MS
2. Các ứng dụng port của VĐK AT89S52
BẮT ĐẦU

Nạp giá trị biến lập R0 = 0

Nạp địa chỉ vùng dữ liệu


DPTR=Data

Nạp địa chỉ offset A=R0

Lây dữ liệu A=@A+DPTR

Xuất dữ liệu ra port P0=A

Delay 500ms

Tăng biến lặp lên 1


R0=R0+1

Kiểm tra Đúng


R0 ≠ 𝟗
Sai
2. Các ứng dụng port của VĐK AT89S52
BẮT ĐẦU

Nạp giá trị đầu A=0

Thiết lập cờ C = 1

Xuất dữ liệu ra port P0=A

Delay 500ms

Dịch trái A kèm C

Chưa sáng Đúng


8 led
C=0
Sai
2. Các ứng dụng port của VĐK AT89S52
BẮT ĐẦU

1. Điều khiển led đơn Nạp giá trị biến lập R0 = 0

Bài 4: Điều khiển 8 Nạp địa chỉ vùng dữ liệu


DPTR=dulieu
LED được nối với Nạp địa chỉ offset A=R0
port 0 sáng đuổi Lây dữ liệu A=@A+DPTR

Xuất dữ liệu ra port P0=A

Delay 500ms

Tăng biến lặp lên 1


R0=R0+1

Đúng
Kiểm tra
Sai R0 ≠ 𝟖
2. Các ứng dụng port của VĐK AT89S52

1. Điều khiển led đơn


BẮT ĐẦU
Bài 4: Điều khiển 8
LED được nối với Nạp giá trị đầu
A=00000001B
port 0 sáng đuổi
Xuất dữ liệu ra port P0=A

Delay 500ms

Dịch trái RL A
2. Các ứng dụng port của VĐK AT89S52
BẮT ĐẦU

1. Điều khiển led đơn Nạp giá trị biến lập R0 = 0

Bài 5: Điều khiển 8 Nạp địa chỉ vùng dữ liệu


DPTR=Data
LED được nối với
Nạp địa chỉ offset A=R0
port 0 sáng dồn
Lây dữ liệu A=@A+DPTR

Xuất dữ liệu ra port P0=A

Delay 500ms

Tăng biến lặp lên 1


R0=R0+1

Kiểm tra Đúng


R0 ≠ 𝟑𝟔
Sai
2. Các ứng dụng port của VĐK AT89S52
BẮT ĐẦU

1. Điều khiển led đơn


GỌI CTC ĐIỀU KHIỂN
Bài 6: Điều khiển 8 LED LED CHỚP TẮT

được nối với port 0 hoạt GỌI CTC ĐIỀU KHIỂN


động tổng hợp các dạng LED ĐẾM LÊN

(chớp tắt, đếm nhị phân,


GỌI CTC ĐIỀU KHIỂN
sáng dần, sáng đuổi, LED SÁNG ĐUỔI

sáng dồn)
GỌI CTC ĐIỀU KHIỂN
LED SÁNG DẦN

GỌI CTC ĐIỀU KHIỂN


LED SÁNG DỒN
2. Các ứng dụng port của VĐK AT89S52
1. Điều khiển led 7 đoạn trực tiếp

You might also like