tui là người mới lập trình VDK, đang gặp phải bài viết chương trình quét bàn phím bằng 89c51, bạn nào co thể giúp được ko vậy.
Thông báo
Collapse
No announcement yet.
help me!!!!
Collapse
X
-
Vấn đề này cũng đơn giản thôi.
TRước hết bạn phải bố trí các phím thế nào sao cho tích kiệm chân vdk nhất. Người ta thường làm dạng vuông ví dụ 3*3 hoặc 4*4, bạn sẽ mất 6 hoặc 8 chân để làm việc này.
Bạn nối chân của nút bấm thành hàng và cột.
Ví dụ hàng nối với p1-->p3, cột nối với p4-->p6., nhớ cho thêm trở 220 trước khi cho chân vdk.
Có một vấn đề nữa là hiện tượng rung, do thiết kế cơ khí nên khi bạn bấm nút sẽ ta ra rất nhiều xung kim nên bạn sẽ phải chống rung bằng phần mềm.
Việc quét phím được thực hiện qua hai lần là quét hàng và quét cột hay ngược lại.
Trước hết bạn cho hàng lên mức cao, các cột ở mức thấp, nếu một phím ở hàng được bấm thì cột tương ứng sẽ xuống mức thấp, bạn lại cho cột vừa ở mức thấp lên mức cao, tất cả các hàng mức thấp. Do thời gian bạn giữ phím cỡ vài trăm ms trong khi thời gian xử lý của vdk cỡ us, nên hàng có phím bấm (nối với cột có mức cao vừa được set lên) sẽ có mức cao. từ đó bạn xác định được phím nào được bấm.
Khi phát hiện sự thay đổi mức khi có phím bấm bạn phải có vài lệnh nop để chống rung.
-
Cho bác một chương trình mẫu này.Tôi thấy chương trình này dễ hiểu nhưng không ngắn gọn cho lắm. CỦa một bác nào trên diễn đàn mà tôi không nhớ tên. Xin lỗi vì chưa xin phép nhé.
P0 nối với led 7 đoạn
#include <sfr51.inc>
org 00h
ljmp main
org 0bh
ljmp ngattimer0
org 40h
;************************************************* *********
main:
mov sp,#5fh
lcall khoitao
mainloop:
lcall quetphim
sjmp mainloop
khoitao:
mov dptr,#table
mov r1,#0
mov tmod,#01h
setb et0
setb ea
mov th0,#high(-10000)
mov tl0,#low(-10000)
setb tr0
ret
ngattimer0:
push psw
push acc
mov th0,#high(-10000)
mov tl0,#low(-10000)
lcall quetled
pop acc
pop psw
reti
quetled:
mov a,r1
movc a,@a+dptr
mov p0,a
nop
clr p3.6
ret
delay1ms:
mov r2,#100
delay1msloop:
nop
nop
nop
nop
nop
nop
nop
nop
djnz r2,delay1msloop
ret
delay10ms:
lcall delay1ms
lcall delay1ms
lcall delay1ms
lcall delay1ms
lcall delay1ms
lcall delay1ms
lcall delay1ms
lcall delay1ms
lcall delay1ms
ret
quetphim:
mov p2,#11110000b
jnb p2.4,chongrung
jnb p2.5,chongrung
jnb p2.6,chongrung
jnb p2.7,chongrung
ret
chongrung:
lcall delay10ms
jnb p2.4,hang1
jnb p2.5,hang2
jnb p2.6,hang3
jnb p2.7,hang4
ret
hang1:
setb p2.0
setb p2.1
setb p2.2
setb p2.3
clr p2.4
nop
jnb p2.0,phim1
jnb p2.1,phim2
jnb p2.2,phim3
jnb p2.3,phim4
ret
hang2:
setb p2.0
setb p2.1
setb p2.2
setb p2.3
clr p2.5
nop
jnb p2.0,phim5
jnb p2.1,phim6
jnb p2.2,phim7
jnb p2.3,phim8
ret
hang3:
setb p2.0
setb p2.1
setb p2.2
setb p2.3
clr p2.6
nop
jnb p2.0,phim9
jnb p2.1,phim10
jnb p2.2,phim11
jnb p2.3,phim12
ret
hang4:
setb p2.0
setb p2.1
setb p2.2
setb p2.3
clr p2.7
nop
jnb p2.0,phim13
jnb p2.1,phim14
jnb p2.2,phim15
jnb p2.3,phim16
ret
phim1:
jnb p2.0,$
mov r1,#0
ret
phim2:
jnb p2.1,$
mov r1,#1
ret
phim3:
jnb p2.2,$
mov r1,#2
ret
phim4:
jnb p2.3,$
mov r1,#3
ret
phim5:
jnb p2.0,$
mov r1,#4
ret
phim6:
jnb p2.1,$
mov r1,#5
ret
phim7:
jnb p2.2,$
mov r1,#6
ret
phim8:
jnb p2.3,$
mov r1,#7
ret
phim9:
jnb p2.0,$
mov r1,#8
ret
phim10:
jnb p2.1,$
mov r1,#9
ret
phim11:
jnb p2.2,$
mov r1,#10
ret
phim12:
jnb p2.3,$
mov r1,#11
ret
phim13:
jnb p2.0,$
mov r1,#12
ret
phim14:
jnb p2.1,$
mov r1,#13
ret
phim15:
jnb p2.2,$
mov r1,#14
ret
phim16:
jnb p2.3,$
mov r1,#15
ret
table:
db 0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0d8h,080h,090h, 88h,83h,0c6h,0a1h,86h,08eh
endAi nên khôn mà chẳng dại đôi lần.
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Máy đo khuôn mẫubởi vi van phamQuá dễ, Mua cái máy xq quét tòan thân, lấy bàn và khung di chuyển. Tháo đầu xquang ra bán ve chai, mua cái máy siêu âm gắn vào vị trí đầu đèn. Setup máy là chạy chính xác, còn file Setup thì chưa nghĩ ra....
-
Channel: Đo lường và điều khiển dùng máy tính
07-06-2026, 08:49 -
-
Trả lời cho Máy Phun sương tạo ầm Trung Quốc.bởi nguyendinhvanMạch tạo sương là tự dao động.
Mach 555 là đóng mở chu kỳ tần số thấp.
IC 555 giá rẻ, chỉ chạy lên tần số vài trăm ki lô hẹc thôi. Thăng cao hơn là méo dạng rồi tịt.
Mach sương thì dao động tần số tầm 2 mê ga hẹc cơ !...-
Channel: Tâm tình dân kỹ thuật
07-06-2026, 00:09 -
-
bởi nguyendinhvan
Cái máy đo này mắc tiền quá !
Anh em dtvn có giải pháp nào tự chế được không ?...-
Channel: Đo lường và điều khiển dùng máy tính
07-06-2026, 00:00 -
-
bởi nguyendinhvanOi giời.
Thơi buổi PLC rồi, cậu còn hỏi mấy thứ cổ lỗ sĩ này nữa.-
Channel: Tâm tình dân kỹ thuật
06-06-2026, 22:59 -
-
bởi nguyendinhvanChuyện này cũ rồi.
Họ trả lương cho CN, sau đó lại bán hàng thu tiền về. Họ còn cấp các dịch vụ như chỗ ăn ở, quán cafe , giải trí, phương tiện giao thông. Mục đích là thu tối đa số tiền đã chi trả.
Hàng hóa sx ra, chuyển...-
Channel: Tìm mua
06-06-2026, 22:56 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phambao nhiêu năm quên bẳng đi, là mình còn có 1 chút xíu nghệ thuật bài bản, đã dạy cho con cháu chơi đàn, dù bố mẹ và chúng không xem là quan trọng. Hôm qua ngày bế mạc lớp lá, bỗng dưng thằng cháu ngoại thấy con bé được sơ giới thiệu...
-
Channel: Tâm tình dân kỹ thuật
06-06-2026, 21:58 -
-
bởi ittcChào các anh em, tình hình là mình lo làm ăn không để ý sức khỏe, giờ có chút vấn đề rồi? không biết trên này có anh em nào độ tuổi U35 -> 40 đang có dùng các loại thuốc, thuốc bổ hay thực phẩm chức năng giúp bổ thận tráng dương,...
-
Channel: Tâm tình dân kỹ thuật
05-06-2026, 12:28 -
-
bởi theidiotcatTrong thế giới phần cứng năm 2026, AMD Ryzen 5 7500X3D không chỉ là một cái tên mới, nó là một tuyên ngôn về hiệu suất. Dựa trên các thử nghiệm khắt khe trong môi trường chơi game chuyên nghiệp, con chip này đã chứng minh rằng: bạn không cần...
-
Channel: Đánh giá sản phẩm DTVN
05-06-2026, 10:05 -
-
bởi VinhPham92Chào các bác,
Em vừa dự một cái Odoo Business Show 2026 tuần rồi, ngồi nghe mấy session về tự động hóa sản xuất mà em thấy có vài điểm thấy đáng chia sẻ với mấy anh em làm kỹ thuật ở đây.
Câu hỏi của các doanh nghiệp.
Hôm đấy đi thì các doanh...-
Channel: Lập trình PLC và ứng dụng
05-06-2026, 09:18 -
-
bởi quang4789Mình có cái tay chuyển số chơi game của PXN, hiệu là PXN shifter A7, nó bị lỗi 1 con biến trở chỗ gạt lên xuống dùng để xác định là đang đẩy lên, ở giữa, hay gạt về. Con biến trở này giá trị là 10kOhm, sau khi bị hư thì mình đo chỉ...
-
Channel: Hướng dẫn tìm thông tin linh kiện
03-06-2026, 12:04 -

Comment