江协科技51单片机学习- p4 点亮一个LED灯

news2025/1/11 0:31:59

前言:

本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记,在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。

引用:

51单片机入门教程-2020版 程序全程纯手打 从零开始入门_哔哩哔哩_bilibili

正文:

0. 概述

今天 (2024/06/13)在淘宝上购买了江协科技51单片机开发板套件,就上在上一篇博文里说的自己计划学习下江协科技51单片机开发教程,通过STC51单片机这种MCU这种贴近于裸机的开发来增加对于系统硬件层面知识的了解和掌握。

1. 点亮一个LED灯

打开Keil5软件,新建一个工程,选择CPU的型号为"Atmel89C52"就可以适配兼容我们开发板使用 的 STC89C52RC 单片机型号。

新建一个文件,添加第一个.c 源文件,文件名为 “main.c”,点击"add"之后就添加了一个文件 mainc.c 到工程里。

现在有一个空白的main.c文件,可以先编译一下这个文件,点击Keil5左上角的图标进行编译

Translate编译
Build
Rebuild
Batch Build

当面main.c 为空文件,先编译一下,看到输出0 Error,但是有1个Warning,告警提示“*** WARNING L10: CANNOT DETERMINE ROOT SEGMENT”,这是因为此时还没有 'main()' 函数。

2. LED正负极区分

LED:Light Emit Dimon 发光二极管

LED正负极的区分,以LED发光二极管的实物图来看,透明塑料封装的LED发光二极管里面小的是正极,大的是负极;如果LED发光二极管没有剪脚长的引脚为正极,短的引脚为负极。

对于贴片LED,在LED的背面有话一个箭头来指示正负极。

3. 开发板上LED电路原理图

开发板上LED电路原理图,找到8个LED灯的连接,8个LED右侧接VCC电源,左侧接P20~P27,然后找到P20~P27对应着的 STC89C51 芯片的哪个管脚,

可以看到P20~P27接到了STC89C51 芯片的 P2.0 ~P2.7 这8个引脚上。

普中-单核-A2开发板_51开发工具_教学仪器产品_深圳市普中科技有限公司

8个LED灯通过2个排阻(一个排阻左右各4个引脚),排阻上写了“102”,这个"102"标记表示了电阻的阻值,如何读这个"102"的符号哪?

这里电阻的作用为限流电阻,当LED的负极接上低电平时LED灯点亮。

102

表示 10 * 10^2 = 1K 欧姆

 473

表示 47* 10^3 = 47K 欧姆

1001 
表示 100* 10^1 = 1K 欧姆

1002

表示 100* 10^2 = 10K 欧姆

同理滑动变阻器(电位器)上标志为 "103" 表示为 "10*10^3=10K欧姆"。

同理滑动变阻器(电位器)上标志为 "103" 表示为 "10*10^3=10K欧姆"

4. 单片机如何控制IO口

单片机通过内部的寄存器来控制IO口的电平输出,寄存器里的值通过驱动器来控制IO口输出高电平还是低电平,驱动器是为了增大IO的驱动能力。通过向寄存器里对应位写1,寄存器通过驱动器向IO口输出高电平,寄存器里写0,寄存器通过驱动器向IO口输出低电平。

CPU通过控制寄存器来控制硬件电路,硬件电路来完成功能。

5.  编写源码

通过控制P2寄存器来配置P2口输出高低电平,进而控制P2口8个LED灯亮灭,从上面分析已经知道当P2口输出低电平时LED灯亮,输出高电平时LED灯灭。


void main()
{
	//P2µÄ×ÖĸPÓ¦¸ÃÊÇ´óд×Öĸ
	//Êä³öµÍµçƽʱµãÁÁLEDµÆ
	P2 = 0x0F;
}

点击Keil5编译按钮,看到编译器输出错误提示"P2 undefined ",这是因为还么有包含寄存器头文件,所以编译器不认识符号“P2”。那么如何包含头文件哪,选择keil5编辑器文件源码的首行,鼠标点击右键选择"insert '#include <REGX52.h>' ”,这样就包含了头文件 REGX52.H 了。

#include <REGX52.H>

void main()
{
	//P2µÄ×ÖĸPÓ¦¸ÃÊÇ´óд×Öĸ
	//Êä³öµÍµçƽʱµãÁÁLEDµÆ
	P2 = 0x0F;
}

再次编译,此时编译器提示0 Error,0 Waring,已经成功编译。

查看"REGX52.H" 文件源码,鼠标选中 "#include <REGX52.H>" 这一行,然后鼠标右键选择 "Open document  <REGX52.H>" 就可以查看该文件的源码,改文件里是各种的寄存器宏定义,P2就是一个寄存器的地址。

6. 使用STC-ISP下载程序到单片机

使用STC-ISP下载程序到单片机,第一步是选择CPU的型号,在下拉框里选择本教程开发板所以的芯片型号 "STC89C52"。然后,选择串口,在下拉框里选择连接开发板的串口号。

然后点击“打开程序文件”,找到Keil5编译生成的 hex 文件

在工程的文件目录里没有找到hex文件,是因为keil5默认是不生成hex文件的,需要再keil5中点击如下截图里工具栏,选择"output"选项卡,勾选上"Create HEX File",点击“OK”,再次编译。

再次编译后再工程目录里的"Objects"目录下就可以找到可以烧录到单片机的 hex 文件。

选择Hex文件之后,点击“下载”,然后将单品阿吉的开关按下复位

等待检测,但是发现收录失败,STC-ISP不能检测到单片机。

哔站视频教程的网友弹幕提示应该选择 STC89C52RC CPU型号

选择 STC89C52RC CPU型号之后,单片机检测成功,并且程序下载成功。

并且指定的LED点亮。

 

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

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

相关文章

安装ENVI 6.0直接打开Landsat L2SP影像

文章目录 前言ENVI 6.0申请安装安装过程检查安装&#xff1a; 直接打开L2SP文件&#xff08;不修改头文件&#xff09;结语 前言 试用软件只是作为学习交流使用&#xff0c;不能应用于商业、发表文章等依据。 前面文章&#xff08;ENVI打不开Landsat 的L2SP影像文件&#xff09…

震坤行亮相2024成都工博会,赋能产业新发

为期3天的成都工博会于2024年4月23日在成都国际会展中心完美落幕。震坤行再次紧跟西部智能制造产业发展步伐&#xff0c;亮相现场&#xff0c;实力“圈粉”&#xff0c;为西部地区的制造企业带来打造了一场工业互联网盛宴。 本届成都工博会成功举办&#xff0c;展会聚集了各个国…

C++ Primer 第五版 第16章 模板与泛型编程

模板是C中泛型编程的基础。一个模板就是一个创建类或函数的蓝图或者说公式。当使用一个vector这样的泛型类型&#xff0c;或者find这样的泛型函数时&#xff0c;我们提供足够的信息&#xff0c;将蓝图转换为特定的类或函数。这种转换发生在编译时。 一、定义模板 1. 函数模板…

OceanBase 并行执行参数 parallel_servers_target 理解

为了最大程度降低 PX 使用难度&#xff0c;OceanBase 3.1 版起&#xff0c;parallel_max_servers 参数废弃。 用户只需用好 parallel_servers_target 即可。 target 的用途 用一个酒吧的例子来粗略理解下 parallel_servers_target 的意思&#xff1a; target 先生开了一个酒…

Epicor BAQ - BAQ设计与调用

目录 一、BAQ设计常用功能1.跨公司查询2.修改作者3.添加筛选条件4.使用BAQ参数5.子查询 二、在客制化中调用BAQ取数三、在BPM中调用BAQ取数四、结束 一、BAQ设计常用功能 1.跨公司查询 在BAQ的General页面勾选Cross-company后&#xff0c;BAQ可以跨公司查询数据。 2.修改作…

联邦学习论文阅读:2018 Federated learning with non-IID data

介绍 这是一篇2018年挂在arXiv上的文章&#xff0c;是一篇针对FL中数据Non-IID的工作。 作者发现&#xff0c;对于高度Non-IID的数据集&#xff0c;FedAvg的准确性下降了55%。 作者提出了可以用权重散度&#xff08;weight divergence&#xff09;来解释这种性能下降&#xff…

基于JSP技术的大学生校园兼职系统

开头语 你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;可以通过文末的联系方式找到我。 开发语言 JSP 数据库 MySQL 技术 JSP JavaBeans 工具 MyEclipse、Tomcat、Navicat 系统展示 首页 学生登录界面 招聘信息界面 论坛中心界面 摘…

时间类:Calendar

一.Calendar概述 1.Calendar代表了系统当前时间的日历对象,可以单独修改,获取时间中的年&#xff0c;月&#xff0c;日 2.细节:Calendar是一个抽象类,不能直接创建对象。 二.获取Calendar日历类对象的方法 // 会根据系统的不同时区来获取不同的日历对象 // 会根据系统的不同…

LLM的7种推理框架

我们如何在本地安全地运行私有的LLMs呢&#xff1f;开源模型为此提供了可能的解决方案。本文将介绍七种方法。 Hugging Face的transformers 这是一个Python库&#xff0c;可以简化本地运行LLM的过程。 Transformers的优点&#xff1a; 自动模型下载提供代码片段非常适合实验…

C语言的数据结构:串、数组、广义表

一、串 1、串的定义 串是一个线性表&#xff0c;但其节点中的内容只能为字符&#xff0c;所以也称为字符串。 字符串中可以有多个字符&#xff0c;也可以没有字符。没有字符的叫作&#xff1a;空串。 空串&#xff1a;""。 有值的串&#xff1a;"1123"。 只…

“AI 热会逐渐降温,AGI 普及不了多少场景!”对话《Core Java》作者 Cay Horstmann...

作者 | 王启隆 责编 | 唐小引 出品丨AI 科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09; 已过花甲之年的 Cay Horstmann 是 Java 经典著作《Java 核心技术》和《Java 核心技术&#xff1a;速学版》的作者&#xff0c;帮助了无数 Java 开发者启蒙进阶。截止到今天&a…

3d数字家居展馆线上制作工具更具创意

立足于引领未来展览新潮流的出发点&#xff0c;深圳华锐视点3D云展厅依托前沿的Web3D技术和vr全景制作技术&#xff0c;提供Web3D在线创意展厅搭建编辑器&#xff0c;为您打造一个突破时空限制、风格多样的线上展厅。 Web3D在线创意展厅搭建编辑器将您的产品以三维模型的形式生…

MultiTrust:首个综合统一的多模态信任度基准(上)

随着我们迈向人工通用智能&#xff08;AGI&#xff09;的时代&#xff0c;出现了开创性的大语言模型&#xff08;LLMs&#xff09;。凭借它们强大的语言理解和推理能力&#xff0c;已经无缝地将其他模态&#xff08;例如视觉&#xff09;整合到LLMs中&#xff0c;以理解不同的输…

创建节约机关怎样向媒体投稿报道宣传?

创建节约机关并向媒体投稿报道宣传是一项重要的工作&#xff0c;它不仅能够提升机关的形象&#xff0c;还能促进社会各界对节约型社会的认识和支持。 作为一名新晋信息宣传员,初入职场的我满腔热血,怀揣着用文字传递价值的理想,却在投稿的道路上屡遭波折。面对每月的宣传任务,我…

LLM-不要错过,教你如何快速且精准生成提示词?(总结Singapore首届GPT-4提示工程获奖者Sheila Teo博客)

文章目录 前置理论精炼介绍1. CO-STAR框架CO-STAR框架简单介绍CO-STAR简单示例 2. 创建系统提示【优化LLM问答丰富度】何为系统提示&#xff1f;系统提示示例 3. 使用分隔符分段提示【优化问答准度】分割符作特殊字符及CO-STAR示例分割符作XML标记 仅数据的CO-STAR实操前置分析…

LVS/NAT负载均衡实操

添加规则,并做持久操作 1 添加规则 [rootlvs ~]# ipvsadm -A -t 10.36.178.183:80 -s wrr [rootlvs ~]# ipvsadm -a -t 10.36.178.183:80 -r 192.168.65.201:80 -m -w 3 [rootlvs ~]# ipvsadm -a -t 10.36.178.183:80 -r 192.168.65.202:80 -m -w 1[rootlvs ~]# ipvsadm -Ln …

告别“人治”时代,物业运维平台能否成为行业新标准?

随着数字化时代的飞速发展&#xff0c;智能化、数字化已经遍及所有的行业。物业服务企业也不例外&#xff0c;你是否还在想象物业运维工作依旧停留在手动报修、纸质记录的古老时代&#xff1f;那么&#xff0c;你就OUT了&#xff0c;物业运维平台已经悄然崛起&#xff0c;正在以…

悦库企业网盘 /user/login/.html SQL注入漏洞复现

0x01 产品简介 悦库企业网盘是一款专为满足企业文件管理、协同办公、文件共享需求而设计的私有部署安全、简单的企业文件管理系统。该产品全面覆盖企业文件管理场景,提供一系列功能强大且操作简便的解决方案,助力企业提升效率、降低管理成本。悦库企业网盘提供精细的权限管理…

汉明校验·简明教程

汉明校验简明教程 一、简介 汉明码是由 Richard Hanming 于 1950 年提出的&#xff0c;它具有一位纠错能力。 新增的汉明码校验位数应满足如下关系&#xff1a; 2 k ⩾ n k 1 2^{k}\geqslant nk1 2k⩾nk1&#xff0c;其中k为校验位位数&#xff0c;n位数据位数。 同时&…

【ARMv8/ARMv9 硬件加速系列 1 -- SVE | NEON | SIMD | VFP | MVE | MPE 基础介绍】

文章目录 ARM 扩展功能介绍VFP (Vector Floating Point)SIMD (Single Instruction, Multiple Data)NEONSVE (Scalable Vector Extension)SME (Scalable Matrix Extension)CME (Compute Matrix Engine)MVE (M-profile Vector Extension)MPE (Media Processing Engine)总结 ARM 扩…