📄 keyscan.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 + -