单片机应用技术任务20 制作电动机控制器.pptVIP

单片机应用技术任务20 制作电动机控制器.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
case 非复用键的键值://13为非复用键,进行非复用键功能解释 非复用键的功能解释 //14 } //15 keytreated=1; //16置按键已处理标志 } //17 down=1; //18置键按下过标志 } //19 else //20无键按下时,处理21~22 { down=0; //21置键没按下标志 keytreated=0; //22置键没处理标志 } //23 } //24 1、复用键的处理方法 键盘处理程序的框架结构 2、直流电机的正反转控制 电机的转向与其两端所加电压的极性相关,给直流电机的两端加上正向电压,直流电机就会正转,加上反向电压,直流电机就会反转。 用单片机控制直流电机时常用“H”桥电路控制 2、直流电机的正反转控制 图中,三极管Q3、Q4、Q5、Q6构成了“H”桥的4个臂,电动机的两端接在桥臂的中点,单片机通过控制桥臂上的三极管导通与截止来改变加在电动机两端电压的极性,从而实现电动机的正反转控制。 P2.0=0、P2.1=0时,UAB=0,电动机停止。 P2.0=0、P2.1=1时,UAB=-VCC,电动机反转。 P2.0=1、P2.1=0时,UAB=VCC,电动机正转。 P2.0=1、P2.1=1时,UAB=0,电动机停止。 图中,D1、D2、D3、D4为续流二极管,用来保护所并接的三极管。 3、直流电机的调速控制 转速n与端电压U的关系 式中,I为电机绕组中的电流,R为电枢电路的总电阻,φ为每极的磁通量,K为电机的结构常数。 结论:转速n与端电压U成线性关系,调整端电压U就可以调节电机的转速。 端电压的调整一般是采用脉冲宽度调制(PWM)控制。 调整方法:给电动机的两端加上如图所示的周期固定、脉冲宽度可调的脉冲信号。 电动机的端电压U为: 3、直流电机的调速控制 用定时/计数器模拟产生PWM信号的方法 设PWM信号的周期T=Nt0,脉冲宽度TH=nt0,用一个定时/计数器作时长为t0的定时器,用一个全局变量timcnt记录t0时间中断的次数。然后对timcnt值进行判断,timcntn时,表示当前处在产生高电平期,则输出高电平。Ntimcnt≥n时,表示当前处在产生低电平期,则输出低电平。timcnt=N时,表示已计满了一个脉冲周期,此时将timcnt调整为0,并开始下一周期的输出。 3、直流电机的调速控制 用定时器模拟产生PWM信号的流程图 脉冲周期系数N越大,则输出电压的分辨率越高 3、直流电机的调速控制 单片机的fosc=11.059MHz,定时/计数器的定时时长为0.1ms,脉冲周期为10ms,用定时/计数器T0模拟产生PWM信号时可选择方式2定时模式,产生PWM信号的程序如下: #include reg51.h #define uchar unsigned char #define CPWM 100 //1 CPWM:PWM周期系数10ms/0.1ms=100 uchar timcnt; //2 timcnt:0.1ms中断次数计数器 uchar hwide; //3 hwide:脉冲宽度系数,程序中改变其值,就可调整脉冲宽度 bit pout; //4 PWM输出变量,用不同口线输出此变量值即可实现多个PWM口 void main(void) //5 main函数 { timcnt=0; //6 中断次数计数器赋初值0 hwide=1; //7 脉宽度系数赋初值1 TMOD=0x02; //8 设置T0的工作方式和模式 TH0=256-92; //9 装入计数初值0.1ms TL0=256-92; //10 ET0=1; //11 开定时中断 EA=1; //12 开全局中断 TR0=1; //13 启动T0 while(1) //14 死循环 { /*其他事务处理*/ }//15 死循环的循环体 } //16 main函数结束 3、直流电机的调速控制 //T0中断服务函数,产生PWM信号 void tim0(void) interrupt 1 using 1 //17 { timcnt++; //18 中断计数次数加1 if(timcnthwide) //19 若计数次数小于脉宽系数 pout=1; //20 输出高电平 else //21 若计

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档