PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT 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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 04-06-2011, 10:36 PM   #1
kiepcodon9111
Nhập môn đệ tử
 
Tham gia ngày: Apr 2011
Bài gửi: 2
:
ai giUp em css đIều khiển tỐc đỘ động cƠ hiỆn thi lên led 7 thanh vOi :((

em đang làm bài tập lớn môn vxl vỚi cOn pic16f877a em đã viết code mà chỉ điều khiển được tốc động cƠ . à em sử dụng đỘng cƠ có enconder để đọc xung rồi hiện thị lên led nhƯng khi chạy thì khÔng hiện thị được tốc đỘ ai giúp em vơi ((
đây là hình



còn đây là code ạ



#include <16f877a.h>
#fuses noprotect,nowdt,nolvp,xt,put
#device pic16f877a*=16adc=10
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(c)
#use fast_io(b)
#byte portc=0x07
#byte porta=0x05
#byte portb=0x06
#byte option_reg=0x81
#byte timer0=0x01
#bit c2=portc.2
#bit a1=porta.1
#bit a2=porta.2
#bit p5=option_reg.5
#bit p4=option_reg.4
#bit p3=option_reg.3
int x,i,chuc,dv;
int a[10]={129,207,146,134,204,164,160,143,128,132};
void doc_adc();

void xuat_xung();
void hienthi();
void main()
{
set_tris_a(0b10001);
set_tris_c(0);
set_tris_b(0);
while(true)
{
doc_adc();
x=read_adc();
xuat_xung();

p5=1;
p4=1;
p3=1;

chuc=timer0/10;
dv=timer0%10;
timer0=0;
for(i=0;i<=49;i++)
{
a2=0;
a1=1;
portb=a[chuc];
delay_ms(10);
a2=1;
a1=0;
portb=a[dv];
delay_ms(10);
}
}
}
void doc_adc()
{
setup_adc(adc_clock_div_4);
setup_adc_ports(AN0);
set_adc_channel(0);
delay_ms(5);
}
void xuat_xung()
{
setup_ccp1(ccp_pwm);
set_pwm1_duty(x);
setup_timer_2(t2_div_by_16,255,1);
}



em gƯởi kèm cả file rồi mong các bac giúp cho khÔng là em bay mÔn vxl (
File Kèm Theo
File Type: rar do an.rar (23.5 KB, 32 lần tải)
kiepcodon9111 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-06-2011, 09:44 AM   #2
kiepcodon9111
Nhập môn đệ tử
 
Tham gia ngày: Apr 2011
Bài gửi: 2
:
dien dan toan bzO saO khOng ai jup em vay (((
kiepcodon9111 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-06-2011, 12:18 AM   #3
elvies
Nhập môn đệ tử
 
Tham gia ngày: Oct 2010
Bài gửi: 4
:
Bạn nên đi chầm chậm, học cái nào chắc cái đấy!

Gợi ý:
+ Bạn đọc ADC để điều xung, tốt.
+ Bạn dùng chân counter để đếm xung, tốt với đồ án bạn làm, nhưng nếu muốn phát triển thành điều khiển PID thì nên dùng ngắt ngoài để đếm xung và kiểm tra chiều.(3 chân gần nhau của motor encoder là 3 chân xung x, y, z chứ ko phài một chân nguồn và một chân mass như bạn nghĩ nha.)
+Giá trị timer bạn đọc về mình chưa bao giờ làm nhưng theo lí thuyết của bạn thì hình như là giá trị couter đọc được, tuy nhiên hàm quét led của bạn là ko ổn, cũng như cách bạn viết chương trình khá là cẩu thả.
Nếu có hứng thú thì bạn có thể email cho mình, mình sẽ hướng dẫn bạn cụ thể hơn.

quangkhuon01g@gmail.com
08DTD-Hutech
Y!m: elviestran

thay đổi nội dung bởi: elvies, 20-06-2011 lúc 12:46 AM.
elvies 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:29 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