|
发表于 2024-3-3 16:07:40
|
显示全部楼层
#include "reg51.h"
typedef unsigned char u8 ;
typedef unsigned int u16 ;
sbit SRCLK = P3^6;
sbit RCLK=P3^5;
sbit SER = P3^4;
#define LEDZ_COL_PORT P0
void delay_10us (u16 ten_us)
{
while(ten_us--);
}
//u8 g_row[8] ={0x00,0x7E,0x08,0x08,0x2E,0x28,0x7E,0x00};
//u8 g_col[8] ={0x00,0x42,0x4E,0x42,0x7E,0x4A,0x4A,0x00};
u8 g_row[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
u8 g_col[8] ={0x00,0x42,0x4E,0x42,0x7E,0x4A,0x4A,0x00};
//void delay_ms (u16 jms)
//{
// u8 i, j;
// for( i= jms; i>0; i--)
// for(j = 110; j>0; j--);
//}
void hc595_write_data(u8 dat)
{
u8 i =0;
for(i=0;i<8;i++)
{
SER = dat >> 7;
dat = dat<<1;
SRCLK = 0;
delay_10us(1);
SRCLK = 1;
delay_10us(1);
}
RCLK = 0;
delay_10us(1);
RCLK = 1;
}
void main()
{
u8 i = 0;
while(1)
{
for(i=0; i<8; i++)
{
LEDZ_COL_PORT = g_row[i];
hc595_write_data(g_col[i]) ;
delay_10us (100);
hc595_write_data(0x00) ;
}
}
}
你的程序基本是正确的,我只是改了你的第一组数据
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|