📄 time.c
字号:
#include "TIME.h"
#include "LCD.h"
#include "KB.h"
void delay(void)
{
unsigned char i;
for(i=0;i<=110;i++);
}
void conver(void)
{
time1[0]=time[0]/10+0x30;
time1[1]=time[0]%10+0x30;
time1[2]=time[1]/10+0x30;
time1[3]=time[1]%10+0x30;
time1[4]='.';
time1[5]=time[2]/10+0x30;
time1[6]=time[2]%10+0x30;
time1[7]='.';
time1[8]=time[3]/10+0x30;
time1[9]=time[3]%10+0x30;
time1[10]=time[4]/10+0x30;
time1[11]=time[4]%10+0x30;
time1[12]=':';
time1[13]=time[5]/10+0x30;
time1[14]=time[5]%10+0x30;
time1[15]=':';
time1[16]=time[6]/10+0x30;
time1[17]=time[6]%10+0x30;
}
void alarmtime(unsigned char n)//蜂鸣器响
{
unsigned char i,k;
for(i=0;i<n;i++)
{
PTD=1;
for(k=0;k<150;k++)
delay();
PTD=0;
for(k=0;k<150;k++)
delay();
}
}
void Timer1init(void)
{
//允许溢出中断、不启动计数、分频因子=64
T1SC=0b01100110;
//计数寄存器初值=0x0000
T1CNTH=0x00; T1CNTL=0x00;
//1秒产生1次溢出中断,计数寄存器=1×(2457600/64)=9600
T1MODH=0x96; T1MODL=0x00;
//允许定时器1计数寄存器计数
T1SC&=~(1<<TSTOPBit);
}
void InitTime(void)
{
time[0]=20;
time[1]=8;
time[2]=6;
time[3]=18;
time[4]=23;
time[5]=59;
time[6]=54;
}
void SetTime(void)
{
//unsigned char i;
//unsigned char value=0;
unsigned char a[11]="input date:";
unsigned char b[11]="input time:";
//unsigned char c[15]="error!put again";
unsigned char y[2];
//unsigned char b[]="input month:";
//unsigned char b[]="input month:";
//unsigned char a[]="input year:";
//unsigned char b[]="input month:";
//unsigned char c[]="input day:";
//unsigned char d[]="input hour:";
//unsigned char e[]="input minute:";
//unsigned char f[]="input second:";
begin:
lcdshow1((unsigned char *)a,11);
LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
LcdCtrl&=~(1<<LcdRW);
Lcd_Command(0b11000000); //后7位为DDRAM地址0x40
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time[0]=y[0]*10+y[1];
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time[1]=y[0]*10+y[1];
lcdshow2('.');
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
if(y[0]>1)
{
//lcdshow1((unsigned char *)c,15);
goto begin;
}
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time[2]=y[0]*10+y[1];
lcdshow2('.');
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
if(y[0]>3)
{
//lcdshow1((unsigned char *)c,15);
goto begin;
}
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time[3]=y[0]*10+y[1];
lcdshow1((unsigned char *)b,11);
LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
LcdCtrl&=~(1<<LcdRW);
Lcd_Command(0b11000000); //后7位为DDRAM地址0x40
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
if(y[0]>2)
{
//lcdshow1((unsigned char *)c,15);
goto begin;
}
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time[4]=y[0]*10+y[1];
lcdshow2(':');
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
if(y[0]>6)
{
//lcdshow1((unsigned char *)c,15);
goto begin;
}
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time[5]=y[0]*10+y[1];
lcdshow2(':');
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
if(y[0]>9)
{
//lcdshow1((unsigned char *)c,15);
goto begin;
}
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time[6]=y[0]*10+y[1];
conver();
lcdshow((unsigned char *)time1);
}
void SetAlarmClock(void)
{
//unsigned char i;
unsigned char y[2];
unsigned char a[]="alarm date:";
unsigned char b[]="alarm time:";
//unsigned char b[]="input month:";
//unsigned char b[]="input month:";
//unsigned char a[]="input year:";
//unsigned char b[]="input month:";
//unsigned char c[]="input day:";
//unsigned char d[]="input hour:";
//unsigned char e[]="input minute:";
//unsigned char f[]="input second:";
begin:
lcdshow1((unsigned char *)a,11);
LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
LcdCtrl&=~(1<<LcdRW);
Lcd_Command(0b11000000); //后7位为DDRAM地址0x40
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time2[0]=y[0]*10+y[1];
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time2[1]=y[0]*10+y[1];
lcdshow2('.');
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
if(y[0]>1)
{
//lcdshow1((unsigned char *)c,15);
goto begin;
}
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time2[2]=y[0]*10+y[1];
lcdshow2('.');
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
if(y[0]>3)
{
//lcdshow1((unsigned char *)c,15);
goto begin;
}
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time2[3]=y[0]*10+y[1];
lcdshow1((unsigned char *)b,11);
LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
LcdCtrl&=~(1<<LcdRW);
Lcd_Command(0b11000000); //后7位为DDRAM地址0x40
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
if(y[0]>2)
{
//lcdshow1((unsigned char *)c,15);
goto begin;
}
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time2[4]=y[0]*10+y[1];
lcdshow2(':');
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
if(y[0]>6)
{
//lcdshow1((unsigned char *)c,15);
goto begin;
}
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time2[5]=y[0]*10+y[1];
lcdshow2(':');
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[0]= KB_valve-0x30;
if(y[0]>6)
{
//lcdshow1((unsigned char *)c,15);
goto begin;
}
lcdshow2(KB_valve);
while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松开跳出
while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按键跳出
KB_valve=KB_Def(KB_valve); //键值转化为定义值
y[1]= KB_valve-0x30;
lcdshow2(KB_valve);
time2[6]=y[0]*10+y[1];
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -