📄 key.c
字号:
#include<reg52.h>
#include"global_var.h"
#include"my_type.h"
#include"function.h"
#include"interface.h"
uint k,n,m,m1=0,m2=0,w=2,w1=2,w2=3;
uchar reg_ds1307;
/*********按键处理子程序***********/
void key1();
void ge_h();
void shi_h();
void bai_h();
void high();
void low();
void ge_l();
void shi_l();
void bai_l();
void year_mon();
void dat_shi();
void min_sec();
void ge_1307();
void shi_1307();
void bai_1307();
void qian_1307();
/*********按键处理子程序**********/
void key()
{
if(KEY_1==0)
{
key1() ;
}
}
/*********按键1处理子程序**********/
void key1()
{
delay(10); //消抖
if(KEY_1==0)
{
m1++;
if(m1==3) m1=1;
if(m1==1) high();
if(m1==2) low(); //第一个键 按下两次
// if(m1==3) year_mon();
// if(m1==4) dat_shi();
// if(m1==5) min_sec();
}
}
// if(m1==3) // 1键按三次
// {
// }
/*************高报警值的设置***************/
void high()
{
read_nbyte(0xa0,0x03,sh,3);
delay(10);
set_high=sh[0]+sh[1]*10+sh[2]*100;
// set_high=238;
display_set_H();
while(KEY_4)
{
for(k=0;k<10;k++)
{
display();
}
if(KEY_1==0)
break;
}
while(KEY_1&KEY_2&KEY_3) //在其他键没有按下的情况下,闪烁显示SET_H
{
display();
delay(15);
}
while(KEY_1&KEY_4) //在第四个按键没按下的情况下,选择要增减的位
{
w++;
while(KEY_4)
{
if(w==3) w=0;
if(w==0) ge_h();
if(w==1) shi_h();
if(w==2) bai_h();
while(KEY_4&KEY_3)
{
display_set_H();
display();
if(KEY_2==0)
{
delay(80); //消抖
if(KEY_2==0)
break;
}
}
if(KEY_3==0)
{
delay(80); //消抖
if(KEY_3==0)
break;
}
delay(80);
}
}
sh[0]=(uchar)(set_high%10);
sh[1]=(uchar)(set_high/10%10);
sh[2]=(uchar)(set_high/100);
write_nbyte(0xa0,0x03,sh,3);
delay(5);
}
/*************低报警值的设置***************/
void low()
{
read_nbyte(0xa0,0x10,sl,3);
delay(10);
set_low=sl[0]+sl[1]*10+sl[2]*100;
// set_high=238;
display_set_L();
while(KEY_4)
{
for(k=0;k<10;k++)
{
display();
}
if(KEY_1==0)
break;
}
while(KEY_1&KEY_2&KEY_3) //在其他键没有按下的情况下,闪烁显示SET_H
{
display();
delay(15);
}
while(KEY_1&KEY_4) //在第四个按键没按下的情况下,选择要增减的位
{
w1++;
while(KEY_4)
{
if(w1==3) w1=0;
if(w1==0) ge_l();
if(w1==1) shi_l();
if(w1==2) bai_l();
while(KEY_4&KEY_3)
{
display_set_L();
display();
if(KEY_2==0)
{
delay(80); //消抖
if(KEY_2==0)
break;
}
}
if(KEY_3==0)
{
delay(80); //消抖
if(KEY_3==0)
break;
}
delay(80);
}
}
sl[0]=(uchar)(set_low%10);
sl[1]=(uchar)(set_low/10%10);
sl[2]=(uchar)(set_low/100);
write_nbyte(0xa0,0x10,sl,3);
delay(5);
}
/*********低报警值个十百处理子程序**********/
void ge_l()
{
set_low++;
if(set_low%10==0)
set_low-=10;
}
void shi_l()
{
set_low+=10;
if(set_low%100<10)
set_low-=100;
}
void bai_l()
{
set_low+=100;
if(set_low>1000)
set_low-=1000;
}
/*********高报警值个十百处理子程序**********/
void ge_h()
{
set_high++;
if(set_high%10==0)
set_high-=10;
}
void shi_h()
{
set_high+=10;
if(set_high%100<10)
set_high-=100;
}
void bai_h()
{
set_high+=100;
if(set_high>1000)
set_high-=1000;
}
void ge_1307()
{
set_rtc++;
if(set_rtc%10==0)
set_rtc-=10;
}
void shi_1307()
{
set_rtc+=10;
if(set_rtc%100<10)
set_rtc-=100;
}
void bai_1307()
{
set_rtc+=100;
if(set_rtc%1000<100)
set_rtc-=1000;
}
void qian_1307()
{
set_rtc+=1000;
if(set_rtc%10000<1000)
set_rtc-=10000;
}
/*********ds1307 年月处理子程序**********/
/*
void year_mon()
{
rd_ds1307(0x05);
while(KEY_4)
{
for(k=0;k<10;k++)
{
display_set_rtc();
display();
}
if(KEY_1==0)
break;
}
while(KEY_1&KEY_2&KEY_3) //在其他键没有按下的情况下,闪烁显示SET_H
{
display();
delay(15);
}
while(KEY_1&KEY_4) //在第四个按键没按下的情况下,选择要增减的位
{
w2++;
while(KEY_4)
{
if(w2==4) w2=0;
if(w2==0) ge_1307();
if(w2==1) shi_1307();
if(w2==2) bai_1307();
if(w2==3) qian_1307();
while(KEY_4&KEY_3)
{
display_set_rtc();
display();
if(KEY_2==0)
{
delay(80); //消抖
if(KEY_2==0)
break;
}
}
if(KEY_3==0)
{
delay(80); //消抖
if(KEY_3==0)
break;
}
delay(80);
}
}
wr_ds1307(0x05);
}
*/
/*********ds1307 日 时 处理子程序**********/
/*
void dat_shi()
{
rd_ds1307(0x03);
while(KEY_4)
{
for(k=0;k<10;k++)
{
display_set_rtc();
display();
}
if(KEY_1==0)
break;
}
while(KEY_1&KEY_2&KEY_3) //在其他键没有按下的情况下,闪烁显示SET_H
{
display();
delay(15);
}
while(KEY_1&KEY_4) //在第四个按键没按下的情况下,选择要增减的位
{
w2++;
while(KEY_4)
{
if(w2==4) w2=0;
if(w2==0) ge_1307();
if(w2==1) shi_1307();
if(w2==2) bai_1307();
if(w2==3) qian_1307();
while(KEY_4&KEY_3)
{
display_set_rtc();
display();
if(KEY_2==0)
{
delay(80); //消抖
if(KEY_2==0)
break;
}
}
if(KEY_3==0)
{
delay(80); //消抖
if(KEY_3==0)
break;
}
delay(80);
}
}
wr_ds1307(0x03);
}
*/
/*************ds1307 分 秒处理子程序***************/
/*
void min_sec()
{
rd_ds1307(0x01);
while(KEY_4)
{
for(k=0;k<10;k++)
{
display();
}
if(KEY_1==0)
break;
}
while(KEY_1&KEY_2&KEY_3) //在其他键没有按下的情况下,闪烁显示SET_H
{
display();
delay(15);
}
while(KEY_1&KEY_4) //在第四个按键没按下的情况下,选择要增减的位
{
w1++;
while(KEY_4)
{
if(w1==4) w1=0;
if(w1==0) ge_1307();
if(w1==1) shi_1307();
if(w1==2) bai_1307();
if(w1==3) qian_1307();
while(KEY_4&KEY_3)
{
display_set_rtc();
display();
if(KEY_2==0)
{
delay(80); //消抖
if(KEY_2==0)
break;
}
}
if(KEY_3==0)
{
delay(80); //消抖
if(KEY_3==0)
break;
}
delay(80);
}
}
wr_ds1307(0x00);
// delay(10);
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -