PWM说白了就是首先定义一个变量X并且给它赋值为你想要的高电平数量,接着再定义一个变量Y赋值为0,然后再给定时器弄个1ms的定时,每过1msY就加一,假设我要定的PWM是5/20,那么首先给X赋值为5,在定时器中写每过1ms就让Y加一,当Y小于X时输出高电平,当Y大于等于X时输出低电平,当Y>=20时就给Y赋值为0,这样就有5/20的时间是高电平,15/20的时间是低电平。

程序

  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit key=P3^7;
  5. sbit fm=P2^3;
  6. uchar x=0;
  7. void keyscan();
  8. void delay(unsigned int xms)
  9. {
  10. unsigned int i,j;
  11. for(i=xms;i>0;i--)             //i=xms即延时约xms毫秒
  12. for(j=112;j>0;j--);
  13. }
  14. void main()
  15. {
  16. keyscan();  //按键扫描,没有按下K4之前程序一直卡在这里
  17. TMOD=0x01;  //定时器0
  18. TH0=0xFC;   //设定定时时间为1ms
  19. TL0=0x66;
  20. EA=1;       //定时器的初始化
  21. ET0=1;
  22. TR0=1;
  23. while(1)
  24. {
  25. if(x<2)
  26. P1=0xfe;
  27. else
  28. P1=0xff;
  29. if(x>=20)
  30. x=0;
  31. }
  32. }
  33. void dinshi() interrupt 1   //定时器
  34. {
  35. TH0=0XFC;
  36. TL0=0X66;
  37. x=x+1;
  38. }
  39. void keyscan()             //健扫描
  40. {
  41. A:  if(key==0)
  42. {
  43. delay(10);
  44. if(key==0)
  45. {
  46. fm=0;
  47. while(key==0);
  48. fm=1;
  49. }
  50. else
  51. {
  52. goto A;
  53. }
  54. }
  55. else
  56. {
  57. goto A;
  58. }
  59. }

51单片机使用PWM调速相关推荐

  1. 【Proteus仿真】51单片机+直流电机PWM调速实验

    [Proteus仿真]51单片机+直流电机PWM调速实验 Proteus仿真 采用L293驱动直流电机 -PWM是采用定时器中断实现 /******************************** ...

  2. 基于51单片机直流电机PWM调速设计

    具体实现功能 系统由STC89C52单片机.LCD1602液晶显示屏.霍尔测速传感器.3V直流电机.按键模块构成. 具体功能: 1.采用霍尔传感器非接触式测电机转速: 2.LCD1602液晶显示当前的 ...

  3. PIC16 F887 单片机 直流电机PWM调速 PID调速 PID算法

    直流电机PWM调速:使用将直流电机转速转换为脉冲频率,测量出电机的转速,与写入到单片机的EEPROM里的脉冲设定值进行比较产生偏差,若偏差为正值则电机减速,偏差为负值则加速,并在LCD上显示电机的转速 ...

  4. 51智能小车pwm调速

    首先pwm调速主要运用的是定时器和中断的知识,此段代码运用的是定时器0,8位自动重装模块 下面了解pwm是如何控制速度的 调速的本质就是通过定时器控制小车的左右两轮使能:对小车的轮子转的时间和停的时间 ...

  5. 基于51单片机的直流电机调速测速正反转控制(仿真+源程序+原理图+PCB)

    资料编号:206 1.本设计采用STC89C51/52(与AT89S51/52.AT89C51/52通用,可任选)51单片机作为主控制器 2.采用霍尔传感器非接触式测电机转速 3.LCD1602液晶显 ...

  6. 51单片机PWM调速风扇转速显示转速设置

    实践制作DIY- GC0029-PWM调速风扇 一.功能说明: 基于51单片机设计-PWM调速风扇 二.功能介绍: STC89C52单片机(AT89C52)+5V4线PWM风扇+LCD1602显示器+ ...

  7. 51单片机的直流电机PWM调速控制系统(附Proteus仿真+C程序等全套资料)

    设计思路 直流电机PWM控制系统的主要功能包括:很实现对直流电机的加速.减速以及电机的正转.反转和急停,并且可以调整电机的转速,能够方便的实现电机的智能控制. 主体电路:即直流电机PWM控制模块.这部 ...

  8. 基于51单片机的PWM控制马达电机调速正反转(仿真+源码+全套资料)

    资料编号:117 仿真图proteus 7.8 程序编译器:keil 5 编程语言:C语言 采用51单片机,用PWM控制电机脉冲频率应控制在25HZ-35HZ之间 定时1ms,1个周期30ms,脉冲频 ...

  9. 基于51单片机的PWM控制马达电机调速正反转

    资料编号:117  下面是相关功能视频演示: 117-基于51单片机的PWM控制马达电机调速正反转(仿真+源码+全套资料) 仿真图proteus 7.8(理论上高于7.8均可以打开) 程序编译器:ke ...

最新文章

  1. 麻省理工人工智能实验室发现更小更容易训练的神经网络
  2. Python的全局和局部变量
  3. r语言和python-r语言和python
  4. 1-2、算法设计常用思想之贪婪法
  5. 单链表之头插法的理解!
  6. windows下共享文件夹在Linux下打开
  7. N 年沉淀,腾讯这套系统终于开源!
  8. 实验9Linux共享内存通信,操作系统原理与Linux实践教程(卓越工程师培养计划系列教材)...
  9. 高级软件工程第六次作业:东理三剑客团队作业-3
  10. java关键字只static
  11. mysql数据库原理
  12. Spring框架IOC容器,依赖注入,控制反转
  13. MATLAB语言初步学习(六)
  14. java命令_java常用命令javac、javap、jps、jstack
  15. python爬取公众号历史文章_微信公众号爬虫--历史文章
  16. 计算机专用英语1500词带音标,带音标的计算机英语1500词
  17. 《利用Python 进行数据分析》第十章:时间序列
  18. 流水灯电路设计实验--VHDL
  19. Cesium geojson 区域拉伸高度
  20. AriaNg 是一个让 aria2 更容易使用的现代 Web 前端

热门文章

  1. 如何改typecho主题头像_细节决定成败,抖音昵称、头像、简介、视频封面的重要性...
  2. python编程好学吗-python语言好学吗
  3. [转载]信息安全从业参考
  4. c语言程序中u8是什么意思,c – __u8和uint8_t之间的区别
  5. iOS开发之自定义键盘(数字,字母类型等随意切换)
  6. HTML系统学习(1)
  7. 白质脑功能网络图论分析:抑郁症分类和预测的神经标记
  8. 计算机主机安装图,最新版本:计算机主机插件安装图_布法罗计算机主板安装图...
  9. 微信分享朋友圈链接怎么显示图片-企业微信二维码转成名片
  10. 面对人工智能,我们应有的态度