PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > MPASM

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ...

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 18-11-2009, 10:50 PM   #1
hahahaa3pro
Nhập môn đệ tử
 
Tham gia ngày: Apr 2009
Bài gửi: 3
:
chống rung nút nhấn

SCAN_BUTTON

movff key2,key3
movff key1,key2
movff PORTD,key1
movff key1,W ; W=key1
cpfseq key2 ;key2 = key1 -> bo qua lenh tiep theo
goto EXIT_SCAN
cpfseq key3 ;key3 =key1 -> bo qua lenh tiep theo
goto EXIT_SCAN

dcfsnz timeout ;bo qua lenh tiep theo neu khac 0 ( neu =0 thi lam)
call clear_key
movff key,W ; key la bien luu gia tri cua nut khi dc nhan
cpfseq key1 ; bo qua lenh ke tiep neu = W
goto SCAN_BUTTON1
goto EXIT_SCAN
SCAN_BUTTON1
movff key1,key
movlw .1
cpfseq flag ;neu flag = 1, nhan lan dau tien
goto LANSAU
movlw .100
movwf timeout
INCF PORTB
movlw .0
movwf flag
EXIT_SCAN
return
LANSAU
movlw .0
cpfseq key1
goto subkey
movlw .1
movwf flag
return
subkey
movlw .100
movwf timeout
INCF PORTB
return

Đây là đoạn code chống rung phím nhấn và kiểm tra phím bị đè.
Ý tưởng là sử dụng ngắt. Cứ 10ms thì sẽ kt giá trị nút nhấn. Nếu 3 lần như nhau thì nút được nhấn và tăng PORTB lên 1. Nếu nút bị đè thì sau tg là 1s mới tích cực lại nút nhấn.
Chương trình này mình test trên protues thì chạy sai. Nếu mà nhấn 1 lần thì PortB nó tăng lên 6,7 :|
Hi vọng các bạn giúp mình tìm ra lí do tại sao lại bị sai như vậy.
Thanks các bạn nhiều.
( Vì mình hok bit cách post code nên nhờ mod sửa giùm, thanks mod nhìu )
hahahaa3pro vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 10:34 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam