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 05-11-2007, 10:11 PM   #1
vantam_132
Nhập môn đệ tử
 
Tham gia ngày: May 2006
Bài gửi: 10
:
Thumbs up Pic điều Khiển động Cơ

chuơng trinh điều khiển động cơ cua mình nhưng chay duoc nhưng ko the chạy dược xin các bạn góp y cho



/*================================================= ===========================
* Ten chuong trinh: dieu khien dong co buoc dung pic
* Nguoi viet : nhom 16
* Hardware : PIC16F877A
* Compiler : CCS C
*================================================= ============================*/
#include<16F877A.h>
#include<def_16f877a.h>

#fuses NOWDT,PUT,HS,NOPROTECT,NOLVP
#use delay(clock=20000000)

int1 start,forward,back,nhanh;
int8 i,j,k,m,v,speed;

const unsigned char ma[]={0x01,0x02,0x04,0x08};

void quaynghich(void)

{
portd=ma[k];
delay_ms(speed);
k++;
if(k==4)
{
k=0;
}

}

void ktao(void)
{
trisd=0;
trisb=1;
}

void quaythuan()
{
portd=ma[m];
delay_ms(speed);
m--;
if(m==-1)
{
m=3;
}

}

void quetphim()
{ if (input(pin_b0))
{
start = !start;
}
if(input(pin_b1))
{
forward=!forward;
}
if (input(pin_b2))
{
back=!back;
}
if(input(pin_b3))
{
nhanh=!nhanh;
}
}

void main()
{

ktao();
V=4;
m=3;
k=0;

while(true)

{ quetphim();

while (start)

{
if(nhanh)

{ speed=90;
v=4;
if (forward)
{
quaythuan();
quetphim();
}
else if (back)
{
quaynghich();
quetphim();
}
}
else if (forward)
{
speed=200;
quaythuan();
quetphim();

}
else if (back)
{
speed=200;
quaynghich();
quetphim();
}
}
}
}





thay đổi nội dung bởi: vantam_132, 07-11-2007 lúc 01:36 PM.
vantam_132 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-11-2007, 03:32 PM   #2
vantam_132
Nhập môn đệ tử
 
Tham gia ngày: May 2006
Bài gửi: 10
:
ko ai tra lời giúp mình nhỉ
vantam_132 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-11-2007, 08:25 PM   #3
butu
Đệ tử 1 túi
 
Tham gia ngày: Nov 2005
Bài gửi: 18
:
Bạn muốn test thì gắn LED xem sao . Nếu cũng ko dc thì bạn xem lại phần cứng
butu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-11-2007, 08:24 PM   #4
vhl
Nhập môn đệ tử
 
Tham gia ngày: Oct 2007
Bài gửi: 3
:
trong phần example co modunl có thể ổn định. đảo chiều đấy.
vhl vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-11-2007, 11:52 PM   #5
scentoflove
Đệ tử 6 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 129
:
Mình đọc không hiểu câu hỏi của bạn "nhưng chay duoc nhưng ko the chạy dược". Nên mình chỉ đọc code và hiểu theo cách của mình có thể sai.

Các cờ start, forward, back, nhanh bạn không thiết lập các giá trị ban đầu mà trong hàm quetphim thi lại lấy bù!!!
Code này chạy động cơ 1 vòng thi dừng lại và quét phím tiếp nhưng hàm quetphim không sử dụng 1 vòng lặp nào mà chỉ là 4 hàm if.
_Như vậy lúc đầu tiên giả sử 4 cờ đều là 0 chương trình vào while(true) sẽ liên tục quét phím cho tới khi 1 phím được nhấn. Nếu bạn nhấn start thi cờ start=1 sau khi ra khỏi hàm quét phím thi vào while (start) và lúc này không có hàm nào trong while(start) được thực hiện vì các cờ đều =0 => chương trình chỉ nhận được tối đa 1 phím nếu bạn nhấn từng phím.
_Nếu bạn nhấn nhiều phím đồng thời ví dụ như start và forward, thì sau khi vào while (start) chương trình chạy else if (foward), sau khi chạy xong quay nghịch thì thực hiện quét phím nhưng vì chỉ có 4 hàm if nên quét phím rất nhanh nếu bạn không nhấn sẵn nút từ trước thì chương trình lại chạy lại từ while (start) và else if (forward) cứ như vậy quay theo 1 chiều ứng với hàm của bạn viết.
scentoflove vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-11-2007, 01:55 AM   #6
vantam_132
Nhập môn đệ tử
 
Tham gia ngày: May 2006
Bài gửi: 10
:
cảm ơn ban mình chưa chinh code lai thử nhưng nghe bạn phân tich thay minh co nhiều lỗi .mình sễ viết lai theo chi dẫn của bạn có gì thọ giáo tiep ^_^
vantam_132 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à 02:11 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