单片机原理及技术(一)—— 认识单片机(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中$((…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
