IC应用电路图
74ls595是一块能够使以为并且锁存数据的芯片,特别适合用于16*16点阵硬件电路中,关于其使用请查阅相关网页。下面就把具体的程序及其级联的电路贴出来。
#include 《reg52.h》 //52芯片管脚定义头文件
#include 《intrins.h》 //内部包含延时函数 _nop_();
sbit SDATA_595=P1^0; //串行数据输入
sbit SCLK_595 =P1^1; //移位时钟脉冲
sbit RCK_595 =P1^2; //输出锁存器控制脉冲
void WR_595(unsigned char temp)
{
unsigned char j;
SCLK_595=0;
for (j=0;j《8;j++)
{
temp=temp《《1 ;
SDATA_595=CY;
SCLK_595=1; //上升沿发生移位
_nop_();
_nop_();
SCLK_595=0;
}
}
void OUT_595(void)
{
RCK_595=0;
_nop_();
_nop_();
RCK_595=1; //上升沿将数据送到输出锁存器
_nop_();
_nop_();
RCK_595=0;
}
main()
{
WR_595(0xc3);
WR_595(0x55);
OUT_595();
while(1)
{
;
}
}
C代码:
/*************** writer:shopping.w ******************/
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit SH_CP = P2^0;
sbit DS = P2^1;
sbit ST_CP = P2^2;
uchar temp;
uchar code DSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
void Delay(uint x)
{
uchar i;
while(x--)
{
for(i=0;i《120;i++);
}
}
void In_595()
{
uchar i;
for(i=0;i《8;i++)
{
temp 《《= 1;
DS = CY;
SH_CP = 1;
_nop_();
_nop_();
SH_CP = 0;
}
}
void Out_595()
{
ST_CP = 0;
_nop_();
ST_CP = 1;
_nop_();
ST_CP = 0;
}
void main()
{
uchar i;
while(1)
{
for(i=0;i《10;i++)
{
temp = DSY_CODE[i];
In_595();
Out_595();
Delay(200);
}
}
}
全部0条评论
快来发表一下你的评论吧 !