控制直流电机加减速
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//加速处理
{
key_up_flag=0;
//清零加速标志位
high_time++; //高电平时间加1
if(high_time>=9) high_time=9; //控制 high_time,low_time 在1~9之间变化
low_time=10-high_time;
}Байду номын сангаас
if(key_down_flag==1)
while(!key_switch); //松手检测 key_switch_flag=1; //正反转标志位置"1" }
} }
/************************按键处理***************************/
void key_process()
{
if(key_up_flag==1)
//定义加速,减速,正反转标志位
/*********************ms 延时函数**********************/ void delay_ms(uint ms) {
uchar n; while(ms--) for(n=0;n<123;n++); }
/**********************按键扫描*************************/
//减速处理
{ key_down_flag=0;
//清零减速标志位
low_time++; //低电平时间加1
if(low_time>=9)
low_time=9;
high_time=10-low_time;
}
if(key_switch_flag==1) //正,反转处理
{ key_switch_flag=0;
*****/
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key_up=P3^0;
//加速键
sbit key_down=P3^3; //减速键
sbit key_switch=P3^6; //正反转调整键
//清零转换标志位
x=!x;
}
}
/*****************主函数************************/ void main() {
uchar y; high_time=5; //初始占空比50% while(1) { in1=x; in2=!x; key_scan(); key_process(); ena=1; for(y=high_time;y>0;y--) { delay_ms(1); } ena=0; for(y=low_time;y>0;y--) { delay_ms(1); } } }
delay_ms(10); if(key_down==0) {
while(!key_down); key_down_flag=1; } }
//松手检测 //减速标志位置“1”
if(key_switch==0) //key_swich 键按下,正,反转切换 { delay_ms(10); if(key_switch==0) {
sbit in1=P0^0; sbit in2=P0^1; sbit ena=P0^2;
//驱动 lm298引脚定义 //使能允许
uchar key_up_flag,key_down_flag,key_switch_flag; uchar high_time,low_time; uchar x=1;
调试时,出现问题,红色部分写成 in2=-x,in2=~x。protues 仿真均出现错误。
自己觉得标志位用的比较好,还有同学说电机 pwm 一般用中断计时做,试了下,效果一样, 定时要控制的更精细些,但仿真不易看出效果。
void key_scan()
{ if(key_up==0)
//key_up 按下,加速
{ delay_ms(10); //延时消抖
if(key_up==0)
{ while(!key_up); //松手检测
key_up_flag=1; //加速标志位置“1”
}
}
if(key_down==0) {
// key_down 按下,减速
控制直流电机加减速,正反转
/***********************************************************************
****** 实验目的:按键控制直流电机的正反转,加速,减速。
2011.09.04 21:11
************************************************************************