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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Trừ trường hợp công suất (rất) thấp, hầu như tất cả các loại nguồn xung thông thường đều có tụ nhỏ 1 - 10nF nối giữa sơ cấp và thứ cấp, để thoát nhiễu và để chống hiện tượng tương tự tĩnh điện. Vụ này đã thảo luận vài...
Dạ chú sắm con át chống giật và thay nguồn tổ ong khác cho an toàn ạ. Đa phần nguồn xung đều xả nhiễu của bên thứ cấp về điện lưới qua 1 con tụ nên cảm giác tê sẽ khó xác định rõ ràng là do rò điện hay là nó vốn vậy...
Xin chào mọi người. E có sử dụng 1 cục nguồn tổ ong 12v-30A chạy đèn led xe trà sữa. Mà thợ thi công bị rò điện nên điện rò ra khung xe. E dùng đồng hồ đo điện ở khung xe và cả output thì thấy có dòng điện xoay chiều hơn 100v. Nên chạm...
Comment