登录|立即注册|使用QQ帐号登录
论坛 > 51单片机
发帖|
看2164|回1|收藏
楼主 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, 2017-9-25 10:06 上传)

下载积分: 黑币 -5




沙发 ID:475031 只看他
2019-11-12 12:11
sbit ENA=P1^2;外面接那里?

51黑电子论坛

Powered by Discuz! X3.1

首页|标准版|触屏版|电脑版