|
本帖最后由 mgx08 于 2020-1-11 21:17 编辑
做的是8*8点阵点亮一个点。可是烧入程序后却是亮了一整列,程序也没错啊,我也找不到bug,大神看看是漏了什么吗???
#include"reg51.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit ser=P3^4;
sbit srclk=P3^6;
sbit rclk=P3^5;
sbit led=P0^7;
void delay(u16 i)
{
while(i--);
}
void hc595(u8 zj1,u8 zj2)
{
u8 i;
srclk=0;
rclk=0;
for(i=0;i<7;i++)
{
ser=zj1>>7;
zj1<<=1;
srclk=1;
delay(100);
srclk=0;
}
for(i=0;i<7;i++)
{
ser=zj2>>7;
zj2<<=1;
rclk=1;
delay(100);
rclk=0;
}
}
void main()
{
led=0;
while(1)
{
hc595(0xfe,0x01);
}
}
|
|