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

前言:

本文是根据哔哩哔哩网站上“江协科技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点亮。

 

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例 基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例 基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例 基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例 基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值