51单片机的简易计算器数码管显示仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

51单片机的简易计算器数码管显示仿真设计

  • 1.主要功能:
  • 2.仿真
  • 3. 程序代码
  • 4. 原理图
  • 5. 设计报告
  • 6. 设计资料内容清单&&下载链接

51单片机的简易计算器数码管显示仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0049

1.主要功能:

本设计旨在设计一个基于51单片机的简易计算器仿真设计。

功能要求:实现加减乘除四则简单运算数码管显示

1、能通过矩阵键盘输入正确键值;

2、能进行简单的四则运算;

3、能以数码管正确显示数值;

4、最大支持999*999;

5、输入数字能重复操作,取后三位数字。

需注意仿真中51单片机芯片是通用的,AT89C51,AT89C52都是51单片机的具体型号,内核是兼容的。无论stc还是at都一样,引脚功能都是一样的,程序也是一样的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

以下为本设计资料展示图:

2.仿真

开始仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后,数码管显示000000。

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后,数码管显示000 000。

img

由于数码管显示有局限,本设计的运算符号加减乘除分别按照下图的标点显示:

img

加法验证:矩阵键盘输入123+456后,按下按键=即显示运算结果 00579。剪辑如下图所示:

img

减法验证:矩阵键盘输入789-456后,按下按键=即显示运算结果000333。剪辑如下图所示:

img

乘法验证:矩阵键盘输入999*999后,按下按键=即显示运算结果998001。剪辑如下图所示:

img

除法验证:矩阵键盘输入666*3后,按下按键=即显示运算结果000222。剪辑如下图所示:

img

以上加减乘除运算均符合数学运算规则,满足设计要求。

3. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

img

主函数代码

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%1000000/100000];smg2=0;delay(100);smg2=1;P0=smgduan[c%100000/10000];smg3=0;delay(100);smg3=1;P0=smgduan[c%10000/1000];smg4=0;delay(100);smg4=1;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;}}
}

4. 原理图

原理图使用AD绘制,可供实物参考,仿真不同于实物,经验不足不要轻易搞实物。

img

Proteus仿真和实物作品的区别:

1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。

2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。

电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。

3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。

4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。

5. 设计报告

6249字设计报告

img

6. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

1、仿真图

2、程序源码

3、开题报告

4、原理图

5、功能要求

6、元器件清单

7、设计报告

8、软硬件流程框图

9、讲解视频

Altium Designer 软件资料

filename.bat

KEIL软件资料

Proteus软件资料

单片机学习资料

目录清单.txt

答辩技巧

设计报告常用描述

鼠标双击打开查找更多51 STM32单片机课程毕业设计.url

img

资料下载链接:

https://docs.qq.com/doc/DS2RTaGxZUktTRnRE

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/74983.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序AI类目-深度合成-AI问答/AI绘画 互联网信息服务算法备案审核通过教程

近期小程序审核规则变化后&#xff0c;很多使用人类小徐提供的chatGPT系统的会员上传小程序无法通过审核&#xff0c;一直提示需要增加深度合成-AI问答、深度合成-AI绘画类目&#xff0c;该类目需要提供互联网信息服务算法备案并上传资质&#xff0c;一般对企业来说这种务很难实…

[超硬核] 5000字带走读DuckDB优化器之常量折叠与比较简化

DuckDB优化器之常量折叠与比较简化 本篇文章适合学习C的小伙伴&#xff0c;适合阅读开源项目的小伙伴&#xff0c;更适合学习数据库的小伙伴&#xff0c;欢迎与我一起探索优化器知识。 目录 DuckDB优化器之常量折叠与比较简化1.优化器规则2.表达式重写 2.1 重写/访问算子2.2 应…

国家开放大学 练习题

学前儿童社会教育活动指导 参考试题 一、单项选择题&#xff08;每小题3分&#xff0c;共30分&#xff09; 1.《规程》第三十二条规定&#xff1a;“幼儿园应当充分尊重幼儿的个体差异&#xff0c;根据幼儿不同的心理 发展水平&#xff0c;研究有效的活动形式和方法&am…

vue.js+nodejs家庭个人理财收支管理系统5x6nf

本收支管理系统以vue.js作为框架&#xff0c;nodejs语言&#xff0c;B/S模式以及MySql作为后台运行的数据库。本系统主要包括以下功能模块&#xff1a;用户管理、收入分类、支出分类、每日收入、每日支出等模块。 本文的组织结构如下&#xff1a; 1、绪论。综述了本文的研究背景…

数据结构--并查集

思路&#xff1a; 1. 初始化&#xff1a; 假如有编号为1,2,3,.., n的n个元素&#xff0c;我们用一个数组p来存储每个元素的父节点。一开始&#xff0c;我们先将它们的父节点设为自己 int p[N]; for(int i 1;i < n;i )p[i] i; 2. 查询 找到i的祖先直接返回,未进行路径…

RTSP流媒体服务器EasyNVR视频平台以服务方式启动异常却无报错,该如何解决?

EasyNVR是基于RTSP/Onvif协议的安防视频云服务平台&#xff0c;可实现设备接入、实时直播、录像、检索与回放、云存储、视频分发、级联等视频能力服务&#xff0c;可覆盖全终端平台&#xff08;电脑、手机、平板等终端&#xff09;&#xff0c;在智慧工厂、智慧工地、智慧社区、…

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程

完善登录流程 1. 丰富登录界面 1.1 从 Element 指南中选择组件模板丰富登录界面&#xff0c;放置一个登录界面表单&#xff0c;包含账号密码输入框和登录重置按钮。 <template><el-form :model"loginForm" :rules"fieldRules" ref"loginFo…

01卡特兰数

卡特兰数跟排列组合很有关系&#xff0c;所以在看此文章前请掌握&#xff1a; 加法原理乘法原理A(m,n)计算公式及其原理C(m,n)计算公式及其原理 前言 今天您将会学习到基本的卡特兰数及其应用。 一、卡特兰数是什么&#xff1f; 卡特兰数&#xff08;Catalan number&#xff0…

RabbitMq消息模型-队列消息

队列消息分为2种&#xff1a; 基本模型&#xff08;SimpleQueue&#xff09;、工作模型&#xff08;WorkQueue&#xff09; 队列消息特点&#xff1a; 消息不会丢失 并且 有先进先出的顺序。消息接收是有顺序的&#xff0c;不是随机的&#xff0c;仅有一个消费者能拿到数据&…

java实现课程表 II

题目&#xff1a; 现在你总共有 numCourses 门课需要选&#xff0c;记为 0 到 numCourses - 1。给你一个数组 prerequisites &#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示在选修课程 ai 前 必须 先选修 bi 。 例如&#xff0c;想要学习课程 0 &#xff0c;…

如何建设一个安全运营中心(SOC)?

然信息安全管理问题主要是个从上而下的问题&#xff0c;不能指望通过某一种工具来解决&#xff0c;但良好的安全技术基础架构能有效的推动和保障信息安全管理。随着国内行业IT应用度和信息安全管理水平的不断提高&#xff0c;企业对于安全管理的配套设施如安全运营中心&#xf…

Hexo小结

Hexo小结 前段时间自己搭建了博客&#xff0c;后来维护太麻烦&#xff0c;放弃了&#xff0c;但还是做个基本使用的小结。 Hexo小结 Hexo 是一个基于 Node.js 的快速、简单和强大的博客框架。以下是一些常用的 Hexo 命令&#xff1a; hexo init [folder]&#xff1a;在指定文…

Spring boot环境搭建

使用IDE工具&#xff1a;IntelliJ IDEA 目录 一、安装JAVA 二、安装maven&#xff08;Java项目管理工具&#xff09; 三、安装IDE 四、在IDE中配置spring boot项目环境 1、配置jdk 2、配置maven 3、安装创建spring boot项目插件&#xff1a;Spring Assistant 4、安装简…

Linux 指令心法(五)`mv` 移动或重命名文件和目录

文章目录 命令的概述和用途命令的用法命令行选项和参数的详细说明命令的示例命令的注意事项或提示 命令的概述和用途 mv 是 “move” 的缩写&#xff0c;它是一个 Linux 和 Unix 系统中的命令&#xff0c;用于移动或重命名文件和目录。使用 mv 命令&#xff0c;用户可以将文件…

LTGNet-超分辨率OCTA图像分割

目录 一、摘要 二、引言 三、方法 A. Reference-based框架 B. Learnable Texture Generator 四、实验 五、总结 一、摘要 研究背景&#xff1a;光学相干断层血管成像(OCTA)是一种新的视网膜微血管成像方式&#xff0c;已广泛应用于临床。 高分辨率OCT血管造影对于定性和…

LeetCode 面试题 04.02. 最小高度树

文章目录 一、题目二、C# 题解 一、题目 给定一个有序整数数组&#xff0c;元素各不相同且按升序排列&#xff0c;编写一个算法&#xff0c;创建一棵高度最小的二叉搜索树。 点击此处跳转题目。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是&#xff1a;[0,-3,9,-10…

台式万用表几位的概念以及NPLC的功能作用

数字万用表测量电流和电压的基本原理是通过检测传感器的电阻&#xff0c;电容&#xff0c;或电感等特性&#xff0c;将电流或电压转化为可以测量的电信号&#xff0c;然后这个电信号被转化为数字信号进行处理和显示。具体的&#xff0c;当测量电压时&#xff0c;万用表的输入端…

JavaScript中的事件捕获(event capturing)和事件冒泡(event bubbling)

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 事件捕获和事件冒泡⭐ 事件捕获&#xff08;Event Capturing&#xff09;示例&#xff1a; ⭐ 事件冒泡&#xff08;Event Bubbling&#xff09;示例&#xff1a; ⭐ 应用场景⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开…

LeetCode 面试题 03.04. 化栈为队

文章目录 一、题目二、C# 题解 一、题目 实现一个MyQueue类&#xff0c;该类用两个栈来实现一个队列。 点击此处跳转题目。 示例&#xff1a; MyQueue queue new MyQueue(); queue.push(1); queue.push(2); queue.peek(); // 返回 1 queue.pop(); // 返回 1 queue.empty(); /…

k8s中的有状态,无状态,pv、pvc等

数据库是一个典型的有状态服务&#xff0c;他的部署和无状态服务是不一样的。 PostgresSQL----基于Kubernetes部署PostgresSQL-CSDN博客 一、创建SC、PV和PVC存储对象 二、部署PostgresSQL Volume Kubernetes 中文指南——云原生应用架构实战手册 有状态应用&#xff1a; …