?? 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 + -