유수등 제어

7771 단어 필기단편기
유수등 제어
2021-01-09,51 단편기 학습 노트

8위 유수등은 위에서 아래로 아래에서 위로 왔다갔다하며 1s 간격으로 흐른다. 그 중에서 각 LED는 500ms, 500ms를 밝게 하고 불이 밝을 때 버저가 울리며 불이 꺼질 때 버저를 끄고 계속 순환한다.
/*****************************************************************
8                 ,
  1s  ,    LED 500ms, 500ms,
       ,        ,      。
*****************************************************************/
#include 
#include 
#define uint unsigned int       //   ,  uint  unsigned int
#define uchar unsigned char
uint ms;                        //       ,        
uchar temp;                     //          temp
sbit beep=P2^3;                 //     I/O 
void delayms(uint ms);          //      
void main()
{
     
	temp=0xfe;                  //0xfe=1111 1110
	while(1)
	{
     	
		uint i;                 //    
		for(i=0;i<7;i++)        //     
		{
     
			beep=0;             //     
			P1=temp;            //   temp      8    P1,  led
			delayms(502);       //  500ms
			
			beep=1;             //     
			P1=0xff;            //led    
			delayms(502);
			
			temp=_crol_(temp,1);//        ,1111 1110-->1111 1101-->1111 1011
			P1=temp;            //                 P1,     led
		}
		
		for(i=0;i<7;i++)        //     
		{
     
			beep=0;
			P1=temp;
			delayms(502);
			
			beep=1;
			P1=0xff;
			delayms(502);
			
			temp=_cror_(temp,1);
			P1=temp;            //                 P1,     led
		}
	}	
}
void delayms(uint ms)           //    ,  ms=100 ,     100ms
{
      
   uchar k; 
   while(ms--) 
   {
      
      for(k = 0; k < 90; k++); 
   } 
}

좋은 웹페이지 즐겨찾기