|
问题:程序烧录后,LED点阵没有显示图像。
代码如下
#include <REGX52.H>
typedef unsigned int u16;
typedef unsigned char u8;
//¶¨òå74595¿ØÖÆ1ü½Å
sbit SER=P3^4;//òÆλ¼Ä′æÆê±Öó÷êäèë
sbit SRCLK=P3^5;//′æ′¢¼Ä′æÆ÷ê±Öóêäèë
sbit rCLK=P3^6;//′®DDêy¾Yêäèë
//¶¨òåμãÕóáD¿ØÖƶ˿ú
#define LEDDZ_COL_PROT P0
u8 ghc595_buf[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//Ñó3ùoˉêy
void delay_10us(u16 ten_us)
{
while(ten_us--);
}
void delay_ms(u16 ms)
{
u16 i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
//Ïò74595êäèëêy¾Y
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;
}
void main()
{
u8 i=0;
LEDDZ_COL_PROT=0x00;
while(1)
{
for(i=0;i<8;i++)
{
hc595_write_data(0x00);
hc595_write_data(ghc595_buf[i]);
delay_ms(500);
}
}
}
希望大佬能帮我指出错误的地方
|
|