74hc164驱动数码管笔段问题

164驱动数码管显示都正常,就是不需要点亮的笔段暗亮,不知是什么问题,请那位大师帮帮小弟,给个帮助,谢谢了。
我的164程序;麻烦看看有问题吗?谢谢!
void Transmit164(unsigned char number) {
unsigned char K=8;
do
{
K--;
CLK=0;
DAT=(bit)(number&0x80);
number=number<<1;
CLK=1;
}while(K!=0);
}
二楼的老师,你的164程序还是不行啊,还是有暗亮,和我的一样。

我之前写的164扩展程序,参考一下吧!应该可以解决你问题。

其实你只要用到一片164就够了,作动态扫描,下面程序是两个数码管动态扫描,164并行输出口再接一片功率驱动芯片,如TD62083。

程序如下:

/**************************************/
/* 74LS164数码管动态显示*/
/**************************************/
//-------------------------------------库函数声明,管脚定义------------
#include <at89x51.h>
#define uchar unsigned char
sbit simuseri_CLK=P1^1; //用P1^1模拟串口时钟
sbit simuseri_DATA=P1^0; //用P1^0模拟串口数据

sbit a0=ACC^0;
unsigned char code dis_code[11]={0x28,0x7E,0xa2,0x62, //查表显示 0, 1、、9
0x74,0x61,0x21,0x7A,0x20,0x60, 0x01};

uchar numer,temp;
uchar ge,shi;
//----------------------------------------------------------------------------
// 函数名称:out_simuseri
// 输入参数:data_buf
// 输出参数:无
// 功能说明:8位同步移位寄存器,将data_buf的数据逐位输出到simuseri_DATA
//----------------------------------------------------------------------------
void out_simuseri(uchar data_buf)
{
uchar i;
i=8;
ACC=data_buf;
do
{
simuseri_CLK=0;
simuseri_DATA=a0;
simuseri_CLK=1;
ACC=ACC>>1;
}
while(--i!=0);
}

/************************************/
void delay(uchar ms) //延时程序
{
uchar i;
while(ms--)
{
for (i=0;i<125;i++);
}}

/***********************************/
void main()
{
uchar m;
while(1)
{
for(temp=0;temp<99;temp++)
{
ge=temp/10;
shi=temp%10;
for(m=0;m<20;m++) //显示频率200ms加1次
{
P2_0=0; //位段码
numer=dis_code[ge];
out_simuseri(numer); //个位移位显示
delay(5);
P2_0=1;

P2_1=0;
numer=dis_code[shi]; //十位移位
out_simuseri(numer);
delay(5);
P2_1=1;
}
m=0;
}
}
}
/****************************************/
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-09
74HC164是个移位寄存器,以下程序是我用过的,绝对没问题:

其中ShowData为164数据脚,ShowClck为164时钟脚;

void Show_164(unsigned char _ShowValue)
{
unsigned char Count0;

for(Count0=0;Count0<=7;Count0++)
{
if((_ShowValue&0x80)==0x80)
ShowData=1;
else
ShowData=0;

_ShowValue<<=1;

ShowClck=0;

_nop_();
_nop_();

ShowClck=1;

}

}

单片机电子万年历的设计 数码管显示问题
由于 74HC164 的输入内阻问题 不加 上拉电阻(2k - 10k)可能会出现数据不正常 以上连接没有问题 一般就能正常 运行,用表笔 接触 DAT 与 CLK 会有干扰 出现不正常。74HC164 驱动数码管(用共阴比较好电路简单)可以直接用 IO 作为 位选。

格兰仕电磁炉,数码管显示缺笔画,其他功能正常求维修方案?
检查数码管脚电压,若有就是数码管坏,直接更换数码管就OK了,否则就是驱动电路有故障,须对电路做检查,重点检查电容部分就可以了。

74hc164 能互换么 74ls164
当第六个8个脉冲完成后,首次送出的数据被送到了最左面的164中,其他数据依次出现在第一、二、三、四、五片74LS164中。驱动程序:入口:把要显示的数分别放在显示缓冲区60H-65H共6个单元中,并且分别对应各个数码管LED0-LED5。出口:将预置在显示缓冲区中的6个数成相应的显示字形码,然后输出到显...

四位共阳极数码管如何接译码器74ls138
接上也没有用,出不来你想要的效果,38译码器8个输出端之间只有一个是低电平其他都是高电平,不能控制数码管,想要控制数码管的话,建议你用74HC164是个串口转并口的片子,两个口控制8个口,正好可以满足你的要求,至于解法根据程序的设定而变!!~~ 本回答由提问者推荐 举报| 答案纠错 | 评论(1) 5 3 w05717011...

单片机做的数码管万年历显示时抖动
连接在一起接单片机 IO 作 CLK 时钟线 最好加上拉 )由于 74HC164 的输入内阻问题 不加 上拉电阻(2k - 10k)可能会出现数据不正常 以上连接没有问题 一般就能正常 运行,用表笔 接触 DAT 与 CLK 会有干扰 出现不正常。74HC164 驱动数码管(用共阴比较好电路简单)可以直接用 IO 作为 位选。

相似回答