本文部分图片引用自尚硅谷B站教学视频,版权归原作者所有,如有侵权,请联系删除。

因为数电、模电和电子元器件等硬件入门知识很基础也很杂,建议系统的学习以巩固基础,我的知识储备还没有能力去汇总并讲解,所以我直接记录我的51单片机学习笔记

何为单片机?

单片机(Microcontroller Unit,简称MCU)是一种将计算机的主要组成部分集成在一块芯片上的微型计算机,也被称为微控制器。它将计算机的核心部件(如CPU、存储器、输入输出接口等)集成到一个单一的芯片上,使其具有体积小、成本低、可靠性高等优点,广泛应用于各种嵌入式系统中。

单片机的组成

单片机通常由以下几个主要部分组成:

  • 中央处理器(CPU):负责执行指令和处理数据,是单片机的核心部件。

  • 存储器:包括程序存储器(如ROM、Flash)和数据存储器(如RAM),用于存储程序代码和数据。

  • 输入输出(I/O)接口:用于与外部设备进行数据交换,如GPIO引脚、串行接口等。

  • 定时器/计数器:用于产生精确的时间控制或计数功能。

  • 中断系统:用于处理外部或内部的中断请求,提高系统的实时性和灵活性。

  • 通信接口:如UART、SPI、I2C等,用于与其他设备或模块进行通信。

单片机的工作原理

单片机的工作原理可以简单描述为:通过程序存储器中的程序代码来控制其操作。当单片机上电或复位后,它从程序存储器的起始地址开始执行指令。CPU根据指令的内容,从存储器中读取数据,进行处理,并通过I/O接口与外部设备进行交互。定时器/计数器和中断系统则用于实现定时控制和实时响应。

单片机的应用领域

单片机由于其体积小、成本低、可靠性高、易于控制等特点,广泛应用于各个领域:

  • 家用电器:如洗衣机、冰箱、空调等,用于实现智能化控制。

  • 工业控制:如自动化生产线、机器人控制等,用于实现精确的控制和监测。

  • 汽车电子:如发动机控制、车身电子控制等,用于提高汽车的性能和安全性。

  • 消费电子:如手机、MP3播放器等,用于实现各种功能控制。

  • 医疗设备:如心电图机、血压计等,用于数据采集和处理。

51单片机——STC89C52RC 

51单片机(也称8051单片机)原指1980年由Intel公司推出的一种8位微控制器系列,现在更多的指实现了8051指令集(单片机的“语言”)的一系列单片机,即兼容英特尔8051指令系统的单片机的统称。

我们用到的STC89C52RC型号的单片机是由国产公司STC宏晶科技制造的51系列单片机,也是市面上最主流的51单片机(教学)型号

下图是我购买的普中51单片机的A2开发板

常见封装类型(芯片实体形状)

LQFP(Low-profile Quad Flat Package)薄型四方扁平封装

PDIP(Plastic Dual In-line Package)——塑料双列直插式封装形式

芯片型号命名规则

芯片的表面会印有芯片型号,相当于芯片的“身份证”,用来描述芯片的信息,以下是关于宏晶公司芯片命名规则

例如 STC 89 C 52 RC 40 I-LQFP 44 2252 

2252--表示本批芯片生产日期为 22 年第 52 周

内部配置

下图是从芯片手册上截取的芯片型号图

工作电压

上面是STC89C52RC这块单片的内部硬件配置,STC89C52RC是一款5V单片机,即工作电压范围是5.5V~3.5V,表明它可以在5.5V~3.3V的电压范围内正常工作,业内一般默认工作电压为5V

最高时钟频率

指的是单片机处理器能够稳定工作的最高的时钟频率。时钟频率是衡量微控制器性能的一个重要参数,它决定了微控制器执行指令的速度。时钟频率越高,微控制器在单位时间内能够执行的指令数量就越多,从而提高了处理速度。

在下面的单片机最小系统中会介绍时钟(晶振)电路,使用的晶振频率为11.0592MHz,时钟即可以由单片机内部产生也可以由外部晶振产生,但是外部晶振更加稳定(至于为什么,不做过多解释,因为我也不知道记住就行)


其他的现在不过多讲解,随着你以后深入的学习中会涉及到

引脚功能

单片机通过延伸出来的金属引脚和外部硬件(LED、数码管等)相连,从而控制他们工作,每个引脚都有其功能

最小系统

单片机的最小系统是指能够让单片机正常运行并执行基本功能的最简硬件电路。它是单片机应用系统的核心部分,就是让单片机可以正常工作的最简外围电路。最小系统电路在芯片的芯片手册(介绍芯片功能和形状的手册)会有一个参考电路,其他设计的电路大多在参考电路上优化

下面是51单片机芯片手册中提供的最小系统原理图

设计电路时一般会参考芯片手册上提供的最小系统原理图,在此基础上进行修改

1. 电源电路

为单片机提供稳定的电源,通常包括电源输入、滤波电容等。电源电压需要符合单片机的规格要求,例如常见的5V或3.3V。

这是我跟着尚硅谷PCB教程画的51单片机核心板原理图,左侧为Type-C接口供电接口为芯片提供5V供电,右边是利用AMS1117-3.3V低压差线性稳压芯片(简称LDO)将外部的5V转为3.3V,丰富电压选项

2. 时钟电路(振荡电路)

单片机需要一个时钟信号来控制其操作的节奏。时钟电路通常由晶振(晶体振荡器)和两个电容组成。晶振提供稳定的振荡频率,而电容用于稳定振荡信号。有些单片机也支持内部时钟,但外部晶振通常能提供更高的精度。

3. 复位电路

复位电路用于在上电或系统异常时将单片机恢复到初始状态。常见的复位电路包括一个电容、一个电阻和一个按键(手动复位)。当按键按下时,单片机会被复位。另外,也可以使用专门的复位芯片来实现更可靠的复位功能。

RST采用接口实际于单片机上的RST接口相连,这里用到PCB原理图知识,不懂没关系,菜就多练

 完整的原理图

开发工具

keil uVision:用于编写和编译C语言程序代码

keil 公司在 2005 年被 arm 收购,keil uVision是由keil公司开发的集成开发环境(IDE)(uVision有很多版本比如 uVision2、uVision3、uVision4、uVision5 等),可以进行代码编辑,文件管理,程序的编译调试等。

每一个uVision版本下都有4个独立的软件分别是:

C51(用于51系列单片机)、C251、C166、MDK(用于ARM系列单片机,例如STM32)

51单片机使用C51软件进行开发,软件的安装和使用我在这里不多累赘,可以参考其他大佬的安装教程

STC-ISP:可以用于将编译好的代码下载到单片机中

STC-ISP是STC官方支持的程序下载和调试工具,它还有很多强大的功能,随着深入的学习会不断了解

VScode插件——EIDE

因为KEIL的代码补全能力很差,导致代码的书写体验不好,在尚硅谷的教学视频中,用到了VScode实现代码的编写、编译和烧录,缺点就是代码调试能力拉胯

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐