Thứ Năm, 3 tháng 3, 2016

Code C điều khiển động cơ điện một chiều


Dòng chip 8051 rất phổ biến và được đưa vào giảng dạy ở các trường đại học. Do vậy để các bạn dễ tiếp cận trong quá trình học tập và nghiên cứu 7segone mong muốn chia sẻ thật nhiều những code mẫu để các bạn có thể tham khảo và nâng cao kỹ năng lập trình cho bản thân.
Hôm nay 7segone sẽ chia sẻ một code mẫu về động cơ một chiều được điều khiển bằng nút nhấn.
//------------------------------------------//
// Chuong trinh thuc hien voi chip ho 8051 //
// DIEU KHIEN DONG CO MOT CHIEU DC //
//------------------------------------------//
#include<at89x52.h>

// dinh ngia not bam
sbit sw1 = P1^0;
sbit sw2 = P1^1;
sbit sw3 = P1^2;
sbit sw4 = P1^3;
sbit sw5 = P1^4;
// dinh ngia cac chan dau ra
#define DIRA P3_0
#define DIRB P3_7
#define out_pwm P2_0

unsigned char t_on=0,chu_ki=100,pwm= 0;
// chuong trinh ngat time
void timer0() interrupt 1
{
TR0=0;
t_on++;
if(t_ôn>chữ_kí)t_ơn=0;
//kenh8 = ~kenh8;
TR0=1;
}

// chuong trinh phim bam
void menu()
{
if(!sw1) // phim up
{
pwm += 5;
if(pwm > 100) pwm = 0;
while(!sw1);
}
if(!sw2) // phim down
{
pwm -= 5;
if(pwm <1) pwm = 100;
while(!sw2);
}
if (!sw3)
{
DIRA = 1;
DIRB = 0;
while(!sw3);
}
if (!sw4)
{
DIRA = 0;
DIRB = 1;
while(!sw4);
}
if (!sw5)
{
DIRA = 0;
DIRB = 0;
while(!sw5);
}
}
void main()
{
TMOD=0x02; //timer 0 mode 2
TH0= -20; //timer 0 chay 100uS
//TL0=130;
ET0=1; //cho phep ngat timer 0
EA=1; //cho phep ngat toan cuc
pwm = 0;
TR0=1;
P3 = 0xff;
while(1)
{
menu();
out_pwm=(pwm>t_on)? 0:1; // cau dieu kien so sanh neu (pwm1>t_on) la dung thi la 0 con sai la 1
}
}
7segone hi vọng rằng từ những code mà mình đã chia sẻ sẽ giúp ích phần nào trong quá trình học tập của các bạn. Chúc các bạn thành công!

Không có nhận xét nào:

Đăng nhận xét