📄 key.c
字号:
#include <reg52.h>//加载头文件
#include<intrins.h>
#define uchar unsigned char//变量类型的宏定义
#define uint unsigned int//变量类型的宏定义
sbit LED=P1^2;
/*------------------键盘调时参数-------------*/
sbit key_adj=P1^3;//调时选择键:按下依次选择年月日时分秒进行调时
sbit key_num=P1^4;//调时键:对年月日时分秒进行调时
uchar key_adj_flag=0; //,key_num_flag
//-------------
//延时子程序
//-------------
void delay(uint t)
{
uint i;
uint j;
for(j=0;j<t;j++);
for(i=0;i<200;i++);
_nop_();
}
/*调时选择键key_adj检测子程序*/
void key_01()
{
uchar flag01;
flag01=key_adj; //读调时选择键key_adj状态
delay(1); //clock-090209v2
flag01=key_adj;
LED=0;//----------------调试是否按下按键
while(flag01==0)//if(flag01==0) //检测到调时选择键key_adj被按下
{
flag01=key_adj;//再次读调时选择键key_adj状态
delay(1); //clock-090209v2
flag01=key_adj;
LED=1;//----------------调试是否按下按键
if(flag01==1) //检测到调时选择键key_adj被松开
{
key_adj_flag++; //调时选择键key_adj标志加1
//key_num_flag=0; //调时键key_num标志清0
}
}
if(key_adj_flag==4) key_adj_flag=0;
}
/*调时键key_num检测子程序*/
void key_02()
{
uchar flag02;
if(key_adj_flag!=0) //若调时选择键key_adj被按下
{
flag02=key_num; //读调时键key_num状态
delay(1);//clock-090209v2
flag02=key_num;
LED=0;//----------------调试是否按下按键
while(flag02==0)//if(flag02==0) //检测到调时键key_num被按下
{
flag02=key_num; //再次读调时键key_num状态
delay(1);//clock-090209v2
flag02=key_num;
LED=1;//----------------调试是否按下按键
if(flag02==1) //检测到调时键key_num被松开
{
//key_num_flag++; //调时键key_num标志加1
// adjust(); /*调时子程序*/
}
}
}
}
/*键盘扫描,调时*/
void key_scan(void)
{
key_01();//调时选择键key_adj检测子程序
key_02();//调时键key_num检测子程序
}
/*******************************************************************************/
/***********************键盘调时控制子程序---结束*******************************/
/*******************************************************************************/
/****************主程序*******************/
void main()
{
key_adj=1;
key_num=1;
LED=0;
delay(9000);
LED=1;
while(1)
{
key_scan();//键盘调时控制
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -