基于stc15f2k60s2芯片单片机编程(按键控制)

           蓝桥杯stc15f2k60s2芯片编程(按键控制)

(1)按键控制LED灯的亮灭

#include <stc15f2k60s2.h>
#include <intrins.h>
sbit BUZZ=P0^6;
sbit RELAY=P0^4;
sbit K2=P3^0;
sbit K1=P3^1;
void Delay10ms();
void chushihua();
void main(void)
{

   chushihua();
   while(1)
 {  
	if(K1==0)
		{
	 Delay10ms();
		if(K1==0)
		{ 
		  P0=0xfe;
			P2=(P2&0X1F)|0X80;	//´ò¿ªÊ¹ÄÜ¶Ë  0001 1111  1000 0000
      P2=P2&0X1F;//¹Ø±ÕËø´æÆ÷
    }
		while(!K1);
		}
	if(K2==0)
		{
	 Delay10ms();
		if(K2==0)
		{ 
		  P0=0xFF;
			P2=(P2&0X1F)|0X80;	//´ò¿ªÊ¹ÄÜ¶Ë  0001 1111  1000 0000
      P2=P2&0X1F;//¹Ø±ÕËø´æÆ÷
    }
		while(!K2);
		}
	}	
}
void Delay10ms()		//@11.0592MHz
{
	unsigned char i, j;

	i = 108;
	j = 145;
	do
	{
		while (--j);
	} while (--i);
}
void chushihua()
{
 P0=0Xfe;//³õʼ»¯ledµÆ  ²¢µãÁÁL1  1111 1110            
 P2=(P2&0X1F)|0X80;	//´ò¿ªÊ¹ÄÜ¶Ë  0001 1111  1000 0000
 P2=P2&0X1F;//¹Ø±ÕËø´æÆ÷
 
 RELAY=0;//¹Ø±Õ¼ÌµçÆ÷
 BUZZ=0; //¹Ø±Õ·äÃùÆ÷
 P2=(P2&0X1F)|0XA0;	 //	1010 0000
 P2=0X1F; //

 P0=0XFF;//ÏûÓ° ¹Ø±ÕÊýÂë¹Ü
 P2=(P2&0X1F)|0XE0;	 //´ò¿ª¶ÎÑ¡
 P2&=0X1F; //¹Ø±Õ¶ÎÑ¡
}

(2)按键控制数码管显示数字加一

#include <stc15f2k60s2.h>
#include <intrins.h>
unsigned char shuzu[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};
unsigned char i,j,miao;
sbit K1=P3^0;
void anjian();
void Delay10ms();		//@11.0592MHz
void main()
{

P2=0XC0;P0=0X01;P2=0XFF;P0=0XFF;  //????????,???
 
	while(1){
		anjian();


 P2=(P2&0X1F)|0XC0;	//´ò¿ªÎ»Ñ¡
		P0=0x80;  //0000 0001
 P2&=0X1F; 

 P2=(P2&0X1F)|0XE0;	 //´ò¿ª¶ÎÑ¡
 P0=shuzu[miao%10];
P2&=0X1F;
		j=1000;while(j--);
		
		P2=(P2&0X1F)|0Xc0;	//´ò¿ªÎ»Ñ¡
		P0=0x40;  //0000 0001
 P2&=0X1F; 
		
		P2=(P2&0X1F)|0XE0;
		P0=shuzu[miao/10];
		P2&=0X1F;
		j=1000;while(j--);

	}

}

void anjian()
{
if(K1==0)
{
Delay10ms();
	if(K1==0)
{
miao++;
}
while(!K1);
}

}

void Delay10ms()		//@11.0592MHz
{
	unsigned char i, j;

	i = 108;
	j = 145;
	do
	{
		while (--j);
	} while (--i);
}
发布了10 篇原创文章 · 获赞 1 · 访问量 438

猜你喜欢

转载自blog.csdn.net/lymtics1111/article/details/103149278