Tải bản đầy đủ (.pdf) (30 trang)

VI ĐIỀU KHIỂN GIAO TIẾP VỚI PHÍM NHẤN, BÀN PHÍM pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (697.38 KB, 30 trang )

Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 1
VI ĐIỀU KHIỂN GIAO TIẾP VỚI PHÍM NHẤN – BÀN PHÍM

PHÍM NHẤN, NÚT NHẤN, BÀN PHÍM DÙNG ĐỂ GIAO TIẾP GIỮA CON NGƯỜI VÀ
THIẾT BỊ ĐIỀU KHIỂN.
VÍ DỤ: BÀN PHÍM MÁY TÍNH, BÀN PHÍM ĐIỆN THOẠI, BÀN PHÍM MÁY BÁN XĂNG
DẦU DÙNG NHẬP SỐ TIỀN CẦN BÁN, SỐ LÍT CẦN BÁN, … MÁY GIẶT TỰ ĐỘNG CĨ
BÀN PHÍM ĐỂ CHỈNH CHẾ ĐỘ GIẶT, CHỌN MỰC NƯỚC, …
CĨ 2 DẠNG GIAO TIẾP:
HỆ THỐNG ÍT PHÍM: VÍ DỤ DK ĐỘNG CƠ BẰNG 3 PHÍM: START, STOP, INV, ĐỒNG
HỒ CĨ 3 ĐẾN 4 PHÍM ĐỂ CHỈNH THỜI GIAN.
HỆ THỐNG NHIỀU PHÍM: HỆ THỐNG BÁN XĂNG DẦU, …, MÁY TÍNH, ĐIỆN THOẠI,
 MẠCH ĐIỆN GIAO TIẾP – HỆ THỐNG ÍT PHÍM

HOẠT ĐỘNG CỦA PHÍM NHẤN:
SỬ DỤNG PHÍM THƯỜNG HỞ, NÊN CÁC NGÕ VÀO THƯỜNG Ở MỨC 1.
KHI NHẤN THÌ KÍN MẠCH HAY NGẮN MẠCH NỐI MASS LÀM NGÕ VÀO XUỐNG
MỨC 0 VÀ BUÔNG TAY – KHÔNG NHẤN NỮA THÌ TRỞ LẠI MỨC 1.
CHƯƠNG TRÌNH KIỂM TRA XEM CHÚNG TA CÓ NHẤN PHÍM HAY KHÔNG BẰNG
CÁCH KIỂM TRA MỨC LOGIC: NẾU MỨC LOGIC LÀ 1 THÌ KHÔNG NHẤN, LÀ 0 THÌ
CÓ NHẤN PHÍM
BÀI SỐ 5-1: CHƯƠNG TRÌNH DK ĐỘNG CƠ DC QUAY THUẬN NGHỊCH CÓ 3 PHÍM
NHẤN: START, STOP, INV
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 2
 NẾU ĐCƠ NGỪNG THÌ NHẤN START – ĐCƠ SẼ QUAY THUẬN
 NẾU ĐCƠ ĐANG QUAY MÀ NHẤN STOP THÌ ĐCƠ NGỪNG
 NẾU ĐCƠ ĐANG QUAY MÀ NHẤN INV THÌ ĐCƠ ĐẢO CHIỀU
 DÙNG 2 NGÕ RA ĐIỀU KHIỂN ĐÈN XANH ĐỎ:
 2 ĐÈN TẮT – ĐCƠ NGỪNG


 XANH SÁNG THÌ ĐCƠ QUAY THUẬN
 ĐỎ SÁNG THÌ ĐCƠ QUAY NGHỊCH

 LƯU ĐỒ ĐIỀU KHIỂN
2 LED TẮT
START?
Đ
BEGIN
S
LED XANH SÁNG
STOP?
Đ
INV?
S
S
ĐẢO LED
BEGIN
STOP ?
Đ
S
ĐỘNG CƠ NGỪNG
START ?
ĐỘNG CƠ QUAY THUẬN
Đ
INV ?
END
S
S
Đ
ĐẢO CHIỀU ĐỘNG CƠ


1. Lệnh nhảy khi bit = 1 :
 Cú pháp : JB BIT, REL
 Mã lệnh :
0
0
1
0
0
0
0
0
b7
b6
b5
b4
b3
b2
b1
b0
r7
r6
r5
r4
r3
r2
r1
r0
 Lệnh này chiếm 3 byte và thời gian thực hiện lệnh là 2 chu kỳ máy
 Chức năng: nếu nội dung của bit có đòa chỉ bit [được xác đònh bởi byte thứ 2] bằng 1 thì vi điều khiển

sẽ nhảy đến thực hiện chương trình tại đòa chỉ rel.
2. Lệnh nhảy khi bit = 0 :
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 3
 Cú pháp : JNB BIT, REL
 Mã lệnh :
0
0
1
1
0
0
0
0
b7
b6
b5
b4
b3
b2
b1
b0
r7
r6
r5
r4
r3
r2
r1
r0

 Lệnh này chiếm 3 byte và thời gian thực hiện lệnh là 2 chu kỳ máy
 Chức năng: nếu nội dung của bit có đòa chỉ bit [được xác đònh bởi byte thứ 2] bằng 0 thì vi điều khiển
sẽ nhảy đến thực hiện chương trình tại đòa chỉ bằng rel.


 VIẾT CHƯƠNG TRÌNH
;CHUONG TRINH DIEU KHIEN DONG CO QUAY THUAN NGHICH
START BIT P3.0 ;PHIM START NOI VOI P3.0
STOP BIT P3.1
INV BIT P3.2
DC1 BIT P1.0 ;XANH – DK DONG CO
DC2 BIT P1.2 ;DO – DK DONG CO
ORG 0000H
MOV P1,#00 ;TAT HET LED

LB: CLR DC1 ;NGUNG DONG CO
CLR DC2
JB START,$ ;CHO NHAN PHIM START
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 4
SETB DC1 ;DCO CHAY THUAN - XANH SANG

LB2: JNB STOP,LB ;NEU NHAN THI NHAY VE NGUNG 2 DC
JB INV,LB2 ;NHAY VE LB2 KHI KHONG NHAN INV
CPL DC1 ;NGHICH DAO COMPLEMENT
CPL DC2
JMP LB2
$INCLUDE(TV_DELAY.ASM)
END


KHUYẾT ĐIỂM LÀ NHẤN PHÍM BỊ DỘI PHÍM VÀ TỐC ĐỘ XỬ LÝ
NGUYÊN NHÂN THỨ 1 – DỘI PHÍM: DO PHÍM LÀM BẰNG CƠ CẤU CƠ KHÍ NÊN KHI
NHẤN THÌ LÒ XO ĐẨY PHÍM NGƯC LẠI LỰC TÁC ĐỘNG LÀM PHÍM TIẾP XÚC
NHIỀU LẦN TRƯỚC KHI ỔN ĐỊNH VÀ
NGUYÊN NHÂN THỨ 2: DO TỐC ĐỘ CỦA VXL HOẶC VĐK NHANH NÊN XEM NHƯ TA
NHẤN NHIỀU LẦN.


Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 5
PHẢI CHỐNG DỘI PHÍM:
CHỐNG DỘI PHÍM: CÓ 2 CÁCH:
1. KIỂM TRA TRẠNG THÁI CỦA PHÍM NẾU CHUYỂN TRẠNG THÁI VÀ TỒN TẠI
ÍT NHẤT KHOẢNG 20 MS THÌ XEM NHƯ CÓ PHÍM NHẤN.
2. SAU KHI PHÁT HIỆN PHÍM NHẤN, THÌ KIỂM TRA BUÔNG PHÍM HOẶC CÓ
THỂ DELAY 20MS RỒI KIỂM TRA VÀ CHỜ CHO ĐẾN KHI BUÔNG PHÍM
 LƯU ĐỒ CHỐNG DỘI
BEGIN
Đ
S
PHÍM ?
DELAY10MS
Đ
PHÍM ?
END
S
Đ
PHÍM ?
DELAY10MS
S



;CHUONG TRINH DIEU KHIEN DONG CO QUAY THUAN NGHICH – CO C DOI PHIM
START BIT P3.0
STOP BIT P3.1
INV BIT P3.2
DC1 BIT P1.0 ;XANH
DC2 BIT P1.2 ;DO
ORG 0000H
MOV P1,#00
LB: CLR DC1 ;NGUNG 2 DONG CO
CLR DC2
JB START,$ ;CHO NHAN PHIM START
SETB DC1 ;DCO CHAY THUAN - XANH SANG
LB2: JNB STOP,LB
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 6
LB1: CALL PHIM_INV ;GOI CHTR KIEM TRA VA CHONG DOI
JMP LB2
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXFFFFFF
PHIM_INV:JB INV,LBD1 ;KTRA LAN 1, NHAY NEU KHONG AN
CALL DELAY10MS
JB INV,LBD1 ;KTRA LAN 2, NHAY NEU KHONG AN
CALL DELAY10MS
JB INV,LBD1 ;KTRA LAN 3, NHAY NEU KHONG AN
CPL DC1 ;DAO CHIEU DONG CO
CPL DC2
JNB INV,$ ;CHO NHA PHIM
LBD1: RET ;THOAT
$INCLUDE(TV_DELAY.ASM)

END

CHỐNG DỘI CÁCH 2 LÀ NHẤN PHÍM THỰC THI XONG CHỜ BUÔNG PHÍM

;CHUONG TRINH ĐIỀU KHIỂN DCO TRONG THỰC TẾ CÓ DELAY CHỜ ĐỘNG CƠ
DỪNG
START BIT P3.4
STOP BIT P3.5
INV BIT P3.6
DC1 BIT P1.0 ;XANH
DC2 BIT P1.2 ;DO
DCT1 BIT 00H ;BIT TAM
DCT2 BIT 01H

ORG 0000H
LB: SETB DCT1 ;NGUNG 2 DONG CO
SETB DCT2
CALL OUTDCO

JB START,$ ;CHO NHAN PHIM START
CLR DCT1 ;DCO CHAY THUAN - XANH SANG
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 7
CALL OUTDCO

LB2: JB STOP,LB1
JMP LB ;NEU NHAN THI NHAY VE NGUNG 2 DC

LB1: JB INV,LB2
CALL DELAY10MS

JNB INV,$

SETB DC1
SETB DC2
CALL DELAY1S
CALL DELAY1S
CALL DELAY1S
CPL DCT1
CPL DCT2
CALL OUTDCO
JMP LB2

OUTDCO: MOV C,DCT1
MOV DC1,C
MOV C,DCT2
MOV DC2,C
RET
$INCLUDE(TV_DELAY.ASM)
END


HỆ THỐNG NHIỀU PHÍM - MA TRẬN PHÍM
 VỚI CÁCH 1 THÌ MỖI PHÍM SỬ DỤNG 1 NGÕ VÀO ĐỂ KẾT NỐI.
 16 PHÍM SẼ DÙNG 16 NGÕ VÀO – TỐN NHIỀU ĐƯỜNG TÍN HIỆU.
 VỚI CÁCH KẾT NỐI DẠNG MA TRẬN THÌ 16 PHÍM CHỈ DÙNG 8 TÍN HIỆU: 4
CHO HÀNG VÀ 4 CHO CỘT – GỌI LÀ MA TRẬN 4×4 = 16 PHÍM
 VÍ DỤ MA TRẬN 8×8 = 64 PHÍM
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 8
 ƯU ĐIỂM TIẾT KIỆM ĐƯỜNG ĐIỀU KHIỂN

 KHUYẾT ĐIỂM: CHƯƠNG TRÌNH PHỨC TẠP
H0=P3.4
C3=P3.3
C2=P3.2
C1=P3.1
C0=P3.0
0
4 8 C
1
2
3
5
6
7
V
CC
=1
0 1 1 1
H1=P3.5
H2=P3.6
H3=P3.7

TRONG MA TRẬN 4×4 THÌ CÓ 4 HÀNG VÀ 4 CỘT
HÀNG ĐƯC CHỌN LÀ TÍN HIỆU VÀO – CỘT ĐƯC CHỌN LÀ TÍN HIỆU RA
H0=P3.4
C3=P3.3
C2=P3.2
C1=P3.1
C0=P3.0
0

4 8 C
1
2
3
5
6
7
V
CC
=1
0 1 1 1
H1=P3.5
H2=P3.6
H3=P3.7

HÀNG THÌ TREO ĐIỆN TRỞ LÊN NGUỒN VCC – NÊN MỨC LOGIC LÀ 1
CÁC PHÍM NHẤN THƯỜNG HỞ NÊN HÀNG LUÔN Ở MỨC 1. H3H2H1H0 =1111
CỘT LÀ TÍN HIỆU RA CHÚNG TA ĐIỀU KHIỂN CHO 1 CỘT Ở MỨC 0, 3 CỘT CÒN LẠI
Ở MỨC 1.
VÍ DỤ CỘT C0 = 0, C1C2C3=111
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 9
H0=P3.4
C3=P3.3
C2=P3.2
C1=P3.1
C0=P3.0
0
4 8 C
1

2
3
5
6
7
V
CC
=1
0 1 1 1
H1=P3.5
H2=P3.6
H3=P3.7

NẾU NHẤN PHÍM SỐ ‘0’ THÌ NỐI HÀNG H0=1(5V) VỚI C0=0 (0V): KHÁC ÁP – NGẮN
MẠCH LÀM CHO H0 = 0 – DO CÓ ĐIỆN TRỞ NÊN KHÔNG SAO, VẬY:
 NHẤN PHÍM SỐ ‘0’ THÌ LÀM H0=0 HAY H3H2H1H0 = 1110
 NHẤN PHÍM SỐ ‘1’ THÌ LÀM H1=0 HAY H3H2H1H0 = 1101
 NHẤN PHÍM SỐ ‘2’ THÌ LÀM H2=0 HAY H3H2H1H0 = 1011
 NHẤN PHÍM SỐ ‘3’ THÌ LÀM H3=0 HAY H3H2H1H0 = 0111
 NẾU NHẤN PHÍM SỐ ‘4’ THÌ NỐI HÀNG H0=1(5V) VỚI C1=1 (5V): CÙNG ÁP 5V:
KHÔNG CÓ GÌ THAY ĐỔI
CỘT C0=0 CHỈ PHÁT HIỆN 4 PHÍM ‘0’, ‘1’, ‘2’, ‘3’
NẾU KHÔNG NHẤN 4 PHÍM ‘0’, ‘1’, ‘2’, ‘3’ MÀ NHẤN CÁC PHÍM KHÁC THÌ TA PHẢI
LÀM C1 = 0, C0C2C3=111
H0=P3.4
C3=P3.3
C2=P3.2
C1=P3.1
C0=P3.0
0

4 8 C
1
2
3
5
6
7
V
CC
=1
0 1
1 1
H1=P3.5
H2=P3.6
H3=P3.7

 NHẤN PHÍM SỐ ‘4’ THÌ LÀM H0=0 HAY H3H2H1H0 = 1110
 NHẤN PHÍM SỐ ‘5’ THÌ LÀM H1=0 HAY H3H2H1H0 = 1101
 NHẤN PHÍM SỐ ‘6’ THÌ LÀM H2=0 HAY H3H2H1H0 = 1011
 NHẤN PHÍM SỐ ‘7’ THÌ LÀM H3=0 HAY H3H2H1H0 = 0111
LÀM C2 = 0, C0C1C3=111
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 10
H0=P3.4
C3=P3.3
C2=P3.2
C1=P3.1
C0=P3.0
0
4 8 C

1
2
3
5
6
7
V
CC
=1
1
1
0
1
H1=P3.5
H2=P3.6
H3=P3.7

 NHẤN PHÍM SỐ ‘8’ THÌ LÀM H0=0 HAY H3H2H1H0 = 1110
 NHẤN PHÍM SỐ ‘9’ THÌ LÀM H1=0 HAY H3H2H1H0 = 1101
 NHẤN PHÍM SỐ ‘A’ THÌ LÀM H2=0 HAY H3H2H1H0 = 1011
 NHẤN PHÍM SỐ ‘B’ THÌ LÀM H3=0 HAY H3H2H1H0 = 0111
LÀM C3 = 0, C0C1C2=111
H0=P3.4
C3=P3.3
C2=P3.2
C1=P3.1
C0=P3.0
0
4 8 C
1

2
3
5
6
7
V
CC
=1
1
1
1
0
H1=P3.5
H2=P3.6
H3=P3.7

 NHẤN PHÍM SỐ ‘C’ THÌ LÀM H0=0 HAY H3H2H1H0 = 1110
 NHẤN PHÍM SỐ ‘D’ THÌ LÀM H1=0 HAY H3H2H1H0 = 1101
 NHẤN PHÍM SỐ ‘E’ THÌ LÀM H2=0 HAY H3H2H1H0 = 1011
 NHẤN PHÍM SỐ ‘F’ THÌ LÀM H3=0 HAY H3H2H1H0 = 0111
12
CÂU HỎI LÀM SAO ĐỂ PHÂN BIỆT CÁC PHÍM ?
CÂU TRẢ LỜI LÀ MỖI PHÍM CÓ MỘT MÃ SỐ HAY MÃ PHÍM (MP) KHÁC NHAU
CHÚNG TA XÂY DỰNG: PHÍM 0 CÓ MÃ LÀ 00H, PHÍM 1 CÓ MÃ LÀ 01, TƯƠNG TỰ
CHO CÁC PHÍM CÒN LẠI
CÓ THỂ TÊN PHÍM VÀ MÃ KHÔNG TRÙNG NHAU.
VẬY KHI QUÉT PHÍM THÌ PHẢI TẠO RA MÃ PHÍM NHẤN
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 11
H0=P3.4

C3=P3.3
C2=P3.2
C1=P3.1
C0=P3.0
0
4 8 C
1
2
3
5
6
7
V
CC
=1
0 1 1 1
H1=P3.5
H2=P3.6
H3=P3.7

QUÉT PHÍM XUẤT MỨC 0 LẦN LƯT RA CÁC CỘT BẮT ĐẦU TỪ CỘT C0, SAU ĐÓ
KIỂM TRA CÁC HÀNG H3H2H1H0=1111.
 NẾU H3H2H1H0=1111(ĐÚNG) THÌ KHÔNG NHẤN PHÍM – HOẶC NHẤN PHÍM
KHÁC, PHẢI QUÉT CỘT TIẾP THEO CHO ĐẾN KHI HẾT TẤT CẢ CÁC CỘT.
 NẾU H3H2H1H0 ≠ 1111(SAI) THÌ CÓ NHẤN PHÍM – PHẢI XEM HÀNG NÀO BẰNG
0.

Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 12
BEGIN

‘0’, ‘1’, ‘2’, ‘3’
MP:=00
C3C2C1C0=1110
END
S
Đ
H3H2H1H0=1111
MP:=04
C3C2C1C0=1101
‘4’, ‘5’, ‘6’, ‘7’
S
Đ
H3H2H1H0=1111
MP:=08
C3C2C1C0=1011
‘8’, ‘9’, ‘10’, ‘11’
S
Đ
H3H2H1H0=1111
MP:=12
C3C2C1C0=0111
‘12’, ‘13’, ‘14’, ‘15’
S
Đ
H3H2H1H0=1111
MP:=FFH
H3H2H1H0=1110 LÀ ‘0’
H3H2H1H0=1101 LÀ ‘1’
H3H2H1H0=1011 LÀ ‘2’
H3H2H1H0=0111 LÀ ‘3’

H3H2H1H0=1110 LÀ ‘4’
H3H2H1H0=1101 LÀ ‘5’
H3H2H1H0=1011 LÀ ‘6’
H3H2H1H0=0111 LÀ ‘7’
H3H2H1H0=1110 LÀ ‘8’
H3H2H1H0=1101 LÀ ‘9’
H3H2H1H0=1011 LÀ ‘10’
H3H2H1H0=0111 LÀ ‘11’
H3H2H1H0=1110 LÀ ‘12’
H3H2H1H0=1101 LÀ ‘13’
H3H2H1H0=1011 LÀ ‘14’
H3H2H1H0=0111 LÀ ‘15’
MP=00
MP=04
MP=08
MP=12
XOAY PHẢI H3H2H1H0
C = 0
END
Đ
S
MP:= MP +1
S

NẾU KHÔNG CÓ NHẤN PHÍM THÌ THOÁT VỚI MÃ PHÍM = FFH
 NẾU NHẤN PHÍM SỐ 0
1 0
H3 H2 H1 H0
11 X
C

TRƯỚC KHI THỰC HIỆN
SAU KHI THỰC HIỆN
1 1
H3 H2 H1 H0
1x 0
C

NẾU NHẤN PHÍM SỐ 0 THÌ THỐT VỚI MP = 00H
 NẾU NHẤN PHÍM SỐ 1, MÃ PHÍM XUẤT PHÁT: MP=00
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 13
0 1
H3 H2 H1 H0
11 X
C
TRƯỚC KHI THỰC HIỆN
XOAY LẦN 1, MP:=MP+1
1 0
H3 H2 H1 H0
1x 1
C
XOAY LẦN 2
1 1
H3 H2 H1 H0
xx 0
C

NẾU NHẤN PHÍM SỐ 1 THÌ THỐT VỚI MP = 01H
 NẾU NHẤN PHÍM SỐ 7, MÃ PHÍM XUẤT PHÁT: MP=04
1 1

H3 H2 H1 H0
10 X
C
TRƯỚC KHI THỰC HIỆN
XOAY LẦN 1, MP:=MP+1 = 05
1 1
H3 H2 H1 H0
0x 1
C
XOAY LẦN 2, MP:=MP+1 = 06
0 1
H3 H2 H1 H0
xx 1
C
XOAY LẦN 3, MP:=MP+1=07
x 0
H3 H2 H1 H0
xx 1
C
XOAY LẦN 4
x x
H3 H2 H1 H0
xx 0
C

NẾU NHẤN PHÍM SỐ 7 THÌ THỐT VỚI MP = 07H
LƯU ĐỒ GỌN HƠN
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 14
S

KEYPAD
DEM:=4
MP:=0
C3C2C1C0 = 1110
H3H2H1H0 = 1111
Đ
MP:=MP+4
XOAY TRÁI C3C2C1C0
DEM:= DEM -1
MP:=FF
END
XOAY PHẢI
C=0
DEM=0
MP:=MP+1
S
Đ
Đ
S



BÀI SỐ 6-1: CTR QUÉT PHÍM MA TRẬN VÀ HIỂN THỊ TRÊN 1 LED 7 ĐOẠN
 VIẾT CHƯƠNG TRÌNH

H0=P3.4
C3=P3.3
C2=P3.2
C1=P3.1
C0=P3.0

0
4 8 C
1
2
3
5
6
7
V
CC
=1
0 1 1 1
H1=P3.5
H2=P3.6
H3=P3.7

;CHUONG TRINH CON QUET MA TRAN PHIM 4×4
;PORT 3 NOI VOI MA TRAN 4x4
DEM EQU 40H ;SO LAN QUET COT
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 15
MP EQU 41H ;MAPHIM
C3C0 EQU 42H ;C3C2C1C0

KEYPRESS16: MOV MP,#00
MOV DEM,#4
MOV C3C0,#11111110B ;C0=0, H3H2H1H0=1111

KEYP2: MOV P3,C3C0 ;P3.0= 0=C0 (OUT)
MOV A,P3 ;P3=H3H2H1H0C3C2C1C0 (IN)

ANL A,#0F0H ;(A)=H3H2H1H0-0000
SWAP A ;(A)= 0000 - H3H2H1H0
CJNE A,#00001111B,KEYP1 ;NHAY NEU CO NHAN PHIM
MOV A,MP ;MP:=MP+4
ADD A,#4
MOV MP,A
MOV A,C3C0 ;ROTATE LEFT C3C0
RL A
MOV C3C0,A
DJNZ DEM,KEYP2
MOV MP,#0FFH ;THOAT KHONG NHAN PHIM
RET

KEYP3: INC MP ;TANG MA PHIM
KEYP1: RRC A ;XU LY PHIM NHAN
JC KEYP3 ;NHAY KHI C=1
RET
BÀI SỐ 6-2: CTR TEST QUÉT PHÍM MA TRẬN VÀ HIỂN THỊ TRÊN 1 LED 7 ĐOẠN
CHƯƠNG TRÌNH TEST QT MA TRẬN PHÍM XEM ĐÚNG HAY SAI BẰNG CÁCH
GỌI CHƯƠNG TRÌNH QT PHÍM VÀ GIẢI MÃ HIỂN THỊ MÃ PHÍM TRÊN 1 LED
7 ĐOẠN.

ORG 0H
MOV DPTR,#CODE7SEG

Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 16
MAIN1: CALL KEYPRESS16
MOV A,MP
CJNE A,#0FFH,MAIN2

JMP MAIN1

MAIN2: MOV P1,MP ;CHO HIEN THI O P1
MOVC A,@A+DPTR
MOV P0,A
JMP MAIN1

CODE7SEG: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H
DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH
BÀI SỐ 6-3: CTR CON QUÉT PHÍM MA TRẬN 8×8
NẾU LÀ MA TRẬN 8×8 THÌ LƯU ĐỒ THAY ĐỔI CÁI GÌ?
S
KEYPAD
DEM:=8
MP:=0
C7÷C0 = 11111110
H7÷H0 = 11111111
Đ
MP:=MP+8
XOAY TRÁI C7÷C0
DEM:= DEM -1
MP:=FF
END
XOAY PHẢI
C=0
DEM=0
MP:=MP+1
S
Đ
Đ

S

;CHUONG TRINH CON QUET MA TRAN PHIM 8×8
;HANG LA P3, COT LA P1
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 17
DEM EQU 40H
MP EQU 41H
C7C0 EQU 42H ;C7=>C0

KEYPRESS64: MOV MP,#00
MOV DEM,#8
MOV C7C0,# 11111110B ;C0=0

KEYP2: MOV P1,C7C0 ;P1=C7C6C5C4 C3C2C1C0
MOV A,P3 ;(A)=H7H6H5H4 H3H2H1H0
CJNE A,#11111111B,KEYP1 ;NHAY NEU CO NHAN
MOV A,C7C0 ;ROTATE LEFT
RL A
MOV C7C0,A
MOV A,MP
ADD A,#8
MOV MP,A
DJNZ DEM,KEYP2
MOV MP,#0FFH ;THOAT KHONG NHAN PHIM
RET
KEYP3: INC MP
KEYP1: RRC A
JC KEYP3
RET

$INCLUDE(TV_DELAY.ASM)
END
BÀI SỐ 6-4: CTR CON QUÉT PHÍM MA TRẬN 5×4
NẾU 20 PHÍM MA TRẬN 5×4 THÌ LƯU ĐỒ THAY ĐỔI CÁI GÌ? 5 HÀNG + 4 CỘT = 9
ĐƯỜNG TÍN HIỆU NÊN KHÔNG DÙNG ĐƯC 1 PORT MÀ PHẢI DÙNG 2 PORT
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 18
F
KEYPAD
DEM:=4 (SỐ CỘT)
MP:=0
C3C2C1C0 = 1110
H4-H0 = 11111
TNO PRESS
PRESSED
MP:=MP+ 5(SỐ HÀNG)
XOAY TRÁI C3C2C1C0
DEM:= DEM -1
T
F
MP:=FF
END
X PHẢI H4-H0
C=0
T
F
DEM=0
MP:=MP+1

;CHUONG TRINH CON QUET MA TRAN PHIM 5×4

;HANG LA P3, COT LA P1 (5 HÀNG + 4 CỘT = 9)
DEM EQU 40H
MP EQU 41H
C3C0 EQU 42H ;C3=>C0

KEYPRESS16: MOV MP,#00
MOV DEM,#4
MOV C3C0,# 1110B ;C0=0

KEYP2: MOV P1,C3C0 ;P1=xxxx C3C2C1C0
MOV A,P3 ;(A)=XXX H4 H3H2H1H0
ANL A,#00011111B ;XOA CAC BIT DU
CJNE A,#00011111B,KEYP1 ;NHAY NEU CO NHAN
MOV A,C3C0 ;ROTATE LEFT
RL A
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 19
MOV C3C0,A
MOV A,MP
ADD A,#5
MOV MP,A
DJNZ DEM,KEYP2
MOV MP,#0FFH ;THOAT KHONG NHAN PHIM
CLR C ;BAO HIEU KHONG NHAN
RET

KEYP3: INC MP
KEYP1: RRC A
JC KEYP3
SETB C ;BAO HIEU CO NHAN PHIM

RET
$INCLUDE(TV_DELAY.ASM)
END
BÀI SỐ 6-5: CTR CON QUÉT PHÍM MA TRẬN 4×4 BỊ DỘI PHÍM
;CHUONG TRINH CON QUET MA TRAN PHIM 4×4 BỊ DỘI
; CHTR QUET PHIM HIEN THI TREN 8 LED DE THAY HIEN TUONG DOI PHIM
ORG 0H
MOV DPTR,#CODE7SEG
CALL XOAVNHTHI

MAIN1: CALL KEYPRESS16
MOV A,MP
CJNE A,#0FFH,MAIN2 ;SS VOI FFH, KHAC FFH THI CO NP
CALL HIENTHI ;NEU KNP THI HIEN THI
JMP MAIN1 ;QUAY LAI LAM TIEP

MAIN2: CALL DICHDATA
MOVC A,@A+DPTR
MOV 37H,A ;(37H) SE LUU SO MOI NHAT
JMP MAIN1
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 20
;CT CON DICH CHUYEN VUNG NHO HIEN THI TU 37H DEN 30H SANG TRAI
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DICHDATA:
MOV 30H,31H
MOV 31H,32H
MOV 32H,33H
MOV 33H,34H

MOV 34H,35H
MOV 35H,36H
MOV 36H,37H
RET
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;CT CON XOA VUNG NHO HIEN THI TU 37H DEN 30H
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
XOAVNHTHI:
MOV 37H,#07FH ;HIEN THI DAU CHAM
MOV 36H,#0FFH
MOV 35H,#0FFH
MOV 34H,#0FFH
MOV 33H,#0FFH
MOV 32H,#0FFH
MOV 31H,#0FFH
MOV 30H,#0FFH
RET
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;CT CON HIEN THI
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
HIENTHI: MOV P0,37H
MOV P2,#11111110B
CALL DELAY1MS
MOV P2,#0FFH

MOV P0,36H
MOV P2,#11111101B
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 21
CALL DELAY1MS

MOV P2,#0FFH

MOV P0,35H
MOV P2,#11111011B
CALL DELAY1MS
MOV P2,#0FFH

MOV P0,34H
MOV P2,#11110111B
CALL DELAY1MS
MOV P2,#0FFH

MOV P0,33H
MOV P2,#11101111B
CALL DELAY1MS
MOV P2,#0FFH

MOV P0,32H
MOV P2,#11011111B
CALL DELAY1MS
MOV P2,#0FFH

MOV P0,31H
MOV P2,#10111111B
CALL DELAY1MS
MOV P2,#0FFH

MOV P0,30H
MOV P2,#01111111B
CALL DELAY1MS

MOV P2,#0FFH
RET
$INCLUDE(TV_DELAY.ASM)
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 22
$INCLUDE(TV_KEY16.ASM)
CODE7SEG: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H
DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH
END

BÀI SỐ 6-6: CTR CON QUÉT PHÍM MA TRẬN 4×4 CHỐNG DỘI BẰNG DELAY
;CHUONG TRINH CON QUET MA TRAN PHIM 4×4 BỊ DỘI
; CHTR QUET PHIM HIEN THI TREN 8 LED DE THAY HIEN TUONG DOI PHIM
ORG 0H
MOV DPTR,#CODE7SEG
CALL XOAVNHTHI

MAIN1: CALL KEYPRESS16
MOV A,MP
CJNE A,#0FFH,MAIN2 ;SS VOI FFH, KHAC FFH THI CO NP
CALL HIENTHI ;NEU KNP THI HIEN THI
JMP MAIN1 ;QUAY LAI LAM TIEP

MAIN2: CALL DICHDATA
MOVC A,@A+DPTR
MOV 37H,A ;(37H) SE LUU SO MOI NHAT
CALL DELAY100MS ;LAM CHAM LAI
JMP MAIN1
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;CT CON DICH CHUYEN VUNG NHO HIEN THI TU 37H DEN 30H SANG TRAI

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DICHDATA:
MOV 30H,31H
MOV 31H,32H
MOV 32H,33H
MOV 33H,34H
MOV 34H,35H
MOV 35H,36H
MOV 36H,37H
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 23
RET
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;CT CON XOA VUNG NHO HIEN THI TU 37H DEN 30H
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
XOAVNHTHI:
MOV 37H,#07FH ;HIEN THI DAU CHAM
MOV 36H,#0FFH
MOV 35H,#0FFH
MOV 34H,#0FFH
MOV 33H,#0FFH
MOV 32H,#0FFH
MOV 31H,#0FFH
MOV 30H,#0FFH
RET
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;CT CON HIEN THI
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
HIENTHI: MOV P0,37H
MOV P2,#11111110B

CALL DELAY1MS
MOV P2,#0FFH

MOV P0,36H
MOV P2,#11111101B
CALL DELAY1MS
MOV P2,#0FFH

MOV P0,35H
MOV P2,#11111011B
CALL DELAY1MS
MOV P2,#0FFH

MOV P0,34H
MOV P2,#11110111B
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 24
CALL DELAY1MS
MOV P2,#0FFH

MOV P0,33H
MOV P2,#11101111B
CALL DELAY1MS
MOV P2,#0FFH

MOV P0,32H
MOV P2,#11011111B
CALL DELAY1MS
MOV P2,#0FFH


MOV P0,31H
MOV P2,#10111111B
CALL DELAY1MS
MOV P2,#0FFH

MOV P0,30H
MOV P2,#01111111B
CALL DELAY1MS
MOV P2,#0FFH
RET
$INCLUDE(TV_DELAY.ASM)
$INCLUDE(TV_KEY16.ASM)
CODE7SEG: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H
DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH
END
BÀI SỐ 6-7: CTR CON QUÉT PHÍM MA TRẬN 4×4 CHỐNG DỘI
;CHUONG TRINH CON QUET MA TRAN PHIM 4×4 CÓ CHỐNG DỘI
; CHTR QUET PHIM HIEN THI TREN 8 LED DE THAY HIEN TUONG DOI PHIM
ORG 0H
MOV DPTR,#CODE7SEG
CALL XOAVNHTHI
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 25

MAIN1: CALL KEYPRESS
MOV A,MP
CJNE A,#0FFH,MAIN2 ;SS VOI FFH, KHAC FFH THI CO NP
CALL HIENTHI ;NEU KNP THI HIEN THI
JMP MAIN1 ;QUAY LAI LAM TIEP


MAIN2: CALL DICHDATA
MOVC A,@A+DPTR
MOV 37H,A ;(37H) SE LUU SO MOI NHAT

JMP MAIN1
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;CT CON DICH CHUYEN VUNG NHO HIEN THI TU 37H DEN 30H SANG TRAI
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DICHDATA: MOV 30H,31H
MOV 31H,32H
MOV 32H,33H
MOV 33H,34H
MOV 34H,35H
MOV 35H,36H
MOV 36H,37H
RET
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;CT CON XOA VUNG NHO HIEN THI TU 37H DEN 30H
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
XOAVNHTHI:
MOV 37H,#07FH ;HIEN THI DAU CHAM
MOV 36H,#0FFH
MOV 35H,#0FFH
MOV 34H,#0FFH
MOV 33H,#0FFH
MOV 32H,#0FFH
MOV 31H,#0FFH

×