配置独立按钮K1,不按下时LED P2_0灯暗,按下时更亮。

#include <REGX52.H>unsigned char Counter,Compare;          //两个篮子,一个Counter计数器,一个Compare比较值。void main()
{while(1)                           //大循环。{while(P3_1==1)         //循环:独立按钮K1,没有按下的时候,在这里面循环。{Counter++;   //计数器自增1.Counter%=100; //当计数器增加到100时,变成0,赋值给计数器。(也可以设定其他值)Compare=95; //自己设定的比较值。(设得高,不亮的时间越长,看起来就越暗。红色线)if(Counter<Compare)   //把两者作比较。当计数器值小于比较值时 执行。{P2_0=1;   //设计:当计数器值小于比较值灯不亮。  }else               {P2_0=0;   //反之:灯亮。     }}while(P3_1==0){Counter++;Counter%=100;Compare=5;if(Counter<Compare){P2_0=1;     }else               {P2_0=0;       }   }}
}


注意:

1.        PWM控制灯亮度的方式是:将一个计数器从 0到设定的值(如:10,100等) 作为一个周期,计数器值在此周期内 从0自增到最大又变为0。

设定一个 比较值, 计数器值自增一次就和比较值 比较一次,从而设定,是大于亮灯还是小于时亮灯,等。        快速的循环这个过程,肉眼看起来就好像灯变亮或者变暗了。

2.        如果编写程序为:        if (计数器值Counter < 比较值Compare) —— {执行P2_0不亮} —— else否则——{ P2_0亮 }。      才满足 红线 与 绿线交点 右边部分 灯亮,左边部分 灯熄灭(如上图图)。得到的结果是:比较值Compare越大 P2_0灯越暗,反之越亮。

如果编写程序为:if (计数器值Counter > 比较值Compare) —— 执行P2_0不亮 —— else否则—— P2_0亮。        或者为: if (计数器值Counter < 比较值Compare) —— 执行P2_0亮 —— else否则—— P2_0不亮。         那么 交点 左边部分 灯亮,右边部分 灯熄灭。

3.        如上图熄灭表示的部分就是所谓的 占空比

51单片机 PWM基本原理理解(程序举例)相关推荐

  1. pid控制器c51语言编程,51单片机电机pid控制系统程序

    51单片机电机pid控制系统程序 本程序来源网上,小编进行了简单修改,还未验证. /************************* 应用背景:直流电机的额定功率12V,额定转速3000rpm,光码 ...

  2. 基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298M芯片控制直流电机正反运转的项目

    基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298芯片控制直流电机正反运转的项目 一.前言 1.基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298芯片控制直流电机正反运转的 ...

  3. 单片机c语言的按键程序,51单片机按键扫描C程序

    原标题:51单片机按键扫描C程序 大二上学期做过80 的按键程序,当时项目要求实现按键控制 屏显示并且接收GPRS传来的数据.当时为了节省成本,就去大西电子市场买来8*8的LED块,然后自己一点一点的 ...

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

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

  5. pt100+51单片机的温控系统程序+仿真图 还带压力显示的

    pt100+51单片机的温控系统程序+仿真图 还带压力显示的 使用pt100测温度,经过放大器放大后的电压值乘以236就是实际的温度值0.42V对应100度,0V对应0度,经过ad运算显示出来,其他滤 ...

  6. 机械手编程用c语言,51单片机机械手控制C程序.doc

    51单片机机械手控制C程序 //包含所需头文件 #include #define uchar unsigned char /***************------宏定义------******** ...

  7. 水下超声波测距c语言程序,51单片机超声波测距C程序

    51单片机超声波测距C程序 (2010-01-26 14:09:10) 电子工程师电子资料大学校园 超声波检测原理 超声波测距的程序流程图 程序如下: //超声波模块程序 #include #defi ...

  8. matlab中光敏电阻,51单片机光敏电阻寻光程序

    [实例简介] 51单片机光敏电阻寻光程序,测试可用,可用数码管显示电阻值大小 [实例截图] [核心代码] 光敏电阻寻光程序 ├── 光敏(最终) │   ├── AD转换 │   ├── AD转换.h ...

  9. 【制作】基于金沙滩51单片机的电子密码锁程序

    基于金沙滩51单片机的电子密码锁程序 很久之前做的一个课设,在B站发了效果视频,发现忘记分享代码了,现在整理分享一下. 零.设计报告 1.设计要求 这部分是讲的整个系统实现了什么功能. 1.1.密码的 ...

最新文章

  1. oracle监听器动态注册于静态注册的区别
  2. 蓝驰创投朱天宇:用10年尺度看 AI 创业,如何发现独角兽 | 新智元专访
  3. python整数类型在每一台计算机上的取值范围是一样的_Python编程知识点总结
  4. 【Python学习】 - skimage包
  5. 中希尔排序例题代码_十大经典排序算法最强总结
  6. 致盲目标检测算法,阿里清华发起 “对抗攻击” 挑战赛!
  7. Jeecg-Boot 快速生成前后端代码
  8. oppo手机android 版本号,ColorOS新系统定档!紧跟安卓发布,但版本号亮了
  9. Navicat Premium 11.2.7 中文破解版安装
  10. 华擎计算机主板配置,DDR+478+PCIEx16当下最平民化的计算机配置
  11. table里的th和td加了边框后,他是两个边框重合的,1PX就变成了2PX
  12. C DoEvents
  13. RDIFramework.NET 框架之组织机构权限设置
  14. 论微服务架构设计与应用
  15. 原子物理与原子核物理知识结构(含链接)
  16. Spring-实现整合Mybatis框架
  17. 在SQL SERVER 2000中实行简繁体转换
  18. 亲爱的,你是吃屎了么
  19. 学生成绩abcde怎样划分_中考成绩中ABCD等级代表的分数段是什么?
  20. vacuum freeze

热门文章

  1. python爬取携程网游记_网页爬虫 - 用python selenium抓取携程信息
  2. STM32CUBEMX_STM32F030F4P6_TIM1_CH3_PWM
  3. __attribute__概述
  4. 【转载】USB Type-C设备是否需要CC逻辑芯片
  5. 比LastPass、1Password更安全的密码管理器,Horcrux是怎么实现的?
  6. oracle 脚本定时,Oracle存储过程定时执行2种方法
  7. 【渝粤教育】电大中专办公设备使用与维护_1作业 题库
  8. Vue3 企业级项目实战:项目须知与课程约定
  9. 点云自适应滤波matlab代码,一种机载激光雷达点云的自适应滤波方法与流程
  10. 德国科隆大学计算机排名,德国科隆大学世界排名如何?