找回密码
 立即注册

QQ登录

只需一步,快速开始

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

pwm单片机直流调速源码

[复制链接]
跳转到指定楼层
楼主
ID:328882 发表于 2018-5-13 15:09 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
  1. //*******************函数声明,变量定义*******************
  2. #include <reg51.h>
  3. #include <intrins.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. //端口定义
  7. sfr p0=0x80;
  8. sfr p1=0x90;
  9. sfr p2=0xa0;
  10. sfr p3=0xb0;
  11. //键
  12. sbit add_speed=P1^0;
  13. sbit sub_speed=P1^1;
  14. //PWM控速
  15. uint time_PWM=0;   //PWM时间计数
  16. uint high_PWM=0;   //PWM高电平时间
  17. uint t_PWM=16;    //PWM周期
  18. //*******************延 时  程 序*******************
  19. void delayms(unsigned char ms)
  20. {
  21.    unsigned char i ;
  22.    while(ms--)
  23.     {
  24.       for(i = 0 ; i < 120 ; i++) ;
  25.     }
  26. }
  27. //*******************键盘扫描程序*******************
  28. void key_change()
  29. {
  30.    if(add_speed==0)
  31.    {
  32.        delayms(10);
  33.        if(add_speed==0)
  34.        {
  35.             if(high_PWM < 16)
  36.             {
  37.                 high_PWM++;
  38.             } } }
  39.     if(sub_speed==0)
  40.    {
  41.        delayms(10);
  42.        if(sub_speed==0)
  43.        {
  44.             if(high_PWM > 0)
  45.             {
  46.                 high_PWM--;
  47.             } } } }
  48. //*******************中断程序*******************
  49. //PWM波生成,T0中断
  50. void PWM_T0(void) interrupt 1
  51. {
  52.   TH0=0Xd8;                  
  53.   TL0=0Xf0;                 
  54.   time_PWM++;
  55.   if(time_PWM < high_PWM)
  56.   {
  57.      p2=0xff;
  58.   }
  59.   if(time_PWM==high_PWM)
  60.   {
  61.      p2=0x00;
  62.   }
  63.   else if(time_PWM==t_PWM)
  64.   {  p2=0xff;
  65.      time_PWM=0;
  66.   } }
  67. //*******************主程序*******************
  68. void main()
  69. {p0=0xff;
  70. p1=0Xff;
  71. p2=0xff;
  72. p3=0xff;
  73. TH0=0xd8;    //定时10us
  74. TL0=0xf0;
  75. TMOD=0x01;
  76. EA=1;
  77. ET0=1;
  78. TR0=1;
  79. while(1)
  80. {   key_change();
  81. }}
复制代码


51CTO下载-单片机输出PWM波.doc

22 KB, 下载次数: 10, 下载积分: 黑币 -5

pwm

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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