?? key.c
字號:
#include "data.h"
/*---外部數(shù)據引用區(qū)---*/
extern uchar str[25]; //存儲需要在顯示屏顯示的字符
extern uchar PageFlage; //顯示的當前頁號
extern uchar up; //上鍵按下次數(shù)
extern uchar down; //下鍵按下次數(shù)
extern uchar left; //左鍵按下次數(shù)
extern uchar right; //右鍵按下次數(shù)
extern uchar xdata sec1;
extern uchar xdata min1;
extern uchar xdata hour1;
extern uchar xdata day1;
extern uchar xdata month1;
extern uchar xdata year1;
extern uchar xdata week1;
extern uchar xdata sec2;
extern uchar xdata min2;
extern uchar xdata hour2;
extern uchar xdata day2;
extern uchar xdata month2;
extern uchar xdata year2;
extern uchar xdata week2;
extern uchar xdata cal[8][7]; //日歷表存儲
/*---外部數(shù)據引用區(qū)---*/
/*---外部函數(shù)引用區(qū)---*/
extern void cls(); //顯示屏清屏函數(shù)
extern int GetTemperature(); //讀取溫度函數(shù)
//顯示器顯示函數(shù)
extern uchar dprintf(uchar x,uchar y,char *string,uchar mod);
extern void MainPage(); //主頁顯示函數(shù)
/*---外部函數(shù)引用區(qū)---*/
/*---內部函數(shù)定義區(qū)---*/
uchar KeyScan(); //鍵盤掃描函數(shù)
uchar KeyProcess(uchar KeyNum); //按鍵處理函數(shù)
void LeftProcess(); //左鍵處理函數(shù)
void RightProcess(); //左鍵處理函數(shù)
void EnterProcess(); //確定按鍵處理函數(shù)
void Calendar(); //日歷處理函數(shù)
/*---內部函數(shù)定義區(qū)---*/
uchar KeyScan()
{
uchar key;
key=0;
P1_0=0;
P1_1=1;
P1_2=1;
P1_3=1;
P1_4=1;
P1_5=1;
P1_6=1;
P1_7=1;
_nop_();_nop_();
if(!P1_4)key=1;
if(!P1_5)key=2;
if(!P1_6)key=3;
if(!P1_7)key=4;
P1_0=1;
P1_1=0;
P1_2=1;
P1_3=1;
_nop_();_nop_();
if(!P1_4)key=5;
if(!P1_5)key=6;
if(!P1_6)key=7;
if(!P1_7)key=8;
P1_0=1;
P1_1=1;
P1_2=0;
P1_3=1;
_nop_();_nop_();
if(!P1_4)key=9;
if(!P1_5)key=10;
if(!P1_6)key=11;
if(!P1_7)key=12;
P1_0=1;
P1_1=1;
P1_2=1;
P1_3=0;
_nop_();_nop_();
if(!P1_4)key=13;
if(!P1_5)key=14;
if(!P1_6)key=15;
if(!P1_7)key=16;
_nop_();_nop_();
return key;
}
uchar KeyProcess(uchar KeyNum)
{
switch(KeyNum)
{
case 1:
cls();
dprintf(0,0,"測試1",1);
PageFlage = 0;
break;
case 2:
cls();
dprintf(0,0,"測試2",1);
PageFlage = 0;
break;
case 3:
LeftProcess();
break;
case 4:
RightProcess();
break;
case 5:
cls();
dprintf(0,0,"測試5",1);
PageFlage = 0;
break;
case 6:
cls();
dprintf(0,0,"測試6",1);
PageFlage = 0;
break;
case 7:
cls();
dprintf(0,0,"測試7",1);
PageFlage = 0;
break;
case 8:
cls();
dprintf(0,0,"測試8",1);
PageFlage = 0;
break;
case 9:
cls();
dprintf(0,0,"測試9",1);
PageFlage = 0;
break;
case 10:
cls();
dprintf(0,0,"測試10",1);
PageFlage = 0;
break;
case 11:
cls();
dprintf(0,0,"測試11",1);
PageFlage = 0;
break;
case 12:
cls();
dprintf(0,0,"測試12",1);
PageFlage = 0;
break;
case 13:
cls();
dprintf(0,0,"測試13",1);
PageFlage = 0;
break;
case 14:
EnterProcess();
break;
case 15:
cls();
dprintf(0,0,"測試15",1);
PageFlage = 0;
break;
case 16:
cls();
MainPage();
PageFlage = 1;
break;
}
return PageFlage;
}
void LeftProcess()
{
left++;
right--;
if(PageFlage == 1)
{
if(left == 4)
{
left = 1;
right = 3;
}
if(left == 1)
{
dprintf(0,48,"遙控",1);
dprintf(40,48,"日歷",1);
dprintf(80,48,"計算器",0);
}
else if(left == 2)
{
dprintf(0,48,"遙控",1);
dprintf(40,48,"日歷",0);
dprintf(80,48,"計算器",1);
}
else
{
dprintf(0,48,"遙控",0);
dprintf(40,48,"日歷",1);
dprintf(80,48,"計算器",1);
}
}
}
void RightProcess()
{
left--;
right++;
if(PageFlage == 1)
{
if(right == 4)
{
left = 3;
right = 1;
}
if(right == 1)
{
dprintf(0,48,"遙控",0);
dprintf(40,48,"日歷",1);
dprintf(80,48,"計算器",1);
}
else if(right == 2)
{
dprintf(0,48,"遙控",1);
dprintf(40,48,"日歷",0);
dprintf(80,48,"計算器",1);
}
else
{
dprintf(0,48,"遙控",1);
dprintf(40,48,"日歷",1);
dprintf(80,48,"計算器",0);
}
}
}
void EnterProcess()
{
if(PageFlage == 1)
{
if(right == 1)
{
cls();
dprintf(0,0,"測試遙控",1);
PageFlage = 2;
}
else if(right == 2)
Calendar();
else
{
cls();
dprintf(0,0,"計算器測試",1);
PageFlage = 4;
}
}
}
void Calendar()
{
uchar x,y,i,str1[5],t,t1,m,j;
cls();
PageFlage = 3;
up = 1;
down = 8;
left = 2;
right = 1;
dprintf(8,0,"-",0);
for(i=0;i<5;i++)
str1[i] = '\0';
for(i=0;i<25;i++)
str[i] = '\0';
strcat(str,"20");
str1[0] = (year1 >> 4) | 0x30;
str1[1] = (year1 & 0x0f) | 0x30;
strcat(str,str1);
dprintf(24,0,str,1);
dprintf(64,0,"+",1);
for(i=0;i<5;i++)
str1[i] = '\0';
for(i=0;i<25;i++)
str[i] = '\0';
str1[0] = (month1 >> 4) | 0x30;
str1[1] = (month1 & 0x0f) | 0x30;
strcat(str,str1);
dprintf(96,0,"-",1);
dprintf(112,0,str,1);
dprintf(136,0,"+",1);
dprintf(0,16,"星期 一二三四五六日",0);
// day1 = (day1 >> 4) * 10 + (day1 & 0x0f);
// month1 = (month1 >> 4) * 10 + (month1 & 0x0f);
// year1 = (year1 >> 4) * 10 + (year1 & 0x0f);
// i = fmod((double)day1,7);
// i = (int)week1 + 7 - (int)i;
//
// if(month1<8)
// {
// if((month1 & 0x01) == 0x01)
// t = 31;
// else
// t = 30;
// }
// else
// {
// if((month1 & 0x01) == 0x01)
// t = 30;
// else
// t = 31;
// }
// m = fmod((double)year1,4);
// if(month1 == 2)
// {
// if(m == 0)
// t = 29;
// else
// t = 28;
// }
// for(t1=1;t1<=t;t1++)
// {
// y = fmod((double)t1,7);
// y = (y + i)%7 - 1;
// x = t1/7;
// if(y == 0xff)
// {
// y = y + 7;
// x = x - 1;
// }
// cal[x][y] = t1;
// }
//
// for(i=0;i<5;i++)
// str1[i] = '\0';
// for(i=0;i<25;i++)
// str[i] = '\0';
// x = 40;
// y = 32;
// for(t1=0;t1<5;t1++)
// {
// for(i=0;i<7;i++)
// {
// m = cal[t1][i];
// if(m != 0x00)
// {
// str1[0] = (m/10) | 0x30;
// str1[1] = (m - (m/10)*10) | 0x30;
// strcat(str,str1);
// if(m == day1)
// dprintf(x,y,str,0);
// else
// dprintf(x,y,str,1);
// x = x + 16;
// }
//
// for(j=0;j<5;j++)
// str1[j] = '\0';
// for(j=0;j<25;j++)
// str[j] = '\0';
// }
// x = 40;
// y = y+16;
// }
// dprintf(0,112,"確定",1);
// dprintf(127,112,"返回",1);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -