View Full Version : Help!!! Xử lý ngắt bấm phím
Jerry
05-10-2006, 03:54 PM
Em dùng PortB nối với phím bấm để tạo ngắt onchange. Nhưng em vẫn chưa hiểu cách quét phím bấm vì nghe nói còn phải có trễ bấm phím, trễ nhả phím...gì đó. Nói chung em chưa có kinh nghiệm. Mong bác Nam, bác Falleaf cùng các cao thủ Picbang chỉ giáo, viết cho em 1 đoạn chương trình mô tả việc này với ạ. Thanks các bác nhiều nhiều, vote các bác nghìn sao luôn nhé.
Jerry
05-10-2006, 04:16 PM
Chương trình của em đây ạ, em viết chưa có đoạn xử lý trễ bấm phím, nhả phím :
#DEFINE ScrButton PortB,6
#DEFINE ResetButton PortB,7
.....................
OnChange_INT:
movf PORTB,0 ;End mismatch
bcf INTCON,RBIF
btfss INTCON,RBIE
goto Exit_ISR
btfss ScrButton
goto Button
btfss ResetButton
goto Reset
goto Exit_ISR ; Thoat ngat
Reset:
btfss ScrButton_F
goto Exit_ISR
bcf ScrButton_F
bsf ModeSelect,1
; do some other work
goto Exit_ISR
Button:
bsf STATUS,RP0 ;
bcf OPTION_REG,T0CS ;
bsf INTCON,T0IE ;Activate and enable TMR0
bsf ScrButton_F
; do some other works
goto Exit_ISR
Nếu xử lý thêm trễ bấm phím, nhả phím thì phải viết như thế nào hả các bác??? Mong các bác nhanh tay kíu giúp em với!!!
Jerry
05-10-2006, 04:18 PM
Úi giời, chẳng biết viết như thế nào cho nó dễ nhìn. Post code nhìn 1 cục thế kia rối hết cả mắt. Mod ơi, dạy em cách post code sao cho dễ nhìn với!!!
namqn
05-10-2006, 07:11 PM
Úi giời, chẳng biết viết như thế nào cho nó dễ nhìn. Post code nhìn 1 cục thế kia rối hết cả mắt. Mod ơi, dạy em cách post code sao cho dễ nhìn với!!!
Bạn chọn đoạn code cần định dạng, sau đó nhấn vào nút có hình dấu "#" (Wrap [CODE] tags around selected text), nút này ở phía bên phải thanh công cụ phía trên cửa sổ soạn thảo.
Thân,
Jerry
05-10-2006, 08:21 PM
Ơ cái bác Nam này lười quá, không giúp em viết chương trình tí à. Hí hửng thấy bài reply tưởng được bác trả lời... Còn đại ca falleaf đâu mất tiêu roài???
falleaf
05-10-2006, 10:50 PM
Câu hỏi của em chả hiểu là câu hỏi gì, nên không trả lời được. Em đặt câu hỏi cho rõ ràng, và tránh kiểu viết mập mờ lưng tưng.
Em nên đọc bài này
http://www.picvietnam.com/forum//showthread.php?t=530
Em xác định rõ những gì em muốn hỏi, những gì em muốn làm, thì mọi người mới giúp em được, bởi vì mọi người rất bận, nếu có đọc bài của em thì cũng chỉ đọc lướt qua để xem, nếu thấy không rõ ràng, sẽ không ai trả lời cho em đâu.
Chúc vui.
phamthaihoa
06-10-2006, 12:48 AM
Em dùng PortB nối với phím bấm để tạo ngắt onchange. Nhưng em vẫn chưa hiểu cách quét phím bấm vì nghe nói còn phải có trễ bấm phím, trễ nhả phím...gì đó. Nói chung em chưa có kinh nghiệm. Mong bác Nam, bác Falleaf cùng các cao thủ Picbang chỉ giáo, viết cho em 1 đoạn chương trình mô tả việc này với ạ. Thanks các bác nhiều nhiều, vote các bác nghìn sao luôn nhé.
Khi bấm phím, do kết cấu cơ khí không tốt sẽ tạo ra rất nhiều xung kim tại thời điểm bạn bấm, nếu bạn không xử lý thì nó sẽ vào ngắt rất nhiều lần. Điều này không chỉ xảy ra với việc bấm phím mà còn xảy ra khi nhả phím.
Cách khác phục thì có nhiều cách, nếu dùng phần cứng thì dùng một mạch RC đơn giản, còn dùng phần mềm thì cách đơn giản nhất là khi có phím bấm, tức là xảy ra ngắt onchange, bạn disable ngắt đó đi, sau đó relay khoảng 50-300ms để qua đoạn xung nhiễu, sau đó bạn đọc lại mức ở chân phím bấm, có thể đọc một vài lần cho chắc, nếu nó vẫn giữ nguyên giá trị thì bạn bắt đầu xử lý và tất nhiên phải enable ngắt để còn xử lý tiếp.
Code nguồn thì bạn phải tự thân vận động, không ai có thời gian mà ngồi viết cho bạn đâu.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.