74HC138芯片实现位选信号的发送
段选信号需要7或8位(如果有小数点就需要8位),通常分配一个P口作为段选信号输出,我们选P0口作为段选信号输出,若其余P口可用于位选信号,1位位选对应1位数字,3个P口全用于位选的话,可以对应3x8=24位数字。为增加显示位数节约IO口资源,循环移位的位选信号可利用3-8译码器实现,仅用3个IO口,就可以实现8位数字显示控制。
一、38译码器引脚功能:
38译码器,就是把 3 种输入状态翻译成 8 种输出状态,如图,A B C端为输入端(输入引脚),E1 E2 E3为使能端(使能引脚,对译码器进行控制),E1端输入为1 E2 E3端输入为0时,译码器正常工作。Y0--Y7为输出端,(我们要注意到,使能端的E2E3低电平时有效,输出端为二进制输入端的非值)。
真值表:
输入端 输出端
二、电路连接:
说明:P0.0--0.2连接译码器的输入端,在keil中编译代码成功后,P0.0--0.2将输出值,通过译码器实现位选信号的发送(在此用二极管的点亮来证明),P2口8位作为段选信号输出(假设数码管有小数点)
程序代码:
#include<reg52.h>
void main()
{
unsigned char numbers[]={0x07,……};
while (1) {
for(i=0;i<8;i++){
P2 = numbers[x];
P0 =i;
delay(1000ms);
}
} }