- #include <REGX52.H>
- typedef unsigned char u8;
- typedef unsigned int u16;
- sbit SRCLK=P3^6;
- sbit RCLK=P3^5;
- sbit SER=P3^4;
- #define LEDDZ_PORT P0
- u8 ghc595_buf[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
- void delay_10us(u16 ten_us)
- {
- while(ten_us--);
- }
- void hc595_write(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_PORT=0X00;
- while(1)
- {
- for(i=0;i<8;i++)
- { hc595_write(0x00);
- hc595_write(ghc595_buf[i]);
- delay_10us(50000);
- }
- }
- }
复制代码 |