Mục đích yêu cầu: biết cách viết chương trình điều khiển quét phím, tạo mã phím và

Một phần của tài liệu vi dieu khien (Trang 61 - 65)

hiển thị mã phím. Khi chạy chương trình này thì trên led sẽ cĩ dấu chấm sáng và khi nhấn phím nào thì mã của phím đĩ sáng trên led.

II. Trình tự thực hiện:

1. Giải thuật:

Mã phím = 00

DCBA = 1111

Mã phím := mã phím + 04

Xoay mã quét sang trái gởi ra cộ t. Tăng cột lên 1 Đ Cột = 5 Đ Gán mã phím = FF Cột = 1 Quét = 1110 Đọc trạng thái hàng DCBA S S Begin End

Xoay DCBA qua Carry

Carry = 0 Đ

2. Kết nối mạch theo trình tự :

- Dùng bus dây kết nối port 0 đến pinhd điều khiển các đoạn a,b,c,d,e,f,g,dp và kết nối port 2 đến pinhd điều khiển quét hàng.

- Dùng port 1 chưa qua IC đệm kết nối với pindn của bàn phím.

- Gắn vi điều khiển vào đế nạp 40 pin ( socket ) ở modul nạp của hệ thống 2.

3. Khởi động phần mềm, mở File mới và đặt tên file. 4. Viết chương trình với tên file vừa đặt :

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh quet phim dung he thong 1 ma phim hien thi tren 1led

;dung port 1 chua qua IC dem ket noi voi pinhd cua ban fim ;dung port0 va port 2 ket noi dieu khien led 7 doan

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx org 0000h

mov sp,#60h mov dptr,#0500h

mov p2,#0feh ;xuat ma quet cho 1 led sang mov p0,#7fh

main: lcall keypres ;goi chtr con quet phim cjne a,#0ffh,main1

sjmp main

main1: lcall gma_hthi ;goi chtr con giai ma hien thi sjmp main

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;Chuong trinh con giai ma fim nhan va hien thi ra 1 led 7 doan

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx gma_hthi: movc a,@a+dptr

mov p0,a ret

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;Chuong trinh con quet phim va chong doi phim

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx keypres: mov r3,#10 ;nhap so dem 10 lan

keypres1 : lcall KEY ;Neu co phim an thi co c=1 jc pn1 ;kiem tra tiep neu c = 1

ret ;Neu khong co phim nhan thi co c=0 pn1: djnz r3,keypres1 ;Quay ve lap lai chong nay

push acc ;Cat noi dung ma phim trong A keypres2: mov r3,#10 ;Nhap so dem 10 lan cho nha phim keypres3: lcall key ;Co phim nhan hay khong

jc keypres2 ;Co thi kiem tra lai (adsbygoogle = window.adsbygoogle || []).push({});

djnz r3,keypres3 ;Khong thi lap lai 50 lan va dam bao pop acc ;Khoi phuc lai gia tri cho A

ret ;ket thuc mot chuong trinh con

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;Chuong trinh con quet phim

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx key: mov r7,#0feh ;bat dau voi cot so 0(feh)

mov r6,#4 ;Su dung r6 lam bo dem mov r5,#00

key1: mov p1,r7 ;xuat ma quet ra cot

mov a,p1 ;Doc lai port1 de xu ly tiep theo anl a,#0f0h ;xoa 4 bit thap la hang

cjne a,#0f0h,key2 ;co nhan fim thi nhay mov a,r7

rl a ;xoay de chuyen den cot ke tiep mov r7,a

mov a,r5 ;chuyen ma fim sang cot ke add a,#4

mov r5,a

djnz r6,key1 ;Neu nhu sau moi lan 1 cot ma khong clr c ;clr c neu nhu khong co phim duoc an mov a,#0ffh ;thoat voi ma trong a = FFh

ret key2: swap a

key4: rrc a ;xoay sang phai tim bit 0 jnc key3 ;nhay neu (c)=0

inc r5 ;tang ma fim len cot ke

sjmp key4 ;tiep tuc cho den khi duoc (C)=0 key3: mov a,r5

setb c ret

;khai bao du lieu ma phim org 500h

mafim: db 0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0f8h db 080h,090h,088h,083h,0c6h,0a1h,086h,08eh end

5. Thực hiện các bước giống như bài chuẩn và xem kết quả cĩ hiển thị đúng yêu cầu hay khơng và hiệu chỉnh lại cho đúng.

III. Bài tập ứng dụng:

1. Hãy viết chương trình hiển thị chuỗi ‘-HA- NOI- ‘ trên 8 led và khi nhấn 1 phím số 1 thì chuỗi đĩ dịch chuyển sang trái.

2. Hãy viết chương trình hiển thị chuỗi ‘-HA- NOI- ‘ trên 8 led và khi nhấn 1 phím số 1 thì chuỗi đĩ dịch chuyển sang trái. Nhấn phím số 2 thì chuỗi dịch chuyển sang phải.

3. Hãy viết chương trình hiển thị chuỗi ‘-HA- NOI- ‘ trên 8 led và khi nhấn 1 phím số 1 thì tắt chuỗi nếu nhấn lại thì sáng chuỗi trở lại.

Một phần của tài liệu vi dieu khien (Trang 61 - 65)