0
问答首页 最新问题 热门问题 等待回答标签广场
我要提问

74hc595 LED点阵屏 求解



前辈们好,小弟想做一个led点阵显示屏,但是刚试了下595就出现了问题,查找了一上午了还不知道为啥呢,发现送数据的时候Q0居然不会输出,其他的正常,仿真图以及程序在附件里:谢谢了

#include    
__CONFIG(XT&WDTDIS&LVPDIS);   
#define uchar unsigned char
#define uint unsigned int
#define srclk RC3
#define rclk  RC7
#define ser   RC5
uchar date;
void sentdate(uchar date);
void INIT(void);
void delay(uchar t);
const ledtable[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//===========================================
void main()
{

uchar i;

INIT();

while(1)

{

for(i=0;i<8;i++)

{

sentdate(ledtable);

//
sentdate(0x01);

rclk=1;

NOP();
NOP();
NOP();

rclk=0;

    delay(1200);

}

//
PORTC=0X00;

}
}
//===========================================
void INIT(void)
{

PIR1=0;

TRISC=0X00;

SSPIF=0;

SSPSTAT=0XC0;

SSPCON=0X30;

NOP();NOP();
}
//===========================================
void sentdate(uchar date)
{

SSPBUF=date;

while(SSPIF==0);

SSPIF=0;

NOP();NOP();
}
//===========================================
void delay(uchar t)
{

uchar x,y;

for(x=t;x>0;x--)

for(y=120;y>0;y--);
}
提问者:miweurwer 地点:- 浏览次数:3948 提问时间:04-05 06:05
我有更好的答案
提 交
3条回答
sdgsgsgs 04-11 03:25
sorry,  fangfei036,不想看程序了,D0不行,唯一的原因就是时钟信号你多打了一个,D0的输出推到D1了。你查查是不是这个问题。不行再回贴吧。
VERTEX2016 04-09 23:21
说不看,还是看了一眼,呵呵。srclk 和 ser   你都没用到麻,你程序里却用到SSPBUF,你是用PIC 的SPI硬件吧?
你可以用示波器抓一下字节的传送过程出来吗?
呵呵,这种小电路我都是用IO直接驱动的。赖得看SPI的寄存器。
ueutriwu 04-12 14:15
没有仿真程序,是仿真图片。
撰写答案
提 交
1 / 3
1 / 3