PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và 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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 20-12-2010, 06:25 PM   #4
Babade
Nhập môn đệ tử
 
Tham gia ngày: Jan 2010
Bài gửi: 4
:
các anh ơi kíu em với.Em đang làm đồ án vxl lập trình robot dùng 16f877a mà chưa biết j nhìu.Em cóp nhạt vài đoạn code viet lại thi robot toan di lùi.Các cao thủ kíu em bàn thua này với.
doan code cua em the này,các bác đọc đừng cười nhé
----------------------------------------------------------------
#include "16f877a.h"
#include "DEF_877A.H"
#INT_EXT
#use delay(clock=12000000hz)
#fuses HS,NOWDT,NOPROTECT,NOLVP
/*DINH NGHIA CHAN*/
#define tien1 rc1
#define LUI1 rc0
#define tien2 rc2
#define LUI2 rc3
#define CHAY1 rc4
#define CHAY2 rc5
#define GAT3 rc6
#define hanh_trinh ra4

#define SENSOR PORTB
/*#define SENSOR1 rb1
#define SENSOR2 rb2
#define SENSOR3 rb3
#define SENSOR4 rb4
#define SENSOR5 rb5
#define SENSOR6 rb6*/
/*KHAI BAO CON*/
void trai_tien();
void trai_lui();
void trai_dung();
void fai_tien();
void fai_lui();
void fai_dung();

void TIEN();
void LUI();
void RE_TRAI();
void RE_FAI();
void STOP();
void GAT_VAT();
void DO_VAT();
void KIEM_TRA_VACH();
void GIUA_VACH();
void kt_SENSOR();
void TOI_DICH();
/*CHUONG TRINH CON CO BAN*/
void trai_tien()
{
CHAY1=1;
TIEN1=1;
LUI1=0;
}
void trai_lui()
{
CHAY1=1;
TIEN1=0;
LUI1=1;
}
void trai_dung()
{
CHAY1=0;
}
void fai_tien()
{
CHAY2=1;
TIEN2=1;
LUI2=0;
}
void fai_lui()
{
CHAY2=1;
TIEN2=0;
LUI2=1;
}
void fai_dung()
{
CHAY2=0;
}
void TIEN()
{
trai_tien();
fai_tien();
}
void LUI()
{
trai_lui();
fai_lui();
}
void RE_FAI(int i)
{
fai_dung();
trai_tien();
}
void RE_TRAI(int i)
{
trai_dung();
fai_tien();
}
void STOP()
{
trai_dung();
fai_dung();
}
/*HAM HO TRO*/
void trai_tien(int i)
{ CHAY1=1;
SETUP_TIMER_2(T2_DIV_BY_4,124,1);
SETUP_CCP2(CCP_PWM);
SET_PWM2_DUTY(i);
}
void fai_tien(int i)
{
CHAY2=1;
SETUP_TIMER_2(T2_DIV_BY_4,124,1);
SETUP_CCP1(CCP_PWM);
SET_PWM1_DUTY(i);
}
/*XU LY TOC DO*/

void TOC_DO (signed int TOC_DO_TRAI, signed int TOC_DO_FAI)
{
int TRAI_PWM_i=0,FAI_PWM_i=0;
/* TRAI */
if( TOC_DO_TRAI >= 0 )
{
TRAI_PWM_i = 1.25*TOC_DO_TRAI;
TRAI_TIEN(TRAI_PWM_i);
}
else
{
TOC_DO_TRAI = -TOC_DO_TRAI;
TRAI_PWM_i = 1.25*TOC_DO_TRAI;
/* FAI */
if( TOC_DO_FAI >= 0 )
{
FAI_PWM_i = 1.25*TOC_DO_FAI;
FAI_TIEN(FAI_PWM_i);
}
else
{
TOC_DO_FAI = -TOC_DO_FAI;
FAI_PWM_i = 1.25*TOC_DO_FAI;

}
}
}
/* DIEU KHIEN CHINH*/


void GAT_VAT()
{
STOP();
GAT3=1;
{
char x=0;
TRISA = 0b00010000;
TRISC=0x0;
PORTC=0;
SETUP_TIMER_0(RTCC_EXT_H_TO_L);
SET_RTCC(0);
while (true)
{
x=GET_RTCC();
if (x==2) GAT3=0;
}
}

}


void main()
{
TRISB=0x01;
TRISC=0x00;
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
}

switch (SENSOR)
{
case 0b11111110 : GAT_VAT(); break;
case 0b11111100 : GAT_VAT(); break;
case 0b11000000 : GAT_VAT(); break;
case 0b11100000 : GAT_VAT(); break;
case 0b10100000 : GAT_VAT(); break;
case 0b10110000 : GAT_VAT(); break;
case 0b10010000 : GAT_VAT(); break;
case 0b10011000 : GAT_VAT(); break;
case 0b10001000 : GAT_VAT(); break;
case 0b10001100 : GAT_VAT(); break;
case 0b10000100 : GAT_VAT(); break;
case 0b00000000: LUI() ; break;
case 0b00010000: TIEN() ; break;
case 0b00110000: RE_TRAI(80) ; break;
case 0b00100000: RE_TRAI(60) ; break;
case 0b01100000: RE_TRAI(40) ; break;
case 0b01000000: RE_TRAI(30) ; break;
case 0b00011000: RE_FAI(80) ; break;
case 0b00001000: RE_FAI(60) ; break;
case 0b00001100: RE_FAI(40) ; break;
case 0b00000100: RE_FAI(20) ; break;
case 0b01111100: TIEN() ; break;
case 0b01111110: STOP() ; break;
}
}
Babade 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:12 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