新人求大神解答关于74hc595驱动8位led灯的问题!
#include<reg52.h>
#include <intrins.h>
sbit DATA = P0^0;//串行数据输入
sbit SCK = P0^1;//位移锁存器时钟讯号
sbit LCK = P0^2;//平行锁存器时钟讯号
void main()
{
unsigned char i = 0,SJ = 0xAA;
unsigned int p = 0;
while(1)
{
LCK = 0;
for(i=0;i<8;i++)
{
SCK = 1;
if((SJ<<p)&0x80)
{
DATA = 1;
}
else
{
DATA = 0;
}
SCK = 0;
_nop_();
_nop_();
SCK = 1;
p++;
}
LCK = 1;
_nop_();
_nop_();
LCK = 0;
p=0;
i=0;
}
}

求大神 指点啊!
求大神 指点啊!
你这个是在什么仿真器里仿真的呢?
proteus里仿真的 有什么问题吗?
没有啊,想知道下,嘿嘿
P0口要加上拉电阻。
参考这个程序:
#include<reg52.h>
#include<intrins.h>
sbit ser=P3^4; //(14脚)串行数据输入
sbit rclk=P3^5; //(12脚)并行输出控制
sbit srclk=P3^6; //(11脚)移位时钟控制
void hc595(unsigned char send)
{
unsigned char i;
rclk=0;
ser=0;
for(i=0;i<8;i++)
{
if((send<<i)&0x80)
{
ser=1;
}
else
{
ser=0;
}
srclk=0;
_nop_();
srclk=1;
}
rclk=0;
_nop_();
rclk=1;
}
void main()
{
hc595(0xff);
}
ZAN
你的程序也没什么问题~看看电路吧,可能是电路出问题了
