74HC595在51单片机中的使用.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
74HC595在51单片机中的使用

2008-07-27 | 74HC595中文资料 标签: 移位寄存器 stcp 输出 上升沿 寄存器 ________ QB--|1 16|--Vcc QC--|2 15|--QA QD--|3 14|--SI QE--|4 13|--/G QF--|5 12|--RCK QG--|6 11|--SCK QH--|7 10|--/SCLR GND- |8 9|--QH |________| 74595的数据端: QA--QH: 八位并行输出端,可以直接控制数码管的8个段。 QH: 级联输出端。我将它接下一个595的SI端。 SI: 串行数据输入端。 74595的控制端说明: /SCLR(10脚): 低点平时将移位寄存器的数据清零。通常我将它接Vcc。 SCK(11脚):上升沿时数据寄存器的数据移位。QA--QB--QC--...--QH;下降沿移位寄存器数据不变。(脉冲宽度:5V时,大于几十纳秒就行了。我通常都选微秒级) RCK(12脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。通常我将RCK置为低电平,当移位结束后,在RCK端产生一个正脉冲(5V时,大于几十纳秒就行了。我通常都选微秒级),更新显示数据。 /G(13脚): 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。 注:74164和74595功能相仿,都是8位串行输入转并行输出移位寄存器。74164的驱动电流(25mA)比74595(35mA)的要小,14脚封装,体积也小一些。 74595的主要优点是具有数据存储寄存器,在移位的过程中,输出端的数据可以保持不变。这在串行速度慢的场合很有用处,数码管没有闪烁感。 与164只有数据清零端相比,595还多有输出端时能/禁止控制端,可以使输出为高阻态。 74HC595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。数据在SCHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位 寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(Ds),和一个串行输出 (Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使 能 OE时(为低电平),存储寄存器的数据输出到总线。 74HC595各个引脚的功能: Q1~7 是并行数据输出口,即储寄存器的数据输出口 Q7 串行输出口,其应该接SPI总线的MISO接口 STcp 存储寄存器的时钟脉冲输入口 SHcp 移位寄存器的时钟脉冲输入口 OE的非 输出使能端 MR的非 芯片复位端 Ds 串行数据输入端 程序说明: 每当spi_shcp上升沿到来时,spi_ds引脚当前电平值在移位寄存器中左移一位,在下一个上升沿到来时移位寄存器中的所有位都会向左移一位, 同时Q7也会串行输出移位寄存器中高位的值, 这样连续进行8次,就可以把数组中每一个数(8位的数)送到移位寄存器; 然后当spi_stcp上升沿到来时,移位寄存器的值将会被锁存到锁存器里,并从Q1~7引脚输出 void hc595send_data(uint8 data)//要传输的数据,建议用数组的方法来查询 { uint8 i; IO0CLR = spi_stcp; for(i=0;i8;i++) { IO0CLR = spi_shcp; if((data0x80)!=0)IO0SET = spi_ds; else IO0CLR = spi_ds; data = 1; IO0SET = spi_shcp; } IO0SET = spi_stcp; } 简单的说来就是用clk控制来8个脉冲,在每个脉冲的下降沿检测该位是高还是低,然后复制给寄存器ds或data,于是再移位一次(data=1),然后在抬高脉冲,满足8个脉冲的时候就禁止一下cs或者stcp,595就自动把数据从并行口输出了 求一个8051接74HC595 8段数码管的C代码! 悬赏分:10- 解决时间:2009-4-23 16:52 提问者: 无敌淘气护法 - 一级 最佳答案 这是我刚写的一个74HC595 驱动8段数码管的,程序是让数码管0到9循环显示 #include regx52.h sbit sclk=P2^0; sbit sda=P2^1; sbit slck=P2^2; int tab[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; void delay() { int

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档