THỰC HÀNH VI XỬ LÝ - Khoa Khoa học và Kỹ thuật Máy tính
THỰC HÀNH VI XỬ LÝ - Khoa Khoa học và Kỹ thuật Máy tính
THỰC HÀNH VI XỬ LÝ - Khoa Khoa học và Kỹ thuật Máy tính
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Trường ĐH. Bách <strong>Khoa</strong> TP.HCM <strong>Khoa</strong> KH & KTMT<br />
MOVWF KeyReg1<br />
EXIT_GET_KEY<br />
MOVFF COL,W<br />
ADDWF KeyReg1,d<br />
RETURN<br />
Bước 7: Dựa <strong>và</strong>o hàm Get_key ở trên ta có thể hoàn thiện hàm<br />
Scan_button một cách dễ dàng. Ở đây ta nhắc lại cách mà sử lý phím để nhận dữ<br />
liệu ngược trở về là tại một thời điểm chỉ cho một cột được tích cực (ở đây là mức<br />
0) sau đó đọc ngược giá trị từ các hàng. Hàng 1 tương ứng với cột 1 là số 0, tương<br />
tự hàng 2 với cột 1 là số 4…<br />
Khi nhấn phím thì sẽ có hiện tượng rung phím, để giải quyết trường hợp<br />
này ta có một cách giải quyết ở đây là đọc dữ liệu 3 lần liên tiếp mỗi lần cách nhau<br />
10ms, sau đó so sánh 3 giá trị đọc được. Nếu 3 giá trị bằng nhau thì ta xem như có<br />
một nút nhấn được nhấn. Trong hàm Scan_button ta dùng 3 biến KeyReg1,<br />
KeyReg2 <strong>và</strong> KeyReg3 để lưu giá trị của 3 lần đọc dữ liệu liên tiếp, khi kiểm tra 3<br />
biến này có giá trị bằng nhau thì ta sẽ lưu <strong>và</strong>o biến KeyReg <strong>và</strong> xuất dữ liệu ra<br />
PORTB.<br />
Scan_button<br />
MOVFF KeyReg2,KeyReg3<br />
MOVFF KeyReg1,KeyReg2<br />
MOVLW 0x0E<br />
MOVWF temp_wr<br />
MOVLW .0<br />
MOVWF COL<br />
CALL GET_KEY<br />
MOVLW 0x0D<br />
MOVWF temp_wr<br />
MOVLW .1<br />
MOVWF COL<br />
CALL GET_KEY<br />
MOVLW 0x0B<br />
MOVWF temp_wr<br />
MOVLW .2<br />
MOVWF COL<br />
CALL GET_KEY<br />
MOVLW 0x07<br />
MOVWF temp_wr<br />
Bộ môn <strong>Kỹ</strong> Thuật <strong>Máy</strong> Tính 53 Thực hành Vi xử lý