PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 08-04-2010, 12:32 AM   #1
kiemkhach10
Đệ tử 5 túi
 
Tham gia ngày: Jan 2010
Bài gửi: 114
:
dùng 1 nút bấm chuyển sang nhiều công việc?

chào các anh em!
đệ muốn hỏi chút^)^
dùng 1 nút bấm(giữ 5s ) làm công việc A.giữ(10s) thì chuyển sang công việc B.....
nếu như ko dùng timer mà chỉ dùng cổng I/O thông thường có làm được ko hả các sư huynh?
cám ơn nhiều!
kiemkhach10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2010, 12:39 AM   #2
gianghctb1
Đệ tử 2 túi
 
Tham gia ngày: May 2009
Bài gửi: 42
:
theo mình nghĩ thì được, bạn kiểm tra liên tục cổng I/O và sau 5s nếu cổng ra thay đổi mức tín hiệu thì bạn cho Jum tới 1 đoạn chương trình tương ứng, mình hy vọng đã giải đáp được đáp ứng của bạn
chúc vui
gianghctb1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2010, 12:41 AM   #3
gianghctb1
Đệ tử 2 túi
 
Tham gia ngày: May 2009
Bài gửi: 42
:
à quên, khi viết chương trình, bạn nên cẩn thận, nếu không rất dễ mắc phải là sau 5s làm công việc A, nhưng vẫn chưa thả phím ra >>đến 10s lại dừng công việc A và làm công việc b.... ^_^!việc này có thể giải quyết bằng các phát hiện thời điểm thôi bấm
chúc vui
gianghctb1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2010, 12:55 AM   #4
kiemkhach10
Đệ tử 5 túi
 
Tham gia ngày: Jan 2010
Bài gửi: 114
:
Trích:
Nguyên văn bởi gianghctb1 View Post
à quên, khi viết chương trình, bạn nên cẩn thận, nếu không rất dễ mắc phải là sau 5s làm công việc A, nhưng vẫn chưa thả phím ra >>đến 10s lại dừng công việc A và làm công việc b.... ^_^!việc này có thể giải quyết bằng các phát hiện thời điểm thôi bấm
chúc vui
cám ơn bạn! bạn có thể lấy 1 code nhỏ minh họa ko?
mình đang rất cần phần này!
viết bằng C nhé
cám ơn nhiều!
kiemkhach10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2010, 12:01 PM   #5
gianghctb1
Đệ tử 2 túi
 
Tham gia ngày: May 2009
Bài gửi: 42
:
bạn có thể tham khảo đoạn này, tất nhiên nó chưa thể chính xác được, nhưng đó là 1 cách, bạn có thể tham khảo, ở đây nếu thời điểm 10ms mà vẫn bấm, sau đó bỏ ra thì nó sẽ làm công việc A, với công việc B bạn có thể làm tương tự với việc cho thêm 1 vòng If nữa,tuy nhiên mình nghĩ bạn không nen dùng cách này do làm lãng phí khả năng tính toán của Pic, nên dùng timer thì hơn,do nếu dùng thế này thì VĐK không làm được gì ngoài việc "ngồi chờ" sự kiện
chúc vui
gianghctb1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2010, 12:02 PM   #6
gianghctb1
Đệ tử 2 túi
 
Tham gia ngày: May 2009
Bài gửi: 42
:
quên không chuyển code
# include <16F877.h>
#bit B0=portB.0

void main()
{

while (1)
{
delayms(10);
if B0=0
{
delayms(10);
if b0=1 {A()};
}
}



}
gianghctb1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2010, 05:29 PM   #7
kiemkhach10
Đệ tử 5 túi
 
Tham gia ngày: Jan 2010
Bài gửi: 114
:
Trích:
Nguyên văn bởi gianghctb1 View Post
quên không chuyển code
# include <16F877.h>
#bit B0=portB.0

void main()
{

while (1)
{
delayms(10);
if B0=0
{
delayms(10);
if b0=1 {A()};
}
}



}
như vậy cũng ko ổn lắm bạn à?
như vậy vòng lặp sẽ quet chậm lắm.
kiemkhach10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2010, 07:13 PM   #8
gianghctb1
Đệ tử 2 túi
 
Tham gia ngày: May 2009
Bài gửi: 42
:
chính xác là sẽ như thế, nếu dùng như vậy thì cứ 10ms với quét 1 lần, nếu bạn thả tay trong khoảng 10ms thì chắc sẽ không ổn rồi;thế nên mình nghĩ bạn nên dùng timer, như thế chắc sẽ tốt hơn
thân!
gianghctb1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-04-2010, 12:20 AM   #9
kiemkhach10
Đệ tử 5 túi
 
Tham gia ngày: Jan 2010
Bài gửi: 114
:
Trích:
Nguyên văn bởi gianghctb1 View Post
chính xác là sẽ như thế, nếu dùng như vậy thì cứ 10ms với quét 1 lần, nếu bạn thả tay trong khoảng 10ms thì chắc sẽ không ổn rồi;thế nên mình nghĩ bạn nên dùng timer, như thế chắc sẽ tốt hơn
thân!
bạn cho mình 1 code nhỏ như một vidu về timer nhé.
cám ơn nhiều!
kiemkhach10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-04-2010, 12:29 AM   #10
gianghctb1
Đệ tử 2 túi
 
Tham gia ngày: May 2009
Bài gửi: 42
:
trời cái này bạn tham khảo rất nhiều trong diễn đàn mà, mình đâu dám múa rừu qua mắt thợ ^_^ thông cảm nhé!
thân!
gianghctb1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-04-2010, 12:34 AM   #11
kiemkhach10
Đệ tử 5 túi
 
Tham gia ngày: Jan 2010
Bài gửi: 114
:
Trích:
Nguyên văn bởi gianghctb1 View Post
trời cái này bạn tham khảo rất nhiều trong diễn đàn mà, mình đâu dám múa rừu qua mắt thợ ^_^ thông cảm nhé!
thân!
vì mới tìm hiểu nên mình rất gà.bạn biết đến đâu chỉ bảo cho mọi người biết đến đó,vậy mới quý chứ
cám ơn nhiều!
kiemkhach10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-04-2010, 01:27 AM   #12
gianghctb1
Đệ tử 2 túi
 
Tham gia ngày: May 2009
Bài gửi: 42
:
xin lỗi bạn, không phải là mình dấu nghề đâu, mình cũng gà như bạn thôi, mình đã đưa ra thuật toán của mình, bạn phải tự tìm hiểu nguyên tắc hoạt động của timer thôi, cái này nói thật mình không giúp được
Thân
gianghctb1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-04-2010, 07:29 AM   #13
kiemkhach10
Đệ tử 5 túi
 
Tham gia ngày: Jan 2010
Bài gửi: 114
:
Trích:
Nguyên văn bởi gianghctb1 View Post
xin lỗi bạn, không phải là mình dấu nghề đâu, mình cũng gà như bạn thôi, mình đã đưa ra thuật toán của mình, bạn phải tự tìm hiểu nguyên tắc hoạt động của timer thôi, cái này nói thật mình không giúp được
Thân
vậy cám bạn nhé!
chúc một ngày vui vẻ
kiemkhach10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-04-2010, 12:00 AM   #14
94469303
Nhập môn đệ tử
 
94469303's Avatar
 
Tham gia ngày: May 2008
Bài gửi: 3
:
Trích:
Nguyên văn bởi kiemkhach10 View Post
chào các anh em!
đệ muốn hỏi chút^)^
dùng 1 nút bấm(giữ 5s ) làm công việc A.giữ(10s) thì chuyển sang công việc B.....
nếu như ko dùng timer mà chỉ dùng cổng I/O thông thường có làm được ko hả các sư huynh?
cám ơn nhiều!
theo mình nghĩ la được , bạn hãy dùng biến đếm khi nhấn cái la đếm buông ra la dừng và so sánh biến đếm đó với giá trị cần thưc thi
94469303 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-04-2010, 02:46 PM   #15
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi kiemkhach10 View Post
chào các anh em!
đệ muốn hỏi chút^)^
dùng 1 nút bấm(giữ 5s ) làm công việc A.giữ(10s) thì chuyển sang công việc B.....
nếu như ko dùng timer mà chỉ dùng cổng I/O thông thường có làm được ko hả các sư huynh?
cám ơn nhiều!
theo mình thì từ lúc nhấn phím đến lúc nhả phím nếu<5s thì làm công việc A
còn>5s làm công việc B .Bạn ấn định thời gian chính xác như vậy thì viết chương trình khó mà đáp ứng chính xác được.
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


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à 05:13 PM.


Đượ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