单片机实验(十五)74LS47数码管译码

80S52:数码管译码模块

功能:向74LS47输入BCD码(如0x01),七位数码管显示对应的数字(如1)

这次的实验过程有点艰难,因为成本问题(都直接用动态扫描)很少有像74LS系列芯片的用武之地,资料比较少本人懒得查
先来一睹74LS47的芳容(如下图)
单片机实验(十五)74LS47数码管译码_第1张图片
OA…OG是与七位数码A…G口对应的输出端口。
A、B、C、D则与51单片机的P1 I/O的低四位相连,用于输入BCD
LT、RBI、BI/RBO分别是试管端、灭0端、息屏端,后面会一一讲解。

电路连接比较简单,我用proteus演示一下:
单片机实验(十五)74LS47数码管译码_第2张图片
连线乱了一点,我在这里说明一下://不同开发板可能不一样
A–>P1^0;
B–>P1^1;
C–>P1^2;
D–>P1^3;
这里装载的hex非常简单:

#include
#define data P1
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
int main(){
	data=1;//相当于:P1^0=1;P1^1=0;P1^2=0;P1^3=0;
	while(1);
}

同理如果要显示0、2…9只需要将0、2…9赋值给P1。
之后我们来了解一下LT、RBI、BI/RBO。

LT,试管端,当LT端的电位为0,则无论A、B、C、D处于什么点位,QA~QG统统输出高电平,使得七位数码管显示8(即全亮),用于测试数码管坏了没…
如图:把LT接地后原来输出1的数码管输出8.
单片机实验(十五)74LS47数码管译码_第3张图片
RBI,灭0端,字面意思,如果数码管当前要输出0且RBI端为低电平,则啥也不输出,很无聊 很有价值,能实现…不知道,而且proteus上也不支持模拟。

BI/RBO,灭屏端(似乎和RBI还有什么关系),只要该端口是低电平不管A、B、C、D端状态,都不输出。
单片机实验(十五)74LS47数码管译码_第4张图片
大概就是这样。。。
单片机实验(十五)74LS47数码管译码_第5张图片

你可能感兴趣的:(笔记)