完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
前面介绍了74HC138、74HC02、74HC573。所以接下来的几个外设中,我们将以这三款芯片为基础,去驱动他们!
一、首先,我们来看什么LED?怎么驱动正负极? LED全英文名是“Light Emitting Diode”,中文名称为“发光二极管”,它有直插式和贴面式的两种封装。现今,为了节省开发板的利用空间,一般在开发板上采用的都是贴片式封装。但是无论是哪种封装,我们都必须搞清楚它的正负极性。一般而言,直插式的 LED ,长的一脚是正极(连接电源的正极)、短的一脚为负极(连接电源的负极)。另外,圆柱形的 LED 负极侧面会有一个平滑的切面,而正极侧是一个圆弧面。对了贴面的 LED ,我们也能看到它的背面会有箭头或者是 T 字型的标志(一般是绿色的标志)指向 LED 的负极。 二、 LED 的工作原理: 它和普通的二极管一样,具有单向导通特性。所以通过它的电流应是从正极流向负极。我们再选取一个特性的电阻,将电流限定在它正常的工作范围之内即可。 LED 常见的导通电压为 1.7V 左右(其实,不同颜色的 LED 导通压降不同),工作电流一般为1~20mA,所以大多数开发板选择 1K欧 或者330欧姆的电阻为 LED 提供限流保护。 三、接下来看一下连接 LED 的原理图: 由上图可见,我们通过控制P2.5P2.6P2.7,控制Y4C,再控制锁存器的开关,用P0口实现LED的亮灭。 具体驱动部分的代码如下: P2 = (P2 & 0x1f)|0x80; //先将P2口的高三位置0,第5位保持原来的状态不变,再或上0x80,使得Y4为0。进而Y4C为1,锁存器打开。P0 = 0xf0; //控制P0口,使得高四位输出1,第四位输出0,结合原理图,可知P0口所连接的低四位LED被点亮。P2 &= 0x1f; //再使得P2.5P2.6P2.7为0,关闭Y4C所连接的锁存器。以后再控制P0口,并不会影响LED的亮灭情况。123当然,我们也可以添加适当的延时,让 LED 具有闪烁的功能;用适当的代码或函数移,使得具有移位的功能,这里不再详细说明。 其中,这里再提一点: P2 = 0xf0,即为 P2 = 0b11110000,让P0~P3为0,P4~P7为1。 “0x”是表示后面为十六进制的数,“0b”是表示后面为二进制的数。而0x也就是用4个二进制数表示成为一个十六进制数。但是我们为什么不写成P0 = 0b11110000,因为我们写代码用的 Keil 的 C 编译器是不支持二进制数的,它只能识别十进制数和十六进制数,所以我们写成0x的形式。其实,用十六进制数也方便了许多。 这样,我们就点亮了LED灯! |
|
|
|
只有小组成员才能发言,加入小组>>
2510 浏览 0 评论
1079浏览 2评论
694浏览 1评论
450浏览 0评论
189浏览 0评论
321浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 11:25 , Processed in 1.236637 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号