欢迎来到天天文库
浏览记录
ID:58863342
大小:178.00 KB
页数:3页
时间:2020-09-22
《基于单片机的直流电机控制(正反转开关控制).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于单片机的直流电机控制(正反转,开关控制)原理图如下:程序如下:/*用电机来代表门的转动情况*/ #include //定义变量sbit kaimen=P0^0;sbit zanting=P0^1;sbit fanxiang=P0^2;sbit P2_0=P2^0;sbit P2_1=P2^1;bitFlag=1;//定义电机正反向标志//函数声明voidmotor_turn(void); //正反向控制voidTimer0_init(void);//定义定时器0初始化/
2、******************************延时处理***************************/voidDelay(unsignedintz){unsignedintx,y;for(x=z;x>0;x--) for(y=110;y>0;y--);}/***************************************************************/voidTimer0_int(void)interrupt1using1//定时器0中断处理主要用来处理换
3、方向的时候{TR0=0; TL0=(65536-50000)/256; //定时50ms TH0=(65536-50000)%256; TR0=1;if(Flag==1)//代表改变方向{ P2_0=0; P2_1=1; }else //方向不变{ P2_1=0; P2_0=1; }}/****************开始转动:人满时候开始转动**************/voidmotor_start(void){if(kaimen==1) { //Delay(10)
4、; if(kaimen==1) { P2_0=0; P2_1=1; }}}/***************有人但是人未满时或者有夹到人的时候暂停*************/voidmotor_pause(void){if(zanting==1) { Delay(10); if(zanting==1) { EA=0; P2_0=0; P2_1=0; }}}/**********************电机方向转动***************
5、***********/voidmotor_turn(void)//电机反向转动{if(fanxiang==1){ Delay(10); if(fanxiang==1) { Flag=~Flag; } while(fanxiang==1);}}/***********************定时器0初始化**************************/voidTimer0_init(void)//定时器0初始化{TMOD=0x01;TH0=(65536-50000)/256;TL0=(65
6、536-50000)%256;TR0=1;ET0=1;}/**********************主函数***********************/voidmain(void)//主函数{ Timer0_init(); while(1){if(kaimen==1) EA=1;//开始时候开启中断 motor_start(); motor_pause(); motor_turn();}}
此文档下载收益归作者所有