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

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

创作时间:
作者:
@小白创作中心

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

引用
CSDN
1.
https://blog.csdn.net/sztu158167/article/details/136693487

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

第一章 STC89C52RC开发平台和工具

1.1初识单片机

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

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

根据一次操作能够处理的数据宽度,单片机可以分为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。

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