单片机学习笔记

news/2024/9/17 7:15:09/ 标签: 单片机, 学习, 笔记

一、单片机帝国的诞生与发展

1.1 单片机的基本概念

单片机是一种集成电路芯片,采用超大规模的集成电路把具有数据处理功能的中央处理器存储器、输入输出端口、外围电路和相关外设集成在一块硅片上构成一个小而完整的微型计算机系统。

 一般而言,单片机也称为MCU(微控制器),不是完成某一功能的芯片,是把一个计算机系统集成到一个芯片上。单片机就相当于小型计算机。和计算机相比,单片机缺少I/O 设备。

简单概括:一个芯片就成了一台计算机,它体积小,质量轻,价格便宜,学习成本低。

单片机,按用途去分,大体分为两种:通用型、专用型


通用型:用户可以根据自己的需求去选择单片机的外设,如以单片机芯片为核心,搭外围电路和相关外设,实现对应的功能。


专用型:主要就是针对某些特定的产品的功能去设计单片机单片机芯片的开发商和厂家去进行定制。

1.2  单片机的发展历史

1975 年,美国德州仪器公司(TI公司)推出了一款4位单片机:TMS-1000,可以理解为单片机的诞生。
1976 年,美国 Intel研制出 MCS-48 系列的8位单片机单片机进入新的阶段。MCS-48 系列单片内部集成8位 CPU,多个并行 I/0 口,8位定时器/计数器,小容量的 RAM 和ROM 等,但是没有串行通信接口,操作简单。
1980年,美国 INETL 公司在 MCS-48 系列的单片机基础上,推出 MCS-51系列单片机。相对于 MCS-48 系列,MCS-51 系列单片机内部增加了串行通信接口,定时器/计数器由8 位变为 16 位,扩大了 ROM 和 RAM 的容量。因为 MC5-51 单片机简单易用,性价比高,被称为“最经典的单片机"

二、单片机派系之间的明争暗斗

2.1 8位单片机的体系

1.MCS-51 系列单片机
MCS-51 系列单片机是美国 Intel 设计的单片机系列的总称,这一个系列包含很多品种,如基酬型(8031、8051、8751),增强型(8032、8052、8752),8051是最经典的产品,其他的型号都是在 8051 的基础上进行功能的增加与制除与修改得到的。一般而言,用 8051 去称呼MCS-51 系列单片机

  • 8031 单片机
  • 8051单片机  (8位CPU,片内振荡器,4kb字节ROM 128字节RAM  21个特殊功能寄存器 32个IO口、2个16位的定时器/计数器  5个中断源  2个优先级)
  • 8751 单片机

推出基础型单片机之后,Intel又推出增强型(8032、8052、8752),也就是52系列

  • 8032 单片机(8位CPU,片内振荡器,256字节RAM  21个特殊功能寄存器 32个IO口、3个16位的定时器/计数器  6个中断源  2个优先级)
  • 8052 单片机  (8位CPU,片内振荡器,8kb字节ROM  256字节RAM  21个特殊功能寄存器 32个IO口、3个16位的定时器/计数器  6个中断源  2个优先级)
  • 8752 单片机(8位CPU,片内振荡器,8kb字节EPROM  256字节RAM  21个特殊功能寄存器 32个IO口、3个16位的定时器/计数器  6个中断源  2个优先级)

2.AT89 系列单片机
20 世纪 80 年代中期,美国 Intel 公司开始研发高端 CPU,把 MCS-51 单片机的核心技术以专利转让或者技术交换,其中就包含美国的ATMEL公司。
ATMEL 把 Flash 和 8051 内核进行结合,推出帶有 FLASH 存储器的 AT89C5x/AT89S5x,AT89 系列单片机和 MCS-51系列的引脚、功能、指令系统都是完全兼容的。

  • AT89C5x 系列(AT89C51(基础型    )AT89C52(增强型)   不再生产   C 表示COMS)
  • AT89S5x系列

3.STC 系列单片机
 STC系列单片机是国内宏晶科技(STC公司)自主研发的,如STC89C5x、STC8955x,并且支持I5P 下载,使用简单方便。


4.AVR 系列单片机
AVR 单片机也是美国 ATMEL 公司研发出的增强型内置 Flash 的 RISC(精简指令集)高速8位单片机。AVR的单片机的可以广泛的应用在计算机外部设备,工业控制,仪表仪器,通讯设备,家用电器等相关领域。

2.2 C51 和 STM32 的关系


C51 是 20 世纪 70 年代的产物,结构简单,被广泛用于教学,因为其资源有限,引脚数目少,所以不能满足市场需求,就需要一款新的单片机
基于这样的市场需求,ARM 公司就推出了一款基于 ARMv7 架构的 32 位的 Cortex M3/M4 内校,ST公司(意法半导体)就基于这个内校推出一款32位的 MCU,也就是STM32。STM32由于开发简单(多种开发方式 寄存器开发、同件库开发),性价比高、资源丰富,所以目前而言是主流的 32 位的 MCU。

三、单片机帝国那些不得不说的秘密

3.1 嵌入式与单片机的区别

单片机是一种集成电路芯片,采用超大规模的集成电路把具有数据处理功能的中央处理器(CPU)、随机存储器 RAM、只读存储器 ROM、输入输出端口以及外围电路和相关外设集成在一块硅片上构成一个小而完整的微型计算机系统,广泛应用在工业控制领域。

  • 什么是嵌入式

国外定义:嵌入式都是指嵌入式系统,指的是“用于控制、监视或者辅助操作机器和设备的装置”。
国内定义:以应用为中心,以计算机技术为基础,适用于对体积、功耗、性能等方面有严格要求的计算机系统。

嵌入式特点
     硬件特点:
                    体积小,集成效率高
                    功耗低,抗干扰能力强
软件特点:
             一般软件都是采用C语言去开发(接近底层)

              一般软件是固化在ROM或者FLASH(掉电不丢失)

  • 两者之间的区别

总的来说,就是单片机是比较简单的系统,而嵌入式则侧重于比较复杂的系统

四、探寻单片机脑子里那点事

4.1、主流的ARM内核架构

(1)ARM的基本概念

ARM--是一家英国的一家公司,设计芯片的IP内核,授权其他的半导体公司,三星,TI 索尼 飞利浦 微软

ARM--- 功耗低、性能高的处理器

(2)ARM的内核架构

  • ARM以前的内核:ARM7  ARM9  ARM11(最经典)
  • ARM现在的内核:Cortex A  Cortex R  Cortex M

Cortex A 系列:面向高端智能产品  (手机 平板  搭载操作系统)

Cortex R系列:面向实时性要求高的产品(航空航天、汽车制动系统、硬盘)

Cortex M系列:面向成本敏感型产品(智能穿戴产品、平衡车、四轴飞行器)

五、浅谈单片机帝国的辉煌战绩


5.1 单片机的应用领域


单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器、存储器、输入输出端口和中断系统、定时器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的 300M 的高速单片机


随着科学技术的快速发展,单片机也被广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。

  • 工业控制

   例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统等。

  • 家用电器

    例如电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材等。

  • 医疗设备

    例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等。

  • 消费电子

    单片机也经常用在消费类电子产品上,比如智能手环、平衡车、扫地机器人等。

六、单片机集成开发环境的安装


6.1 集成开发环境的搭建


KEIL5 集成开发环境的安装
1.什么是 KEIL
KEIL 软件是德国的 keil 公司(被 ARM 公司收购),kei软件提供C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完成开发方案。通过集成开发环境(uVision)将这些部分组合在一起。KEIL 集编辑、编译、仿真等功能于一体。并且还包含软件的调试功能。
需要注意:keil 是收费软件,用于商业用途支持买正版!!!
注意事项:
1)安装 KEIL5 的路径不能存在中文,建议在某个盘新建一个文件夹 如 KEIL51)电脑用户名最好不要是中文,会导致程序编译过程中出现某些未知问题,如果电脑用户21名是中文,按照文档进行操作

七、浅谈单片机开发方式的种类与利弊


7.1 STM32 的开发方式


STM32 的开发方式大体分为两种:函数库开发+寄存器开发

  • 函数库开发

就是利用 ST 公司提供的 STM32 标准函数库,是 ST 公司针对 STM32 开发的一系列 API 接口,可以调用这些函数来配置 STM32的寄存器,开发人员不需要特别关注底层寄存器的操作,有利于快速开发和维护。
库是架设在寄存器和用户代码之间的代码,向下与寄存器相关,向上提供给用户相关接口
优点: 代码可读性好、代码容易维护、方便快速开发
缺点:代码运行效率相对于寄存器来说,大概低10%左右

  • 寄存器开发

STM32 的外设资源十分丰富,所以寄存器的数量增多和复杂度增大,并且要求开发人员需要掌握底层开发的相关知识。
优点:代码运行效率变高 代码量减少 程序运行占用的内存资源减少
缺点:程序开发效率降低  代码的可读性不好 代码不容易维护

八、如何优雅的创建一个固件库工程

8.1 创建工程


固件库利用 ST 公司提供的 STM32 标准函数库,是 ST 公司针对 STM32 开发的一系列 API 接口,可以调用这些函数来配置 STM32的寄存器,开发人员不需要特别关注底层寄存器的操作,有利于快速开发和维护。

九、浅谈单片机最小系统的组成

9.1 单片机的最小系统


1.单片机最小系统的组成
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器、存储器、输入输出端口和中断系统、定时器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统。


单片机最小系统,指的是用最少的元件组成的单片机可以正常工作的系统。对于单片机最小系统而言,需要复位电路、晶振电路、电源电路

2.单片机引脚的基本分类

电源引脚

晶振引脚

复位引脚

控制引脚

输入输出引脚

十、设置单片机的“”心脏“”之晶振电路

10.1 电源电路设计

电源电路可以利用电池供电,一般使用4节5号电池(5号电池每节1.2V),或者利用充电宝或者电脑的 USB 口进行供电,一般可以加上一个电源开关。
注意:AT89C52的供电电压范围:4.5V~5.5V

10.2 晶振电路设计

(1) 什么是晶振
晶振全称叫做品体振荡器,作用就是产生高度稳定的振荡频率,目的是给单片机提供时钟。晶振是一种机电器件,一般使用电损耗很小的石英品体,经过精密的切割打磨,并在石英晶体中镀上电极和引线。
这种元件具有机电效应,如果给晶体通电,就会产生机械力,反过来说,给晶体一个机械力,晶体会产生电。
(2) 晶振的频率
对于 51 单片机,常用的晶振频率是 11.0592MHZ或者 12MHZ
11.0592MHZ(一般用于串口通信,可以得到准确的波特率,如9600)12MHZ(可以得到精准的时时间,一般用到定时器或者延时STC系列常用)
对于 AT89C52 而言,时钟频率 0MHZ~24MHZ,晶振的频率决定单片机的运行速度,晶振频率越高,运行速度越快,稳定性降低,反之同理。
(3) 晶振电路组成
晶振电路一般由晶体振荡器(CRY)和电容(CAP)组成。和人类的心脏类似,单片机离开晶振电路无法正常工作,对于电容而言,一般选择15PF~33PF,常用 22PF、30PF 等。
注意:晶振电路在设计时要尽可能的靠近MCU,防止晶振起振失败或者品振收到干扰。

十一、让单片机得到“重生”之复位电路

11.1 复位电路设计


对于复位电路而言,是51单片机中非常重要的电路,目的就是让程序跑飞(程序运行时出现问题),让单片机进行复位,重新运行程序。
对于 51 单片机而言,想要复位,只要给 RST复位引脚持续 2us 以上的高电平即可
单片机在上电的时候进行复位,也可以设计一个复位按键,当按键按下的时候可以复位。

  • 开机复位

单片机电压小于1.5v,会被作为低电平信号(0v),大于1.5v会被作为高电平信号(5v)

  •     按键复位

十二、设计单片机的“躯干”之外围电路

12.1 外围电路设计

发光二极管是一种常用的发光器件,通过电子与空穴复合释放能量发光,它在照明领域应用广泛。 发光二极管可高效地将电能转化为光能,在现代社会具有广泛的用途,如照明、平板显示、医疗器件等。

十三、轻松实现KEIL与PROTEUS的联调

1.1 keil 和 proteus 仿真如何进行联调
在真正的电路设计,一般设计完电路之后不会直接进行硬件的制作,而是先采用仿真的形式去进行验证。

1、设计单片机的仿真电路

2、编写代码


http://www.ppmy.cn/news/1521869.html

相关文章

光电振荡器行业研究:未来几年年复合增长率CAGR为16.0%

光电振荡器(OEO)是一种微波光子系统,它使用高品质因数的光能量存储元件产生具有超低相位噪声的微波信号。光电振荡器基于将来自泵浦激光器的连续光能转换为射频(RF)、微波或毫米波信号。OEO 的特点是具有非常高的品质因数(Q) 和稳定性,以及电子振荡器不容…

K8s中如何使用etcd进行集群信息的备份与恢复

这里写目录标题 ETCD是什么?1. **`etcd`(服务)**2. **`etcdctl`(客户端工具)**如何安装etcdctl(客户端工具)查看目前K8s自带etcd中的版本信息安装对应版本的etcdutl工具下载 `etcdutl` 3.5.7 版本配置环境变量创建备份文件验证一下备份的快照文件备份文件恢复的效果演示…

从零开始学数据结构系列之第五章《B树的删除2》

文章目录 样例3情况3案例1案例2 总结往期回顾 样例3 原图,本例要删除50这个关键字,那这要怎么做呢? 思考ing 思考ing 思考ing 思考ing 思考ing 可以看到,最左边的子树是没有变化的,所以直接就不变,最…

语音测试(一)ffmpeg视频转音频

视频转音频 下载ffmpeg工具进入bin目录cmd进入控制台输入命令 ffmpeg.exe -i ./视频.mp4 ./音频.wav命令说明 ffmpeg -i input.mp4 output.mkv FFmpeg 可能会尝试自动选择合适的编码器对视频和音频进行重新编码,以便适应 MKV 格式的要求ffmpeg -i input.mp4 -c c…

Node.js 高级主题深度解析:性能优化、测试与日志管理

Node.js 高级主题深度解析:性能优化、测试与日志管理 目录 🚀 性能优化 🛠️ 使用 cluster 模块实现多进程🧠 内存泄漏分析与优化📊 性能分析工具的使用 🧪 测试 📑 单元测试和集成测试&#x…

使用Unity的准备

下载Unity 下载Unity Hub Unity - 实时内容开发平台 | 3D、2D、VR & AR可视化https://unity.cn/ 创建账号或者登入账号 Unity安装 路径尽量为英文路径 登入账号 点击头像登入账号 这里已经登入 打开偏好 设置中文 添加许可证 获取免费版的即可 安装编辑器 新建项目…

【HTML】置换元素(替换元素)

● 它的内容不是由元素的标签内的内容决定的&#xff0c;而是由元素的属性决定的 ● 可以通过CSS设置宽度和高度。 常见的置换元素主要包括以下几种&#xff1a; <img> 元素&#xff1a;用于嵌入图像&#xff0c;通过 src 属性指定图像的路径。例如&#xff1a;<img…

pdf在线转换成word免费版,一键免费转换

在日常的学习和办公中&#xff0c;PDF文件和Word文档是我们离不开的两种最常见的文件&#xff0c;而PDF与Word文档之间的转换成为了我们日常工作中不可或缺的一部分。无论是为了编辑、修改还是共享文件&#xff0c;掌握多种PDF转Word的方法都显得尤为重要。很多小伙伴关心能不能…

2023年公共英语三级考试阅读经典试题及译文答案

2023年公共英语三级考试阅读经典试题及译文答案 Flying over a desert area in an airplane, two scientists looked down with trained eyes at treesand bushes. After an hour s flight, one of the scientists wrote in his book, "Look here for probable metal. &qu…

智能对决:提示词攻防中的AI安全博弈

智能对决&#xff1a;提示词攻防中的AI安全博弈 在2024年上海AIGC开发者大会上&#xff0c;知名提示词爱好者工程师云中嘉树发表了关于AI提示词攻防与安全博弈的精彩演讲。他深入探讨了当前AI产品的安全现状&#xff0c;提示词攻击的常见手段及其应对策略。本文将对他的演讲进…

Charles抓包全流程(Mac端+iOS端)

文章目录 与其他抓包软件的对比FiddlerWireShark Charles下载安装及配置Charles抓包实践小结 Charles Proxy是一个广泛使用的网络调试代理工具&#xff0c;它允许开发者监控和分析所有经过计算机的HTTP和SSL/HTTPS网络流量信息。 与其他抓包软件的对比 Fiddler Charles 支持多…

【PPT学习笔记】使用PPT制作动画/手书/视频等作品的适配性和可能性?

【PPT学习笔记】使用PPT制作动画/手书等作品的可能性&#xff1f; 背景前摇&#xff1a;&#xff08;省流可不看&#xff09; 最近找到另外一份新的实习工作&#xff0c;有很多需要用到PPT动画的地方。 然而&#xff0c;我们之前制作的理工科PPT全是摒弃了形式主义的艰苦朴素…

2024.9.6 作业

手写unique_ptr指针指针 代码&#xff1a; #include <iostream> #include <stdexcept>template <typename T> class unique_ptr { public:// 构造函数explicit unique_ptr(T* ptr nullptr) : m_ptr(ptr) {}// 析构函数~unique_ptr() {delete m_ptr;}// 禁…

ASP.Net Core 因集成WebSocket导致Swagger UI显示错误

文章目录 前言一、ApiExplorerSettings二、解决Swagger UI显示问题 前言 Swagger UI 本身并不支持直接展示或测试 WebSocket 端点。Swagger&#xff08;现在称为 OpenAPI&#xff09;及其 UI 实现主要是为 RESTful API 设计的&#xff0c;这些 API 基于 HTTP 请求/响应模型。W…

vue2+ueditor集成秀米编辑器

一、百度富文本编辑器 1.首先下载 百度富文本编辑器 下载地址&#xff1a;GitHub - fex-team/ueditor: rich text 富文本编辑器 2.把下载好的文件整理好 放在图片目录下 3. 安装插件vue-ueditor-wrap npm install vue-ueditor-wrap 4.在你所需要展示的页面 引入vue-uedito…

uniapp本地上传照片并转化为base64格式

const upPhoto async () > { try { // 选择图片 const result await uni.chooseImage({ count: 1, sizeType: [original, compressed], sourceType: [album, camera] }); if (resul…

Wimdows使用Appium IOS自动化

启动appium服务器&#xff1a; appium -a 127.0.0.1 -p 4724 配置 { "platformName": "iOS", "appium:platformVersion": "16.5.1", "appium:deviceName": "(★StatTrak™) |午夜黑&#xff08;崭新出厂&#…

springboot+vue+mybatis计算机毕业设计学科竞赛系统+PPT+论文+讲解+售后

学科竞赛系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品&#xff0c;体验高科技时代带给人们的方便&#xff0c;同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓&#xff0c;iOS相比较起来&#xff0c;学科…

重修设计模式-创建型-工厂模式

重修设计模式-创建型-工厂模式 一、概述 工厂模式&#xff08;Factory Pattern&#xff09;是设计模式中非常基础且常用的一种模式&#xff0c;主要目的是通过封装对象的创建过程&#xff0c;从而实现代码的解耦和灵活性的提升。 工厂模式的核心思想 封装对象的创建&#x…

rancher搭建k8s及jenkins自动化部署

1、准备环境 角色IP用途k8s-rancher-master192.168.3.63master节点k8s-rancher-node01192.168.3.64node节点k8s-rancher-node02192.168.3.66node节点k8s-rancher-server192.168.2.33rancher-server节点注: 服务器名需要配置不同,相同服务器名不能加入node节点 在所有节点进行…