#include <AT89X52.H>
#define uchar unsigned char
sbit DS=P2^0; //定义驱动74595的数据脚为p1.0
sbit SH_CP=P2^1; //74595的时钟
sbit ST_CP=P2^2; //栓锁
sbit MR=P2^3;
sbit OE=P2^4;
uchar code array1[]={0,1,0,1,1,0,1,1, 0,1,1,0,0,1,1,0};
//uchar code array2[8]="10010110" ;
void ds1ms()
{
int d,e;
for(d=0;d<255;d++)
for(e=0;e<5;e++);
}
void delay_us()
{
uchar z_t1;
for (z_t1=0 ;z_t1<30;z_t1++);
}
void transmit()
{
uchar z_t2;
uchar z_n = 0 ;
for(z_t2 = 0;z_t2<16;z_t2++)
{
ST_CP = 0 ;
SH_CP = 0 ; // ds1ms();
DS = array1[z_n] ; // ds1ms();ds1ms();ds1ms();ds1ms();
SH_CP = 1 ; //ds1ms();ds1ms();ds1ms();ds1ms();
z_n++;
delay_us();
if (z_n==16)
{
z_n=0;
ST_CP = 1; // ds1ms();ds1ms();ds1ms();ds1ms();
delay_us();
}
}
}
void main()
{
while(1)
{
transmit();
while(1);
}
}