单片机原理及技术(一)—— 认识单片机(C51编程)
目录
一、单片机概述
1.1 什么是单片机
1.2 单片机的发展历史
1.3 单片机的特点
1.4 MCS-51 系列与 AT89S5x 系列单片机
1.4.1 MCS-51 系列单片机
1.4.2 AT89S5x 系列单片机
1.5 各种衍生品种的8051单片机
1.5.1 STC 系列单片机
1.5.2 C8051Fxxx 系列单片机
一、单片机概述
1.1 什么是单片机
单片机(Microcontroller Unit,MCU)指的是一种集成了中央处理器(CPU)、存储器和各种输入输出设备的微型计算机系统。它具备高度集成度、低功耗、体积小、成本低等优势。单片机广泛应用于嵌入式系统、电子设备、工控系统、通信设备等领域。
单片机通常由以下几个部分组成:
- 中央处理器(CPU):负责执行指令、进行算术逻辑运算等核心计算任务。
- 存储器:包括内部存储器(ROM和RAM)和外部存储器(闪存、SD卡等),用于存储程序和数据。
- 输入输出端口(I/O):用于与外部设备进行数据交互,如开关、LED灯、传感器、显示器等。
- 定时器/计数器:提供计时和定时功能,以及对外部事件的计数。
- 通信接口:如串行通信接口(UART、SPI、I2C)和并行通信接口(GPIO)等,用于与其他设备进行数据通信。
- 程序存储器编程器:用于将程序存储到单片机的存储器中。
单片机通常使用汇编语言或高级编程语言(如C语言)进行编程,开发工具包括编译器、调试器、仿真器等。根据不同厂商和型号的单片机,其架构、指令集、功能和性能特点会有所不同。
单片机的应用非常广泛,例如在家电、汽车、医疗设备、工业自动化、智能家居、消费电子等领域中都有它的身影。单片机的主要优势是体积小、功耗低、成本较低,同时具备较强的实时性和可编程性,使其成为嵌入式系统设计的理想选择。
1.2 单片机的发展历史
单片机的发展历史:
-
第一代单片机(1971-1976年):第一代单片机采用四位或八位的微处理器,有限的存储器容量和外设接口,以及较低的工作频率。最早的单片机是Intel 4004,它由于其简单的功能和广泛应用而受到了很大的关注。
-
第二代单片机(1976-1986年):第二代单片机在处理器性能和功能上有了显著的提升。采用八位或十六位处理器,具备更大的存储器容量和更多的外设接口。Intel的8051系列和Motorola的6805系列是这个时期最著名的单片机。
-
第三代单片机(1986-2000年):第三代单片机在处理器性能、存储器容量和外设接口上都有了重大突破。处理器的位数逐渐增加到32位,存储器容量和运行速度显著提高,外设接口更加丰富多样。Atmel的AVR系列和Microchip的PIC系列是这个时期最著名的单片机。
-
第四代单片机(2000年至今):第四代单片机继续在处理器性能、存储器容量和外设接口上进行创新。处理器的位数进一步增加,存储器容量和运行速度也有了显著提升。此外,随着物联网和嵌入式系统的兴起,单片机的功耗和尺寸也得到了进一步的优化。ARM的Cortex-M系列和ESP8266、ESP32等无线通信芯片也是当前最受欢迎的单片机产品。
1.3 单片机的特点
单片机(Microcontroller)具有以下特点:
-
集成度高:单片机是一种高度集成的电子器件,包含了微处理器核心、存储器、输入输出接口和外设接口等功能模块,可以完成数据处理和控制任务。
-
低功耗:单片机采用高度优化的电路设计和节能技术,功耗较低,适合用于移动设备和电池供电的应用。
-
多功能性:单片机具备通用的处理能力和灵活的配置选项,可以根据不同应用的需求进行编程和配置,实现不同的功能。
-
实时性强:单片机具备快速的响应能力和实时的数据处理能力,适用于需要实时控制和处理的应用场景。
-
体积小巧:单片机封装紧凑,体积小巧,适合嵌入式和紧凑空间的应用,例如智能家居、医疗设备等。
-
成本低廉:由于单片机集成度高,制造工艺成熟,因此成本相对较低,适用于大规模和成本敏感的应用。
-
易于开发和编程:单片机具备友好的开发环境和丰富的开发工具,简化了软硬件的开发流程,降低了开发门槛。
-
可扩展性强:单片机具备丰富的外设接口和扩展接口,可以连接各种外部设备和传感器,扩展应用功能。
综上所述,单片机具备集成度高、低功耗、多功能、实时性强、体积小巧、成本低廉、易开发和编程以及可扩展性强等特点,因此被广泛应用于各种嵌入式系统和控制系统中。
1.4 MCS-51 系列与 AT89S5x 系列单片机
1.4.1 MCS-51 系列单片机
MCS-51系列单片机是由Intel公司在1980年推出的一款经典的8位单片机系列。它是指基于Intel 8051内核的一系列单片机,其中包括8051、8052、8031、8032等不同型号。
MCS-51系列的基础型产品主要包括以下几款单片机:
-
8051:8051是MCS-51系列中最常见的型号,具有4KB的内部程序存储器(ROM)、128B的内部数据存储器(RAM),以及多个外设接口如GPIO、计时器/计数器、串行口等。
-
8052:8052是在8051的基础上增加了更多的功能和内存容量的单片机。它具有8KB的内部程序存储器(ROM)、256B的内部数据存储器(RAM),以及额外的I/O引脚和更强大的计时器/计数器。
-
8031:8031是与8051兼容的单片机,具有和8051相似的特性,但内存容量较小。它包括1KB的内部程序存储器(ROM)和128B的内部数据存储器(RAM)。
-
8032:8032是在8031的基础上增加了更多的功能和内存容量的单片机。它具有1KB的内部程序存储器(ROM)、256B的内部数据存储器(RAM),以及额外的I/O引脚和更强大的计时器/计数器。
1.4.2 AT89S5x 系列单片机
AT89S5x系列单片机是基于Intel 8051架构的8位微控制器系列。它们具有高度集成的特点,适用于各种应用领域,包括工业控制、家电、汽车电子、通信设备等。这个系列的单片机具有低功耗、高性能和多种外设接口等优点。
AT89S5x系列单片机根据内部FLASH存储器的不同容量可以分为不同型号,如AT89S51、AT89S52等。它们都具有相同的核心架构,但在存储容量和外设接口等方面略有差异。
AT89S5x系列单片机中的核心功能包括一个8位的CPU、内部RAM和ROM存储器,以及各种外部和内部中断源。它们还具有多个通用I/O引脚、定时器/计数器、串口通信接口、定时/计数器、PWM输出和ADC功能等。
AT89S5x系列单片机还支持ISP(In-System Programming)和IAP(In-Application Programming)功能,这意味着可以通过串行接口对程序进行编程和更新,而无需将芯片从电路板上取下来。
1.5 各种衍生品种的8051单片机
1.5.1 STC 系列单片机
STC系列单片机是由中国的STC微控制器公司推出的一款基于8051核心架构的8位微控制器系列。STC单片机的特点是低成本、易学易用,广泛应用于各种嵌入式系统。
STC系列单片机具有多种型号,主要包括STC89系列、STC12系列和STC15系列。这些单片机都具有相似的架构和功能,但在存储器容量、外设接口和性能方面略有差异,可以根据具体应用的需求选择适合的型号。
STC单片机具有丰富的外设接口,包括通用I/O口、定时器/计数器、串口通信接口、PWM输出、模拟输入等。它们还支持多种编程方式,包括ISP(In-System Programming)和IAP(In-Application Programming),使得开发者可以通过串行接口对程序进行编程和更新。
STC单片机的开发工具和编程软件相对简单易用,可以使用STC-ISP或STC-ISP-PRO等编程器进行编程,同时可以使用类似Keil C或SDCC等C编译器进行程序开发。
1.5.2 C8051Fxxx 系列单片机
C8051Fxxx系列单片机是由美国Silicon Labs公司推出的一款基于8051核心架构的8位微控制器系列。这些单片机具有高性能、低功耗和丰富的外设接口,适用于各种嵌入式应用领域。
C8051Fxxx系列单片机主要包括C8051F32x、C8051F33x、C8051F34x、C8051F35x、C8051F36x、C8051F37x和C8051F38x等型号。这些型号在存储器容量、外设接口和性能等方面有所差异,开发者可以根据具体应用的需求选择合适的型号。
C8051Fxxx系列单片机具有丰富的外设接口,包括GPIO(通用输入/输出口)、定时器/计数器、ADC(模数转换器)、DAC(数模转换器)、SPI、I2C、UART等。这些外设接口提供了灵活的接口,可以满足各种应用的需求。
C8051Fxxx系列单片机还具有强大的系统集成功能,包括多路模拟输入通道、内部振荡器、低功耗模式和片内电源管理等。这些功能有助于降低系统功耗、提高性能和简化系统设计。
开发C8051Fxxx系列单片机的工具和软件也非常成熟,Silicon Labs提供了Simplicity Studio,这是一个集成开发环境(IDE),支持C语言开发和调试。开发者可以使用C编译器和调试器进行程序开发和调试。
相关文章:
单片机原理及技术(一)—— 认识单片机(C51编程)
目录 一、单片机概述 1.1 什么是单片机 1.2 单片机的发展历史 1.3 单片机的特点 1.4 MCS-51 系列与 AT89S5x 系列单片机 1.4.1 MCS-51 系列单片机 1.4.2 AT89S5x 系列单片机 1.5 各种衍生品种的8051单片机 1.5.1 STC 系列单片机 1.5.2 C8051Fxxx 系列单片机 一、单片…...

白嫖的在线工具类宝藏网站清单,快点击进来收藏一波
简单整理了一下自己日常经常使用的10个免费工具网站,建议点赞关注收藏,快点分享给小伙伴们! 1.奶牛快传:用户体验更好的网盘工具。 https://cowtransfer.com/ 今年开始使用的一款网盘工具,和百度网盘类似,叫奶牛快传,如…...
【机器学习300问】97、机器学习中哪些是凸优化问题,哪些是非凸优化问题?
在机器学习的领域中,多数模型的参数估计问题实质上可以转化为优化问题。鉴于机器学习模型的多样性,不同的模型会对应着不同的损失函数,进而形成各具特色的优化问题。了解优化问题的形式和特点,对于提升我们求解模型参数的效率和准…...
两种盒模型
在CSS中,有两种主要的盒模型(Box Model),它们决定了元素的尺寸计算方式: 标准盒模型(W3C Box Model) 在标准盒模型中,元素的总宽度和总高度分别由以下几个部分组成: Cont…...

【C++】类型转换
目录 前言一、C语言中的类型转换二、为什么C需要四种类型转换三、C强制类型转换3.1 static_cast3.2 reinterpret_cast3.3 const_cast3.4 dynamic_cast3.5 RTTI 前言 本篇文章讲解的是C中对于C语言类型转换做出的一些更好的规范问题,同时也保证了在一些特殊场景下进…...
Redis RDB 持久化问题
前言 Redis 是内存数据库,它将自己的数据储存在内存里面,如果不想办法将储存在内存中的数据保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据也就没了。 因此,Redis 提供了 RDB 持久化功能,这个功能…...
windows 下nginx常用命令
1、启动,目录cmd,后 start nginx.exe 2.重新加载 nginx -s reload 3.查看状态 tasklist /fi “imagename eq nginx.exe” 4.关闭 nginx -s quit...
xjoi题库一级1-10段题解(c语言版)
xjoi题库一级一段 xjoi题库一级二段 xjoi题库一级三段 xjoi题库一级四段 xjoi题库一级五段...

1.int 与 Integer 的简单区别
蓝桥杯刷题从此开始: 第一题就是两个数的和,个人看来主要考察 int与integer 的区别; 这是我提交的答案,竟然会报错: import java.util.*; //输入A、B,输出AB。 class add {public static void main(String …...

单片机原理及技术(二)—— AT89S51单片机(一)(C51编程)
目录 一、AT89S51单片机的片内硬件结构 二、AT89S51的引脚功能 2.1 电源及时钟引脚 2.2 控制引脚 2.3 并行 I/O口引脚 三、AT89S51的CPU 3.1 运算器 3.1.1 算术逻辑单元(ALU) 3.1.2 累加器A 3.1.3 程序状态字寄存器(PSW)…...

某方protobuf闲谈
问题 当我们去看某方的时候,搜索了关键词svm,然后通过抓包查看,请求的Request Payload是一串看不懂的乱码,并且返回的数据也大部分是乱码 观察请求的Content-Type是application/grpc-web+proto,没错数据的传输是protobuf的形式了 protobuf的相关概念和原理,网上有很多教…...

专为汽车内容打造的智能剪辑解决方案
汽车内容创作已成为越来越多车主和汽车爱好者热衷的活动。然而,如何高效、便捷地将行车途中的精彩瞬间转化为高质量的视频作品,一直是困扰着广大用户的一大难题。美摄科技凭借其深厚的视频处理技术和智能分析能力,推出了专为汽车内容记录而生…...

【C语言】二叉树的实现
文章目录 前言⭐一、二叉树的定义🚲二、创建二叉树🎡三、二叉树的销毁🎉四、遍历二叉树1. 前序遍历2. 中序遍历3. 后序遍历4. 层序遍历 🌲五、二叉树的计算1. 计算二叉树结点个数2. 计算二叉树叶子结点的个数3. 计算二叉树的深度4…...

在ubuntu22.04里网站源码连不上mysql数据库
在ubuntu22.04里网站源码连不上mysql数据库。后来找到了原因。 连不上的时候有报错信息: ERROR 1698 (28000): Access denied for user rootlocalhost 用在网上搜索该报错信息,找到了两篇有用的文章,用这两篇文章里的处理方法解决了问题。 …...

博客说明 5/12~5/24【个人】
博客说明 5/12~5/24【个人】 前言版权博客说明 5/12~5/24【个人】对比最后 前言 2024-5-24 13:39:23 对我在2024年5月12日到5月24日发布的博客做一下简要的说明 以下内容源自《【个人】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作…...
豆瓣电影后端设计
sql脚本 -- douban.tags_encode definitionCREATE TABLE tags_encode (id bigint NOT NULL AUTO_INCREMENT COMMENT 自增主键,tag varchar(100) NOT NULL COMMENT tag中文名,tag_encode varchar(100) NOT NULL COMMENT tag转encode,type varchar(100) NOT NULL DEFAULT movie …...

【深度学习】第1章
概论: 机器学习是对研究问题进行模型假设,利用计算机从训练数据中学习得到模型参数,并最终对数据进行预测和分析,其基础主要是归纳和统计。 深度学习是一种实现机器学习的技术,是机器学习重要的分支。其源于人工神经网络的研究。深度学习的模型结构是一种含多隐层的神经…...

Vue3实战笔记(37)—粒子特效登录页面
文章目录 前言一、粒子特效登录页总结 前言 上头了,再来一个粒子特效登录页面。 一、粒子特效登录页 登录页: <template><div><vue-particles id"tsparticles" particles-loaded"particlesLoaded" :options"…...
解锁无限可能:JavaScript与【机器学习】的浪漫邂逅
解锁无限可能:JavaScript与机器学习的浪漫邂逅 在人工智能和大数据日益盛行的今天,机器学习已成为我们理解、分析和处理数据的强大工具。而JavaScript,作为前端开发的主流语言,其灵活的特性和广泛的应用场景也让我们对其充满了期…...
【Linux】$()中的内容与不加$()时有什么区别
$()中的内容与不加$()有什么区别,例如$(/usr/local/hadoop/bin/hadoop classpath)与/usr/local/hadoop/bin/hadoop classpath两者有何区别??? 关于这个问题,笔者建议可以参考如下文章: Linux—shell中$((…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...

Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...
Easy Excel
Easy Excel 一、依赖引入二、基本使用1. 定义实体类(导入/导出共用)2. 写 Excel3. 读 Excel 三、常用注解说明(完整列表)四、进阶:自定义转换器(Converter) 其它自定义转换器没生效 Easy Excel在…...

华为云Flexus+DeepSeek征文 | 基于Dify构建具备联网搜索能力的知识库问答助手
华为云FlexusDeepSeek征文 | 基于Dify构建具备联网搜索能力的知识库问答助手 一、构建知识库问答助手引言二、构建知识库问答助手环境2.1 基于FlexusX实例的Dify平台2.2 基于MaaS的模型API商用服务 三、构建知识库问答助手实战3.1 配置Dify环境3.2 创建知识库问答助手3.3 使用知…...

SOC-ESP32S3部分:30-I2S音频-麦克风扬声器驱动
飞书文档https://x509p6c8to.feishu.cn/wiki/SKZzwIRH3i7lsckUOlzcuJsdnVf I2S简介 I2S(Inter-Integrated Circuit Sound)是一种用于传输数字音频数据的通信协议,广泛应用于音频设备中。 ESP32-S3 包含 2 个 I2S 外设,通过配置…...