用74HC164驱动笔段式LCD的方法?

作者&投稿:台美 (若有异议请与网页底部的电邮联系)
74hc164驱动数码管笔段问题~

我之前写的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;
}
}
}
/****************************************/

4个74hc164驱动4个8位数码管 p1.3接三极管起开关作用p1.5是串行数据输入CP分别接单片机的4个端口就可以控制了
单片机要发送数据到哪个数码管,对应的74hc164驱动的CP电平变化,其他的CP高电平。

LCD显示,得用交流信号驱动,得有方波。你这样驱动是不行的。如果你要这样驱动,你得加液晶显示驱动芯片。如在164的输出口加上CD4543或MC14543.对164直接输出BCD码,不用段译码程序。


请问74hc164应该怎么用
你用了几片74hc164来驱动两个8段LED?建议你每个8段LED使用1片74hc164来驱动。低位那片的AB接高位的QH,一次输出16位(调用两次send_byte),参考一下别人的设计。参考资料:http:\/\/www.elecfans.com\/dianlutu\/app\/200804288904.html

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

利用4个74hc164驱动4个8位数码管,位段码的问题!
我之前写的164扩展程序,参考一下吧!应该可以解决你问题。其实你只要用到一片164就够了,作动态扫描,下面程序是两个数码管动态扫描,164并行输出口再接一片功率驱动芯片,如TD62083。程序如下:\/***\/ \/* 74LS164数码管动态显示*\/ \/***\/ \/\/---库函数声明,管脚定义--- include <at89x51.h> ...

stc90c52rc加74hc164D驱动的是共阳数码管,现在正常,单片机控制的位选...
74hc164D后直接并1片uln2803搞定(位选加三极管) 是八路NPN达林顿连接晶体管阵为集电极开路输出,输出高电平时,输出电压取外接电源电压,最高电源电压可达50V。不需要8路的ULN2003也可以 是7路的。

1602液晶显示 用74HC164驱动问题
检查一下你的硬件连接和74HC164驱动程序。

74hc164驱动的四个数码管第一次按按键1显示1- - - 按按键2显示2...
是不是和下面的类似:http:\/\/hi.baidu.com\/do_sermon\/item\/44fd5ad18b4abb92270ae76f --- 楼主的题目,也没有说清电路,也没有指定语言。前面,问了一次,楼主也没有反应。下面,用C语言,编程实现:\/\/=== include <AT89X51.H> char disp_buff [4] = {0}; \/\/显示缓冲单元.\/...

我用4个74hc164驱动4个一位共阳极数码管,proteus仿真通过了,可实物连接...
是你的接线问题,第一个数码管的最后一段应该接到第二个的数据输入端,第二个数码管的最后一段应该接到第三个的数据输入端,如我的图,这样才能显示一串的数据。所以你的只能显示第一个!

求下边51单片机 用74hc573 和 74hc164 驱动8位数码管的方法
我有用74hc573驱动8位数码管的程序,程序里都有详细的解释,要的话我可以发给你 595作为位选,164为段选,当位选时 将oe端置低,而当要传送段选信号时,将oe置高,就ok了

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

...每段为0.6mA左右,现在是5V供电的74hc164再驱动的数码管。
所以把hc164的供电降到3V,单片机上的输出显示信号为5V,比164的供电电压低2V,你说的话有问题吧

三门县13036707914: 用74HC164驱动笔段式LCD的方法? -
书邓阿瑞: LCD显示,得用交流信号驱动,得有方波.你这样驱动是不行的.如果你要这样驱动,你得加液晶显示驱动芯片.如在164的输出口加上CD4543或MC14543.对164直接输出BCD码,不用段译码程序.

三门县13036707914: 单片机串行驱动1602液晶需要那几根线? -
书邓阿瑞: LCD1602液晶屏需要8位数据口和3位R/W,RS,EN口. 如果用74HC164串口转并口输出,就需要74HC164的时钟线和数据线2个,和3位RW,RS,EN. 答案是需要5根线.

三门县13036707914: lcd 笔段如何用单片机驱动?
书邓阿瑞: 很多单片机带有LCD驱动的.这种单片机有引脚可以直接连LCD,对IC对应的RAM写赋值就可以点LCD. 如果单片机不带的话,跟扫描8字LED一样,但比LED麻烦, 要不断变换IO口,才不会损坏LCD.

三门县13036707914: 74HC164控制led显示电路怎么连接? -
书邓阿瑞: 脚1,脚2 接串行数据输入.脚8接串行数据时钟.脚9要是不清除接高电平.脚3,4,5,6,10,11,12,13接电阻,电阻另一端接LED的负,LED的正接电源.

三门县13036707914: 能用74hc164n来驱动数码管吗? -
书邓阿瑞: 当然可以,用164芯片驱动数码管,多用于IO口资源紧张、数码管显示数据刷新慢的场合.设计电路时,多个164芯片级联使用,不管驱动多少位数码管,一共只占用单片机2个IO口,可以说是最省IO口的驱动方式了,并且还是静态驱动,没有频闪和亮度低的现象.缺点是,多个164级联使用,会导致单片机刷新显示数据时需要一次性发送大量的显示数据(每个数码管1个字节),这个过程中数码管会出现全亮现象,虽然发送数据的过程持续时间很短,但还是影响显示效果,建议在刷新数据时关闭数码管.

三门县13036707914: 用74HC138,74HC164设计数码管显示电路(八段数码管,用8个),,,如果要加电阻,具体要加多大的.
书邓阿瑞: 方案可行,不过74HC04做LED驱动,在扫描方式时,电流不足. 不管假设段全亮,按4个位算,每个段的平均电流最大能到0.7mA,按8位算,只有0.3mA左右. 建议用三极管驱动,每段平均电流达到3mA以上为宜.

三门县13036707914: 用STC89C52RC单片机做汉字显示屏时,有用到74HC164和74HC595,它们分别做什么用? -
书邓阿瑞: 我也是做这个题目的毕业设计.我是用HC154做4-16线译码器,为了节约单片机的IO口资源,74HC154作为行驱动(行扫描).HC595作为列驱动,串行输入并行输出.所以建议不要使用164 选用74HC154作为行扫描,用单片机的四个IO口配上HC154,再加上驱动电路,也就是加个ULN2803达灵顿管...单片机的四个IO口用作扫描... 自己看HC154的真值表595主要是列显示...单片机的一个IO口输出的数据经过74HC595就可以达到并行输出的目的...

三门县13036707914: 请高手告诉这个电路图怎么连?74HC164的点路.
书邓阿瑞: 74hc164是串入并出,数据在逐位移入164,8位并行输出,正好和led的8个脚相连接,所以是一个164驱动一个数码管.总之你想显示几位数据就用几个数码管,相应的就用多少个164. 好处就是节省单片机管脚,只要2个就行,一个输出移位脉冲(P1.1),一个输出移位数据(P1.0). 你的资料上说是共阳极的,那就是164输出低电平有效,显示译码值只要对应好了就没问题了. 8段LED名是:DPY_7-SEG_DP,7段LED名是:DPY_7-SEG,8段的就是比7段的多了一个小数点位,名字记不住也没事,在protel的左下角有个元件效果图,你一看就知道了.超级电容我也没有接触过,很抱歉,你可以上网查查.

三门县13036707914: 请教74HC164控制数码管的C程序 -
书邓阿瑞: 164的使用极为简单.用串行口的方式0,串行输出即可.串行输出的数据,直接就可以驱动LED数码显示器,一片164即可以带动一个8段码的显示器,进行静态显示.不必要能成段选、位选的动态显示.

三门县13036707914: 以下是用74hc164控制数码管段的程序,那位大神帮我分析下程序是怎样显示数字的谢谢 -
书邓阿瑞: 程序循环了八次.逐次把 x 的最高位,输出到 SDA;然后把 x 左移一位. 并且,在 SCL 输出了八次上升沿.外接的164,收到这些,就驱动数码管显示 x 的信息.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网