欢迎来到天天文库
浏览记录
ID:11489908
大小:26.50 KB
页数:5页
时间:2018-07-12
《c51直流电机的加减速程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、直流电机正反转、加速、减速程序(基于L298n驱动芯片)#include#defineucharunsignedchar#defineuintunsignedintsbitk1=P3^0;sbitk2=P3^1;sbitk3=P3^2;sbitk4=P3^3;sbitk5=P3^4;sbitIN1=P1^0;sbitIN2=P1^1;sbitEN=P1^2;ucharnum=0,show_num=1,gao_num=1,di_num=3,num1;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x
2、90};voiddelay(uintx)//延时函数{uinti,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}voidkeyscan(){if(k1==0)//正转{delay(10);if(k1==0){IN1=0;IN2=1;num1=1;while(!k1);}}if(k2==0)//反转{delay(10);if(k2==0){IN1=1;IN2=0;num1=0;while(!k2);}}if(k3==0)//加速{delay(10);if(k3==0){num++;if(num==4)num=3;while(!k3);}}if(k4==0)//减速{
3、delay(10);if(k4==0){if(num!=0)num--;elsenum=0;while(!k4);}}if(k5==0)//停止{delay(10);if(k5==0){IN1=1;IN2=1;while(!k5);}}}voiddisplay(){P2=0xfe;//第一个数码管显示正转(1)还是反转(0)P0=table[num];delay(5);P2=0xfd;//第二位数码管显示速度标志P0=table[show_num];delay(5);P2=0xfb;//显示0P0=table[0];delay(5);P2=0xf7;//显示0P0=table[0];delay
4、(5);}voiddispose()//根据速度标记进行数据处理{switch(num){case0:show_num=1;gao_num=1;di_num=3;break;case1:show_num=2;gao_num=2;di_num=2;break;case2:show_num=3;gao_num=3;di_num=1;break;case3:show_num=4;gao_num=4;di_num=0;break;}}voidqudong()//控制电机程序{ucharx;if(num1=1)//正转占空比调节{if(di_num!=0){for(x=0;x<=di_num;x++){
5、IN1=0;//PWM低电平输出display();//显示函数延时}}for(x=0;x<=gao_num;x++){IN1=1;display();//PWM高电平输出}}if(num1=0)//反转占空比调节{if(di_num!=0){for(x=0;x<=di_num;x++){IN2=0;display();}}for(x=0;x<=gao_num;x++){IN2=1;display();}}}voidmain(){while(1){EN=1;keyscan();dispose();qudong();}}
此文档下载收益归作者所有