74HC595完整中文资料2两天学会.doc_第1页
74HC595完整中文资料2两天学会.doc_第2页
74HC595完整中文资料2两天学会.doc_第3页
74HC595完整中文资料2两天学会.doc_第4页
74HC595完整中文资料2两天学会.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

74HC595芯片资料 8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。8位串行输入 8位串行或并行输出 存储状态寄存器,三种状态 输出寄存器可以直接清除 100MHz的移位频率 输出能力 并行输出,总线驱动 串行输出;标准 中等规模集成电路应用 串行到并行的数据转换 Remote control holding register.#include#include #define uchar unsigned char#define uint unsigned intsbit stcp1=P22; sbit ds1=P21; sbit shcp1=P20; sbit stcp2=P25; sbit ds2=P24; sbit shcp2=P23;uchar code DAT11=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;/共阴数码管显示码uchar code tab10=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;uchar code wei9=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff;void delay(uint ms) uint x,y; for(x=ms;x0;x-) for(y=255;y0;y-);void QR0_5951(uchar num1) uchar j; for (j=0;j8;j+) num1=num11 ; ds1=CY; shcp1=1;/上升沿发生移位 / shcp1=0; void OUT_5951()/将移位寄存器内的数据锁存到输出寄存器并显示 stcp1=0; stcp1=1;/上升沿将数据送到输出锁存器 stcp1=0; void QR1_5952(uchar num2) uchar j; for (j=0;j8;j+) num2=num21 ; ds2=CY; shcp2=1;/上升沿发生移位 / shcp2=0; void OUT_5952()/将移位寄存器内的数据锁存到输出寄存器并显示 stcp2=0; stcp2=1;/上升沿将数据送到输出锁存器 stcp2=0; void main() uchar i; while(1) for(i=0;iQB-QC-.-QH;下降沿移位寄存器数据不变。(脉冲宽度:5V时,大于几十纳秒就行了。我通常都选微秒级)RCK(12脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。(通常我将RCK置为低电平,) 当移位结束后,在RCK端产生一个正脉冲(5V时,大于几十纳秒就行了。我通常都选微秒级),更新显示数据。/G(13脚): 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。注:1)74164和74595功能相仿,都是8位串行输入转并行输出移位寄存器。74164的驱动电流(25mA)比74595(35mA)的要小,14脚封装,体积也小一些。2)74595的主要优点是具有数据存储寄存器,在移位的过程中,输出端的数据可以保持不变。这在串行速度慢的场合很有用处,数码管没有闪烁感。与164只有数据清零端相比,595还多有输出端时能/禁止控制端,可以使输出为高阻态。3)595是串入并出带有锁存功能移位寄存器,它的使用方法很简单,在正常使用时SCLR为高电平, G为低电平。从SER每输入一位数据,串行输595是串入并出带有锁存功能移位寄存器,它的使用方法很简单,如下面的真值表,在正常使用时SCLR为高电平, G为低电平。从SER每输入一位数据,串行输入时钟SCK上升沿有效一次,直到八位数据输入完毕,输出时钟上升沿有效一次,此时,输入的数据就被送到了输出端。入时钟SCK上升沿有效一次,直到八位数据输入完毕,输出时钟上升沿有效一次,此时,输入的数据就被送到了输出端。 其实,看了这么多595的资料,觉得没什么难的,关键是看懂其时序图,说到底,就是下面三步(引用): 第一步:目的:将要准备输入的位数据移入74HC595数据输入端上。 方法:送位数据到 P1.0。 第二步:目的:将位数据逐位移入74HC595,即数据串入 方法:P1.2产生一上升沿,将P1.0上的数据移入74HC595中.从低到高。 第三步:目的:并行输出数据。即数据并出 方法:P1.1产生一上升沿,将由P1.0上已移入数据寄存器中的数据 送入到输出锁存器。 说明: 从上可分析:从P1.2产生一上升沿(移入数据)和P1.1产生一上升沿 (输出数据)是二个独立过程,实际应用时互不干扰。即可输出数据的 同时移入数据。 而具体编程方法为 如:R0中存放3FH,LED数码管显示“0” ;*接口定义: DS_595 EQU P1.0 ;串行数据输入(595-14) CH_595 EQU P1.2 ;移位时钟脉冲(595-11) CT_595 EQU P1.1 ;输出锁存器控制脉冲(595-12) ;*将移位寄存器内的数据锁存到输出寄存器并显示OUT_595: CALL WR_595 ;调用移位寄存器接收一个字节数据子程序 CLR CT_595 ;拉低锁存器控制脉冲 NOP NOP SETB CT_595 ;上升沿将数据送到输出锁存器,LED数码管显示“0” NOP NOP CLR CT_595 RET ;*移位寄存器接收一个字节(如3FH)数据子程序 WR_595: MOV R4,#08H ;一个字节数据(8位) MOV A,R0 ;R0中存放要送入的数据3FH LOOP: ;第一步:准备移入74HC595数据 RLC A ;数据移位 MOV DS_595,C ;送数据到串行数据输入端上(P1.0) ;第二步:产生一上升沿将数据移入74HC595 CLR CH_595 ;拉低移位时钟 NOP NOP setb CH_595 ;上升沿发生移位(移入一数据) DJNZ R4,LOOP ;一个字节数据没移完继续 RET 而其级联的应用 74HC595主要应用于点阵屏,以16*16点阵为例:传送一行共二个字节(16位) 如:发送的是06H和3FH。其方法是: 1.先送数据3FH,后送06H。 2.通过级联串行输入后,3FH在IC2内,06H在IC1内。应用如图二 3.接着送锁存时钟,数据被锁存并出现在IC1和IC2的并行输出口上显示。 编程方法: 数据在30H和31H中 ;MOV 30H,#3FH ;MOV 31H,#06H ;*接口定义: DS_595 EQU P1.0 ;串行数据输入(595-14) CH_595 EQU P1.2 ;移位时钟脉冲(595-11) CT_595 EQU P1.1 ;输出锁存器控制脉冲(595-12) ;*串行输入16位数据 MOV R0,30H CALL WR_595 ;串行输入3FH nop NOP MOV R0,31H CALL WR_595 ;串行输入06H NOP NOP SETB CT_595 ;上升沿将数据送到输出锁存器,显示 NOP NOP CLR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论