kiepcodon9111
04-06-2011, 10:36 PM
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
http://i1234.photobucket.com/albums/ff417/kiepcodon911/untitled.jpg
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 :((
đây là hình
http://i1234.photobucket.com/albums/ff417/kiepcodon911/untitled.jpg
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 :((