PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụng

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

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
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
 


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à 06:20 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