找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1992|回复: 1
打印 上一主题 下一主题
收起左侧

关于LM298直流电机测试单片机源码

[复制链接]
跳转到指定楼层
楼主
ID:235423 发表于 2017-9-25 10:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
单片机源程序如下:
  1. //**************************************************************************//
  2. //        程序名称:直流电机测试程序
  3. //        功能描述:直流电机正转2秒,反转2秒,自动加速正转,自动减速反转,依次循环
  4. //        单片机:  AT89S52,外接12M晶振
  5. //        硬件连接:P1.0----IN1
  6. //                          P1.1----IN2
  7. //            P1.2----ENA
  8. //                          直流电机两端分别接OUT1和OUT2,
  9. //                          电机驱动电压根据所接电机而定,驱动板芯片逻辑电压为+5V

  10. //**************************************************************************//
  11. #include<reg52.h>
  12. sbit IN1=P1^0;
  13. sbit IN2=P1^1;
  14. sbit ENA=P1^2;
  15. void delay(unsigned int z);
  16. void delay_us(unsigned int aa);
  17. /*******************主函数**************************/
  18. void main()
  19. {
  20.         while(1)
  21.         {
  22.                 unsigned int i,cycle=0,T=2048;
  23.                 IN1=1;      //正转
  24.                 IN2=0;
  25.                 for(i=0;i<200;i++)
  26.                 {
  27.                         delay(10);//PWM占空比为50%,修改延时调整PWM脉冲
  28.                         ENA=~ENA;
  29.                 }
  30.                 IN1=0;      //反转
  31.                 IN2=1;
  32.                 for(i=0;i<100;i++)
  33.                 {
  34.                         delay(20);//PWM占空比为50%,修改延时调整PWM脉冲
  35.                         ENA=~ENA;
  36.                 }
  37.                 IN1=1;     //自动加速正转
  38.                 IN2=0;
  39.                 while(cycle!=T)
  40.                 {        ENA=1;
  41.                         delay_us(cycle++);
  42.                         ENA=0;
  43.                         delay_us(T-cycle);
  44.                
  45.                 }
  46.                 IN1=0;     //自动减速反转
  47.                 IN2=1;
  48.                 while(cycle!=T)
  49.                 {        ENA=1;
  50.                         delay_us(cycle++);
  51.                         ENA=0;
  52.                         delay_us(T-cycle);
  53.                
  54.                 }
  55.         }               
  56. }
  57. /******************z秒延时函数*************************/
  58. void delay(unsigned int z)
  59. {
  60.         unsigned int x,y;
  61.         for(x=z;x>0;x--)
  62.                 for(y=110;y>0;y--);
  63. }
  64. /****************微妙延时******************************/
  65. void delay_us(unsigned int aa)
  66. {
  67.         while(aa--);       
  68. }


复制代码

所有资料51hei提供下载:
直流电机测试程序.rar (19.69 KB, 下载次数: 27)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:475031 发表于 2019-11-12 12:11 | 只看该作者
sbit ENA=P1^2;外面接那里?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表