1.实现功能:

实现单字节加减乘除四则运算
1、能通过键盘输入正确键值
2、能进行简单的四则运算
3、能以数码管正确显示数值
4、能重复操作

2.元器件清单

3.软件流程图


4.仿真图

如22+96

6.相关代码

#include "reg51.h"
sbit smg1=P2^0;//数码管
sbit smg2=P2^1;
sbit smg3=P2^2;
sbit smg4=P2^3;
sbit smg5=P2^4;
sbit smg6=P2^5;
sbit smg7=P2^6;
sbit smg8=P2^7;
unsigned int a=0,b=0; //输入
unsigned char fuhao=0;//符号
unsigned int c=0;//结果
unsigned char code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9,无小数点
unsigned char disp[]={0,0,0,0,0,0,0,0};void delay(unsigned int i)//延时
{while(i--);
}unsigned char key_scan()//按键检测
{unsigned char i,j;
i=0;
j=0;
P1=0x0f;
if(P1!=0x0f) //检测有无按下
{switch(P1)//检测行{case 0x0e:i=3;break;case 0x0d:i=2;break;case 0x0b:i=1;break;case 0x07:i=0;}P1=0xf0;switch(P1)//检测列{case 0xe0:j=13;break;case 0xd0:j=9;break;case 0xb0:j=5;break;case 0x70:j=1;}while(P1!=0xf0);//等待按键松开
}
return i+j;
}void main()//主函数
{unsigned char i;unsigned int m=0;while(1){//显示if(fuhao<5){P0=smgduan[a%1000/100];smg1=0;delay(100);smg1=1;P0=smgduan[a%100/10];smg2=0;delay(100);smg2=1;P0=smgduan[a%10];smg3=0;delay(100);smg3=1;switch(fuhao)//符号{case 1:P0=0x01;break;case 2:P0=0x40;break;case 3:P0=0x08;break;case 4:P0=0x80;break;default:P0=0;}smg4=0;delay(100);smg4=1;P0=smgduan[b%1000/100];smg5=0;delay(100);smg5=1;P0=smgduan[b%100/10];smg6=0;delay(100);smg6=1;P0=smgduan[b%10];smg7=0;delay(100);smg7=1;}else//显示结果{P0=smgduan[c%1000/100];smg5=0;delay(100);smg5=1;P0=smgduan[c%100/10];smg6=0;delay(100);smg6=1;P0=smgduan[c%10];smg7=0;delay(100);smg7=1;}//==================================================i=key_scan();//检测if((i>0)&&(i<11))//输入数值{if(fuhao==0)//第1个输入{a=a*10+i-1;if(a>999)a=a%1000;              }else //第2个输入{b=b*10+i-1;if(b>999)b=b%1000;               }}if(i==13)//+{fuhao=1;}if(i==14)//-{fuhao=2;}if(i==15)//*{fuhao=3;}if(i==16)// /{fuhao=4;}if(i==11)//ok{                        switch(fuhao){case 1:c=a+b;break;case 2:c=a-b;break;case 3:c=a;c=c*b;break;case 4:c=a/b;}fuhao=5;                        }if(i==12)//清除{            a=0;b=0;c=0;fuhao=0;}}
}

单片机51实现计算器详细代码能自己运行相关推荐

  1. 单片机c语言全程图文教程,单片机C语言,从小白到菜鸟进阶教程(超详细代码解读)...

    首先要认识单片机是啥?单片机语言是啥?单片机是一种可存储可读写可编程可运行的芯片,你写啥它就运行啥,运行出错,那你程序写错了.单片机语言,嗯!确定要学C啊!有哪一种语言能够抗衡C的强大地位?没有!哪一 ...

  2. 【Proteus仿真】51单片机制作简易计算器+ LCD1602显示

    [Proteus仿真]51单片机制作简易计算器+ LCD1602显示 Proteus仿真效果演示 程序代码 #include<reg51.h> //头文件 #define uint uns ...

  3. 51单片机实现简易计算器

    本来做出来之后时间也是比较久了,具体代码的意义我暂时没有再回看,给标注出来,相信读者也是看了就明白,主要是当初在调试折腾的过程需要下一些功夫,因为当时是初学者,完成慢,成品也不好,还请多多包涵. 目录 ...

  4. c语言51单片机计算器,新基于51单片机的简易计算器

    <新基于51单片机的简易计算器>由会员分享,可在线阅读,更多相关<新基于51单片机的简易计算器(24页珍藏版)>请在人人文库网上搜索. 1.基于51单片机的简易计算器1.前言: ...

  5. MCU-51:51单片机实现简单计算器功能

    目录 一.要实现什么功能 二.怎样实现 三.代码演示 注意:一定要看 今天不打算学新知识了,把前段时间学的复习下. 用单片机按键实现计算器简单功能,开干! 一.要实现什么功能 多位显示,小数计算,连续 ...

  6. 51单片机的简易计算器设计(仿真+程序+原理图+PCB+设计报告)

    本设计: 基于51单片机的简易计算器设计(仿真+程序+原理图+PCB+设计报告) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号S0001 芯片可以替换为 ...

  7. 利用c51进行数模转换并在液晶屏上显示_基于C51单片机的智能计算器、矩阵键盘、lcd1602...

    目录 1绪论.............................................................................................. ...

  8. 单片机编程好学吗?单片机初学者怎样看懂代码?

    单片机在很多人看来好像门槛很高,在某些人看来很简单. 所以,单片机编程好不好学,这取决于谁去学,有没有基础,有没有兴趣. 我自己是通过自学学会的,我个人认为相对java那些纯软件,单片机比较好学. 单 ...

  9. 单片机c语言必背代码_【典藏】深度剖析单片机程序的运行(C程序版)

    1.日常聊一聊 今天为大家带来一篇对于单片机学习的小伙伴非常重量级的一篇文章<深度剖析单片机程序的运行(C语言版本)>,该文章会比较全面的为大家解析我们的用C语言编译出来的程序是如何在单片 ...

最新文章

  1. 第一课 PHP学习要求
  2. android的选项菜单,Android界面菜单(2)—选项菜单
  3. 录入学员的身份证后控件焦点转移时根据身份证号码获得生日和性别
  4. HTML可以替代CSS的所有功能,CSS-用Divs替换HTML表
  5. Python读取IRIS数据集并转换为PaddlePaddle中使用的reader
  6. python中ascii的应用_Python程序中的ascii()
  7. java第五章循环结构总结_Java理论学习三分钟-流程控制之循环结构(3)
  8. 切图工具:又一个处理大图的例子
  9. 2021年中国研究生数学建模竞赛F题航空公司机组优化排班问题思路参考代码
  10. C++STL算法equal(15)
  11. Java设计模式——行为型模式之观察者模式
  12. Mysql数据库安装使用教程05:mysql启动停止服务+数据库及表的相关基础操作
  13. 实验一 简单计算器的实现(QT实现)
  14. Failed to load module “canberra-gtk-module“
  15. 若要运行此应用程序,您必须首先安装NET Framework 解决办法
  16. [Cherno C++ 笔记 P1~P10]安装、链接器、变量、函数、头文件
  17. 写论文的基本步骤流程是什么?
  18. 美法官建议部分禁止进口iPhone 高通两项申诉获一项支持
  19. 3DMAX 1快捷键及常用操作
  20. 大人小孩都适用的口才训练方法

热门文章

  1. 【算法】分治策略:芯片测试
  2. Eclipse实用插件
  3. [转载]删除微软拼音输入法
  4. 最近,又有人在谈论Android的前景了!
  5. 【数据可视化】复杂高维多元数据的可视化
  6. 合成大西瓜游戏|微信合成大西瓜游戏技巧及资源
  7. TPS和事务响应时间的关系、计算公式(转载)
  8. go 获取当前时间,以及时间格式转换
  9. QR二维码编码解码原理算法介绍
  10. 注册jar包为windows服务