?? calculator.c
字號:
//*************************************************************************************************
//*************************************************************************************************
//**<程序名>:計算器處理主程序,根據(jù)計算器的輸入狀態(tài)分派不同的函數(shù)對按鍵進(jìn)行處理。 **
//**<功能>:當(dāng)b_WorkMode=0是,若有鍵按下則調(diào)用此函數(shù)對鍵碼進(jìn)行處理。 **
//*************************************************************************************************
//*************************************************************************************************
//*************************************************************************************************
//* *
//* ******************************頭文件及宏定義************************** *
//* *
//*************************************************************************************************
#include "CalReady.h"
//*************************************************************************************************
//* *
//* ********************************全局變量****************************** *
//* *
//*************************************************************************************************
extern unsigned long ul_Number; //LCE顯示數(shù)據(jù),LCD實(shí)時顯示該數(shù)字。
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<工作模式(默認(rèn)為計算器模式)>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
extern bit b_WorkMode; //0--計算器模式;
//1--計時模式。
//定義在KeyProcess.c中。
unsigned char uc_ModeChange=0;
extern bit b_LCDClean;
extern unsigned char uc_ReportSymbol;
unsigned long ul_NumberOne=0; //第一個數(shù)
unsigned long ul_NumberTwo=0; //第二個數(shù)
unsigned char uc_Operator=0; //運(yùn)算符
unsigned long ul_Result=0; //運(yùn)算結(jié)果
unsigned char uc_NumPointer=1; //計算狀態(tài)
//*************************************************************************************************
//* *
//* *******************************計算器處理主函數(shù)****************************** *
//* *
//*************************************************************************************************
void vCalculator(unsigned char ucKeyCode)
{
if(ucKeyCode==41) //判斷按鍵是不是'NO/C'。
{
if(uc_NumPointer==1) //如果是‘NO/C’鍵則判斷手機(jī)否是狀態(tài)一。
{
if(uc_ModeChange==2) //如果是狀態(tài)一則看uc_ModeChange是不是2。
{
uc_ModeChange=0; //如果是2則計時器模式。
b_WorkMode=1;
uc_ReportSymbol=3; //閃爍顯示:-CHAG-1。表明正在切換狀態(tài)。
b_LCDClean=1;
}
else
{
uc_ModeChange++; //如果uc_ModeChange不是2則加一。
ul_NumberOne=0; //清除所有數(shù)據(jù),將所有數(shù)據(jù)恢復(fù)到狀態(tài)一。
ul_NumberTwo=0;
ul_Number=0;
uc_NumPointer=1;
}
}
else
{
ul_NumberOne=0; //清除所有數(shù)據(jù),將所有數(shù)據(jù)恢復(fù)到狀態(tài)一。
ul_NumberTwo=0;
ul_Number=0;
uc_NumPointer=1;
}
}
else
{ //如果不是“NO/C”鍵,首先將uc_ModeChange清零。
uc_ModeChange=0;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<根據(jù)不同狀態(tài)分派不同的鍵處理函數(shù)>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
switch(uc_NumPointer)
{
case 1:
vCalReadyOne(ucKeyCode); //進(jìn)入狀態(tài)一。
break;
case 2:
vCalReadyTwo(ucKeyCode); //進(jìn)入狀態(tài)二。
break;
case 3:
vCalReadyThree(ucKeyCode); //進(jìn)入狀態(tài)三。
break;
default:break;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -