⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyscan.c

📁 万年历
💻 C
字号:
#include<reg52.h>
#include<all.h>
#define uchar unsigned char
#define uint  unsigned int

sbit key0=P1^0;
sbit key1=P1^1;
sbit key2=P1^2;
sbit key3=P1^3;
sbit lamp=P2^5;
uchar con=0x00;


void DelayM(uint a)       	
{
	uchar i;
	while( --a != 0)
    {		
		for(i = 0; i < 125; i++); 
	}   				 
}


void keyscan()
{	
	uchar i;
	char timedata,max,min;
	EA=0;
		if(key3==0)
	{ 
		DelayM(40);
		if(key3==0)
		lamp=!lamp;
	}	 
	if(key0==0)
	{ 
		DelayM(40);
		if(key0==0)
		con++; 
		if(con>=7)
			con=0;
	}
	if(con!=0)
	{
		if(key1==0)
		{ 	
			DelayM(40);			
			if(key1==0) 
			{	
				switch(con)
				{
					case 1:	 max=100;min=0;i=0x09;break;		//年
					case 2:	 max=13; min=1;i=0x08;break;		//月
					case 3:	 max=32; min=1;i=0x07;break;		//日
					case 4:	 max=8;  min=1;i=0x06;break;		//星期
					case 5:	 max=24; min=0;i=0x04;break;		// 时
					case 6:	 max=60; min=0;i=0x02;break;		// 分
				    default : break;
				}
				timedata=ds_read(i);
			 	timedata++; 
				if(timedata>=max) timedata=min;
				ds_write(i,timedata);
			} 
			}
		}

	if(key2==0)
		{
			DelayM(40);			
			if(key2==0)
			{
				switch(con)
				{
					case 1:	 min=255;max=99;i=0x09;break;	//年
					case 2:	 min=0;  max=12;i=0x08;break;	   	//月
					case 3:	 min=0;  max=31;i=0x07;break;		//日
					case 4:	 min=0;  max=7; i=0x06;break;		//星期
					case 5:	 min=255;max=23;i=0x04;break;	//时
					case 6:	 min=255;max=59;i=0x02;break;	//分
				  	default : break;
				}
				timedata=ds_read(i);		 //读取待修改的参数
				timedata--;
			   	if(timedata<=min)
			   		timedata=max;
			   ds_write(i,timedata);		 //将修改好的参数送入12887
			}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -