完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
最近使用74hc164,做LED指示灯数量的扩展,因为164不带输出控制,所有每一次送八位数据,都会有错误指示,使用595的话带输出控制,但是又要多占一个IO口,我想问下 有没有芯片是,输入8位串行数据后才自动并行输出全部状态,两个IO口就能搞定。
|
|
相关推荐
3个回答
|
|
虽然是去年的问题,但还是要回答一下,给后面的人看。 74hc595无非就是在164的基础上加了一个8位锁存器,也因此多了一个锁存信号。但我们可以变相的利用已有的IO去产生这个锁存信号,一个方案是74hc164+74HC573 见图 说明:74HC573是8位的锁存器,LE信号在高电平时允许信号改变,低电平时锁存信号。我们需要造出一个锁存信号,用在LE脚。74HC164的输出只有8位,显然不够,但是MCU到164之间至少有一个数据线,这个数据线再加上164的8位输出,总共有9位输出,573需要8位输入,那多出来的一个输出信号,把它接到573的LE脚,这样当它为0时,573输出内容不变,为1是573输出内容随输入变化。 显然这个多出来的信号不是最高位就是最低位。最低位是拼在164后面的MCU提供的数据线,上面的信号一直在变,不能作LE信号。最高位是164的Q7,它在所有9位中最后一个变化,变换最不频繁的,就用它做LE信号。就成了图中的那样。 单片机在发送8位数据时,要在数据之前先发送一个1,再接着发送数据的高7位,这样最先的那个1在Q7,LE=1,573的输出变化,最后再把MCU提供的数据线变成数据的最低位,但不要给移位时钟,这样573的输出就是你要的8位数据。总的发送数据为:0x100 + Data[7..0],总共送8个移位时钟。 如果要换一个字节,一定要先对164清零,否则LE有可能被前一个数据中的高电平使能,造成输出乱码。 总结:本方案至少需要3个控制信号:数据信号、移位时钟、清零信号。不足的一个地方是:573输出的Q0在短时间内是不稳定的。这个你自己实验一下就知道了。 当然还有其他的方案,例如74HC164 + 74HC573 + 带清零端的4位二进制计数器。计数器计了8个移位时钟后变成"1000",最高位的1接到573的LE脚,这样每输出8位数据,会自动加载到573上,换数据前要记得把计数器清0。 总之方法很多 |
|
|
|
这个问题简单~~~用74HC164本身即可完成,仔细看数据手册里的/MR端口,剩下的就是写程序了。简单不?
|
|
|
|
很简单,学习了,,,
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
205 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1253 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
848 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
853 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12011 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 23:25 , Processed in 0.639637 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号