51单片机嵌入式开发:1、STC89C52环境配置到点亮LED

STC89C52环境配置到点亮LED

  • 1 环境配置
    • 1.1 硬件环境
    • 1.2 编译环境
    • 1.3 烧录环境
  • 2 工程配置
    • 2.1 工程框架
    • 2.2 工程创建
    • 2.3 参数配置
  • 3 点亮一个LED
    • 3.1 原理图解读
    • 3.2 代码配置
    • 3.3 演示
  • 4 总结


1 环境配置

1.1 硬件环境

硬件环境采用“华晴电子”的MINIEL-89C开发板,这个板子是大学较为经典的51开发板硬件平台,作为单片机入门级应用来说是一个很好的学习板。
板子如图所示:
在这里插入图片描述

资源丰富,基础学习只此一个板子就够用,集成的开发模块主要有:
1、8 个高亮数码管显示(数字和字母显示)
2、16 个优质按键(2Pin)可配置成 4 个独立按键和 4*4 矩阵键盘(人机接口输入)
3、8 个高亮发光二极管(跑马灯、指示灯、红绿灯等)
4、标准的 RS232 通信接口(PC 通信)
5、一体化红外接收头(高灵敏度,可做红外遥控器解码)
6、遥控器用红外发射管(广发射角)可以模拟遥控器。
7、喇叭(报警以及音乐播放)
8、一路继电器输出(弱电控制强电,隔离控制)
9、EEPROM 24C02(数据存储)
10、8X8 单色点阵
11、DS18B20 接口(精密温度检测)
12、USB 口供电
13、加装优质电源开关
14、晶振采用拔插方式,可以使用于不同频率
15、DC 电机接口(直接接入小功率直流电机即可)
16、4 相步进电机接口(直接接入即可)
17、DS1302 实时时钟
18、经典双复位电路,支持 AVR
19、ISP 10Pin 下载线接口
20、PS2 键盘鼠标接口
21、标准 1602 液晶接口,独立对比度调节
22、标准 12864 液晶接口,独立对比度调节
23、外围供电,7805 稳压,最大电流 1A
24、4路AD模数转换输入
25、1路DA数模转换输出,LED指示

1.2 编译环境

编译环境采用资料包中的keil软件(Keil uVision2),安装过程按照安装说明安装即可。
安装说明:
版本号: 7.50a 安装过程
安装序列号:SN = K1DZP-5IUSH-A01UE
安装步骤如下:

  1. 记下安装序列号, 进入setup目录点击setup.exe进行安装;
  2. 选择Install Support…全新安装,以前没有安装过或者放弃以前的序列号安装;
    选择Update Current Installation升级安装,将可以保持原来的序列号,不必再次输入
  3. 选择Full安装,Next->Yes(接受版权信息)->选择安装目录->Next->输入序列号、姓名、公司
    等,除了序列号以外,都随意,可以如实输入你的姓名等。->next->
    …直到安装完成。
    一路确认直至安装完毕。
    注意:
    (1).每次安装都必须进行这几步,每次都需要重新写入AddOn标识;
    (2).假如安装过程中存在病毒防火墙,可能会产生xcopy错误使安装失败,此时请先
    关闭病毒防火墙,然后再安装;
    (3).安装前必须退出正在运行的Keil软件,否则也会产生xcopy错误使安装失败;
    (4).安装过程中可能会出现安装Secrity Key错误,点击确定即可。

1.3 烧录环境

烧录环境我们从官网下载最新的STCAI-ISP V6.94F 完整版烧录软件。并将Keil uVision2的STC芯片包安装,具体配置步骤如下:
1、 打开STCAI-ISP V6.94F
安装将芯片选择框选择如图所示,并点击如图中的配置框。
在这里插入图片描述

添加到Keil uVision2的安装目录下,如图所示,选择后点击确定即可。
在这里插入图片描述

2、 烧录测试
(1)使用方口-USB线连接板子和电脑(首先电脑应具有CH340串口驱动);
(2)打开串口STCAI-ISP下载工具,选择“芯片型号”和“串口”
在这里插入图片描述

(3)点击图中的打开程序文件,选择我们的测试程序。
在这里插入图片描述

(4)然后点击“编程”,板子打开供电(初始时,板子不供电,点击编程后再打开)。可以看到程序烧写成功,后续烧录过程不再演示。

在这里插入图片描述

2 工程配置

2.1 工程框架

首先创建一个文件夹“C51project20240701”,并在其文件夹下创建4个文件夹,用具存放不同的内容。
APP:用于存放用户代码h和c文件
Include:用于存放系统的h文件
Listing2:用于存放编译生成的文件
Objects:用于存放可执行文件

在这里插入图片描述

2.2 工程创建

(1)打开Keil uVision2软件,在C51project20240701文件夹下创建新工程,新工程名称我们任意取名,

在这里插入图片描述

(2)弹出窗口,我们选择STCMCU……。

在这里插入图片描述

(3)芯片选择我们开发板上使用的芯片型号,点击确认,后续的弹出窗继续点“是(Y)”即可创建成功。
在这里插入图片描述

2.3 参数配置

工程配置过程
(1)OUTPUT配置如图所示,并选择输出hex文件HEX-80。

在这里插入图片描述

(2)listing配置如图所示

在这里插入图片描述

(2)工程创建路径如图所示,指明.h文件的路径
在这里插入图片描述

以上配置完成后直接确认即可完成配置。

配置工程框架:

(1)将STARTUP.A51移动到include文件夹下。
(2)在App文件夹下新建一个main.C文件,并实现点亮LED。
(3)工程架构修改:
在这里插入图片描述

在这里插入图片描述

点击确认完成,至此,工程创建完成,后续再有实现功能的c和h文件,按照这种方式添加即可,后续测试编译成功。

在这里插入图片描述

3 点亮一个LED

3.1 原理图解读

根据原理图所示,其中8个指示灯对应板子位置如图所示,按照原理图的原理,当P10~P17引脚为低电平时,指示灯会亮起来,
所以设定以下实验题目,我们现在实现D0/D2/D4/D6指示灯亮起,D1/D3/D5/D7指示灯灭掉,并演示。

在这里插入图片描述

3.2 代码配置

/*-----------------------------------------------名称:IO口高低电平控制内容:现在实现D0/D2/D4/D6指示灯亮起,D1/D3/D5/D7指示灯灭掉,并演示
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
/*------------------------------------------------主函数
------------------------------------------------*/
void main (void)
{P1 = 0xFF;		//P1口全部为高电平,对应的LED灯全灭掉,ff换算成二进制是 1111 1111P1 = 0x00;		//P1口全部为低电平,对应的LED灯全亮起,ff换算成二进制是 0000 0000P1 = 0xAA;		//D0/D2/D4/D6指示灯亮起//D1/D3/D5/D7指示灯灭掉,AA换算成二进制是 1010 1010 while (1)		//主循环{//主循环中添加其他需要一直工作的程序}
}

3.3 演示

如图所示,指示灯点亮方式与实现题目一致,工程创建成功,代码演示成功。

……
……
……
……
……

在这里插入图片描述

4 总结

嵌入式领域开发过程,涉及的细节方面较多,尤其是一些环境配置编程细节与原理细节,遇到问题,一步步根据提示和现象去解决,重要的是掌握方法和解决问题的思路。
欢迎大家交流。

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

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

相关文章

elasticSearch快速了解

elasticSearch&#xff1a;经常用于搜索引擎&#xff0c;我们用的百度搜索和github上的搜索都是用的搜索引擎&#xff0c;它是对输入内容进行分析&#xff0c;然后查询&#xff0c;不像数据库模糊搜索的like一样必须含用你输入的全部内容。 elasticSearch优势&#xff1a;支持…

一文解决:你与该网站的连接不是私密连接,存在安全隐患

访问网页时&#xff0c;是不是会经常遇到网站不是私密连接的提示&#xff1f;当浏览器提示某个网页不安全时&#xff0c;这通常是因为网页使用的是非加密的HTTP协议&#xff0c;或者其HTTPS协议的SSL/TLS证书存在问题。 通常遇到这类网站时要注意&#xff0c;一来是网站未与证书…

`THREE.Line` 是 Three.js 中用于创建线段的类。

demo案例 THREE.Line 是 Three.js 中用于创建线段的类。以下是 THREE.Line 的详细说明&#xff0c;包括构造函数参数、输出、方法和属性。 构造函数 new THREE.Line(geometry, material, mode) geometry (THREE.BufferGeometry 或 THREE.Geometry): 定义线段的几何体。mater…

[图解]SysML和EA建模住宅安全系统-12-内部块图

1 00:00:00,580 --> 00:00:02,770 接下来我们来画流了 2 00:00:03,100 --> 00:00:05,050 首先第一个是站点状态 3 00:00:05,140 --> 00:00:08,130 从这里到这里&#xff0c;我们画一个过来 4 00:00:10,290 --> 00:00:11,890 这里流到这里 5 00:00:11,900 -->…

汉中茗茶小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;基础数据管理&#xff0c;茶叶管理&#xff0c;论坛管理&#xff0c;公告管理&#xff0c;茗茶历史管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;茗茶信息&#xf…

mac怎么压缩pdf文件大小,mac压缩pdf文件大小不改变清晰度

在数字化时代&#xff0c;pdf格式因其良好的兼容性和稳定性&#xff0c;成为了文档分享和传输的首选。然而&#xff0c;随着文件内容的丰富&#xff0c;pdf文件的体积也越来越大&#xff0c;给存储和传输带来了不小的困扰。本文将揭秘几种简单有效的pdf文件压缩方法&#xff0c…

如何优化 PostgreSQL 中对于自关联表的查询?

文章目录 一、理解自关联表查询二、分析性能问题的可能原因&#xff08;一&#xff09;缺少合适的索引&#xff08;二&#xff09;大量数据的笛卡尔积&#xff08;三&#xff09;复杂的查询逻辑 三、优化策略及解决方案&#xff08;一&#xff09;创建合适的索引&#xff08;二…

OpenGL笔记七之顶点数据绘制命令和绘制模式

OpenGL笔记七之顶点数据绘制命令和绘制模式 —— 2024-07-07 杭州 下午 总结自bilibili赵新政老师的教程 code review! 文章目录 OpenGL笔记七之顶点数据绘制命令和绘制模式1.OpenGL版本号更改和编译更改2.GL_TRIANGLES模式绘制一个三角形、支持NFC坐标随窗口缩放2.1.三个点…

第二周:李宏毅机器学习笔记

第二周学习周报 摘要Abstract一、深度学习1.Backpropagation&#xff08;反向传播&#xff09;1.1 链式法则1.2 Forward pass&#xff08;前向传播&#xff09;1.3 Backward pass&#xff08;向后传播&#xff09;1.4 总结 2. Regression&#xff08;神奇宝贝案例&#xff09;2…

Redis常用命令——Set、Zset篇

文章目录 一、Set相关命令操作 SADD SMEMBERS SISMEMBER SCARD SPOP SMOVE SREM SINTER 与 SINTERSTORE SUNION 与 SUNIONSTORE SDIFF 与 SDIFFSTORE Set命令小结 二、Zset 相关命令操作 ZADD ZCARD ZCOUNT ZRANGE ZREVRANGE ZPOPMAX BZPOPMAX ZPOPMIN 与 BZPOPMIN ZRANK 与 …

MySQL事务隔离

MySQL事务隔离 前言锁共享锁&#xff08;Shared Lock&#xff09;排他锁&#xff08;Exclusive Lock&#xff09;行级锁&#xff08;Row-Level Lock&#xff09;表级锁&#xff08;Table-Level Lock&#xff09;快照读和当前读查看锁 事务事务的四个特性事务的并发问题事务的隔…

《Windows API每日一练》8.5 listbox控件

列表框是将一批文本字符串显示在一个具有滚动功能的方框中的控件。通过发送消息到列表框的窗口过程&#xff0c;程序可以添加或删除列表中的字符串。当列表框中的一个项目被选中时&#xff0c;列表框控件便发送 WM_COMMAND消息到其父窗口。然后父窗口确定哪个项目被选中。 本节…

J024_打印电影的全部信息

一、需求描述 展示多部电影的信息。 电影信息包括&#xff1a;电影名称、电影得分、电影票价格。 二、代码实现 2.1 Movie类 package com.itheima.collection;public class Movie {//电影名称private String name;//电影得分private int score;//电影票价格private double…

【Unity 3D角色移动】

【Unity 3D角色移动】 在Unity 3D中实现角色移动通常涉及到几个关键步骤&#xff0c;包括设置角色的物理属性、处理输入、更新角色的位置以及动画同步。下面是实现基本3D角色移动的步骤和示例代码&#xff1a; 步骤1&#xff1a;设置角色的物理属性 角色通常使用Character Co…

OpenCV杂记(4):OpenCV之色彩映射(伪彩applyColorMap)

1. 简述 我们在开发基于热成像&#xff08;红外&#xff09;或者做深度估计应用时&#xff0c;为了便于直观的观察&#xff0c;常常将检测结果进行色彩上的映射&#xff0c;这样便可以很直观的看出哪里温度高&#xff0c;哪里温度低&#xff0c;或者哪里深度更深或更浅。 我们将…

数列结构(3.9)——队列应用

树的层次遍历 树的层次遍历&#xff0c;也称为树的广度优先遍历&#xff0c;是一种按照树的层次顺序&#xff0c;从上到下、从左到右遍历树中所有节点的算法。在二叉树中&#xff0c;这种遍历方式通常使用队列来实现。下面是层次遍历的基本步骤&#xff1a; 创建一个空队列&a…

Golang | Leetcode Golang题解之第220题存在重复元素III

题目&#xff1a; 题解&#xff1a; func getID(x, w int) int {if x > 0 {return x / w}return (x1)/w - 1 }func containsNearbyAlmostDuplicate(nums []int, k, t int) bool {mp : map[int]int{}for i, x : range nums {id : getID(x, t1)if _, has : mp[id]; has {retu…

java中反射(Reflection)的4个作用

java中反射&#xff08;Reflection&#xff09;的4个作用 作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断任意一个类所具有的成员变量和方法作用4、在运行时调用任意一个对象的方法总结 &#x1f496;The Begin&#x1f496;…

【Android】自定义换肤框架05之Skinner框架集成

引入依赖 api("io.github.hellogoogle2000:android-skinner:1.0.0")初始化Skinner 在所有功能前调用即可&#xff0c;建议在Application中初始化 SkinnerKit.init(application)安装皮肤包 在应用该皮肤包前安装即可&#xff0c;建议预安装&#xff0c;或应用皮肤…

扩散模型笔记2

Ref:扩散模型的原理及实现&#xff08;Pytorch&#xff09; 在扩散模型中&#xff0c;每一步添加的噪声并不是完全一样的。具体来说&#xff0c;噪声的添加方式和量在每一步是根据特定的规则或公式变化的。这里我们详细解释每一步添加噪声的过程。 正向过程中的噪声添加&…