当前位置: 首页 > news >正文

基于stm32计算器设计

这里写目录标题

  • == 完整de代码可q我获取==
  • 1 系统功能设计
  • 2 系统硬件系统分析设计
    • 2.1 STM32单片机核心电路设计
    • 2.2 LCD1602液晶显示模块电路设计
    • 2.3 4X4矩阵键盘模块设计
    • 3 STM32单片机系统软件设计
    • 3.1 编程语言选择
    • 3.2 Keil程序开发环境
    • 3.3 FlyMcu程序烧录软件介绍
    • 3.4 CH340串口程序烧写模块介绍

== 完整de代码可q我获取==

1 系统功能设计

STM32单片机智能计算器16*16矩阵键盘
本系统由STM32F407ZGT6单片机核心板、矩阵按键、LCD1显示屏。
1、通过按键可以进行数字的加减乘除运算。
2、可以进行连续加减运算,该计算器只能进行整数运算,不能进行小数处理。
3、矩阵按键布局对应一下参数:
7 8 9 /
4 5 6 *
1 2 3 -
C 0 = +

2 系统硬件系统分析设计

2.1 STM32单片机核心电路设计

STM32系列处理器是意法半导体ST公司生产的一种基于ARM 7架构的32位、支持实时仿真和跟踪的微控制器。选择此款控制芯片是因为本系统设计并非追求成本的最低或更小的功耗,而是在实现本设计功能的前提下能够提供更丰富的接口和功能以便于设计实验系统各实验项目所需的外围扩展电路。此款控制芯片在完成单片机课程的学习后上手较为容易,在医疗器械中应用广泛,具有很好的学习、实验研究价值。
一、STM32的主要优点:
(1)使用ARM最新的、先进架构的Cortex-M3内核
(2) 优异的实时性能
(3) 杰出的功耗控制
(4) 出众及创新的外设
(5) 最大程度的集成整合
(6) 易于开发,可使产品快速将进入市场
二、STM32——最佳的平台选项
对于使用同一平台进行多个项目开发而言,STM32是最
佳的选择:
(1) 从仅需少量的存储空间和管脚应用到需要更多的存储空间和管脚的应用
(2) 从苛求性能的应用到电池供电的应用
(3) 从简单而成本敏感的应用到高端应用
(4) 全系列脚对脚、外设及软件的高度兼容性,给您带来全方位的灵活性。您可以在不必修改您原始框架及软件的条件下,将您的应用升级到需要更多存储空间或精简到使用更少存储空间/ 或改用不同的封装的规格。
STM32F407zgt6单片机核心板接口电路图如下图所示。
在这里插入图片描述
STM32单片机核心板接口原理图
在这里插入图片描述
STM32单片机实物图

2.2 LCD1602液晶显示模块电路设计

LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。
一、LCD1602主要技术参数如下:
(1)显示容量为16×2个字符;
(2)芯片工作电压为4.5~5.5V;
(3)工作电流为2.0mA(5.0V);
(4)模块最佳工作电压为5.0V;
(5)字符尺寸为2.95×4.35(W×H)mm。
二、LCD1602采用标准的14脚,其接口的引脚说明如下:
(1)第1脚:VSS为地电源。
(2)第2脚:VDD接5V正电源。
(3)第3脚:V0为液晶显示器对比度调整端。
(4)第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
(5)第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
(6)第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
(7)第7~14脚:D0~D7为8位双向数据线。
(8)第15~16脚:空脚
系统中采用LCD1602作为显示器件输出信息。在本电路中电位器可以调节液晶显示的对比度即清晰度。其具体电路原理图如下图所示。

LCD1602液晶显示电路原理图
其实物图如下图所示。

2.3 4X4矩阵键盘模块设计

在单片机按键使用过程中,当键盘中按键数量较多时,为了减少单片机端口的占用,通常将按键排列成矩阵。也就是只需要8个IO口,就可以拥有16个按键的功能。具体的原理和使用方法。。
一、矩阵键盘模块特点:
(1)体积小;
(2)节省空间;
(3)使用方便;
(4)共计16按键;
(5)单片机外扩键盘的上佳选择。
二、模块接口原理图如下图所示。
在这里插入图片描述
模块接口电路原理图

三、4X4矩阵键盘模块实物图如下图所示。
在这里插入图片描述

4X4矩阵键盘模块模块实物图

3 STM32单片机系统软件设计

3.1 编程语言选择

由于整个程序比较复杂,且计算量较大,用到了较多的浮点数计算,所以程序的编写采用了C语言。
对于大多数单片机,使用C语言这样的高级语言与使用汇编语言相比具有如下优点:
(1)不需要了解处理器的指令集,也不必了解存储器结构。
(2)寄存器分配和寻址方式由编译器进行管理,编程时不需要考虑存储器的(3)地址和数据类型等细节。
(4)指定操作的变量选择组合提高了程序的可读性。
(5)可使用与人的思维更相近的关键字和操作函数。
(6)与使用汇编语言相比,程序的开发和调试时间大大缩短。
(7)C语言的库文件提供了许多标准的例程。
(8)通过C语言可实现模块化编程技术,从而可将已编制好的程序加到 新程序中。
(9)C语言可移植性好且非常普及,C语言编译器几乎适用于所有的目标系统,己完成的项目可以很容易的转换到其它的处理器或环境中与汇编语言相比,C语言在功能上、结构性、可读性、可移植性、可维护性上有明显的优势,易学易用。

3.2 Keil程序开发环境

本设计中单片机开发环境是Keil,Keil是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。其中Keil有以下特点:
(1)Keil软件同时支持WINXP和WIN7等多种操作系统,提供了丰富的库函数和功能强大的开发工具。
(2)Keil可以完成从编辑、编译、到连接、调试的一套开发流程。
Keil软件界面如下图所示。
在这里插入图片描述

Keil uVision5开发界面图

3.3 FlyMcu程序烧录软件介绍

FlyMcu是一款好用的stm32烧录程序软件,对于专业的单片机开发者来说应该非常适用,软件可以广泛地应用于电路编程(ICP)和应用编程(IAP)领域,支持进行编程、校验、读器件信息。
可以通过下载器(即CH340等串口烧写模块)下载单片机程序。单片机开发板、下载器以及PC连接好后,首先需要在软件中选择串口号,然后选择项目程序“hex”文件所在的地址,最后就可以点击开“开始编程(P)”按钮即可下载程序。具体下载界面如下图所示。
在这里插入图片描述

烧录软件下载界面

3.4 CH340串口程序烧写模块介绍

本设计通过CH340串口烧写模块实现对单片机程序的烧写。CH340串口烧写模块使用USB接口,十分方便的解决了笔记本电脑用户对STC系列单片机的程序烧写问题,本下载器低价格、高性能,是开发 STC 系列单片机的首选优秀工具。
一、CH340串口烧写模块特点:
(1)支持 USB1.1 或 USB2.0 通信;
(2)全面支持 WIN98、 WINME、 WIN2000、 WINXP、 VISTA、 WIN7 等操作系统;
(3)采用 USB 口供电;
(4)在对芯片编程时可以使用目标系统本身电源,也可以使用编程器从 USB 口取电供给目标板,但应保证目标板电流不大于500mA,以免不能正常编程;
(5)编程完成不影响目标板的程序运行;
(6)支持 STC 全系列芯片烧录;
(7)编程器提供 3.3V 与 5V 的电压输出接口;
(8)速度比并口编程更快更稳定,更方便笔记本电脑用户使用;
(9)采用进口原装芯片, 能进行高速稳定编程;
模块如下图所示。
在这里插入图片描述

CH340串口烧写模块
二、CH340串口烧写模块引脚说明
(1)+5V 5V输出,因有USB电源线,故本开发板不接,不需要
(2)VCC 本开发板不接,不需要
(3)3V3 3.3V输出,本开发板不接,不需要
(4)TXD 接单片机的RXD引脚
(5)RXD 接单片机的RXD引脚
(6)GND 接GND。
三、CH340串口烧写模块与单片机的具体接线图如下表所示。
CH340串口烧写模块与单片机接线:
TXD RXD (单片机引脚PA10)
RXD TXD(单片机引脚PA9)
GND GND

相关文章:

基于stm32计算器设计

这里写目录标题 完整de代码可q我获取1 系统功能设计2 系统硬件系统分析设计2.1 STM32单片机核心电路设计2.2 LCD1602液晶显示模块电路设计2.3 4X4矩阵键盘模块设计3 STM32单片机系统软件设计3.1 编程语言选择3.2 Keil程序开发环境3.3 FlyMcu程序烧录软件介绍3.4 CH340串口程序烧…...

基于SpringCloud的可靠消息最终一致性02:项目骨架代码(上)

在上一节中咱们已经把分布式事务问题交代了一遍,包括两大定理、五大解决方案和一个成熟的开源框架,而咱们最终的目标是用Spring Cloud实现一个实际创业项目的可靠消息最终一致性的分布式事务方案。 先交代一下项目背景。 前几年,社会上慢慢兴起一种称为C2C同城快递的业务,也…...

RockerMQ集群部署

目录一、Broker集群模式1、单Master:2、多Master多Slave模式异步复制3、多Master多Slave模式同步双写二、集群搭建实践1、集群架构2、克隆生成rocketmqos13、修改rocketmqos1配置文件4、克隆生成rocketmqOS25、修改rocketmqOS2配置文件6、启动服务器7、测试一、Brok…...

unicloud的aggregate聚合查询时间戳转日期

我特么不知道看了这个帖子几百遍才看明白到-----》unicloud数据库中,聚合操作如何操作时间戳? - DCloud问答 自己淋过雨老想着为别人撑伞,可怜我这35岁的老人家,给我去点关注!!!!&a…...

Vue2.0开发之——使用ref引用组件实例(41)

一 概述 在本组件内部修改count的值在父组件内修改子组件的count值 二 在本组件内部修改count的值 2.1 Left.vue 布局代码 <template><div class"left-container"><h3 >Left 组件---{{count}}</h3><button click"count 1"&…...

极狐GitLab仓库瘦身

参考文章&#xff1a; [分享] 极狐GitLab仓库瘦身 - 官方技术分享 - 极狐GitLab 论坛 一、瘦身概述 Git仓库随着时间推移会变得越来越大&#xff0c;比如很多比较大的文件加入Git仓库时&#xff0c;可能引起以下问题&#xff1a; 下载仓库越来越慢&#xff0c;因为每个人都…...

2288hv5超融合服务器 数码管报888

【问题现象】 2288hv5超融合服务器&#xff0c;前面板数码管报888&#xff0c;电源灯黄灯闪烁&#xff0c;开不了机&#xff0c;ibmc网络是通的&#xff0c;但是web网页打不开 【问题原因】 iBMC的版本过低&#xff0c;iBMC在智能诊断数据库保护机制存在异常&#xff0c;导…...

【Zabbix实战之部署篇】Zabbix监控windows系统配置方法

【Zabbix实战之部署篇】Zabbix监控windows系统配置方法 一、检查Zabbix监控平台状态1.检查Zabbix各组件状态2.检查Zabbix的首页二、下载windows代理1.访问Zabbix官网下载界面2.查看下载安装包三、安装windows agent2代理1.安装windows agent2代理2.代理基本配置信息3.开始进行安…...

在Windows上编译Nginx

《在Windows上编译Nginx》视频教程官方编译说明 Building nginx on the Win32 platform with Visual C 环境准备 1. Microsoft Visual Studio(Microsoft Visual C 编译器)&#xff0c;下载地址&#xff1a;https://visualstudio.microsoft.com/zh-hans/。 2. Git(备用)&…...

语音识别与Python编程实践

博主简介 博主是一名大二学生&#xff0c;主攻人工智能研究。感谢让我们在CSDN相遇&#xff0c;博主致力于在这里分享关于人工智能&#xff0c;c&#xff0c;Python&#xff0c;爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主&#xff0c;博主会继续更新的&#xff0c…...

MATLAB绘制泰勒图(Taylor diagram)

泰勒图&#xff08;Taylor diagram&#xff09; 泰勒图是Karl E. Taylor于2001年首先提出&#xff0c;主要用来比较几个气象模式模拟的能力&#xff0c;因此该表示方法在气象领域使用最多&#xff0c;但是在其他自然科学领域也有一定的应用。 泰勒图常用于评价模型的精度&…...

ClickHouse高可用集群分片-副本实操(四)

目录 一、ClickHouse高可用之ReplicatedMergeTree引擎 二、 ClickHouse高可用架构准备-环境说明和ZK搭建 三、高可用集群架构-ClickHouse副本配置实操 四、ClickHouse高可用集群架构分片 4.1 ClickHouse高可用架构之两分片实操 4.2 ClickHouse高可用架构之两分片建表实操 一…...

2022年中国工业机器人行业市场回顾及2023年发展前景预测分析

工业机器人是一种能自动定位控制、可重复编程的、多功能的、多自由度的操作机&#xff0c;广泛应用于码垛、冲压、分拣、焊接、切割、喷涂、上下料等工业场景中&#xff0c;极大提高了生产效率、安全性以及智能化水平。工业机器人作为我国高端制造业的典型代表&#xff0c;近年…...

Gehpi的网络布局

Gehpi的网络布局1. 力引导布局2. 辅助布局布局是网络可视化中的重要概念&#xff0c;指将点和边通过某种策略进行排布&#xff0c;应尽可能满足以下4个原则&#xff1a; 节点均匀分布在有限的区域内避免边的交叉和弯曲保持边的长度一致整体布局能反映图内在的特性 Gephi的布局…...

华为OD机试用Python实现 -【天然蓄水库 or 天然蓄水池】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲天然蓄水库 or 天然蓄水池题目描述输入描述输出描述说明示例一输入输出说明示例二输入输出说明示例三输入输出说明Python 代码实现算法思路华为OD机试300题大纲 参加华为...

西北工业大学大学物理(I)下期末考试2021-2022选填解析

11 告诉你n2了&#xff0c;那么l0或者1&#xff0c;后续限制类推。2 几乎每年都出。散射波波长的偏移只与散射角有关。3 产生激光的条件。先认识到激光就是受激幅射光放大。受激辐射是产生激光的必要条件&#xff0c;粒子数偏转是产生激光的必要条件&#xff0c;谐振腔也需要。…...

【数据结构】手撕红黑树

目录 一、红黑树简介 1、红黑树的简介 2、红黑树的性质 二、红黑树的插入&#xff08;看叔叔的颜色就行&#xff09; 1、为什么新插入的节点必须给红色&#xff1f; 2、插入红色节点后&#xff0c;判定红黑树性质是否被破坏 2.1情况一&#xff1a;uncle存在且为红 2.2情…...

Linux基础命令-which查找命令文件位置

文章目录 which 命令功能 语法格式 基本参数 参考实例 1&#xff09;查找chmod命令的文件位置 2&#xff09;查找chmod命令的所有路径 3&#xff09;一次性查找多个命令路径 4&#xff09;组合其他命令一起使用 5&#xff09;显示命令的版本信息 命令总结 which 命…...

在Python中,导入拓展库的规范如下:

在Python中&#xff0c;导入拓展库的规范如下&#xff1a; Import 模块名 [as 别名] from 模块名Import 对象名 [as 别名] from 模块名 import * 1.导入标准库和第三方库的方式应该不同 Python标准库已经默认安装在Python解释器中&#xff0c;因此在导入标准库时不需要…...

SEATA是什么?它的四种分布式事务模式

一、SEATA是什么&#xff1f; Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。 在继续学习使用SEATA之前&#xff0c;对s…...

【华为OD机试模拟题】用 C++ 实现 - 去重求和(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 获得完美走位(2023.Q1) 文章目录 最近更新的博客使用说明去重求和题目输入输出示例一输入输出说明示例一输入输出说明Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。…...

如何用 chatGPT,给大家来一个自我介绍

大家好&#xff0c;我是不吃西红柿的无线机械键盘&#xff0c;我的名字叫 Keychron K3 Pro。今天&#xff0c;我通过西红柿主人的手&#xff0c;使用 chatGPT 来介绍一下我自己。我的与众不同 我是由精密机械元件制作而成&#xff0c;并采用抗键渗设计&#xff0c;以提供更快、…...

进程管理之基本概念

目录 关于进程的基本概念 进程描述符 查看进程 进程标识 进程的生命周期 僵尸进程、孤儿进程 写时拷贝技术 fork()函数 vfork()函数 终止进程 进程优先级和权重 进程地址空间 关于进程的基本概念 进程和程序是操作系统领域的两个重要的概念&#xff0c;进程是执行…...

nginx安装部署实战手册

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录一、虚拟机安装nginx1.下载安装包2.安装编译工具和库文件3.编译安装4.启动nginx5.访问首页6.开机自启结尾一、虚拟机安装nginx 1.下载安装包 官网下载地址&#xf…...

XXL-JOB任务调度平台

什么是xxl-job&#xff1f; xxl-job是一个分布式的任务调度平台&#xff0c;其核心设计目标是&#xff1a;学习简单、开发迅速、轻量级、易扩展&#xff0c;现在已经开放源代码并接入多家公司的线上产品线&#xff0c;开箱即用。xxl是xxl-job的开发者大众点评的许雪里名称的拼…...

android UI优化的基本原理和实战方法

任何Android应用都需要UI跟用户交互.UI是否好坏更是直接影响到用户的体验.如今UI的优化视乎是应用开发中一个绕不过去的话题。所以本篇文章小编带大家全面了解Android ui优化的主要知识和优化方法。 一、UI优化 UI优化知识点主要分为三部分&#xff1a; 第一部分&#xff0c…...

指针的进阶【中篇】

文章目录&#x1f4c0;4.数组参数&#x1f4bf;4.1.一维数组传参&#x1f4bf;4.2.二维数组传参&#x1f4c0;5.指针参数&#x1f4bf;5.1.一级指针传参&#x1f4bf;5.2.二级指针传参&#x1f4c0;6.函数指针&#x1f4bf;6.1. 代码1&#x1f4bf;6.2. 代码2&#x1f4c0;7.函…...

华为OD机试题,用 Java 解【删除字符串中出现次数最少的字符】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…...

【C语言每日一题】猜名次

【C语言每日一题】—— 猜名次&#x1f60e;&#x1f60e;&#x1f60e; &#x1f4a1;前言&#x1f31e;&#xff1a; &#x1f49b;猜名次题目&#x1f49b; &#x1f4aa; 解题思路的分享&#x1f4aa; &#x1f60a;题目源码的分享&#x1f60a; &#x1f449; 本菜鸡…...

89. 格雷编码

89. 格雷编码题目数学公式动态规划回溯题目 传送门&#xff1a;https://leetcode.cn/problems/gray-code/ 数学公式 int gray(int n) { // 计算第n位格雷码公式return n ^ (n >> 1); }然后你写一个for循环&#xff0c;计算从1到n的所有格雷码&#xff0c;添加到答…...