資源簡介
51單片機做簡易計算器,實現+-*/功能,帶protrus原理圖,keil C語言源程序。

代碼片段和文件信息
//*************************************************************************************************
//*************************************************************************************************
//**<程序名>:計算器處理主程序,根據計算器的輸入狀態分派不同的函數對按鍵進行處理。 ? ?**
//**<功能>:當b_WorkMode=0是,若有鍵按下則調用此函數對鍵碼進行處理。??? ?**
//*************************************************************************************************
//*************************************************************************************************
//*************************************************************************************************
//* ??*
//* ?******************************頭文件及宏定義************************** ??*
//* ??*
//*************************************************************************************************
#include?“CalReady.h“
//*************************************************************************************************
//* ??*
//* ??********************************全局變量****************************** ??*
//* ??*
//*************************************************************************************************
extern?unsigned?long?ul_Number; ?//LCE顯示數據LCD實時顯示該數字。
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<工作模式(默認為計算器模式)>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
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; ?//第一個數
unsigned?long?ul_NumberTwo=0; ?//第二個數
unsigned?char?uc_Operator=0; ?//運算符
unsigned?long?ul_Result=0; ?//運算結果
unsigned?char?uc_NumPointer=1; ?//計算狀態
//*************************************************************************************************
//* ??*
//* ??*******************************計算器處理主函數****************************** ??*
//* ??*
//*************************************************************************************************
void?vCalculator(unsigned?char?ucKeyCode)
{
if(ucKeyCode==41) ? //判斷按鍵是不是‘NO/C‘。
{
if(uc_NumPointer==1) //如果是‘NO/C’鍵則判斷手機否是狀態一。
{
if(uc_ModeChange==2) //如果是狀態一則看uc_ModeChange是不是2。
{
uc_ModeChange=0; //如果是2則計時器模式。
b_WorkMode=1;
uc_ReportSymbol=3; //閃爍顯示:-CHAG-1。表明正在切換狀態。
b_LCDClean=1;
}
else
{
uc_ModeChange++; //如果uc_ModeChange不是2則加一。
ul_NumberOne=0; //清除所有數據,將所有數據恢復到狀態一。
ul_NumberTwo=0;
ul_Number=0;
uc_NumPointer=1;
}
}
else
{
ul_NumberOne=0; //清除所有數據,將所有數據恢復到狀態一。
ul_NumberTwo=0;
ul_Number=0;
uc_NumPointer=1;
}
}
else
{ ??? //如果不是“NO/C”鍵,首先將uc_ModeChange清零。
uc_ModeChange=0;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<根據不同狀態分派不同的鍵處理函數
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????108293??2007-07-28?21:11??用51做的簡易計算器\DynamicLED.DSN
?????文件????????768??2009-05-11?22:51??用51做的簡易計算器\DynamicLED.PWI
?????文件???????9143??2007-07-30?13:24??用51做的簡易計算器\Keil\Calculator.lst
?????文件???????3309??2007-07-30?13:24??用51做的簡易計算器\Keil\Calculator.obj
?????文件??????22480??2007-07-30?16:59??用51做的簡易計算器\Keil\CalReady.lst
?????文件??????10202??2007-07-30?16:59??用51做的簡易計算器\Keil\CalReady.obj
?????文件????????107??2007-07-30?16:59??用51做的簡易計算器\Keil\CalReady.__i
?????文件??????37685??2007-08-07?14:58??用51做的簡易計算器\Keil\DynamicLED
?????文件??????11081??2007-08-07?14:58??用51做的簡易計算器\Keil\DynamicLED.hex
?????文件????????172??2007-08-07?14:58??用51做的簡易計算器\Keil\DynamicLED.lnp
?????文件??????37870??2007-08-07?14:58??用51做的簡易計算器\Keil\DynamicLED.M51
?????文件???????2871??2007-08-11?09:14??用51做的簡易計算器\Keil\DynamicLED.Opt
?????文件????????159??2007-08-11?09:14??用51做的簡易計算器\Keil\DynamicLED.plg
?????文件???????4763??2007-07-30?13:28??用51做的簡易計算器\Keil\DynamicLED.Uv2
?????文件???????2872??2007-08-10?12:33??用51做的簡易計算器\Keil\DynamicLED_Opt.Bak
?????文件???????4653??2007-07-30?00:25??用51做的簡易計算器\Keil\DynamicLED_Uv2.Bak
?????文件???????5183??2002-10-08?22:23??用51做的簡易計算器\Keil\include\AT89X51.H
?????文件????????106??2007-07-28?17:57??用51做的簡易計算器\Keil\include\Calculator.h
?????文件????????200??2007-07-29?11:44??用51做的簡易計算器\Keil\include\CalReady.h
?????文件????????150??2007-07-28?14:45??用51做的簡易計算器\Keil\include\includes.h
?????文件????????111??2007-07-28?14:26??用51做的簡易計算器\Keil\include\KeyProcess.h
?????文件????????105??2007-07-28?12:29??用51做的簡易計算器\Keil\include\KeyScan.h
?????文件????????619??2007-07-29?23:28??用51做的簡易計算器\Keil\include\LED6Show.h
?????文件???????1689??2003-02-03?08:57??用51做的簡易計算器\Keil\include\REG51.H
?????文件????????148??2007-07-30?13:17??用51做的簡易計算器\Keil\include\TimeProcess.h
?????文件?????????91??2007-07-30?00:47??用51做的簡易計算器\Keil\include\Timer.h
?????文件???????5104??2007-07-30?16:46??用51做的簡易計算器\Keil\KeyPorcess.lst
?????文件???????1682??2007-07-30?16:46??用51做的簡易計算器\Keil\KeyPorcess.obj
?????文件????????113??2007-07-30?16:46??用51做的簡易計算器\Keil\KeyPorcess.__i
?????文件???????6720??2007-07-30?13:24??用51做的簡易計算器\Keil\KeyScan.lst
............此處省略33個文件信息
- 上一篇:哈弗曼樹的建立 C++代碼
- 下一篇:C語言C++魔獸全圖源碼
評論
共有 條評論