AT89C51 74HC595 레지스터를 통해 유수등 제어 -------proteus 모방

먼저 위의 그림
그림에서 보듯이 단편기 P2^0, P2^1, P2^3을 통해 제어 신호를 잠금 메모리를 통해 LED로 전송하여 유수등 애플릿을 실현한다.
마스터 프로그램은 다음과 같습니다.
#include
#include
#include<74HC595.H>
void Delay1ms()		//@11.0592MHz  
{
	unsigned char i, j;

	_nop_();
	i = 2;
	j = 199;
	do
	{
		while (--j);
	} while (--i);
}

void delays(unsigned t)		//delay 500ms
{
	t=500*t;
	while(t--)
		Delay1ms();
}

void main(void)
{
	unsigned int i;
	i=0x01;               
	while(1)
	{
		Ser_IN(i);            //         
		Par_OUT();            //       
		delays(1);
		i=_crol_(i,1);        //      
	}

}
                                                  

헤더 파일은 다음과 같습니다.
//Note: 74HC595  

//      __                   __
//Note: MR         , OE    ,         


/*--------------------------------------------*/
#ifndef __74HC595_H__
#define __74HC595_H__



/*--------------------------------------------*/
sbit SD	   = P2^1;	//      
sbit ST_CK = P2^2;	//         
sbit SH_CK = P2^0;	//         


/*--------------------------------------------*/
//    
void Ser_IN(unsigned char Data);	//      
void Par_OUT(void);					//      
//void Ser_Par(unsigned char Data);	//    ,    



/*--------------------------------------------*/
//      
void Ser_IN(unsigned char Data)
{
	unsigned char i;
	for(i = 0; i < 8; i++)
	{
		SH_CK = 0;			//CLOCK_MAX=100MHz
		SD = Data & 0x80;
		Data <<= 1;
		SH_CK = 1;
	}
}



/*--------------------------------------------*/
//      
void Par_OUT(void)
{
	ST_CK = 0;
	ST_CK = 1;
}

/*--------------------------------------------*/
#endif 

좋은 웹페이지 즐겨찾기