51单片机Proteus仿真速成教程——P1-软件与配置+Proteus绘制51单片机最小系统+新建程序模版

前言:本文主要围绕 51 单片机最小系统的绘制及程序模板创建展开。首先介绍了使用 Proteus 绘制 51 单片机最小系统的详细步骤,包括软件安装获取途径、工程创建、器件添加(如单片机 AT89C51、晶振、电容、电阻、按键等)、外围电路(晶振电路、复位电路等)绘制、连线以及电源和地的设置,还说明了 EA 引脚和 P0 口上拉电阻的作用。接着阐述了在 Keil 中新建程序模板的过程,包含项目创建、单片机型号选择、新建 main.c 文件、编写程序框架、编译设置、生成 HEX 文件等操作,并介绍了将 HEX 文件加载到 Proteus 中运行的方法,最后给出了测试程序以判断程序是否正常运行,以及修改 HEX 文件名称的方式。

目录

一、Proteus绘制51单片机最小系统

二、新建程序模版


一、Proteus绘制51单片机最小系统

本教程需要安装proteus与keil 5软件,这个在网上有很多教程,可自行查阅安装,可关注我的微信公众号:阿齐Archie。回复关键字:51单片机Proteus与keil安装与配置,免费获取安装包及安装文档。

使用 Proteus绘制51单片机的最小系统。首先打开 Proteus,可通过点击新建工程或使用文件菜单中的新建工程选项

将工程名称修改为 “P1-51单片机最小系统”,路径暂设置在桌面,选择新工程后点击下一步。

使用默认模板创建原理图

因不需要 PCB,选择不创建 PCB

此处选择无固定项目,不建议选用后面两项

点击finish后完成操作。

此时画布空白,需手动添加器件。

先添加单片机 AT89C51,点击界面中的 “p” 进行搜索,在左上角关键字区域输入 “at89c51”,选择后点击确定。

此时鼠标变为笔的形状,在画布任意位置单击出现单片机外框,在合适位置再次单击完成放置。

接下来绘制最小系统的外围电路,其包含晶振电路、复位电路、EA 启动选择引脚设置以及 P0 口的上拉电阻。

绘制前说明一下网格密度设置,可通过 Ctrl+F1 设置更密,F2 设置为稍稀疏(个人偏好),默认 F3 为某一密度,F4 更稀疏。

开始绘制晶振电路,它由一个晶振和两个电容组成。

同样点击 “p”,若不清楚晶振英文,可网上搜索 “proteus 晶振”,按下 “p”,输入晶振关键字CRYSTAL,出现两个晶振选项。当出现两个相同器件时,单独选中查看右边模型是否符合需求,这两个晶振的符号及原理图仿真模型都一样,任选一个点击确定。

在画布点击鼠标,按快捷键进行旋转,旋转到合适角度后单击放置。

接着放置电容,若不知器件搜索关键词,可采用百度搜索的方法。电容英文为 “cap”,选择无极性电容,默认第一个即可

单击、旋转并放置后,双击电容将其值设置为 30pF。

单击选中电容,复制粘贴另一个相同的电容。

再看复位电路,由一个极性电容、一个电阻和一个按键组成。

先放置极性电容cap,有两个选项,个人偏好其中一种

放置后调整位置并将值设置为 10μF。注意极性,带弯的一端为负极,另一端为正极

接着放置按键,英文为 “button”,确定后旋转并放置。

然后放置电阻 “RES”,默认 10K 无需修改。

还有排阻 “respack”(“res” 代表电阻,“pack” 代表包,即电阻包),P0 口有 8 个引脚,需 8 个电阻,选择 “8 - 8” 的排阻确定放置。

完成器件放置后进行连线。

有简便方法,按下滑轮放大到合适位置,将两个器件尖端对准后点击确定并放置,按住拖动完成连线;

也可先连好第一根线,如从 39 连到 2,当 38 处出现红色方框时双击,可重复上一步划线操作。

完成上述操作后进行电源和地的设置

选择终端模式

“power” 是电源符号, “GND”(地)符号。

然后选择第一个选择模式,将相关器件连接起来,至此 51 单片机最小系统绘制完成。

其中 EA 是启动选择引脚,上拉接 VCC 表示从内部启动,接地则从外部存储器启动,51 单片机一般从内部启动,所以通常接 VCC 高电平。

P0 口需接一个上拉电阻,因为 P0 口没有内部上拉,不接外部上拉电阻无法正常输出高低电平。

点击运行,系统运行起来,但 message 信息处有黄色叹号,点击查看是 警告,提示未载入程序文件,将其关闭。下一课将进行程序模板创建。

二、新建程序模版

上节课通过 Proteus 绘制了一个单片机的最小系统,但该系统没有程序文件。

接下来创建程序文件,打开keil并选择 “project new” 新建

选择之前使用的文件夹后再新建一个名为 “P1-新建程序模版程” 的文件夹,双击文件名,简单选择 “project” 后保存。

先选择单片机型号,默认是ARM还有 STM,若安装了 MDK 则默认使用ARM系列,通过下拉菜单选择第二项,若默认就是该项则无需更改

在搜索设置里搜索 “AT89C51” 并选择该型号后点击 “OK”

接着点击否

之后进行新建操作,点击新建。

新建一个main.c文件,该文件路径是本工程路径

编写第一行 “include”,使用 51 函数时为 “REG51.h”,若为 52 则是 “REG52.h”

右键点击添加头文件

写如下框架,这样就形成了一个 51 单片机的程序模板。

对该程序模板进行编译,若出现 0 错误 0 警告则正常,若出现错误或警告,需检查各个单词拼写是否正确以及 “main函数” 是否正确添加。

若要让 Proteus 能够使用该程序,需点击魔法棒一样的图标,选择 “output”,选中 “创建 HEX 文件” 后确定,然后重新编译。

回到 Proteus,双击芯片,点击程序文件后面文件夹形状的图标,选择 “程序 obj project.hex” 后双击确定,再次运行,之前的警告应会消失。

为判断程序是否正常运行,编写测试程序,在前面添加 “P0 = 0X55”。正常运行时,P0 口应呈现高电平、低电平交替的状态。

每次修改程序后都要进行编译以确保无错误,然后点击运行,查看 P0 口状态,红色代表高电平,蓝色代表低电平,若呈现一个红、一个蓝交替的状态,从高位到低位为 “01010101”,正好对应 “0X55”,则说明程序运行正确。

若想修改 HEX 文件的名称,可在 “output” 里进行修改,例如将其修改为 “最小系统”,编译后双击芯片,重新选择修改后的 HEX 文件即可。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MacOS Big Sur 11 新机安装brew wget python3.12 exo

MacOS Big Sur 11,算是很老的系统了,所以装起来brew有点费劲。 首先安装brew 官网: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 官网加速: 按照官网的方法&#xff0…

C++算法——差分

1.差分 差分与前缀和的核心思想相同,是预处理,可以在暴力枚举的过程中,快速给出查询的结果,从而优化时间复杂度。 是经典的用空间替换时间的做法。 补充:使得最短跳跃距离尽可能长,遇到类似这样的问题时…

【VBA】WPS/PPT设置标题字体

通过VBA,配合左上角的快速访问工具栏,实现自动化调整 选中文本框的 字体位置、大小、颜色。 配合quicker更加便捷 Sub DisableAutoWrapAndFormat()Dim shp As Shape 检查是否选中了一个形状(文本框)If ActiveWindow.Selection.Typ…

YOLO 各系列结构整理

目录 2016 You Only Look Once: Unified, Real-Time Object Detection(CVPR) 2017 YOLO9000: Better, Faster, Stronger CVPR 2018 YOLOv3:AnIncrementalImprovemen CVPR YOLO V3-SPP 2020 YOLOv4: Optimal Speed and Accuracy of Object Detection 2021 YOLOV5 2021 YOL…

六十天前端强化训练之第十四天之深入理解JavaScript异步编程

欢迎来到编程星辰海的博客讲解 目录 一、异步编程的本质与必要性 1.1 单线程的JavaScript运行时 1.2 阻塞与非阻塞的微观区别 1.3 异步操作的性能代价 二、事件循环机制深度解析 2.1 浏览器环境的事件循环架构 核心组件详解: 2.2 执行顺序实战分析 2.3 Nod…

Git基础之工作原理

基础概念 git本地有三个工作区域,工作目录 Working Directory,暂存区Stage/Index和资源区Repository/Git Directory,如果在加上远程的git仓库就是四个工作区域 四个区域与文件交换的命令之间的关系 WorkSpace:工作区,就…

【计算机网络】计算机网络的性能指标——时延、时延带宽积、往返时延、信道利用率

计算机网络的性能指标 导读 大家好,很高兴又和大家见面啦!!! 在上一篇内容中我们介绍了计算机网络的三个性能指标——速率、带宽和吞吐量。用大白话来说就是:网速、最高网速和实时网速。 相信大家看到这三个词应该就…

测试大语言模型在嵌入式设备部署的可能性-ollama本地部署测试

前言 当今各种大语言模型百花齐放,为了方便使用者更加自由的使用大模型,将大模型变成如同棒球棍一样每个人都能用,并且顺手方便的工具,本地私有化具有重要意义。 本次测试使用ollama完成模型下载,过程简单快捷。 1、进…

【实战篇】【DeepSeek 全攻略:从入门到进阶,再到高级应用】

凌晨三点,某程序员在Stack Overflow上发出灵魂拷问:“为什么我的DeepSeek会把财务报表生成成修仙小说?” 这个魔性的AI工具,今天我们就来场从开机键到改造人类文明的硬核教学。(文末含高危操作集锦,未成年人请在师父陪同下观看) 一、萌新村任务:把你的电脑变成炼丹炉 …

【Linux学习笔记】Linux基本指令分析和权限的概念

【Linux学习笔记】Linux基本指令分析和权限的概念 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 文章目录 【Linux学习笔记】Linux基本指令分析和权限的概念前言一. 指令的分析1.1 alias 指令1.2 grep 指令1.3 zip/unzip 指…

Unity DOTS从入门到精通之 自定义Authoring类

文章目录 前言安装 DOTS 包什么是Authoring1. 实体组件2. Authoring类 前言 DOTS(面向数据的技术堆栈)是一套由 Unity 提供支持的技术,用于提供高性能游戏开发解决方案,特别适合需要处理大量数据的游戏,例如大型开放世…

linux如何判断进程对磁盘是随机写入还是顺序写入?

模拟工具&性能测试工具:fio fio参数说明: filename/dev/sdb1:测试文件名称,通常选择需要测试的盘的data目录。 direct1:是否使用directIO,测试过程绕过OS自带的buffer,使测试磁盘的结果更真…

olmOCR:高效精准的 PDF 文本提取工具

在日常的工作和学习中,是否经常被 PDF 文本提取问题困扰?例如: 想从学术论文 PDF 中提取关键信息,却发现传统 OCR 工具识别不准确或文本格式混乱?需要快速提取商务合同 PDF 中的条款内容,却因工具不给力而…

Leetcode 刷题记录 06 —— 矩阵

本系列为笔者的 Leetcode 刷题记录,顺序为 Hot 100 题官方顺序,根据标签命名,记录笔者总结的做题思路,附部分代码解释和疑问解答。 目录 01 矩阵置零 方法一:标记数组 方法二:两个标记变量 02 螺旋矩阵…

Elasticsearch:使用 BigQuery 提取数据

作者:来自 Elastic Jeffrey Rengifo 了解如何使用 Python 在 Elasticsearch 中索引和搜索 Google BigQuery 数据。 BigQuery 是 Google 的一个平台,允许你将来自不同来源和服务的数据集中到一个存储库中。它还支持数据分析,并可使用生成式 AI…

如何在el-input搜索框组件的最后面,添加图标按钮?

1、问题描述 2、解决步骤 在el-input组件标签内,添加一个element-plus的自定义插槽, 在插槽里放一个图标按钮即可。 3、效果展示 结语 以上就是在搜索框组件的末尾添加搜索按钮的过程。 喜欢本篇文章的话,请关注本博主~~

Magento2根据图片文件包导入产品图片

图片包给的图片文件是子产品的图片&#xff0c;如下图&#xff1a;A104255是主产品的sku <?php/*** 根据图片包导入产品图片&#xff0c;包含子产品和主产品* 子产品是作为主图&#xff0c;主产品是作为附加图片*/use Magento\Framework\App\Bootstrap;include(../app/boot…

INT_MAX 与 0x3f3f3f3f 的区别

【INT_MAX 与 0x3f3f3f3f 的区别】 在算法设计中&#xff0c;INT_MAX 与 0x3f3f3f3f 都常被用作无穷大值的设定&#xff0c;但二者区别显著&#xff0c;适用场景也有所不同。 备注&#xff1a;此图由百度 AI 创作生成 &#xff08;1&#xff09;INT_MAX 是 C/C 中的标准常量&a…

升级旧版本Vmware到Vmware Workstation Pro 17

背景 一些新版本Linux内核版本较高&#xff0c;例如&#xff1a;openEuler24.03 LTS需要的内核版本为6.6&#xff0c;而Vmware Workstation Pro 16最高只支持Linux5.x内核&#xff0c;对Linux6.x不支持&#xff0c;因此&#xff0c;需要将旧版本的Vmware升级到Vmware Workstat…

【第23节】C++设计模式(行为模式)-Interpreter(解释器)模式

一、问题背景 在一些应用中&#xff0c;系统会提供内建&#xff08;Build-In&#xff09;的脚本或宏语言&#xff0c;允许用户定义他们能够在系统中执行的操作。Interpreter 模式的目的就是为用户提供一种定义语言的语法表示&#xff0c;并通过解释器来解释语言中的句子。这种模…