查看: 751  |  回复: 0
蓝桥杯练习(一)数码管和LED的使用
Argon
9
主题
5
回复
发表于2019-01-30 21:08:16 | 只看该作者
1# 电梯直达

蓝桥杯练习(一)数码管和LED的使用

做基础练习的时候数码管和LED灯经常使用,想要查看一个采集的数据是否正确,可以通过数码管显示,LCD1602显示,串口显示等等,学习1--2种显示方法是有必要的,LED灯点亮则是基础。

蓝桥杯开发板的LED灯电路图,如下图所示。

点击查看大图

开发板上的LED灯低电平点亮,LED灯的顺序从左往右依次是1-8。

数码管编译码,蓝桥杯开发板的数码管是共阳极的。编译码如下图所示

如果想要驱动数码管就要同时使用两个74HC573锁存器分别控制段选和位选,如下图所示


数码管使用两个74HC573,U7段选(想要显示数据的存储锁存器),U6位选(选择哪一个数码管亮的锁存器),锁存器上面OE引脚接地,此时只用Y6C控锁存器即可,Y6C置1锁存器打开,可以存储数据和选位,Y6C置0锁存器关闭,此时不能对数码管进行显示操作。Y7C和Y6C是同样的道理,在普通的开发板上面段选,位选是在同一个锁存器上面进行的,在蓝桥杯开发板上面有众多使用P0端口的器件,LED ,数码管,电机,蜂鸣器和继电器等等,此时就通过译码器74HC138进行逐个控制74HC573锁存器,进而在控制数码管和LED灯。想要控制数码管还得学习译码器74HC138。

蓝桥杯开发板附带的译码器电路,如下图所示


译码器真值表 H--1,L--0 。P25--A,P26--B,P27--C。

点击查看大图

在开发板中我们可以看到G1已经连接到了VCC,G2A和G2B也已经接地,所以我们只需要通过单片机将P2.5、P2.6、P2.7三个I/o口送入数据就可以控制38译码器后端的Y0——7八个端口为了简单的记忆,可以将38译码器上的ABC三个端口ABC理解为:A代表1,B代表2,C代表4。如果想让Y5端口为低电平的话就只需将A和C置1(1+4=5。如果想使Y3口为低电平的话就仅仅需要将A和B两个端口置1即可,这种方法十分的使用而且便于记忆

74HC02或非门

如下图所示74HC02芯片内部电路

 

74HC02输入(A,B)和输出(Y)

 

或非门74HC02来控制的只有当WR和Y4同时为0的时候Y4C才为1,这样是或非门的原理0+0=1,1+0=0。WR连接的是IAP单片机的P4.2端口。在程序中需要将P4.2端口手动拉低。WR = 0即可。 

控制单个LED

void LED1()
{
    P2 = (P2&0x1f)|0x80;    //P2&0x1f  是为了清空P25,P26,P27三个端口的数据,保留其他的端口的数据,|0x80  控制LED灯那个573锁存器,此时控制74HC138的ABC三个端口的高低电平
    P0 =~ 0x01;      //LED灯是低电平点亮灯 也可以写0xfe
    delayms(1);      //延时
    P2 = P2&0x1f;    //关闭LED灯使用的573锁存器
}

有了LED灯的演示(单个和多个LED的控制原理是一样的,多个LED灯可以采取移位的方式进行亮),数码管也不难写。

静态显示数码管

sbit WR = P4^2;
//共阳极数码管
uchar code smg[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,0x80, 0x90};
//缓存数码管数据 
uchar buff[] = {0,0,0,0,0,0,0,0};	 
void display()
{
	P2 = ((P2&0x1f) | 0xe0);//段选消隐
	P0 = 0xff;
	P2 &= 0x1f;
	
	P2 = ((P2&0x1f) | 0xe0);  //段选显示数据
	P0 = smg[buff[dspcom]];
	P2 &= 0x1f;

	P2 = ((P2&0x1f) | 0xc0);   //位选移位开始
	P0 = (0x01<<dspcom);
	P2 &= 0x1f;

	if(++dspcom == 8)dspcom = 0;  //限制数码管显示长度
}


附程序源码和数据手册:


1.程序:程序静态显示.zip 

2.数据手册:74HC138.pdf     74HCT573.pdf


主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

顶部