Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
Đó là 1 chường trình chống nẩy phím khi sử dụng với bàn phím .
Vì khi bạn nhấn 1 phím do các phím sử dụng công tấc cơ khí ! thì khi 1 nút nhất xuống nó thường không chính xác rằng có 1 xung cạnh lên ,và thường có nhiễu xung nhỏ từ giá trí mức thấp cho đến mức cao ,và khi buông ra cũng vậy !
Professional Digital Genset & Hydraulic Furukawa ,Tamrock RockDrill
email:
forum : gensetvietnam.forumvi.com
Ở chương trình này, R2 tương ứng với quét 4 cột, R2 = 0,1,2,3
Khi kiểm tra hàng, nếu hàng bị tác động thì cộng giá trị hiện tại của R2 với giá trị tương ứng là 0, 4, 8, 12 với hàng 0,1,2,3.
Ví dụ, nếu đang kiểm tra cột 0, thì hiện tại R2 = 0, nếu hàng 0 bị tác động thì giá trị mã phím là 0, nếu hàng 1 thì là 1.
Nếu kiểm tra cột 4, R2 = 3, tương ứng hàng 0 bị tác động thì mã phím là 3, 1 là 7, ...
Giả sử phím chính xác là hàng 4 cột 4, thì mã phím là 3+12 = 15, được lưu trong A
ht:
mov b,#10
div ab
add a,#10
mov p2,a
acall delay3
mov a,b
add a,#0
mov p2,a
acall delay3
ret
dùng để hiện thị mã phím ra port2, ví dụ mã phím là 15, A/10 = 1 dư 5, B = 5.
Vậy gởi giá trị 1 ra Port2 sau khoảng thời gian delay thì gởi 5, để kiểm tra.
Không biết chương trình có chạy được kô bạn nhỉ, nhưng viết kiểu này mình cho là chưa được tốt lắm. ở phần tính toán mã phím.
Chương trình này có chút vấn đề:
1. Có ai lại vừa quét phím vừa hiển thị trên cùng 1 port bao giờ (quét phím dùng hết 8 chân port rồi)
2. Cách hiển thị cũng có vấn đề: ví dụ phím là 15 thì A/10+10=11=0BH=00001011b xuất giá trị này ra port 2 làm gì? Sau đó phần dư là 5 +0 =0 (dư 1 lệnh) lại xuất ra port 2 làm gì?
Đây là một đoạn code về bàn phím 4x4 mắc ở P1
Sau khi nhấn phím, mã bàn phím sẽ lưu ở biến Keycode và set bit cờ nhan
Đoạn code đã được chống rung phím và khi phím được nhã ra thì mới kết thúc chương trình:
;................................................. .....................
; CHUONG TRINH NAY KHI CO PHIM NHAN THI KIEM TRA XEM :
; PHIM NAO DUOC NHAN : KEYCODE
; CO NHAN PHIM KHONG : NHAN
BANPHIM:
CLR NHAN
MOV R4,#50 ; so 50 la so hop ly de chong rung
IN1: CALL GETKEY
JNC THOATIN2
DJNZ R4,IN1
MOV NHAN,C
PUSH ACC
IN2: MOV R4,#50 ; de phat hien phim duoc nha
IN3: CALL GETKEY
JC IN2
DJNZ R4,IN3
POP ACC
MOV KEYCODE,A
THOATIN2: RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; CHUONG TRINH NAY XAC DINH DUOC MA PHIM DA NHAN VAO KEYCODE VA SET BIT NHAN VA CO C
GETKEY: MOV A, #0FEH
MOV R6, #4
TEST: MOV P1, A
MOV R7, A
MOV A, P1
ANL A, #0F0H
CJNE A, #0F0H, KEYHIT
MOV A, R7
RL A
DJNZ R6, TEST
CLR C
SJMP EXIT
KEYHIT: MOV R7, A
MOV A, #4
CLR C
SUBB A, R6
MOV R6, A
MOV A, R7
SWAP A
MOV R5, #4
AGAIN: RRC A
JNC DONE
INC R6
INC R6
INC R6
INC R6
DJNZ R5, AGAIN
DONE: SETB C
MOV NHAN, C
MOV A, R6
EXIT: RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Cảm ơn bạn đã chia sẻ câu chuyện và quá trình phát triển sản phẩm của mình. Trước tiên, thật may mắn khi bạn vượt qua tai nạn và vẫn giữ được niềm đam mê cũng như khả năng sáng tạo trong lĩnh vực kỹ thuật. Việc bạn tiếp tục...
Bạn nên nghiên cứu cái chấn lưu đèn ống Compact fluorescent lamp hay đèn compact trước đã. Nó rẻ đỡ tốn kém.
Sau khi hiểu rõ rồi thì chuyển sang cái mạch này.
Ở cái chấn lưu, tần số của nó linh tinh lắm, tùy điện áp nguồn, tùy...
E có 1 laptop bị hỏng màn hình, e tháo ra thì thấy nó có 4 lớp , lớp ngoài cùng là 1 lớp nhựa rất mỏng màu hơi đen ( chắc là 1 loại film dán), tiếp theo là 1 lớp thủy tinh bị vỡ (màu đen) , đến 1 lớp thủy tinh trắng ( lớp này có...
Comment