找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9532|回复: 3
收起左侧

PWM直流电机无极调速单片机程序

[复制链接]
ID:79433 发表于 2016-6-24 10:44 | 显示全部楼层 |阅读模式
PWM直流电机无极调速

0.png



  1. /****************************************************************
  2.                                                               
  3.             程序名称:   直流电机无极调速
  4.             版本:      VER1.0
  5.             适用板本:  SP-51学习板      
  6.                         利用定时器控制产生占空比可变的PWM波对直流电机进行无极调速
  7.                         按S2,PWM值增加,则占空比减小,电机减速。(初值电机为最小值)
  8.                         按S3,PWM值减小,则占空比增加,电机加速。
  9.                         当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警。

  10.             注:直流电机的安装,请查看本文件夹的安装说明.

  11. *****************************************************************/

  12. #include<reg51.h>
  13. #include<intrins.h>
  14. sbit  S2 =P3^4 ;        //PWM值减少键
  15. sbit  S3 =P3^5 ;       //PWM值增加键
  16. sbit  BEEP =P2^3 ;         //蜂鸣器
  17. unsigned char PWM=0x03 ;   //赋初值

  18. ///////////////////////////////////////
  19. sbit dula=P2^6;   //数码管的段选信号
  20. sbit wela=P2^7;   //数码管的位选信号
  21. void delay1 (void) //关闭数码管延时程序
  22. {
  23.         int k;
  24.         for (k=0; k<1000; k++);

  25. }
  26. //////////////////////////////////////

  27. void Beep();
  28. void delayms(unsigned char ms);
  29. void delay(unsigned char t);

  30. /*********************************************************/
  31. void main()
  32. {   
  33.     P1=0xff;
  34.     TMOD=0x00 ;
  35.          TH0=0x00 ;           //延时常数
  36.     TL0=0x00 ;           //频率调节
  37.     TH1=PWM ;            //脉宽调节
  38.     TL1=0xff ;
  39.         EA=1;
  40.         ET0=1;
  41.         ET1=1;
  42.     TR0=1 ;

  43.         /////////////////////////////////////////////////////////////////
  44.         P0=0x00;//关掉数码管的信号。阻止数码管受到P0口信号的影响。
  45.         dula=1;
  46.         wela=0;
  47.         delay1();
  48.         dula=0;
  49.         wela=0;
  50.         delay1();
  51.         ////////////////////////////////////////////////////////////////

  52.    while(1)
  53.    {
  54. do{
  55.      if(PWM!=0xff)
  56.     {PWM++ ;delayms(10);}
  57.         else Beep() ;
  58.    }
  59.     while(S3==0);

  60. do{
  61.       if(PWM!=0x02)
  62.      {PWM-- ;delayms(10);}
  63.       else Beep() ;
  64.    }
  65.     while(S2==0);
  66.   }
  67. }

  68. /*********************************************************/
  69. // 定时器0中断服务程序  (频率)
  70. /*********************************************************/
  71. void timer0() interrupt 1
  72. {  
  73.     TR1=0 ;
  74.     TH0=0x00;
  75.     TL0=0x00 ;
  76.     TH1=PWM ;
  77.     TR1=1 ;
  78.     P0=0x00 ;      //启动输出
  79.         
  80. }

  81. /*********************************************************/
  82. // 定时器1中断服务程序 (脉宽)
  83. /*********************************************************/
  84. void timer1() interrupt 3
  85. {
  86.     TR1=0 ;
  87.     P0=0xff ;     //结束输出
  88. }

  89. /*********************************************************/
  90. //蜂鸣器子程序
  91. /*********************************************************/

  92. void Beep()     
  93.   {
  94.     unsigned char i  ;
  95.     for (i=0  ;i<100  ;i++)
  96.       {
  97.         delay(100)  ;
  98.         BEEP=!BEEP  ;                //Beep取反
  99.       }
  100.     BEEP=1  ;                        //关闭蜂鸣器
  101. delayms(100);
  102.   }

  103. /*********************************************************/
  104. // 延时子程序
  105. /*********************************************************/  
  106. void delay(unsigned char t)
  107. {
  108.    while(t--)   ;
  109. }

  110. /*********************************************************/
  111. // 延时子程序
  112. /*********************************************************/
  113. void delayms(unsigned char ms)

  114. {
  115.    unsigned char i ;
  116.    while(ms--)
  117.     {
  118.       for(i = 0 ; i < 120 ; i++) ;
  119.     }
  120. }

  121. /*********************************************************/
复制代码

0.png

028-PWM直流电机无极调速.zip

558.78 KB, 下载次数: 80, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:277376 发表于 2018-1-18 14:10 | 显示全部楼层
第42行,P1=0xff;作用是什么,望赐教
回复

使用道具 举报

ID:76408 发表于 2018-2-6 09:54 | 显示全部楼层
金币还不够,下载不了。
回复

使用道具 举报

ID:349615 发表于 2018-7-16 10:52 | 显示全部楼层
正需要呢!谢谢大神!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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