74HC595在单片机上的应用及程序
高速率:最高55MHz(5V工作电压)
宽的工作电压范围:2V -6V
每个口的最大电流值(QA-QH):±35mA
当单片机的I/O资源比较紧张时,采用595并进行级联是一个很好的选择。
管脚定义:
PIN NO symbol name and function
15 QA data output
1 QB data output
2 QC data output
3 QD data output
4 QE data output
5 QF data output
6 QG data output
7 QH data output
8 GND ground
9 QH’ serial data outputs
10 /SCLR shift register clock input
11 SCK shift register clock input
12 RCK storage register clock input
13 /G output enable input
14 SI serial data input
16 Vcc positive supply voltage
时序图:
请参照595的数据手册
程序编制:
端口定义 设置:
sbit DATA=P1^5;
sbit SHIFT=P1^6;
sbit STORAGE=P1^7;
1、写595
Void write_595(uchar x)//功能:将无符号8位数x,写入到595的shife register
{
Uchar j;
For(j=0;j<8;j++)//循环8次,以便shift register保存8位数据
{
X=x<1;//将数据左移一位,最高位数据进入到CY中
SHIFT=0;//shift端置0
_nop_();
_nop_();
_nop_();
DATA=CY;//将一位数据送入595串口数据端
SHIFT=1;//shift端产生一个上升沿,数据就送入到了shift register
_nop_();//延时
_nop_();
_nop_();
SHIFT=0;//shift端产生一个下降沿,shift register内容保持不变
}
}
3、595数据的输出
/********595输出函数函数*******************/
void out_595(void)
{
STORAGE=0;
_nop_();
_nop_();
STORAGE=1;//上升沿shift register 的内容保存到store register
_nop_();
_nop_();
STORAGE=0;//下降沿store register 的内容保持不变
}
4、只要在主函数中分别调用以上两个函数即可将要显示的数值X显示出来。
当然为方便显示可以定义一个数组。
如一个7段数码管的显示,595的QA,QB,QC,QD,QE,QF,QG, ,分别对应数码管的a,b,c,d,e,f,g,
数码管共阳极,则可以定义这样一个数组。
uchar code num[]={0x40,0xf3,0x89,0xa1,0xb2,0xa4,0x84,0xf1,0x80,0x20} ; //0-9代码
5、当两个或多个595进行级联时将
11 SCK shift register clock input
12 RCK storage register clock input
进行并联,将9 QH’ serial data outputs
连接另一片的14 SI serial data input
然后再发送数据时,先连续发送数据,最后在out。
如:
write_595(duanma);
write_595(num[liangdu]);
out_595();
完整详细程序请打开:http://www.51hei.com/chip/1799.html
74HC595单片 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)