?? getkey.h
字號:
#include <reg51.h>
#include <absacc.h>
#include <intrins.h>
#include "LCD.h"
sbit yearUp = P0^7;
sbit yearDown = P0^6;
sbit monthUp = P0^5;
sbit monthDown = P0^4;
sbit dayUp = P0^3;
sbit dayDown = P0^2;
void GetCurrentDay()
{
uchar a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; // 每月天數(shù)數(shù)組
ReadSerial(dataBuf);
currentYear = 2000 + ((dataBuf[6] & 0xf0) >> 4) * 10 + (dataBuf[6] & 0x0f);
currentMonth = ((dataBuf[4] & 0xf0) >> 4) * 10 + (dataBuf[4] & 0x0f);
currentDay = ((dataBuf[3] & 0xf0) >> 4) * 10 + (dataBuf[3] & 0x0f);
n_currentMon = a[currentMonth];
n_lastMon = a[currentMonth - 1];
}
void KeyDelay(uchar i)
{
while(i--);
}
void KeyYearUp()
{
currentYear++;
}
void KeyYearDown()
{
currentYear--;
}
void KeyMonthUp()
{
if (currentMonth == 12)
{
currentYear++;
currentMonth = 1;
}
else
{
currentMonth++;
}
}
void KeyMonthDown()
{
if (currentMonth == 1)
{
currentYear--;
currentMonth = 12;
}
else
{
currentMonth--;
}
}
void KeyDayUp()
{
if (currentDay == 1)
{
if (currentMonth == 1) /*當(dāng)前天數(shù)為1且當(dāng)前月為1時:*/
{ /*變?yōu)樯夏曜詈笠辉伦詈笠惶?/
currentYear--;
currentMonth = 12;
currentDay = 31;
}
else /*當(dāng)前天數(shù)為1時:*/
{ /*變?yōu)樯显伦詈笠惶?/
currentMonth--;
currentDay = n_lastMon;
}
}
else
{
currentDay--;
}
}
void KeyDayDown()
{
if (currentDay == n_currentMon)
{
if (currentMonth == 12) /*當(dāng)前天數(shù)為本月最后一天且當(dāng)前月為本年最后一月時:*/
{ /*變?yōu)橄履甑谝辉碌谝惶?/
currentYear++;
currentMonth = 1;
currentDay = 1;
} /*當(dāng)前天數(shù)為本月最后一天時:*/
else /*變?yōu)橄略碌谝惶?/
{
currentMonth++;
currentDay = 1;
}
}
else
{
currentDay++;
}
}
void GetKeyValue(void)
{
EA = 0;
// if ((!yearUp) || (!yearDown) || (!monthUp) || (!monthDown) || (!dayUp) || (!dayDown))
// {
// KeyDelay(2000);
if (!yearUp)
{
while (!yearUp)
{
KeyDelay(1000);
}
KeyYearUp();
}
else if (!yearDown)
{
while (!yearDown)
{
KeyDelay(1000);
}
KeyYearDown();
}
else if (!monthUp)
{
while (!monthUp)
{
KeyDelay(1000);
}
KeyMonthUp();
}
else if (!monthDown)
{
while (!monthDown)
{
KeyDelay(1000);
}
KeyMonthDown();
}
else if (!dayUp)
{
while (!dayUp)
{
KeyDelay(1000);
}
KeyDayUp();
}
else if (!dayDown)
{
while (!dayDown)
{
KeyDelay(1000);
}
KeyDayDown();
}
// }
EA = 1;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -