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