PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   các pro giúp em với! dùng pic 18f4520 cho lập trình hai động cơ (http://www.picvietnam.com/forum/showthread.php?t=13159)

thanvankien 17-01-2012 04:11 PM

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;
}
}
}
}}


ailatoi147 21-01-2012 02:58 PM

xin giúp đở màn hình lcd16*2 (điều khiển 4 bit)
 
chào các anh chị!
em mới bắt đầu học pic, và bắt đầu với pic 16f877a và dang thử làm một vài ví dụ về lcd điều khiển 4 bit.
em đã tham khảo rất nhiều nhưng chưa hiểu bao nhiêu. nên mong được các anh chị giúp đỡ.
chả là em có cái màn hình lcd 16*2, em đã viết chương trinh mô phỏng ngon lành thế nhưng khi làm mạch thỳ nó lại không chạy. em gửi luôn bài lên đây, mong được mọi người chỉ bảo.


http://www.mediafire.com/?it9fkkwpiwp7ysc


Múi giờ GMT. Hiện tại là 11:48 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam