?? keycount.c
字號:
read_initstat();
datadr=0x00;
write_dr();
lcddata=0x30+(YEAR>>4);
write_data();
datadr=0x01;
write_dr();
lcddata=0x30+(YEAR&0x0f);
write_data();
datadr=0x02;//連接符
write_dr();
lcddata=0xb0;
write_data();
datadr=0x03;//月
write_dr();
lcddata=0x30+(MONTH>>4);
write_data();
datadr=0x04;
write_dr();//;
lcddata=0x30+(MONTH&0x0f);
write_data();
datadr=0x05;
write_dr();
lcddata=0xb0;//連接符
write_data();
datadr=0x06;//日
write_dr();//read_initstat();
lcddata=0x30+(DAY>>4);
write_data();
datadr=0x07;
write_dr();//read_initstat();
lcddata=0x30+(DAY&0x0f);
write_data();
datadr=0x09;//小時
write_dr();
lcddata=0x30+(HOUR>>4);
write_data();
datadr=0x0a;
write_dr();//read_initstat();
lcddata=0x30+(HOUR&0x0f);
write_data();
datadr=0x0b;//冒號
write_dr();
if(flash_flag)lcddata=0x3a;
else lcddata=0x20;
write_data();
datadr=0x0c;//分
write_dr();//read_initstat();
lcddata=0x30+(MINUTE>>4);
write_data();
datadr=0x0d;
write_dr();//read_initstat();
lcddata=0x30+(MINUTE&0x0f);
write_data();
datadr=0x0f;//星期
write_dr();
lcddata=0x30+WEEK;
write_data();
datadr=0x40;//T
write_dr();
lcddata=0x54;
write_data();
datadr=0x41;//I
write_dr();
lcddata=0x49;
write_data();
datadr=0x42;//M
write_dr();
lcddata=0x4d;
write_data();
datadr=0x43;//E
write_dr();
lcddata=0x45;
write_data();
datadr=0x44;//S
write_dr();
lcddata=0x53;
write_data();
datadr=0x45;//冒號
write_dr();
lcddata=0x3a;
write_data();
if(*(TIMES+1)!=0){
datadr=0x46;//次數10位
write_dr();
lcddata=0x30+((*(TIMES+1))/10);
write_data();
datadr=0x47;//次數個位
write_dr();
lcddata=0x30+((*(TIMES+1))%10);
write_data();
}
else{
datadr=0x46;//次數百位位置在閉合次數為0時寫入0
write_dr();
lcddata=0x30;
write_data();
}
datadr=0x49;//L:表示上次按下鍵時間
write_dr();
lcddata=0x4c;
write_data();
datadr=0x4a;//冒號
write_dr();
lcddata=0x3a;
write_data();
datadr=0x4b;//小時
write_dr();
lcddata=0x30+((*(TIMES+(2*(*DAY_SUM))))>>4);
write_data();
datadr=0x4c;
write_dr();
lcddata=0x30+((*(TIMES+(2*(*DAY_SUM))))&0x0f);
write_data();
datadr=0x4d;//冒號
write_dr();
lcddata=0x3a;
write_data();
datadr=0x4e;//分鐘
write_dr();
lcddata=0x30+((*(TIMES+(2*(*DAY_SUM))+1))>>4);
write_data();
datadr=0x4f;
write_dr();
lcddata=0x30+((*(TIMES+(2*(*DAY_SUM))+1))&0x0f);
write_data();
}
void sqw_place(){//2s中斷處理
byte n,l,p,x,y;
//read_initstat();
if(!key_flag){
if(*CUR_DAY!=DAY){
if((2*(*PRESS_SUM)+2*(*DAY_SUM))>=110){
for(n=0;n<108;n++){
*(TIMES+109-n)=*(TIMES+109-n-2);
}
l=*(TIMES+2*(*DAY_SUM)+1);
if(l>1){
l--;
*(TIMES+2*(*DAY_SUM)+1)=l;
*TIMES=0;
*(TIMES+1)=0;
y=*DAY_SUM;
y--;
*DAY_SUM=y;
x=*PRESS_SUM;
x--;
*PRESS_SUM=x;
}
else if(l==1){
for(p=0;p<*PRESS_SUM-2;p++){
*(TIMES+2*(*DAY_SUM)+2)=*(TIMES+2*(*DAY_SUM)+4);
}
l--;
*(TIMES+2*(*DAY_SUM)+1)=l;
*TIMES=0;
*(TIMES+1)=0;
y=*DAY_SUM;
y--;
*DAY_SUM=y;
x=*PRESS_SUM;
x--;
*PRESS_SUM=x;
}
else if(l==0){
for(p=0;p<*PRESS_SUM-2;p++){
*(TIMES+2*(*DAY_SUM)+2)=*(TIMES+2*(*DAY_SUM)+4);
}
l--;
*(TIMES+2*(*DAY_SUM)+1)=l;
*TIMES=0;
*(TIMES+1)=0;
y=*DAY_SUM;
y--;
*DAY_SUM=y;
}
}
else{
x=*PRESS_SUM;y=*DAY_SUM;
if(2*x+2*y<=108){
for(n=0;n<2*x+2*y;n++){
*(TIMES+2*x+2*y+1-n)=*(TIMES+2*x+2*y-1-n);
}
*TIMES=0;
*(TIMES+1)=0;
l=*DAY_SUM;
if(l<54)l++;
*DAY_SUM=l;
}
}
start_initstat();
}
read_initstat();
*CUR_DAY=DAY;
daycheck_flag=0;
}
}
void change_time(){//修改時間主界面
byte i;
read_initstat();
for(i=0;i<=15;i++){//第二行全寫入空白
datadr=0x40+i;
write_dr();
lcddata=0x20;
write_data();
}
datadr=(0x40+move_num);//寫入光標
write_dr();
//if(flash_flag)
lcddata=0xb0;
//else lcddata=0x20;
write_data();
}
void check_time(){//檢查繼電器閉合時間及次數子程序
byte i;
read_initstat();
for(i=0;i<=15;i++){//第二行全寫入空白
datadr=0x40+i;
write_dr();
lcddata=0x20;
write_data();
}
if(tiancha==0){
datadr=0x40;//T
write_dr();
lcddata=0x54;
write_data();
datadr=0x41;//O
write_dr();
lcddata=0x4f;
write_data();
datadr=0x42;//D
write_dr();
lcddata=0x44;
write_data();
datadr=0x43;//A
write_dr();
lcddata=0x41;
write_data();
datadr=0x44;//Y
write_dr();
lcddata=0x59;
write_data();
datadr=0x48;//次第
write_dr();
lcddata=0x30+check_num/10;
write_data();
datadr=0x49;
write_dr();
lcddata=0x30+check_num%10;
write_data();
datadr=0x4a;//冒號
write_dr();
lcddata=0x3a;
write_data();
datadr=0x4b;//小時
write_dr();
lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-2))>>4);
write_data();
datadr=0x4c;
write_dr();
lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-2))&0x0f);
write_data();
datadr=0x4d;//冒號
write_dr();
lcddata=0x3a;
write_data();
datadr=0x4e;//分鐘
write_dr();
lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-1))>>4);
write_data();
datadr=0x4f;
write_dr();
lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-1))&0x0f);
write_data();
}
else{
datadr=0x40;//距今天天數
write_dr();
lcddata=0x30+tiancha/10;
write_data();
datadr=0x41;
write_dr();
lcddata=0x30+tiancha%10;
write_data();
datadr=0x42;//D
write_dr();
lcddata=0x44;
write_data();
datadr=0x43;//A
write_dr();
lcddata=0x41;
write_data();
datadr=0x44;//Y
write_dr();
lcddata=0x59;
write_data();
datadr=0x45;//S
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -