1. Trang chủ
  2. » Luận Văn - Báo Cáo

Vi điều khiển giao tiếp với phím nhấn- bàn phím

32 2,6K 7
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Vi điều khiển giao tiếp với phím nhấn - bàn phím
Tác giả Nguyễn Đình Phú
Trường học Đại học Sư phạm Kỹ thuật TP HCM
Chuyên ngành Điện tử công nghiệp
Thể loại Bài giảng
Thành phố TP HCM
Định dạng
Số trang 32
Dung lượng 0,94 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Vi điều khiển giao tiếp với phím nhấn- bàn phím

Trang 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Ụ ĐK ĐỘ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 THÌ TIẾN HÀNH XỬ LÝ THEO YÊU CẦU

Trang 2

BÀI SỐ 5-1: CHƯƠNG TRÌNH ĐK ĐỘNG CƠ ĐC CHẠY THUẬN – NGỪNG CÓ 2 PHÍM

NHẤN: START, STOP

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

DÙNG 1 NGÕ RA ĐIỀU KHIỂN ĐC:

;CHUONG TRINH DIEU KHIEN DONG CO QUAY THUAN NGHICH

START BIT P3.0 ;PHIM START NOI VOI P3.0 STOP BIT P3.1

DC1 BIT P1.0 ;XANH – DK DONG CO

ORG 0H LB: CLR DC1 ;NGUNG DONG CO

JB START,$ ;CHO NHAN PHIM START SETB DC1 ;DCO CHAY THUAN - XANH SANG

JB STOP,$ ;CHO NHAN STOP JMP LB

$INCLUDE(TV_DELAY.ASM)

END

BÀI SỐ 5-2: CHƯƠNG TRÌNH ĐK ĐỘNG CƠ DC QUAY THUẬN NGHỊCH CÓ 3 PHÍM

NHẤN: START, STOP, INV

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

DC1 DC2 TRẠNG THÁI

0 0 ĐC NGỪNG - 2 ĐÈN TẮT CLR DC1, CLR DC2

Trang 3

1 0 ĐC QUAY THUẬN – XANH SÁNG, ĐỎ TẮT SETB DC1

ĐẢO CHIỀU ĐỘNG CƠ

1 Lệnh nhảy khi bit = 1 :

 Cú pháp : JB BIT, REL

 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 :

 Cú pháp : JNB BIT, REL

 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

Trang 4

CHÚ Ý: KHI BẮT ĐẦU THÌ ĐỘNG CƠ NGỪNG – CHỈ CẦN KIỂM TRA XEM CÓ NHẤN START KHÔNG? NẾU KHÔNG NHẤN THÌ CHỜ – KHÔNG CẦN KIỂM TRA STOP VÀ INV VÌ CHÚNG KHÔNG CÓ TÁC DỤNG KHI ĐỘNG CƠ ĐÃ QUAY THÌ KIỂM TRA LẦN LƯỢT CÁC PHÍM STOP VÀ INV

CHUONG TRINH DIEU KHIEN DONG CO QUAY THUAN NGHICH

Trang 5

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 0H

LB: CLR DC1 ;NGUNG DONG CO

CLR DC2

JB START,$ ;CHO NHAN PHIM START 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

Trang 6

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

Trang 7

Đ

S PHÍM ?

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

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

Trang 8

JB INV,LBD1 ;KTRA LAN 3, NHAY NEU KHONG AN CPL DC1 ;DAO CHIEU DONG CO

CPL DC2 JNB INV,$ ;CHO NHA PHIM

$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 CALL OUTDCO

LB2: JB STOP,LB1

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

CALL DELAY10MS

Trang 9

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

ƯU ĐIỂM TIẾT KIỆM ĐƯỜNG ĐIỀU KHIỂN

KHUYẾT ĐIỂM: CHƯƠNG TRÌNH PHỨC TẠP

Trang 10

H0=P3.4

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

1 2 3

5 6 7

V CC =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

1 2 3

5 6 7

V CC =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

Trang 11

H0=P3.4

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

1 2 3

5 6 7

V CC =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

1 2 3

5 6 7

V CC =1

0

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

Trang 12

H0=P3.4

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

1 2 3

5 6 7

V CC =1

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

1 2 3

5 6 7

V CC =1

1

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

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 VÀ CÓ 1 TÊN CÁC CHƯƠNG TRÌNH DÙNG MÃ PHÍM ĐỂ ĐIỀU KHIỂN, CÒN TÊN TRÊN PHÍM LÀ PHỤC VỤ CHO CON NGƯỜI.

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

Trang 13

VẬY KHI QUÉT PHÍM THÌ PHẢI TẠO RA MÃ PHÍM NHẤN

H0=P3.4

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

V CC =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

Trang 14

‘0’, ‘1’, ‘2’, ‘3’

MP:=00 C3C2C1 C0 =111 0

TRƯỚC KHI THỰC HIỆN

SAU KHI THỰC HIỆN

Trang 15

NẾU NHẤN PHÍM SỐ 7 THÌ THỐT VỚI MP = 07H

LƯU ĐỒ GỌN HƠN

Trang 16

KEYPAD

DEM:=4 MP:=0 C3C2C1C0 = 111 0

H3H2H1H0 = 1111 Đ

MP:=MP+4 XOAY TRÁI C3C2C1C0 DEM:= DEM -1

Đ 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

H0=P3.4

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

1 2 3

5 6 7

V CC =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

Trang 17

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= H3H2H1H0 C3C2C1C0 (IN) ANL A,#11110000B ;(A)= H3H2H1H0 -0000

CJNE A,#0000 1111 B,KEYP1 ;NHAY NEU CO NHAN PHIM

ADD A,#4 MOV MP,A

RL A MOV C3C0,A DJNZ DEM,KEYP2 MOV MP,#0FFH ;THOAT KHONG NHAN PHIM RET

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 QUÉT MA TRẬN PHÍM XEM ĐÚNG HAY SAI BẰNG CÁCH GỌI CHƯƠNG TRÌNH QUÉT PHÍM VÀ GIẢI MÃ HIỂN THỊ MÃ PHÍM TRÊN 1 LED

7 ĐOẠN

ORG 0H MOV DPTR,#CODE7SEG

Trang 18

MAIN1: CALL KEYPRESS16

MOV A,MP CJNE A,#0FFH,MAIN2 JMP MAIN1

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 = 1111111 0

H7÷H0 = 11111111 Đ

MP:=MP+8 XOAY TRÁI C7÷C0 DEM:= DEM -1

Đ S

;CHUONG TRINH CON QUET MA TRAN PHIM 8×8

Trang 19

DEM EQU 40H

MP EQU 41H C7C0 EQU 42H ;C7=>C0

KEYPRESS64: MOV MP,#00

MOV DEM,#8 MOV C7C0,# 11111110B ;C0=0

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

Trang 20

KEYPAD

DEM:=4 (SỐ CỘT)

MP:=0 C3C2C1C0 = 111 0

H4-H0 = 11111 T

NO PRESS

PRESSED

MP:=MP+ 5(SỐ HÀNG) XOAY TRÁI C3C2C1C0 DEM:= DEM -1

T F

;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

RL A

Trang 21

MOV C3C0,A MOV A,MP ADD A,#5 MOV MP,A DJNZ DEM,KEYP2 MOV MP,#0FFH ;THOAT KHONG NHAN PHIM

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

Trang 22

;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

Trang 23

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)

Trang 24

$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

Trang 25

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

Trang 26

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

Trang 27

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

Trang 28

MOV 30H,#0FFH RET

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 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

Trang 29

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

MOV P0,30H MOV P2,#01111111B CALL DELAY1MS MOV P2,#0FFH RET

CODE7SEG: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H

DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH

;CHUONG TRINH CON QUET MA TRAN PHIM 4×4

;PORT 3 NOI VOI MA TRAN 4X4

DEM EQU 40H

MP EQU 41H C3C0 EQU 42H ;C3C2C1C0 LAP EQU 43H

MP1 EQU 44H

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

KEYPRESS: MOV LAP,#10 ;nhap so dem 10 lan

KEYPRESS1 : CALL KEYPRESS16 ;Neu co phim an thi co c=1

JC KEYPRESS2 ;kiem tra tiep neu c = 1 RET ;Neu khong co phim nhan thi co c=0

KEYPRESS2: DJNZ LAP,KEYPRESS1 ;Quay ve lap lai chong nay

MOV MP1,MP ;Cat noi dung ma phim

KEYPRESS3: MOV LAP,#10 ;Nhap so dem 10 lan cho nha phim KEYPRESS4: CALL KEYPRESS16 ;Co phim nhan hay khong

Ngày đăng: 26/04/2013, 08:52

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w