|
我的LED点阵为啥写了代码之后没有反应啊,用配套的源码也没有反应。怎么回事啊,怎么解决啊
#include <REGX52.H>
typedef unsigned char u8;
typedef unsigned int u16;
sbit SER=P3^4;
sbit SRCLK=P3^6;
sbit rCLK=P3^5;
#define LEDDZ_COL_PORT P0//对应LED点阵中的下面的八个管脚输出低电平时才可能点亮LED灯
u8 ghc595_buf[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay_10us(u16 ten_us)
{
while(ten_us--);
}
void hc595_write_data(u8 dat)
{
u8 i=0;
for(i=0;i<8;i++)
{
SER=dat>>7;//每次都输入字节的最高位
dat<<=1;
SRCLK=0;
delay_10us(1);
SRCLK=1;
delay_10us(1);//位移寄存器的上升延需要八次
}
rCLK=0;
delay_10us(1);
rCLK=1;//存储寄存器的上升延只需要一次
//LEDDZ_COL_PORT=
}
void main()
{
u8 i=0;
LEDDZ_COL_PORT=0x00;
while(1)
{
for(i=0;i<8;i++)
{
hc595_write_data(0x00);//消影就是看到上一行熄灭下一行才开启
hc595_write_data(ghc595_buf[1]);
delay_10us(50000);
}
}
}
|
|