问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

51单片机快速入门教程——51核心开发板(STC89C52RC)

创作时间:
2025-01-22 03:36:34
作者:
@小白创作中心

51单片机快速入门教程——51核心开发板(STC89C52RC)

51单片机是初学者学习嵌入式系统开发的首选平台之一。本文将带你从零开始,逐步掌握STC89C52RC单片机的开发基础,包括开发环境搭建、硬件结构、引脚功能和存储结构等内容。

第一章 STC89C52RC开发平台和工具

1.1初识单片机

单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

单片机相对独立,只需要外接晶振和电源即可在软件控制下工作。一些新型号的单片机带有内置晶振,只需要接上电源便可以工作。

根据一次操作能够处理的数据宽度,单片机可以分为4位、8位、16位和32位单片机。一般而言,位数越高的单片机性能越强,片内资源更丰富,能够胜任更多的工作。

以STC公司为例,51单片机的命名规则如下:

STC89C52RC芯片内部的结构框架:(如果对概念不熟悉可以去搜索或者等后期的文章出现进行了解)

1.2引脚功能与存储结构

引脚功能:

1.电源和时钟引脚

  • VCC:通常需要接入5V电源
  • GND:接地
  • XTAL1/XTAL2:内部时钟电路反相放大器的输入端和输出端,接入晶振和微调电阻形成自激震荡器,或仅在XTAL1引脚接入时钟信号。

2.硬件控制引脚

  • RST:复位引脚,当输入的高电平信号持续2个机器周期以上时,单片机进行复位初始化操作。
  • EA:内外程序存储器选择引脚。
  • PSEN:外部程序存储器使能信号输出引脚。
  • ALE:地址锁存允许信号输出引脚。

3.通用输入输出(I/O)引脚
输入输出引脚又称I/O引脚(Input/Output),在51核心板上的STC89C52RC芯片具有P0P4共4组I/O引脚。除P4组仅有P4.04.6共7个引脚外,P0~P3组均有8个引脚。

组别
名称
序号
复用功能
复用功能说明
P1
P1.0
40
T2
定时器2外部输入引脚
P1.1
41
T2EX
定时器2捕捉/重装方式控制
P3
P3.0
5
RXD
串口数据接收引脚
P3.1
7
TXD
串口数据发送引脚
P3.2
8
INT0
外部中断0触发引脚
P3.3
9
INT1
外部中断1触发引脚
P3.4
10
T0
定时器0外部输入引脚
P3.5
11
T1
定时器1外部输入引脚
P3.6
12
WR
外部存储器写脉冲
P3.7
13
RD
外部存储器读脉冲
P4
P4.2
39
INT3
外部中断3触发引脚
P4.3
6
INT2
外部中断2触发引脚
P4.4
26
PSEN
外部程序存储器使能信号输出引脚
P4.5
27
ALE
地址锁存允许信号输出引脚
P4.6
29
EA
内外程序存储器选择引脚

存储结构:

1.3开发板介绍:

这里使用的开发板是乐育科技出品的51单片机核心板。

1.电源电路

  • USB1为Type-C接口座,通过Vbus引脚引出5V电源至USB_IN网络。
  • SS14为肖特基二极管,用于反极性保护。
  • ESD1为瞬态抑制二极管,防止静电对元器件造成损害。
  • PowerKey为自锁式双刀双掷电源开关,两路开关并联能为后级电路提供更大的电流。
  • PLED为电源指示灯。
  • 电容C1与C8用于稳定电压。 容值较小的C9为滤波电容,用于滤除高频信号干扰。

2.时钟电路

  • 经典的51单片机系统中常用的晶振频率有12MHz、11.0592MHz以及6MHz等。
  • 电容C13和C14有助于晶振起振并且稳定震荡频率,R34用于使晶振工作更加稳定。

3.复位电路

  • 51核心板上电瞬间,电容C12充电,此时C12可以看作一根导线,上下两端都为5V,此时RST引脚为高电平状态。随着充电电流逐渐减小,并且在下拉电阻R25的作用下,RST引脚的电平状态由高电平变为低电平,此时单片机结束复位状态,开始运行程序。

1.4搭建开发环境(keil4与STC—ISP)

开发工具:

  • Keil C51安装程序
  • STC-ISP软件
  • CH340驱动(最后一个记得执行驱动安装操作)

原理图(建议搞个pdf版的原理图):
如何搭建环境,新建工程并且进行编译:参考视频:
【51核心开发板——开发工具和平台搭建,如何新建工程(keil4)】 https://www.bilibili.com/video/BV1vp421U73K/?share_source=copy_web&vd_source=a85f5cd1c8dc38fdd970302da00bd865
up账号:一一一一一一一谷

第二章:

2.1C51代码的组成

大部分知识内容和c语言差不多,但也有一些微小的差别。因此,应该先去学习c语言,主要的学习内容是运算符(特别是位运算),程序结构(顺序,选择,循环),函数,数组,指针。

比如变量的命名规则。
程序的注释:/* */ or // 增加代码的可读性
注意每行语句末尾的分号;

2.2数据类型:

注意:浮点型一般用于存放带小数点的数字。在C语言中还有double类型表示双精度的浮点型数据,但在C51中,float类型与double类型精度一致,均为单精度浮点型。

在实际编程中,遵循尽量减少占用存储空间的原则。能够使用char类型表示一个数据,则不采用int类型,以节省存储空间,提高单片机运行效率。另外,在不需要表示负数的场合,也应尽量使用无符号型变量。

扩展数据类型:

2.3命名规范:

变量命名采用第一个单词首字母小写,后续单词的首字母大写,其余字母小写的命名方式,
例如:timerStatus、tickVal、restTime。 静态变量的命名方式为:s_+变量类型(小写)+变量名(首字母大写)。变量类型包括i(字符型或整型)、f(浮点型)、arr(数组类型)、struct(结构体类型)、b(布尔型)、p(指针类型)。例如:s_iCounter,s_arrNum[10]。

函数的命名可采用“动词+名词”的形式, 关键信息建议采用完整的单词, 其他信息可采用缩写, 缩写应符合英文的规范, 每个单词的首字母大写。 例如:InitInterrupt、DelayNms、ReadByte

数组的命名:局部变量命名规范也适用于函数内的非静态数组命名:第一个单词首字母小写,后续单词的首字母大写,其余字母小写格式。但本书建议数组名前要加arr前缀,以区别于其他变量。 例如:arrSendData、arrRestTime、arrTempData。

扩展阅读

如果你对51单片机感兴趣,可以进一步学习以下内容:

  1. 51单片机的中断系统和定时器/计数器的使用方法
  2. 单片机的串口通信和SPI/I2C总线通信
  3. 常用外设的驱动开发,如LCD显示屏、按键矩阵、传感器等
  4. 实际项目的开发流程和调试技巧

通过不断学习和实践,你将能够掌握51单片机的开发技能,为今后的嵌入式系统开发打下坚实的基础。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号