【普中】基于51单片机简易计算器显示设计( proteus仿真+程序+设计报告+实物演示+讲解视频)

目录标题

  • 📟1. 主要功能:
  • 📟2. 讲解视频:
  • 📟3. 设计说明书(报告)
  • 📟4. 仿真
  • 📟5. 实物烧录和现象
  • 📟6. 程序代码
  • 📟7. 设计资料内容清单

【普中开发板】基于51单片机简易计算器显示设计( proteus仿真+程序+设计报告+实物演示+讲解视频)

Proteus 仿真:Proteus 8.16(有低版本)

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:P05

📟1. 主要功能:

普中开发板实验设计

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

性能指标

(1) 用单片机51单片机设计一个简易计算器, 并用1602液晶显示相应的

数据。

(2) 可以进行简单的加减乘除运算。

(3) 最大可以 9999*9999即计算结果9位数以内的运算。

(4) 可以通过 proteus 仿真和普中开发板运行。

(目前仅完全适配普中开发板A234,其他普中开发板型号可能需要做代码修改或接线)

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

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

📟2. 讲解视频:

讲解视频包含仿真运行讲解、实物运行讲解和代码讲解

【普中】基于51单片机简易计算器LCD显示proteus仿真实物讲解

📟3. 设计说明书(报告)

img

本设计以STC89C52RC单片机作为计算器的微处理器;采用44矩阵按键作为数据输入,以LCD1602实现信息交互。矩阵按键的设计:在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成44=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。采用低功耗的字符型液晶作为显示器件,1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。显示更为直观。该系统基于可靠地硬件设计和稳定的软件算法实现题目的基本要求。

📟4. 仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。
img

📟5. 实物烧录和现象

计算结果如下图:

img

软件准备:

第一次使用务必先安装CH340驱动。

双击打开 STC-ISP.exe。

下载步骤:

0.板子先上电,接电源线到电脑USB口,先不上电,板子无灯光。

1.选择选择单片机型号

2.选择下载器的串口

3.打开编译生成的 HEX 文件

4.点击下载,单片机板子电源键按下接通电源,等待下载完成提示

📟6. 程序代码

使用keil4或者keil5编译,代码有注释。

img

核心代码:

#include "reg52.h"
#include "string.h"
#include "stdio.h"
#include "lcd1602.h"
#include "keyboard.h"#define keydeng		14
#define keyzuoyi    12code unsigned char KeyDisPlaybuf[16] = 
{'1', '2', '3', '+',\'4', '5', '6', '-',\ '7', '8', '9', '*',\'<', '0', '=', '/'
};long Count(char *ch, char len)//简单计算器 仅支持加减乘除+-*/
{unsigned char i = 0;char Operation;long Num1=0,Num2=0;while(i<len && ch[i]!='+' && ch[i]!='-' && ch[i]!='*' && ch[i]!='/')	 //输入的数据 数值1{Num1*=10;Num1+=ch[i]-'0';i++;}Operation=ch[i++];while(i<len && ch[i]!='=')	   //输入的数据 数值2{Num2*=10;Num2+=ch[i]-'0';i++;}switch(Operation)	   //计算{case'+':return Num1+Num2;//加法case'-':return Num1-Num2;//减法case'*':return Num1*Num2;//乘法case'/':return Num1/Num2;//除法}return 0;
}void EasyCounter(void)
{unsigned char buff[30];unsigned char text[30];unsigned char key;unsigned char i = 0;do{key = keycan();//读取键值	if(key!=0xff)//键值不等于0{text[i++]=KeyDisPlaybuf[key];//记录键值对应的字符text[i]='\0';LCD_ShowStr(0,0,"                ");LCD_ShowStr(16-strlen(text),0,text); //第一行显示字符}if(key==keyzuoyi&&i>0)//按下"<"时删除一位i-=2;}while(key!=keydeng);//按下'='时结束输入sprintf(buff, "%ld", Count(text, strlen(text)));LCD_ShowStr(0,1,"                ");LCD_ShowStr(16-strlen(buff),1,buff);	  //第二行显示字符
}void main(void)	//主函数
{LCD_Init();while(1){EasyCounter();	//按键扫描+计算+显示}
}

📟7. 设计资料内容清单

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

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

1、仿真图

2、程序源码

3、功能要求

4、讲解视频

5、烧录工具

6、开题报告

7、设计报告

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

普中-2&普中-3&普中-4开发板原理图.pdf

相关数据手册

答辩技巧

设计报告常用描述

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

img

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

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

相关文章

二叉树中的中序遍历、反向遍历和逆序

概念 中序遍历&#xff08;Inorder Traversal&#xff09;&#xff1a; 中序遍历是二叉树遍历的一种方式&#xff0c;它的顺序是左子树、根节点、右子树。对于一个二叉搜索树&#xff08;BST&#xff09;&#xff0c;中序遍历可以得到一个升序的节点序列。中序遍历的步骤是首先…

深度学习之模型权重

在深度学习中&#xff0c;模型的权重&#xff08;weights&#xff09;是指神经网络中的参数&#xff0c;这些参数用于调整和学习模型的行为&#xff0c;以便能够对输入数据进行有效的映射和提取有用的特征。深度学习模型通常由许多神经元和连接组成&#xff0c;而权重就是连接这…

processon使用及流程图和泳道图的绘画(登录界面流程图,门诊流程图绘制门诊泳道图,住院泳道图,OA会议泳道图),Axure自定义元件

目录 一.processon图形的使用场景介绍 二.流程图绘画 三.泳道图的绘画 1.绘制门诊流程图绘制门诊泳道图 2. 绘制住院泳道图​编辑 3.绘制药库采购入库流程图 4.绘制OA会议泳道图 四.Axure自定义元件 1.Axure载入元件库 一.processon图形的使用场景介绍 二.流程图绘画 示例&…

数字图像处理 - 使用Rembg库在Python中轻松删除背景

Python 中的 rembg 模块是一个用于去除图像背景的库。它基于Rembg算法,采用神经网络来执行背景去除任务。该算法经过训练,可以识别图像中的前景物体并将其与背景分开,从而产生具有透明背景的图像。 rembg库基于Rembg算法,该算法本身有一个有趣的历史。Rembg算法由研究员兼软…

鸿蒙开发组件之Web

一、加载一个url myWebController: WebviewController new webview.WebviewControllerbuild() {Column() {Web({src: https://www.baidu.com,controller: this.myWebController})}.width(100%).height(100%)} 二、注意点 2.1 不能用Previewer预览 Web这个组件不能使用预览…

C/C++函数调用栈信息输出(backtrace backtrace_symbols)

C/C函数调用栈信息输出&#xff08;backtrace & backtrace_symbols&#xff09; 最近工作&#xff0c;搞了一个死锁问题&#xff0c;加了好多输出无法定位问题。 就想着在锁操作调用的地方输出函数调用栈信息&#xff0c;试了一下&#xff0c;竟然实现了。 源代码 #incl…

《PCL多线程加速处理》-配准-icp

《PCL多线程加速处理》-配准-icp 一、效果展示二、具体实现三、代码一、效果展示 数据越大,速度提升效果越快 1、48万点 2、十万点 3、三万点 4、9000点 配准数据 二、具体实现

构建智能外卖跑腿小程序:技术实践与代码示例

在快节奏的现代生活中&#xff0c;外卖跑腿服务已成为人们日常生活中不可或缺的一部分。为了提供更智能、高效的外卖跑腿体验&#xff0c;本文将深入探讨构建一款智能外卖跑腿小程序所需的关键技术&#xff0c;并提供相应的代码示例。 1. 地理位置服务的整合 外卖跑腿小程序…

小程序 -网络请求post/get

1.1网络请求的概念(post和get) 1.2步骤 1.3 应用函数 js里面写&#xff0c;用bindtap绑在控件上&#xff0c;就不讲了 实例代码&#xff1a; //发起get数据请求get_info(){wx.request({url:https://www.escook.cn/api/get,//请求的接口地址,必须基于https协议//请求的方式met…

ElasticSearch之Shard request cache settings

对于查询操作&#xff0c;Elasticsearch提供了缓存特性来暂存结果。 对于相同条件的查询请求&#xff0c;在缓存中的数据失效前&#xff0c;响应后续的查询操作时可以直接从缓存中提取结果&#xff0c;有效降低检索操作的时延&#xff0c;提升检索数据时的体验。 提到缓存相关的…

SpringBoot项目打成War包部署

简介 一般情况下&#xff0c;在SpringBoot项目开发完成进行服务器部署时&#xff0c;都是打成JAR包进行部署运行的。但是在有些情况下也需要将其打成War包使用Tomcat进行部署。本篇文章就简单介绍一下SpringBoot如何打成War包。 注意&#xff1a; 测试Demo的SpringBoot版本为2…

python selenium chrome114版本之后环境配置和携带缓存打开chrome

尽力局 chrome驱动环境配置chrome打开带缓存设置待缓存打开自动关闭浏览器自动关闭浏览器弹窗 最终代码找资料难啊最终效果代码 依赖包和生成依赖包方法关闭谷歌升级 chrome驱动环境配置 网上找到的资料&#xff0c;我现在安装的是120版本的&#xff0c;这个资料是可行的。比较…

Jetbrains IDEA 2023.3 更新

本心、输入输出、结果 文章目录 Jetbrains IDEA 2023.3 更新前言Jetbrains IDEA 2023.3 主要更新内容功能更新用户体验优化数据库工具花有重开日,人无再少年实践是检验真理的唯一标准Jetbrains IDEA 2023.3 更新 编辑:简简单单 Online zuozuo 地址:https://blog.csdn.net/qq…

mysql分页查询性能测试

测试环境&#xff1a;1.1亿数据&#xff0c;约22GB大小&#xff0c;6核12线程32GBmysql8,ssd硬盘 表为常见的订单表&#xff0c;表中26个字段。 网上传说limit不同的使用方式对性能影响很大&#xff0c;自己也有点好奇&#xff0c;于是直接做个测试。 下面直接展示mysql在进…

【数据库设计和SQL基础语法】--查询数据--排序

一、排序数据 1.1 ORDER BY子句 单列排序 单列排序是通过使用 ORDER BY 子句对查询结果按照单个列进行排序。以下是单列排序的一些示例&#xff1a; 升序排序&#xff08;默认&#xff09;&#xff1a; SELECT column1, column2, ... FROM your_table_name ORDER BY column_t…

对局域网络中应用了网络变压器 POE供电功能的供电端设备间的连接方法

Hqst华轩盛(石门盈盛)电子导读&#xff1a;一起来了解局域网络中应用了网络变压器 POE供电功能的设备间的来连接方法 POE标准为使用以太网的传输电缆输送直流电到POE兼容的设备定义了两种连接方法: 第一,中间跨接法 一种称作"中间跨接法"( Mid -Span ),使用独立的PoE…

【Pytorch】学习记录分享3——PyTorch 自动微分与线性回归

【【Pytorch】学习记录分享3——PyTorch 自动微分与线性回归 1. autograd 包&#xff0c;自动微分2. 线性模型回归演示3. GPU进行模型训练 小结&#xff1a;只需要将前向传播设置好&#xff0c;调用反向传播接口&#xff0c;即可实现反向传播的链式求导 1. autograd 包&#x…

pytorch环境配置

1.创建环境 conda create --name pytorch python3.11.5 2.激活环境 source activate pytorch 3.添加国内镜像源&#xff1a; conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsin…

jmeter,取“临时重定向的登录接口”响应头中的cookie

1、线程组--创建线程组&#xff1b; 2、线程组--添加--取样器--HTTP请求&#xff1b; 3、Http请求--添加--后置处理器--正则表达式提取器&#xff1b; 4、线程组--添加--监听器--查看结果树&#xff1b; 5、线程组--添加--取样器--调试取样器。 首先理解 自动重定向 与跟随…

智能优化算法应用:基于黏菌算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于黏菌算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于黏菌算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.黏菌算法4.实验参数设定5.算法结果6.参考文献7.MA…