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!
Đang cập
nhật ….
rất rất cảm ơn
Trả lờiXóarất rất cảm ơn
Trả lờiXóacó mạch nguyên lý k
Trả lờiXóacho xin cái mạch nguyên lý với các man