• 大小: 117KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: C/C++
  • 标签: 计算器  

资源简介

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个文件信息

评论

共有 条评论