Hôm nay mình xin được tiếp tục giới thiệu đến các bạn bài viết về ic 89C52 và L298 điều khiển một động cơ. Có gì thắc mắc vui lòng bình luận dưới bài viết.
Bài 5: Điều Khiển Động Cơ Dùng IC 89C52 Kết Hợp Với L298


CODE C
Code này là của 1 bạn trên mạng, mình có viết lại code nhưng chạy không ổn lắm..nên post các bạn dùng code của bạn ấy. Code mình sẽ post sau:
CODE MẪU


/* Dieu khien toc do dong co DC : Quay thuan, quay nghich, tang toc, giam toc

*/
// 2 Chan dieu khien dong co la : P2_0 va P2_1
// 5 chan de dieu khien : Quay thuan, quay nghich, Dung, Tang toc, giam toc
// 3 chan bao hieu dong co dang o che do nao.


#include <REGX51.H>

/* Dinh nghia cac nut nhan*/
#define stop P1_0
#define thuan P1_1
#define nghich P1_2
#define tang P1_3
#define giam P1_4

bit PWM;
unsigned char dem=0;
unsigned int phantram_PWM=10;

/* Ham tao thoi gian tre*/

void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i<100;i++)
for(j=0;j<t;j++);
}

/* Hien thi gia tri tang giam toc*/
unsigned char LED[10]={0x40,0xf9,0x24,0x30,0x19,0x12,0x02,0xf8,0x80,0x10};
void hienthi(unsigned char digit1, unsigned char digit2)
{
/*Hien thi so thu nhat*/
P3=LED[digit1];
P0_0=1;
delay(2);
P0_0=0;
/*Hien thi so 2*/
P3=LED[digit2];
P0_1=1;
delay(2);
P0_1=0;
}
/* Khoi tao Timer 100us*/

void khoitaohethong()
{
//ES=1;
EA=0;
TMOD=0x02; // che do 8 bit tu nap
TH0=0x9b; // nap gia tri 155 ma hex
TL0=0x9b;
EA=1;
TR0=1;
ET0=1;
}
/* Ngat tao ra PWM*/

void ngat_timer0(void) interrupt 1
{
TR0=0;
TF0=0;
dem++;
if(dem>=phantram_PWM)
{
PWM=1;
}
else
{
PWM=0;
}
if(dem==20) dem=0;
TR0=1;

}
/* Ham dung dong co*/
void stopdc(void)
{
P2_0=0;
P2_1=0;
P2_2=0;
P2_3=1;
P2_4=1;
}

/* Ham quay thuan dong co*/
void quaythuan(void)
{
P2_1=0;
P2_0=PWM;
P2_3=0; //hien thi trang thai led xanh
P2_2=1;
P2_4=1;

}

/* Ham quay nghich dong co*/

void quaynghich(void)
{
P2_0=0;
P2_1=PWM;
P2_4=0;
P2_3=1;
P2_2=1;

}
/* Ham dieu khien tang toc*/
unsigned char tangtoc(void)
{
if(tang==0)
{
while(tang==0)
{;}
phantram_PWM--;
delay(100);
if(phantram_PWM<1)
{
phantram_PWM=1;

} }
return (phantram_PWM);
}
/* Ham dieu khien giam toc*/
unsigned char giamtoc(void)
{
if(giam==0)
{
while(giam==0)
{;}
phantram_PWM++;
delay(100);
if(phantram_PWM>20)
phantram_PWM=20;
}
return (phantram_PWM);
}
/* Lua chon che do cua dong co*/

unsigned char n;
unsigned char chonchedo(void)
{
if(stop==0) n=1;
if(thuan==0) n=2;
if(nghich==0) n=3;
switch(n)
{
case 0: {break;}
case 1: {stopdc();break;}
case 2: {quaythuan();break;}
case 3: {quaynghich();break;}
}
return (n);
}
/* Chuong trinh chinh*/
void main()
{
khoitaohethong();
while(1)
{
tangtoc();
giamtoc();
chonchedo();
hienthi((20-phantram_PWM)/10,(20-phantram_PWM)%10);
}
}

Bài 5: Điều Khiển Động Cơ Dùng IC 89C52 Kết Hợp Với L298. Code điều khiển L298 kết hợp với vi điều khiển 89c52.

Đăng nhận xét

Đăng nhận xét

Author Name



Tôi là Ngọc Anh. Tôi đến từ Nghệ An. Tôi tốt nghiệp một trường đại học tại Sài Gòn. Hiện tôi đang phát triển công ty riêng. Liên lạc với tôi qua:






Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.