PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   đo thời gian bấm nút (http://www.picvietnam.com/forum/showthread.php?t=10247)

qloi 20-07-2011 02:56 PM

đo thời gian bấm nút
 
mìh đang làm đồ án cần đo thời gian bấm nút.mình đã viết được chương trình đọc thời gian bằng 2module CCP1 va CCP2.Vấn đêg bây giờ là mình xài Pic16f88 chỉ có 1 module CCP.Vậy làm sao để thực hiện chỉ với 1 module bác nào rành phần này chỉ mình với.có code minh họa cành tốt nhé.

haohao 21-07-2011 06:25 PM

Dùng thêm một bộ Timer đi bạn..

lionking 22-07-2011 05:21 PM

2 Attachment(s)
Trích:

Nguyên văn bởi qloi (Post 47172)
mìh đang làm đồ án cần đo thời gian bấm nút.mình đã viết được chương trình đọc thời gian bằng 2module CCP1 va CCP2.Vấn đêg bây giờ là mình xài Pic16f88 chỉ có 1 module CCP.Vậy làm sao để thực hiện chỉ với 1 module bác nào rành phần này chỉ mình với.có code minh họa cành tốt nhé.

bản chất của 2 module CCP1 & CCP2 (VD: PIC6F877A) là dùng chung một bộ timer1 vì vậy lên nếu ban đo đồng thời 2 nút 1 lúc thì kết quả sẽ không còn đúng . vì vậy bạn phải đo lần lượt từng nút một ,giải pháp là bạn vẫn dùng 1 bộ CCP1 để đo cho 2 nút bấm = cách đấu song song 2 nút đó với nhau nhưng thêm 2 chân nữa để xác định nút nào được bấm , ban xem sơ đồ sau sẽ rõ hơn.

lionking 22-07-2011 05:29 PM

1 Attachment(s)
Trích:

Nguyên văn bởi qloi (Post 47172)
mìh đang làm đồ án cần đo thời gian bấm nút.mình đã viết được chương trình đọc thời gian bằng 2module CCP1 va CCP2.Vấn đêg bây giờ là mình xài Pic16f88 chỉ có 1 module CCP.Vậy làm sao để thực hiện chỉ với 1 module bác nào rành phần này chỉ mình với.có code minh họa cành tốt nhé.

mình xem lại datasheet thì còn thêm được cách này nữa :
RB0 và RB3 đều nối chung đến CCP1 nên ta nối thẳng vào nút bấm 1 và 2 sau đó khi ngắt capture xảy ra ta đọc giá trị và thêm câu lệnh

if( RB0 ==1 ) // => nút 1
if( RB3 ==1 ) // => nút 2

qloi 27-07-2011 03:01 PM

mình dùng 2 CCP 1 kái bắt cah lên , một bắt cạnh xuống sau đó trừ 2 thanh ghi này cho nhau thì cho ra kết quả đúng mà bạn?? mục tiêu của bài này là đo thời gian 1 vật cản đi wa 1 cảm biến hồng ngoại với tốc độ khá cao.ví dụ như rơi tự do nên phải dùng 1 cảm biến trên đường đi của vật. Theo như cách của bạn Lion thì mình phải lần lượt bấm từng nút mới xác định được thời gian giửa 2 lần bấm nhưng ý mình là chỉ dùng 1 nút , ấn vào là bắc đầu tính thời gian cho tới khi nhả nút ra thì dừng lại và lấy kết quả đó?? với chỉ 1CCP cua pic 16f88

gianghctb1 04-08-2011 10:35 AM

nếu bạn chú ý thì có hoàn toàn có thể làm được, bạn nên dùng timer của VĐK để định nghĩa ra 1 cái gọi là timming cho chính mình để tiện dùng, với timming này thì bạn quét bao nhiêu phím chẳng được (tất nhiên là không quá nhiều đến mức là vđk không kịp xử lý)


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam