#include <AT89X52.H>
#define data P2_0
#define reset P2_1
#define shift P2_2
#define latch P2_3
#define output P2_4
//-------------- Ham tre mini giay ----------------
void tre(unsigned int ms)
{
unsigned int m,n;
for(m=0;m<ms;m++)
for (n=0;n<120;n++)
{}
}
//-------------------------------------------------
//------------- Ham xuat 1 byte data ---------------------
void xuat_data(unsigned char out_data)
{
unsigned char i;
for (i=1;i<=8;i++)
{
data = 0x01 & out_data; //xuat bit dau tien cua byte out_data ra chan data
shift=1;
shift=0; //shift chuyen tu muc cao xuong thap, bit data duoc day vao trong 74LS595
out_data = out_data >> 1; //dich cac bit cua out_data sang phai 1 bit
}
latch=1;
latch=0; //latch chuyen tu muc cao xuong thap, xuat 8 bit (byte out_data) ra 8 chan cua 74LS595
}
//--------------------------------------------------------
void main()
{
reset=1; //no clear data
output = 0; // luon xuat data trong bo dem
while(1)
{
xuat_data(0xFF);
tre(1000); //tre 1 giay
xuat_data(0x00);
tre(1000);
}
}