资源简介
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++魔兽全图源码
相关资源
- at89c51单片机+矩阵键盘编写的计算器
- 桌面计算器
- 课程设计--计算器基于MFC
- 基于QT的三元一次方程计算器
- 纯C语言写计算器界面源码
- 密码学MFC实现仿射加密解密超级计算
- C语言一个简易计算器程序
- 基于51单片机的智能计算器(实现两个
- STC15F单片机制作的:计算器、万年历
- 用8051与1601LCD设计的计算器
- 基于51单片机的计算器
- 菜单实现加单计算器(个人原创c++源
- 矩阵计算器(定积分计算器.cpp)
- c++控制台 计算器(正常运算和定义)
- c++源码:原木材积计算器
- c++入门级计算器源码(实现了加、减
- 一元稀疏多项式计算器
- c++ 简易计算器
- 计算器 实现普通计算、进制转换和阶
- 基于Qt界面设计的科学计算器
- c++ 计算器
- MFC入门教程之计算器
- c++ 简单计算器(控制台)
- c++ 简单计算器(支持加减乘除等基本
- c++ 一个有趣的计算器
- C语言课程设计 计算器
- 堆栈实现的计算器,c++语言
- 简单的一元多项式计算器程序
- 自己用C语言写的简单计算器,用堆栈
- [C++]分数类计算器完美运行
评论
共有 条评论