基于51单片机的简易计算器proteus仿真 数码管显示
硬件设计
仿真图: 数码管显示,支持整数加减乘除,不支持小数和负数及连续运算;
(20x3 和20÷3的结果 )
程序设计
//*************************************************************************************************
//*************************************************************************************************
//**<程序名>:计算器处理主程序,根据计算器的输入状态分派不同的函数对按键进行处理。 **
//**<功能>:当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;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<根据不同状态分派不同的键处理函数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>switch(uc_NumPointer){case 1: vCalReadyOne(ucKeyCode); //进入状态一。break;case 2:vCalReadyTwo(ucKeyCode); //进入状态二。break;case 3:vCalReadyThree(ucKeyCode); //进入状态三。break;default:break;}}}
链接:https://pan.baidu.com/s/1ZAxAbTe_oD_cuTvvKWxU5A
提取码:x102
基于51单片机的简易计算器proteus仿真 数码管显示相关推荐
- 基于51单片机MPX4115的压力测量仪proteus仿真 数码管显示
硬件设计 (末尾附文件) 总体设计方案 本次设计是基于8051单片机的测量与显示.利用传感器将压力转换为电信号后,在经过ADC0832的模数转换器经A/D转换后由单片机进行有效处理,然后用数码管进行显 ...
- 【039】基于51单片机的简易门铃Proteus仿真设计
一.压缩包资料内容 (1).基于51单片机的简易门铃proteus仿真设计一份: (2).基于51单片机的简易门铃proteus仿真设计keli源代码一份: (3).基于51单片机的简易门铃prote ...
- 基于51单片机的简易数字电压表proteus仿真原理图程序设计
硬件电路设计 原理图: 仿真图: 单片机的时钟电路与复位电路设计 本系统采用STC系统列单片机,相比其他系列单片机具有很多优点.一般STC单片机资源比其他单片机要多,而且执行速度快:STC系列单片机使 ...
- 基于51单片机的波形发生器proteus仿真数码管LCD12864显示
仿真图1简介: 本系统采用51单片机作为系统的MCU(具体型号见下图),该系统显示器为四位数码管,可实时显示波形的参数情况 可显示四种波形,分别是方波.正弦波.三角波.锯齿波. 该设计具有电压表功能, ...
- c语言51单片机计算器,新基于51单片机的简易计算器
<新基于51单片机的简易计算器>由会员分享,可在线阅读,更多相关<新基于51单片机的简易计算器(24页珍藏版)>请在人人文库网上搜索. 1.基于51单片机的简易计算器1.前言: ...
- 【019】基于51单片机的交通灯Proteus仿真设计
一.资料内容 (1).基于51单片机的交通灯proteus仿真设计一份: (2).基于51单片机的交通灯proteus仿真设计keli源代码一份: (3).基于51单片机的交通灯proteus仿真设计 ...
- 【034】基于51单片机的HX711电子秤Proteus仿真设计
一.压缩包资料内容 (1).基于51单片机的HX711电子秤proteus仿真设计一份: (2).基于51单片机的HX711电子秤proteus仿真设计keli源代码一份: (3).基于51单片机的H ...
- 基于51单片机的烟雾火灾报警器proteus仿真设计
基于51单片机的烟雾火灾报警器proteus仿真设计 1 开发环境 仿真图:proteus8.9以上 程序代码:KEIL4/KEIL5 原理图:AD 设计编号:A0004 代码讲解+仿真讲解+仿真演示 ...
- 【002】基于51单片机的电子万年历proteus仿真设计
一.资料内容(私信获取) (1).基于51单片机的电子万年历proteus仿真设计一份: (2).基于51单片机的电子万年历proteus仿真设计keli源代码一份: (3).基于51单片机的电子万年 ...
- 【008】【毕业设计】基于51单片机的烟雾报警系统proteus仿真与实物设计
一.压缩包资料内容(私信获取) (1).基于51单片机的烟雾报警系统proteus仿真设计一份: (2).基于51单片机的烟雾报警系统proteus仿真设计keli源代码一份: (3).基于51单片 ...
最新文章
- kotlin键值对数组_Kotlin程序检查数组是否包含给定值
- 学习C++怎么进阶?
- 支付宝上线“时间银行”:未来养老不用愁了
- iview 自定义时间选择器组件_视图更新科技发布View UI组件库(即 iView 4.0),超过50项更新...
- net-snmp的定制编译
- FastDFS详细安装步骤,测试;Nginx中配置FastDFS,并提供优化,下载方法,楼主已测
- 大数据开发学习脑图+学习路线清晰的告诉你!月薪30K很轻松
- 逍遥模拟器上传服务器文件,逍遥模拟器后台操作
- 评价的等级优良差_小学生期末评语-等级优良合格(最新)
- FaceBook反霸凌,推广网络安全须知
- JS生成二维码(兼容各种浏览器及中文)
- 针对宝宝肠胃保护,五大国际医生组织推荐使用爱乐乐益生菌
- Apollo Planner
- 【无NK ZOOM KOBE 5 Protro ”Bruce Lee“S2纯原生产线 科比五代李小龙
- ps命令用户名过长显示不全
- Keras实例教程(3)
- 软件测试睡眠原理,智能手环检测睡眠质量的原理?
- oracle用sys用户导入dmp命令,Oracle导入dmp文件步骤
- 电商行业市场行情解析,shopee虾皮平台讲解
- 微信群裂变操作流程方案
热门文章
- Java常用类--java.lang.StringBuilder
- 2019西湖论剑网络安全技能大赛(大学生组)部分WriteUp
- shiro身份认证(HelloWorld)
- 403高校毕业设计选题
- 关于sicp练习2.73的前置程序
- 《Security of GPS/INS based On-road Location Tracking Systems》论文翻译
- 如果这篇文章说不清epoll的本质,那就过来掐死我吧
- 时间序列预测比赛小结
- http://www.cnblogs.com/freeliver54/p/3725979.html
- [转]杀毒软件的引擎