四个74HC573实现贪吃蛇(贪吃蛇447)
单片机控制数码管用两个74HC573锁存器来控制段选和位选时怎么连接单片机呢?
这个很容易的,你用单片机直接引脚比如P2(有P2^0...P2^7)八个引脚对应74HC573的D端连接上,然后再把74HC573的Q端连接到数码管的位选(有可能是段选,这个有点忘了)...前提:你要知道74HC573的用法(去百度看它的资料)...最后,这个连接办法直接是开发板上就有的,最蠢的就是直接百度开发板原理图,然后按照他连接了,甚至程序都可以百度到...就这样了!!!
回答可以的话记得给最佳答案啊...
为什么74hc573的输出可以驱动6位数码管?
74HC573锁存器用于数码管显示通采用段选、片选共用同组并口驱式
驱数码管需要两信号段选信号片选信号段选信号固定8(于普通7段数码管)片选信号数量与数码管位数相同于8位数码管态扫描说片选信号要8根线仅仅驱数码管占用2组共16IO口非浪费
使用573锁存器占用8+2=10IO口其2用于控制锁存器使能另外8输信号先关闭控制片选信号573芯片锁存功能单片机输片选信号随启锁存论573输入端何变化输端都变原输入信号锁住再关闭控制段选573锁存功能输段选信号再锁存巧妙实现数据线复用让组IO口既输段选输片选
74hc573n怎样和51单片机IO和8*8点阵相连的电路图或方法。
74hc573就是一个串行输入,并行输出的锁存器而已,和51连接,只需一个时钟引脚和一个数据引脚,8*8的矩阵需要两片573,所以就是4个脚随便与51的4个IO口连起来就是了。
74HC573 控制数码管动态显示
强烈建议用C语言来学单片机,汇编对于稍微复杂点的程序,会让你累翻
52单片机加两个74HC573,数码管动态显示,一个573连接段,一个连接位,求C程序。
图画的不对,既然用了锁存器,就要节约IO端口,两个锁存器的输入应该共用一个端口P0或P2
假设为P0
每个锁存器有1个锁存信号L,需占用两条IO线,假设分别接 P1.6和P1.7
由于是动态扫描显示,所以显示函数调用时要放在WHILE或FOR循环中反复运行,才能看见结果
程序如下:
#includereg52.h
sbit dula=P1^6;//段锁存信号
sbit wela=P1^7;//位锁存信号
#define uchar unsigned char;
void delay(i)
{
for(j=i;j0;j--)
for(k=125;k0;k--);
}
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void display(uchar qian_c,uchar bai_c,uchar shi_c,uchar ge_c)//4位显示程序
{
P0=table[qian_c]; //显示千位
dula=1;
dula=0;
P0=0xfe;
wela=1;
wela=0;
delay(2);
P0=table[bai_c]; //显示百位
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0;
delay(2);
P0=table[shi_c]; //显示十位
dula=1;
dula=0;
P0=0xfb;
wela=1;
wela=0;
delay(2);
P0=table[ge_c]; //显示个位
dula=1;
dula=0;
P0=0xf7;
wela=1;
wela=0;
delay(2);
P0=xff; //显示完毕后关闭所有位显示,也可不要,但退出显示程序时会留尾巴,即最后一个数码管还在显示
wela=1;
wela=0;
}
void main( )
{
.....//其它代码
while(1)
{
display(b1,b2,b3,b4); //调用显示函数
.....//其它代码,不能占用CPU太多时间,否则显示闪烁
}
}
两片74hc573怎么连接在单片机上实现位和段的锁存
用74hc573的LE端控制,OE直接接地就行,LE为1时打开锁存器,这时候就可以输入数据到锁存器中,也就是说D0~D7到Q0~Q7导通;LE为0时,锁存器锁存,D0~D7的变化不会影响到Q0~Q7.