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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Đấy gọi là cái "điểm gãy" trong đồ thị điện áp - dung lượng còn lại. Dùng điện áp hở cực để xác định sắp hết hoặc gần đầy thì vẫn tạm ổn. Dùng để đo SOC/DOD thì đừng. Ngay cả số km đã đi cũng chả xác định được...
Xin cảm ơn bác bqvietluônnhiệt tình cho biết nhiều thông tin quí báu, cảm ơn bạn mèomướpcó ví dụ đơn giản và dễ hiểu, cảm ơn tất cả đã bớt chút thời gian quí báu vào đây đọc bài.
Cảm ơn bác nhathung1101cho thông tin và chúc mừng bác mua được những tấm pin NLMT cực tốt theo...
Dạ chú nhat... cứ coi pin mặt trời như 1 cái ắc qui nhìu ngăn mắc nối tiếp ấy ạ. Khi 1 ngăn yếu thì cả cái ắc qui yếu luôn ạ. Nó có nhìu bộ nối tiếp mắc song song nên bị che 1 khoảng nhỏ ảnh hưởng nhìu nhưng chắc ko đến nỗi mất 50% đâu ạ...
Nếu nói bị cái lá che sáng mà giảm 50% thì tôi càng không tin, bởi trên vườn tôi mặc kệ ông trời làm vệ sinh.
Tức là lá tự rụng, gió tự dọn. Ai hơi đâu mà leo lên dọn. Nếu phải như thế thì tôi dek thèm lắp làm gì.
Comment