51单片机控制LED灯
个人网站: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.1 – P2.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 = 0x01;0x是十六进制的前缀。 再例如 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灯相关推荐
- 一、51单片机控制LED 灯
1.目标分析 通过51单片机控制8个LED灯依次点亮,形成流水灯. 2.原理图分析 2.1. 74HC573芯片 (1) LED控制涉及到74HC573芯片,上图中的U13.想知道该芯片如何工作的,应 ...
- 51单片机-控制LED灯
目录 1.硬件设计 2.软件设计 2.1.点亮一颗LED灯 2.2.LED闪烁 2.3.LED流水灯 3.知识点 3.1.while函数的应用 3.2.常用数据类型 3.3.延时函数的自动生成 1.硬 ...
- 51单片机控制LED灯显示模式
1.在交通灯控制系统的基础上修改硬件电路 2.AT89C51单片机的P1口接8个独立按键,P0口接8个LED灯,led等的上拉电阻改用排阻,设计硬件电路. 3.编写程序,实现基本要求:当P1.0键按下 ...
- 51单片机led灯闪烁程序C语言,51单片机控制led灯闪烁程序
Keil 写程序的过程,建立工程-->保存工程-->建立文件-->添加文件到工程-->编写程序-->编译-->下载程序. #include sbit LED = P ...
- c语言程序小灯从右向左闪烁,单片机控制LED灯点亮(C语言).PPT
<单片机控制LED灯点亮(C语言).PPT>由会员分享,可在线阅读,更多相关<单片机控制LED灯点亮(C语言).PPT(45页珍藏版)>请在人人文库网上搜索. 1.1,单片机控 ...
- stm32f103c8t6+ESP8266利用onenet平台上传数据到云平台,再利用云平台远程下发命令给单片机控制LED灯亮灭
stm32f103c8t6+ESP8266利用onenet平台上传数据到云平台,再利用云平台远程下发命令给单片机控制LED灯亮灭 接触stm32已经有一年半的时间了,从最开始的stm32F103ZET ...
- 51单片机 PWM LED灯亮度调节+Proteus仿真
51单片机 PWM LED灯亮度调节+Proteus仿真 Proteus仿真 实例代码 #include "reg51.h" unsigned int cd,dd; unsigne ...
- 51单片机入门————LED灯的控制
LED的电路图 通过原理图看出,LED灯是接单片机芯片的P20~P27的 一共有8个LED,51单片机也是8字节的 P2=0x01 0xFE----1111 1110 P2=0xFE可以表示把在P2端 ...
- 单片机控制灯光亮度c语言程序,基于51单片机控制LED灯光亮度并报警
利用pwm控制led灯光亮度大小.可以显示许多亮度等级 到最低或者最高亮度等级会发出报警.设计思路: LED一般是恒流操作的,如何改变LED的亮度呢?答案就是PWM控制.在一定的频率的方波中,调整高电 ...
最新文章
- 自律到极致-人生才精致:第11期 - 领奖通知
- Python数据类型方法总结
- python动物代码大全_python爬虫代码大全
- 微软将开放神经网络交换格式贡献给 Linux 基金会
- java 反射获取属性名和值_面试官这样问我Java反射原理,我刚好都会
- 使用记事本开发第一个java程序
- C#.Net工作笔记009---c#中Yield Return语法的作用和好处
- 一口气完成electron的入门学习
- 木马的隐藏及其启动方式 (转)
- DDFE 技术周刊(第十期)2017.1.9
- matlab 安装教程 2018b
- java虚拟机是什么?
- user32.dll 函数说明
- Delphi中使用Imageen控件将图像文件转换成PDF
- Excel计算函数(计算机二级)
- 429. N 叉树的层序遍历(中等 树 广度优先搜索)
- Discuz app打包app上架appstore小技巧
- RFX2401C 2.4GHz功放PA前端模块
- java获取东八区时间
- 关于协方差矩阵和相关系数矩阵的一些应用认识