单片机学习小组
登录
直播中
663593
12年用户
557经验值
私信
关注
如何实现led的控制?
开启该帖子的消息推送
单片机
如何实现led的控制?
回帖
(1)
孟佳
2022-1-17 15:05:39
led的控制
1.找到原理图的二极管位置
大概是这个样子,有的单片机比较简单,没有Y4C这个寄存器,所以可以跳过寄存机的步骤,但是,你既然点进来了,国信长天的板子,是有这个Y4C的,所以,我们要控制LED,首先,要把Y4口打开。
2.找到 Y4口(Y4口的映射位置就是Y4C)
再补充一点:
原理图上面,数字或者字母组合体,名字相同的,就是物理状态下,相连接的部分。
因为WR是低电平,所以,要想要Y4C是高电平,那么因为是或非门,根据紫色字体的解释,我们必须要将Y4置0。当Y4和WR同为低电平时,Y4C才为高电平。那我们继续找原理图上Y4的物理连接位置。
可见Y0-7口是由P25、P26、P27控制的,你们可能会有疑问,为什么,P的三个口可以控制8个Y,其实,在红色的地方我也做出了解释。
根据真值表:
我们暂时不看ABC,先看Y0-Y7端口,我们先告知一个知识点,H=HIGH,表示高电平,数值为1。那么,Y7-Y0就是11101111。对应的控制这个的ABC端口根据上上个图片,我们就得知,A对应P25,B–>P26,C–>P27。那么对应的地址由高到低来,即P7-0,的二进制就是1001 1111,(默认通电之后,端口都是高电平)。其实,搞出来这个P2口(1001 1111)可以逆推官方给的单片机实验程序上面的寄存器操作的依据。
P2 = (P2&0x1F|0x80);
首先,我们来看代码的&(与)部分。
0x1F写成二进制是0001 1111。P2口的默认状态是1111 1111。P2&0x1f是为了把高三位清0,因为我们在目前这个寄存器来看,我们只需要控制P7-5这三个端口,所以,我们就需要通过&运算,来将对应的三个端口清零,可以理解成先初始化这三个端口,为了方便我们后期的操作。
这是这个部分的运算。
如果你不太了解,按位与&,按位或|,可以参照我之前的文章,简洁明了
(文章链接在此&、|、^)
.
下面,我们再来看官方例程的后半部分0x80
为什么是0x80呢?
其实它是规定的LED锁存信号。
那么就不难理解为什么官方例程写成这样了。
P2 = ((P2&0x1f)|0x80); 那下面我们来验证一下:
看!这个就是我们刚刚推出来的P2的二进制。
我们可以按照官方的来写,也可以直接把16进制打上去,看个人喜好。但其实官方的写法更有利于观察和理解你代码的作用。所以还是推荐按照官方的来写,led信号都是固定的,到时候如果程序出现错误,写成官方的形式,更有利于排查错误,所以显然,我这里推荐使用官方的写法。
那么截至目前,我们已经会打开寄存器了,同时,寄存器在使用结束后,还是要关闭的,因为一个寄存器,根据官方所给的原理图来看,它不仅仅连接8位共阳led灯,而且还连接了数码管,口说无凭,上图:
所以,不管是你只是单独写一个led的程序,我们还是要养成一个良好的习惯,把寄存器打开后,关闭,用以锁存这个状态。其实你单独写led亮灭的时候,你不关这个锁存器也是可以正常运行的。但是,这并不是规范操作。
那么如何关闭P2口呢,其实上面我说过了,就是P2口的初始化,也就是说
P2 &= 0x1f; 这样就关闭了。
这个寄存器的使用到此为止,下面我们来介绍蓝桥杯的国信长天单片机实训平台的板子的Led控制
这是一个共阳极的发光二极管,怎么看的呢?
由图可知:他们的阳极全部接在一起,所以叫
共阳
。那么想要电源流通,就必须形成电压,所以就要有压差,那么怎么营造压差呢,我们来看整个威廉希尔官方网站 图
由高到低才能有压降。那么显而易见,我们想要哪个LED灯亮,就需要让它形成压差,就需要给P0的端口一个0来让电流流通。
所以
我们的点亮第一个LED灯 的程序就这么来写.
引入头文件:reg52.h也可以的。
选择采用位控制,还是用16进制的方式来控制也就是总线控制,原理都是一样的,位控制比较方便,也比较好纠错,所以我采用位控制。(下一个关于蜂鸣器的程序,我写一个位控制的)
#include
***it L1 = P0^0;void main(void){ P2 = ((P2&0x1f)|0x80); L1 = 0; P2 = (P2&0x1f);} 下面,我们来编译一下。
来吧!!展示!!!!!
好了,这就是以上点亮单个led灯的教程。
led的控制
1.找到原理图的二极管位置
大概是这个样子,有的单片机比较简单,没有Y4C这个寄存器,所以可以跳过寄存机的步骤,但是,你既然点进来了,国信长天的板子,是有这个Y4C的,所以,我们要控制LED,首先,要把Y4口打开。
2.找到 Y4口(Y4口的映射位置就是Y4C)
再补充一点:
原理图上面,数字或者字母组合体,名字相同的,就是物理状态下,相连接的部分。
因为WR是低电平,所以,要想要Y4C是高电平,那么因为是或非门,根据紫色字体的解释,我们必须要将Y4置0。当Y4和WR同为低电平时,Y4C才为高电平。那我们继续找原理图上Y4的物理连接位置。
可见Y0-7口是由P25、P26、P27控制的,你们可能会有疑问,为什么,P的三个口可以控制8个Y,其实,在红色的地方我也做出了解释。
根据真值表:
我们暂时不看ABC,先看Y0-Y7端口,我们先告知一个知识点,H=HIGH,表示高电平,数值为1。那么,Y7-Y0就是11101111。对应的控制这个的ABC端口根据上上个图片,我们就得知,A对应P25,B–>P26,C–>P27。那么对应的地址由高到低来,即P7-0,的二进制就是1001 1111,(默认通电之后,端口都是高电平)。其实,搞出来这个P2口(1001 1111)可以逆推官方给的单片机实验程序上面的寄存器操作的依据。
P2 = (P2&0x1F|0x80);
首先,我们来看代码的&(与)部分。
0x1F写成二进制是0001 1111。P2口的默认状态是1111 1111。P2&0x1f是为了把高三位清0,因为我们在目前这个寄存器来看,我们只需要控制P7-5这三个端口,所以,我们就需要通过&运算,来将对应的三个端口清零,可以理解成先初始化这三个端口,为了方便我们后期的操作。
这是这个部分的运算。
如果你不太了解,按位与&,按位或|,可以参照我之前的文章,简洁明了
(文章链接在此&、|、^)
.
下面,我们再来看官方例程的后半部分0x80
为什么是0x80呢?
其实它是规定的LED锁存信号。
那么就不难理解为什么官方例程写成这样了。
P2 = ((P2&0x1f)|0x80); 那下面我们来验证一下:
看!这个就是我们刚刚推出来的P2的二进制。
我们可以按照官方的来写,也可以直接把16进制打上去,看个人喜好。但其实官方的写法更有利于观察和理解你代码的作用。所以还是推荐按照官方的来写,led信号都是固定的,到时候如果程序出现错误,写成官方的形式,更有利于排查错误,所以显然,我这里推荐使用官方的写法。
那么截至目前,我们已经会打开寄存器了,同时,寄存器在使用结束后,还是要关闭的,因为一个寄存器,根据官方所给的原理图来看,它不仅仅连接8位共阳led灯,而且还连接了数码管,口说无凭,上图:
所以,不管是你只是单独写一个led的程序,我们还是要养成一个良好的习惯,把寄存器打开后,关闭,用以锁存这个状态。其实你单独写led亮灭的时候,你不关这个锁存器也是可以正常运行的。但是,这并不是规范操作。
那么如何关闭P2口呢,其实上面我说过了,就是P2口的初始化,也就是说
P2 &= 0x1f; 这样就关闭了。
这个寄存器的使用到此为止,下面我们来介绍蓝桥杯的国信长天单片机实训平台的板子的Led控制
这是一个共阳极的发光二极管,怎么看的呢?
由图可知:他们的阳极全部接在一起,所以叫
共阳
。那么想要电源流通,就必须形成电压,所以就要有压差,那么怎么营造压差呢,我们来看整个威廉希尔官方网站 图
由高到低才能有压降。那么显而易见,我们想要哪个LED灯亮,就需要让它形成压差,就需要给P0的端口一个0来让电流流通。
所以
我们的点亮第一个LED灯 的程序就这么来写.
引入头文件:reg52.h也可以的。
选择采用位控制,还是用16进制的方式来控制也就是总线控制,原理都是一样的,位控制比较方便,也比较好纠错,所以我采用位控制。(下一个关于蜂鸣器的程序,我写一个位控制的)
#include
***it L1 = P0^0;void main(void){ P2 = ((P2&0x1f)|0x80); L1 = 0; P2 = (P2&0x1f);} 下面,我们来编译一下。
来吧!!展示!!!!!
好了,这就是以上点亮单个led灯的教程。
举报
更多回帖
rotate(-90deg);
回复
相关问答
单片机
如何
实现
LED
控制
界面
2020-07-15
1200
ARM
实现
LED
控制
界面,怎么样做呢,求指导
2014-05-08
5627
设计一个
LED
控制
威廉希尔官方网站
实现
利用2个按钮
控制
LED
的开和关 画出威廉希尔官方网站 各出程序
2016-11-24
4782
怎样
实现
普通IO口对
LED
灯亮度的
控制
呢
2022-01-17
1194
如何完美
实现
按键key
实现
控制
led
灯?
2021-11-18
713
怎么
实现
基于ATMEGA8的
LED
彩灯
控制
器的设计?
2021-06-02
857
如何利用PWM
实现
对
LED
灯亮度的
控制
/对电机转速的
控制
?
2022-01-21
3459
使用PWM
控制
LED
实现
呼吸灯的效果
2021-01-26
2241
单片机来
控制
LED
实现
呼吸灯的效果
2013-03-14
32567
如何使用HAL库函数
实现
按键
控制
LED
灯?
2021-11-16
1315
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分