C51学习笔记5

本文详细介绍了如何使用74HC138译码器和74HC245双向数据缓冲器控制静态数码管的显示,包括译码器的工作原理、如何通过单片机控制数码管的选通和数据输出,以及使用缓冲器提高驱动能力。
摘要由CSDN通过智能技术生成

静态数码管显示(只能显示一个数)

LED数码管结构:

数码管接了两个74系列的芯片,74HC138译码器,74HC245。

COM共阴极;GRN共阳极


译码器结构:(芯片1    74HC138)

输入端:C高位;A低位;B中间。

输出端:8个

三位二进制可以表示8个数据;(最大表示2^{^{^{^{^{}}}}}*2+2+1=7,0-7,8个数)

?意义:仅通过0/1操作控制三个端口,就相当于对8个端口进行了操作。8\rightarrow3,节省了单片机的I/O口。

第四列:哪位有效,哪位输出0,剩下的输出1

why?:由原理图,译码器的LED1-8连接的是数码管8个分块的8个共阴极,所以哪个有效,哪个为阴,即为0{只能同时选中一个数码管}

C                B                A                Y(0-7)     LED(1-8)错位
000Y0      0111 1111
001Y1      1011 1111
101Y5       1111 0111

使能端:相当于电源开关。若使能电平有效,可以工作。

使能:为保证38编译器可以正常工作,需要对4(G2A)、5(G2B)、6((G1)号引脚置数。所置数值根据引脚是高电平还是低电平有效来选择。

能工作:(如原理图的状态,所以一上电就工作了 )G1高电平;G2A、G2B低电平。


双向数据缓冲器:(芯片2    74HC245)

单片机高电平驱动能力有限,输出的最大电流不能太大。

低电平驱动能力更强(LED模块采用低电平点亮,灯会更亮??,输入低电平有效)

共阴极连接,输入高电平有效,低电平无效,为高电平驱动

共阳极连接,输入低电平有效,高电平无效,为低电平驱动

??所以此处加缓冲器,提高了驱动能力。如果直接把I/O口接到数码管,单片机输出的数据就当作驱动数码管显示的数据,现将其通过缓冲器这个芯片,芯片再接数码管,这个数据就变成各种信号(控制信号),控制信号很微弱,缓冲器芯片就可以接收到,接收到后,芯片从自己接的电源上汲取能量,再输出到引脚上。

输入电流较少,输出的电流是从电源上汲取来的,这就驱动数码管更亮的闪烁

 

OE:芯片的使能,低电平有效。如图接地,芯片可以工作。

右图中有个电容,左无,用于电源滤波,滤除不稳定的电源信号。稳定电源,使芯片供电更稳定

DIR(direction)(控制数据传输方向):  DIR若接高电平,就把左边数据送到右边

                                DIR若接低电平,就把右边数据送到左边

                                左图接VCC;右图接LE(插跳线帽,将VCC与LE短路)。所以,左\Rightarrow

排阻:限流。


静态数码管显示步骤:

  1. 控制138译码器的三个口(P22 P23 P24),使某一位(共阴极)被选中,通过置0。亮的位置
  2. 再给P0口一个断码数据,经芯片缓冲,送到断码段 ,通过置1。                            亮的形状

//LED6显示6----
//LED6:Y5---101
// 6:    a-dp:1011 1110
//       P00-P07:1011 1110
//       应从高位(P07)到低位(P00)读:所以0111 1101(7D)

#include<REGX52.H>
void main()
{
       P2_4=1;
       P2_3=0;
       P2_2=1;
       P0=0x7D;
    while(1)
    {
    }
}
//可通过函数,数组任意控制某一位显示某数据(代码可直接调用)

///1表示5V的高电平 

  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值