#include "reg51.h"
#include "intrins.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;
ledduan[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
ledwei[]={0xff,0xc9,0xb6,0xbe,0xdd,0xeb,0xf7,0xff};
void delay(u16 i)
{
while(i--);
}
void LED1(u8 dat1)
{
P0=dat1;
}
void Hc595SendByte(u8 dat)
{
u8 a;
SRCLK = 1;
RCLK = 1;
for(a=0;a<8;a++)
{
SER = dat >> 7;
dat <<= 1;
SRCLK = 0;
_nop_();
_nop_();
SRCLK = 1;
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
}
void main()
{
u8 i=0;
while(1)
{
for(i=0;i<8;i++)
{
LED1(~ledduan[i]);
Hc595SendByte(~ledwei[i]);
delay(10);
Hc595SendByte (0x00);
} } }
|