【C51 --- 单片机学习历程与分享】

news2024/9/20 12:39:09

51单片机学习历程与分享

  • 开篇 --- 认识单片机
    • 1、什么是单片机?
    • 2、51单片机主要资源
    • 3、STC89C51 芯片简介
    • 4、单片机脚位判断
    • 5、51单片机的应用领域
    • 6、如何学好51单片机?
    • 7、参考文献

开篇 — 认识单片机

前言:
1.本专栏适合有一定C语言功底的读者,还涉及到一定的数电模电、计算机组成原理、数据结构、算法等知识。
2.该专栏主要属于51单片机的入门笔记以及对学习过程中实验的记录和分享,谢谢!
目的:
1.主要还是记录个人的学习,不定时更新督促学习进程,不足和有误的地方请多多指教!

1、什么是单片机?

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

单片机主要基本结构

1.运算器:
运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。

2.控制器:
控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作

3.寄存器:
寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。
其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。
寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。
寄存器是中央处理器内的组成部分。寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。

单片机的结构框图如下图所示:
在这里插入图片描述
根据百度百科的介绍:

我们可以知道,单片机属于微小的控制单元(也称微控制器MCU),能够“以小博大”,通过内部的运算器、寄存器、控制器组成逻辑电路的相互作用结合外设,能够实现许多妙不可言的功能。
然后,51单片机是对所有兼容 Intel 8031 指令系统的单片机的统称,应用最广泛的 8 位单片机之一,其代表型号是 ATMEL 公司的 AT89系列,它广泛应用于工业测控系统和生活实践之中。
单片机的使用领域十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

2、51单片机主要资源

80C51 :是 MCS-51 系列中的一个典型品种;其它厂商以 8051 为基核开发出的CMOS 工艺单片机产品统称为 80C51 系列。
STC(国产宏晶)单片机:STC89C51、STC89C52、STC89C516、STC90C516 等众多品牌。
80C51 芯片管脚图如下所示:
在这里插入图片描述

其内部资源如下:

·8 位 CPU
·4kbytes 程序存储器(ROM) (52 为 8K)
·128bytes 的数据存储器(RAM) (52 有256bytes 的 RAM)
·32 条 I/O 口线
·111 条指令,大部分为单字节指令
·21 个专用寄存器
·2个可编程定时/计数器
·5 个中断源,2 个优先级(52 有 6 个)
·一个全双工串行通信口
·外部数据存储器寻址空间为 64kB
·外部程序存储器寻址空间为 64kB
·逻辑操作位寻址功能
·双列直插 40PinDIP 封装
·单一+5V 电源供电

说明

CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄 存器;
RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示 的数据;
ROM:用以存放程序、一些原始数据和表格;
I/O 口:四个 8 位并行 I/O 口,既可用作输入,也可用作输出
T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在计数模式;
五个中断源的中断控制系统;
一个全双工 UART(通用异步接收发送器)的串行 I/O 口,用于实现单片机之 间或单片机与微机之间的串行通信;
片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率 为 6MHz—12MHz/11.0592MHz。

其内部结构图如下所示:
在这里插入图片描述
说明

总线(BUS)是单片机各部件之间传送信息的公共通道。
单片机中有内部总 线和外部总线两类,内部总线是 CPU 内部之间的连线;
外部总线是指CPU 与其它 部件之间的连线;
外部总线有三种:
1.数据总线 DB(Data Bus)
2.地址总线 AB (Address Bus)
3.控制总线 CB Control Bus)

3、STC89C51 芯片简介

STC89C51 是 STC 推出的新一代超强抗干扰/高速/低功耗的 51 单片机,它是 采用 8051 核的 ISP(In System Programming)在系统可编程芯片,指令代码完全兼容传统的 8051 单片机,最高工作时钟频率为 80MHz,片内含 4K Bytes 的可反复擦写 1000 次的 Flash 只读程序存储器,器件兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,具有在系统可编程(ISP)特性,配合 PC 端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。
STC89C51 系列单片机是单时钟/机器周期(1T)的兼容 8051 内核单片机,是高速/ 低功耗的新一代 8051 单片机,全新的流水线/精简指令集结构,内部集成 MAX810 专用复位电路。

4、单片机脚位判断

封装不同脚位不同
基于 8051 内核的单片机,若引脚数相同,或封装相同,它们的引脚功能是相同
的,其中用的较多的是 40 脚 DIP 封装的 51 单片机,也有 20,28,32,44 等不同
引脚数的 51 单片机。
脚位判断
无论哪种芯片,单片机也好,其他不知名的芯片也好,当我们观察它的表面时,大都会找到一个凹进去的小圆坑,或是用颜色标记的一个小标记(圆点或三角或其他小图形),这个小圆坑或者小标记所对应的引脚就是这个芯片的第 1脚,然后逆时针方向数下去,即 1 到最后一个引脚。

如图所示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
说明
1.上图中对于 LQFP/PQFP 封装,小圆坑在左下角位置;
2.对于 DIP 封装,小圆坑在芯片上方正中间位置,对应左边第一个脚位为 1;
3.对于 PLCC 封装,小圆坑在芯片上方正中间位置,对应脚位为 1;
4.在实际焊接或绘制电路板时,务必要注意它们的脚位标号,否则若焊接错误则导致产品无法正常工作。

5、51单片机的应用领域

51 单片机主要用于“控制”,通过串口可以和 WFIF/GPS/蓝牙等模块实现无线控制,通过 AD 接口可以采集光敏/烟雾传感器/可燃气体传感器等模拟信号,还可以使用 AD 设计简易示波器。当然还包括直流电机、交流电机、步进电机、伺服电机、变频电机、电磁铁、电磁阀、LED、LCD 等等,进而由这些去驱动各种设备,应用于家电、机械加工、制造、航空航天等各行各业。
日常生活中可采用 51 单片机设计的电子产品:
智能手环,微型四轴飞行器,平衡车、扫地机、移动 POST 机,智能电饭锅,3D 打印机、机器人等。

6、如何学好51单片机?

(1)熟悉基本外设功能
(2)掌握基础的数字电路和模拟电路知识
(3)要加强C 语言思维编程逻辑能力
(4)“ 好记性不如烂笔头 ”多动手编程
(5)遇到问题多思考多积累总结吸取经验,学会查阅资料

7、参考文献

普中51单片机开发攻略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/698333.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构与算法:数组和字符串

1 数组 1.1 集合、列表、数组的联系与区别 集合:由一个或多个确定的元素所构成的整体。类型不一定相同、确定、无序、互异。 列表(又称线性列表):按照一定的线性顺序,排列而成的数据项的集合。类型不一定相同、有序…

所有独立站都适合做谷歌推广吗?怎么做好谷歌推广?

大家有没有这种困扰:是不是所有的独立站都适合用谷歌来打广告呢?我的行业能不能用Google Ads来推广?如果我刚刚起步,我应该开启哪种类型的广告呢?让我们一起来揭秘吧! 如果你是一个独立站卖家,…

用异或计算只出现一次的数字

因为与0异或的都是数字本身&#xff0c;数字本身和数字本身异或是等于0&#xff0c;应用这个定理&#xff0c;我们来做这个题 链接: leetcode用异或计算只出现一次的数字 class Solution { public:int singleNumber(vector<int>& nums) {size_t v 0;for(size_t i …

Git指南 - 刚提的commit 怎么找不到了(游离分支)?

在有一次使用git时&#xff0c;我提交commit后&#xff0c;并未push&#xff0c;然后直接切到了当前分支的某个tag&#xff0c;最后我想切回来的时候&#xff0c;竟然找不到我刚才提交commit的节点了… 关联篇 Git指南 - 你该掌握的那些基础认知和首次配置Git指南 - 项目实战中…

uni-app处理请求发送表单类型的数据

我在本地开发了一个分页的接口 这里 我设置的是 form-data 参数类型 要的是个表单类型的数据 然后呢 我按传统PC端的方式处理了数据 <template><view class "box"><view class"management"></view></view> </template…

QT Creator上位机学习(二)基础布局控件及信号与槽

c# 系列文章目录 文章目录 布局控件信号与槽第二种connect 程序图标使用技巧 布局控件 美化界面的时候&#xff0c;经常需要进行一些控件的布局&#xff0c;这时需要使用一些容器类。 在快捷栏出&#xff0c;也有一些布局设计的选择 如上图&#xff0c;其中涉及到几种编辑…

【图像软件篇】Windows最强大的截图贴图神器-Snipaste的优化设置

【图像软件篇】Windows最强大的截图贴图神器-Snipaste的优化设置 个人用户免费、开源&#xff0c;以及和剪贴板神器Ditto一样简单易用&#xff0c;默认设置上手够快&#xff0c;除了没有长截图和OCR功能&#xff0c;我觉得它已经做到了截图贴图软件的天花板&#xff1b;本文我…

Springboot的配置原理

一、起步依赖–Maven的依赖传递 原始基于Spring框架来运行&#xff0c;需要手动配置很多依赖项&#xff0c;而Springboot简化了基于Spring框架的开发–引入Springboot的起步依赖&#xff0c;里面引入了所有常见的Springboot的依赖&#xff0c;都是通过maven的依赖传递自动的传…

Redisson 延时队列 延时严重问题

延时队列原理我在这篇文章讲了 Redisson 延时队列 原理 详解 - 知乎 十分建议先把原理看了 我们一个项目是做消息推送的&#xff0c; 分钟量达到了几百万。需求是要设置5秒以上的延时推消息。 当初我想了几个方案&#xff1a; 定时器轮询数据库 mq做延时推送 redisson做延时推…

【微服务架构模式】微服务设计模式

这是微服务架构系列文章的第 3 篇 高可用性、可扩展性、故障恢复能力和性能是微服务的特征。您可以使用微服务架构模式来构建微服务应用程序&#xff0c;从而降低微服务失败的风险。 模式分为三层&#xff1a; 应用模式 应用程序模式解决了开发人员面临的问题&#xff0c;例如数…

应用面向对象思想进行Linux内核分析的优化方法

在分析Linux内核时&#xff0c;应用面向对象思想可以帮助我们更好地理解和组织内核代码。虽然Linux内核是用C语言编写的&#xff0c;并没有内置的面向对象机制&#xff0c;但我们可以通过一些方法来应用面向对象思想进行分析。 我这里刚好有嵌入式、单片机、plc的资料需要可以…

在线客服系统哪家好,2024五家常用客服系统权威测评

在线客服系统推荐哪家随着互联网的发展&#xff0c;人们沟通交流方式越来越趋向智能化。很多企业都会选择在线客服系统来提升员工效率和质量&#xff0c;而且还能为企业带来一个强大的销售平台。那么在线客服系统推荐哪家呢&#xff1f;首先我们要知道&#xff0c;在线客服系统…

DINO推理模块实现

如何将一个模型真正的投入应用呢&#xff1f;即我们常说的推理模块&#xff0c;前面博主已经介绍了如何使用DETR进行推理&#xff0c;今天博主则介绍DINO的推理实现过程&#xff1a; 其实在DINO的代码中已经给出了推理模块的实现&#xff0c;这里博主是将其流程进行梳理&#x…

w3af启动后提示“Traceback (most recent call last)”

第一次提示 /usr/bin/env: “python”: 没有那个文件或目录 一看这提示就是python目录没有引用对&#xff0c;所以建一个软链接 软连接参考&#xff1a;每天学命令-ln 软硬链接 | 夜云泊个人博客 命令如下 whereis python3 sudo ln -s /usr/bin/python3 /usr/bin/python 软…

OpenCV阈值处理(threshold函数、自适应阈值处理、Otsu处理)

目录 阈值处理 一.threshold函数 1.二值化阈值处理&#xff08;cv2.THRESH_BINARY&#xff09; 2.反二值化阈值处理&#xff08; cv2.THRESH_BINARY_INV&#xff09; 3.截断阈值化处理&#xff08;cv2.THRESH_TRUNC&#xff09; 4.超阈值零处理&#xff08;cv2.THRESH_TOZ…

chatgpt赋能python:Python遍历1到10:使用循环语句掌握基础编程技能

Python遍历1到10: 使用循环语句掌握基础编程技能 Python是一种高级的编程语言&#xff0c;常被用于大数据分析、机器学习、Web开发和自然语言处理。无论您是新手还是有经验的编程工程师&#xff0c;掌握Python基础编程技能是非常重要的&#xff0c;其中之一就是学习如何遍历1到…

【2022 JCR 期刊影响因子】(三)地学综合 (GEOSCIENCES, MULTIDISCIPLINARY)

原文链接&#xff1a; 【2022 JCR 期刊影响因子】&#xff08;三&#xff09;地学综合 微信公众号同步更新 地信学子GISer and Coder 2022 JCR 期刊影响因子刚刚发布&#xff0c;今年的影响因子只保留1位小数。地学综合领域的 SCIE 收录期刊的影响因子如下。 微信公众号同步更…

使用 Jetpack Compose 构建 Spacer

欢迎阅读本篇关于如何使用 Jetpack Compose 构建 Spacer 的博客。Jetpack Compose 是 Google 的现代 UI 工具包&#xff0c;主要用于构建 Android 界面。其声明式的设计使得 UI 开发更加简洁、直观。 一、什么是 Spacer&#xff1f; 在 UI 设计中&#xff0c;我们通常需要在不…

一、枚举类型——使用二维数组分发

我们发现每个枚举实例都持有一个固定的值&#xff08;基于它的声明顺序&#xff09;,该值由 ordinal() 方法生成&#xff0c;因此可以进一步简化该方案。使用一个二维数组将竞争者映射到结果&#xff0c;便可以实现最简单易懂的解决方案&#xff08;而且有可能是最快的&#xf…

抖音团购功能本地生活服务商开通

抖音团购功能对于本地生活服务商在市场上的前景是积极的&#xff0c;有以下几个方面的优势&#xff1a; 广泛的用户基础&#xff1a;抖音是全球范围内拥有庞大用户基础的社交媒体平台之一。通过在抖音上开展团购活动&#xff0c;可以接触到大量的活跃用户&#xff0c;提升品…