View Single Post
Old 17-01-2012, 04:11 PM   #1
thanvankien
Nhập môn đệ tử
 
Tham gia ngày: May 2010
Bài gửi: 1
:
các pro giúp em với! dùng pic 18f4520 cho lập trình hai động cơ

em lập trình cho hai động cơ, nhưng báo lỗi nhiều qua, mà không biết lỗi ở đâu, ai giúp em với, thanks

Chương Trình :
Code:
#include <18f4520.h>
#include <def_4520.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)

void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF|ADC_TAD_MUL_0);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab

   // TODO: USER CODE!!

#define pwm1 output_high(pin_d0); delay_ms(70); output_low(pin_d0); delay_ms(30);
#define pwm2 output_high(pin_d2); delay_ms(70); output_low(pin_d2); delay_ms(30);
#define DC1_1 output_high(pin_d1)
#define DC1_0 output_low(pin_d1)
#define DC2_1 output_high(pin_d3)
#define DC2_0 output_low(pin_d3)
#define PHIM_BAM  PORTA

/* KHAI BÁO CÁC CHUONG TRÌNH CON */
{void motor_left_forward();
void motor_left_reverse();
void motor_right_forward();
void motor_right_reverse();
void forward();
void reverse();
void turn_left();
void turn_right();


/* CAC CHUONG TRINH CON */
// DC TRAI THUAN
void motor_left_forward()
{
  int8 i=100;
  DC1_1; // set xung dieu khien =1;
  while(i--){pwm1;}
   }
// DC TRAI NGUOC
void motor_left_reverse()
{
  int8 k=100;
  DC1_0 ;   // reset xung dieu khien ve gtri 0
  while(k--){pwm1;}
  }
// DC PHAI THUAN
void motor_right_forward()
{
  int8 l=100;
  DC2_1 ;   // reset xung dieu khien ve gtri 0
  while(l--){pwm2;}
 
}
// DC PHAI CHAY NGUOC
void motor_right_reverse()
{
  int8 m=100;
  DC2_0 ;   // reset xung dieu khien ve gtri 0
  while(m--){pwm2;}
  }
// TIEN
void forward()
{
motor_left_forward();
motor_right_forward();
}
// LUI
void reverse()
{
motor_left_reverse();
motor_right_reverse();
}
// QUAY TRAI
void turn_left()
{
motor_left_forward();

}
// QUAY PHAI
void turn_right()
{
motor_right_forward();
}
/* CHUONG TRINH CHINH */
void main ()
{
TRISD=0x00; // PORTD là ngõ ra ( DC)
TRISA=0x00; // PORTA là ngõ vào (PHIM BAM)
PORTD=0x00; // KHOI TAO GIA TRI BAN DAU 0x00 cho PORTD
while(1)
{
switch (PHIM_BAM)
{
case 0b10000000: forward(); break;
case 0b01000000: reverse(); break;
case 0b11000000: turn_left(); break;
case 0b00100000: turn_right(); break;
}
}
}
}}
thanvankien vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn