个人网站:Geek交流圈

控制单个LED灯

基础知识

C-51的数据类型扩充定义sfr:特殊功能寄存器声明sbit:特殊功能位声明bit:位变量声明
例:sfr SCON = 0X98;sbit OV = PSW^2;

LED灯常亮:

上面程序是让P2.0连接的LED灯常量

LED灯闪烁:

延时函数的原理及作用
在上例中,delay函数里面只是while循环,让i不断递减,因为i自减一次,消耗一定的时间,所以在调用delay函数时,传入50000的数值,让延时函数内部i自减50000次,达到延时的作用。
其实就是根据i自减的次数,来控制循环消耗的时间,达到延时目的。

多个LED灯
位操作(繁琐,不建议)
控制多个LED灯,可以利用位操作,也就是利用 sbit 定义多个引脚,然后控制对应的位就行。
例如下面这样定义:

总线操作(建议)
用到总线操作,就得理解二进制与I/O口的关系。
例如P2口,有P2.0,P2.1P2.7 八个引脚,每个二进制数也是八个位
单片机上电默认给所有引脚高电平(为1),这就说明
P2.0 = P2.1 = … = P2.7 = 1;
当我们写成 P2 = 00000001;
P2口对应的八个位数据为
P2.0 = 0
P2.1 = 0

P2.6 = 0
P2.7 = 1

如果是低电平有效,那么就是P2.0 – P2.6接的LED灯都会亮。
但是P2 = 00000001; 这样的写法太麻烦,也容易错
所有所以我们一般用十六进制来表示二进制

所以P2 = 00000001;可以写成 P2 = 0x010x是十六进制的前缀。 再例如 P2 = 0xF0; 这就是低四位的LED灯亮,高四位的灯灭。

流水灯设计

延时函数定义
1、用移位指令实现流水灯 << >>

程序分析:
在for循环中
1、 Temp取反后赋值给P2,P2 = 11111110 第一个灯亮
注意:虽然Temp取反后赋值给P2了,但是temp原变量的值未发生改变,temp 还是等于 0000 0001
2、 temp = temp << 1;
0000 0001 --> 0000 0010
这里才是将temp的值改变,左移后右边自动补0
3、 i++ 进入第二次for循环
temp取反后赋值给P2,P2 = 11111101 第二个灯亮
4、 temp = temp << 1;
0000 0010 --> 0000 0100
依次类推,就实现了流水灯

2、用移位函数实现流水灯 _crol

总结

建议利用系统板进行测试,因为测试可以发现自己很多问题,也能验证自己的想法。控制LED灯其实就是控制硬件的高低电平,形成电势差让LED灯亮起来。

51单片机控制LED灯相关推荐

  1. 一、51单片机控制LED 灯

    1.目标分析 通过51单片机控制8个LED灯依次点亮,形成流水灯. 2.原理图分析 2.1. 74HC573芯片 (1) LED控制涉及到74HC573芯片,上图中的U13.想知道该芯片如何工作的,应 ...

  2. 51单片机-控制LED灯

    目录 1.硬件设计 2.软件设计 2.1.点亮一颗LED灯 2.2.LED闪烁 2.3.LED流水灯 3.知识点 3.1.while函数的应用 3.2.常用数据类型 3.3.延时函数的自动生成 1.硬 ...

  3. 51单片机控制LED灯显示模式

    1.在交通灯控制系统的基础上修改硬件电路 2.AT89C51单片机的P1口接8个独立按键,P0口接8个LED灯,led等的上拉电阻改用排阻,设计硬件电路. 3.编写程序,实现基本要求:当P1.0键按下 ...

  4. 51单片机led灯闪烁程序C语言,51单片机控制led灯闪烁程序

    Keil 写程序的过程,建立工程-->保存工程-->建立文件-->添加文件到工程-->编写程序-->编译-->下载程序. #include sbit LED = P ...

  5. c语言程序小灯从右向左闪烁,单片机控制LED灯点亮(C语言).PPT

    <单片机控制LED灯点亮(C语言).PPT>由会员分享,可在线阅读,更多相关<单片机控制LED灯点亮(C语言).PPT(45页珍藏版)>请在人人文库网上搜索. 1.1,单片机控 ...

  6. stm32f103c8t6+ESP8266利用onenet平台上传数据到云平台,再利用云平台远程下发命令给单片机控制LED灯亮灭

    stm32f103c8t6+ESP8266利用onenet平台上传数据到云平台,再利用云平台远程下发命令给单片机控制LED灯亮灭 接触stm32已经有一年半的时间了,从最开始的stm32F103ZET ...

  7. 51单片机 PWM LED灯亮度调节+Proteus仿真

    51单片机 PWM LED灯亮度调节+Proteus仿真 Proteus仿真 实例代码 #include "reg51.h" unsigned int cd,dd; unsigne ...

  8. 51单片机入门————LED灯的控制

    LED的电路图 通过原理图看出,LED灯是接单片机芯片的P20~P27的 一共有8个LED,51单片机也是8字节的 P2=0x01 0xFE----1111 1110 P2=0xFE可以表示把在P2端 ...

  9. 单片机控制灯光亮度c语言程序,基于51单片机控制LED灯光亮度并报警

    利用pwm控制led灯光亮度大小.可以显示许多亮度等级 到最低或者最高亮度等级会发出报警.设计思路: LED一般是恒流操作的,如何改变LED的亮度呢?答案就是PWM控制.在一定的频率的方波中,调整高电 ...

最新文章

  1. 自律到极致-人生才精致:第11期 - 领奖通知
  2. Python数据类型方法总结
  3. python动物代码大全_python爬虫代码大全
  4. 微软将开放神经网络交换格式贡献给 Linux 基金会
  5. java 反射获取属性名和值_面试官这样问我Java反射原理,我刚好都会
  6. 使用记事本开发第一个java程序
  7. C#.Net工作笔记009---c#中Yield Return语法的作用和好处
  8. 一口气完成electron的入门学习
  9. 木马的隐藏及其启动方式 (转)
  10. DDFE 技术周刊(第十期)2017.1.9
  11. matlab 安装教程 2018b
  12. java虚拟机是什么?
  13. user32.dll 函数说明
  14. Delphi中使用Imageen控件将图像文件转换成PDF
  15. Excel计算函数(计算机二级)
  16. 429. N 叉树的层序遍历(中等 树 广度优先搜索)
  17. Discuz app打包app上架appstore小技巧
  18. RFX2401C 2.4GHz功放PA前端模块
  19. java获取东八区时间
  20. 关于协方差矩阵和相关系数矩阵的一些应用认识

热门文章

  1. 386计算机毕业设计
  2. 为产品赋予人格 - 情感化设计的组成要素及实践案例
  3. 基于Python股票网站数据爬虫情感可视化分析设计
  4. mysql好考还是office好考_计算机二级最好考哪个 office难考吗
  5. phpstorm之 svn 控制的文件颜色详解
  6. 从优站精选上学习Bootstrap案例总结(一)
  7. Python模块和包-你还在全部写成一坨吗?
  8. 一个22岁黑社会青年说的话
  9. json对象互转问题记录
  10. 727665503骗子 出售winmydns的骗子 dnscdn@qq.com(727665503)