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

news/2024/7/8 6:20:48 标签: 51单片机, 嵌入式硬件, 单片机, c语言

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 1111
	P1 = 0x00;		//P1口全部为低电平,对应的LED灯全亮起,ff换算成二进制是 0000 0000
	
	P1 = 0xAA;		//D0/D2/D4/D6指示灯亮起
					//D1/D3/D5/D7指示灯灭掉,AA换算成二进制是 1010 1010 
	while (1)		//主循环
	{
					//主循环中添加其他需要一直工作的程序
	}
}

3.3 演示

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

……
……
……
……
……

在这里插入图片描述

4 总结

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


http://www.niftyadmin.cn/n/5536611.html

相关文章

高级Redis之HyperLogLog的用法示例

HyperLogLog是 Redis 提供的一种基数估计算法数据结构&#xff0c;主要用于估算不重复元素的数量。它能够在使用非常少的内存空间的情况下&#xff0c;快速和高效地进行去重计数操作。HyperLogLog 的误差率约为 0.81%&#xff0c;在处理大数据量的场景下非常有用。 例如使用 R…

大数据面试题之Flume

目录 介绍下Flume Flume架构 Flume有哪些Source 说下Flume事务机制 介绍下Flume采集数据的原理&#xff1f;底层实现&#xff1f; Flume如何保证数据的可靠性 Flume传输数据时如何保证数据一致性&#xff08;可靠性&#xff09; Flume拦截器 如何监控消费型Flu…

EasyBoss ERP移动端上线数据分析模块,随时查Shopee/TikTok本土店数据

前段时间&#xff0c;EasyBoss ERP出了个超酷炫的数字大屏功能&#xff0c;广受好评。 但是也有老板说&#xff0c;电脑端看数据不够方便啊&#xff0c;你们EasyBoss有本事上个手机就能看数据的功能啊&#xff01; 说干就干&#xff0c;直接满足你们的需求&#xff01; 于是在…

mapper.xml 文件对应的 Dao 接口原理

在 Java 框架如 MyBatis 中&#xff0c;Mapper.xml 文件是用于定义 SQL 查询的配置文件&#xff0c;而对应的 Dao 接口&#xff08;Mapper 接口&#xff09;则提供了与 XML 文件中的 SQL 查询相对应的方法。这种设计模式使得 Java 代码与 SQL 语句解耦&#xff0c;提高了代码的…

009、MongoDB的分片策略

目录 MongoDB的分片策略:范围分片vs哈希分片 1. 范围分片(Range Sharding) 1.1 工作原理 1.2 优点 1.3 缺点 1.4 研究支持 2. 哈希分片(Hash Sharding) 2.1 工作原理 2.2 优点 2.3 缺点 2.4 研究支持 3. 选择合适的分片策略 4. 实践案例 4.1 电子商务平台 4.2 社…

vue+openlayers之几何图形交互绘制基础与实践

文章目录 1.实现效果2.实现步骤3.示例页面代码3.基本几何图形绘制的关键代码 1.实现效果 绘制点、线、多边形、圆、正方形、长方形 2.实现步骤 引用openlayers开发库。加载天地图wmts瓦片地图。在页面上添加几何图形绘制的功能按钮&#xff0c;使用下拉列表&#xff08;sel…

Proteus-51单片机-DS18B20多点测温

DS18B20多点测温 一、Proteus仿真演示 每个DS18B20都有一个唯一的64位序列号,这使得在同一总线上可以挂载多个传感器,无需额外的地址分配。主机(通常为单片机)通过特定的时序控制,可以依次读取各个DS18B20的温度数据,实现分布式测温。 主机通过RS485接口可以分别获取从机…

谷粒商城学习-09-配置Docker阿里云镜像加速及各种docker问题记录

文章目录 一&#xff0c;配置Docker阿里云镜像加速二&#xff0c;Docker安装过程中的几个问题1&#xff0c;安装报错&#xff1a;Could not resolve host: mirrorlist.centos.org; Unknown error1.1 检测虚拟机网络1.2 重设yum源 2&#xff0c;报错&#xff1a;Could not fetch…