嵌入式1.1 单片机基础总结

单片机基础总结

https://blog.csdn.net/weixin_40414160/article/details/124526924?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-124526924-blog-123451395.235^v38^pc_relevant_default_base3&spm=1001.2101.3001.4242.2&utm_relevant_index=4


1.1单片机的基本概念


单片机是一种典型的嵌入式计算机,它把微型计算机中的微处理器、存储器、I/O接口、定时器/计数器、通信接口、中断系统等模块集成到一块芯片上,因而常被称为单片微型计算机,简称单片机。

单片机的英文叫法在国内有两种:
MCU : Micro-Controller Unite 微控制器
SCM : Single Chip Microcomputer 单片机

一个通用计算机系统应包含的基本部件:

 
基于传统电子技术和单片机设计的电路有什么区别?
 
基于单片机和数字逻辑芯片的电子系统的区別
传统数字电路设计方法是根据系统功能要求,通过组合各种独立的集成电路芯片,构成系统。系统一旦设计好后,功能需要修改时,需要重新设计电路;
基于微处理器设计方法中,设计相对通用的硬件电路,通过软件编程实现系统的逻辑关系。软件编程不仅能实现非常强大逻辑功能(几乎任何逻辑),设计难度也有所降低,而且当系统功能需要小范围修改时,硬件可以不改动,只需重新编写程序即可,这大大节约了经济成本和人工成本。
 

1.2 单片机发展和应用领域


单片机发展及分类
单片机初始阶段(1971~1976):以4位单片机和刚出现的8位单片机为代表。

1974年,美国Fairchild公司研制出第一台8位单片机F8。
1975年,美国TI公司研制的4位单片机TMS-1000。
4位单片机目前依然存在,主要用于价格便宜,低功耗的设备中,如低档玩具,电子秤,家用电器等,主要生产国是日本。

计算机的位数代表的含义?
计算机内部以及CPU与外部设备间通信时,一次同时处理的二进制数据的位数,位数越多,表示计算机处理数据的能力越强。


低性能8位单片机阶段 (1976~1978)

1978年以前各厂家生产的8位单片机,速度慢,集成度低,性能相对较低,称为低档8位单片机。例如Intel公司的MCS-48单片机。

高性能8位单片机阶段(1978~至今)

一些高性能的8位单片机,使单片机发展进入了新阶段。8位单片机因其功能强,

能够满足目前大多数应用要求,价格较低,种类最多。例如Intel公司的MCS-51单片机。

其他高性能单片机的发展(1982~至今)

随着应用需求对单片机性能的提升,出现了16位,32位等速度更快,性能更强的单片机。例如Intel公司的MCS-96系列,TI公司的MSP430系列等。

但是在仪表,测控等领域,16位,32位单片机只是在少数特殊场合才有使用,8位单片机,始终占据着单片机市场的主要份额。
 单片机的应用领域
工业自动化检测、控制
智能仪器仪表
计算机外设和智能设备
家用电器和消费电子
常见51系列兼容单片机简介
美国Intel公司的MCS-51系列单片机
美国Atmel公司的89系列
荷兰NXP(恩智浦,原Philips)公司的LPC89系列,80C55X系列等
美国 Silicon Labs公司的C8051F系列
台湾Winbond华邦公司的W78C5X系列
单片机系统开发流程
方案设计、原理图设
PCB印刷电路板设计
电路板制作
软件调试
 

2.1 MCS51单片机的型号与组成


MCS-51系列单片机最早是美国Intel公司在1980年推出的,当时包含51和52 两个子系列型号。

51系列,主要有8031、8051、8751三种型号,它们的指令系统与芯片引脚完全兼容,仅是片内的程序存储器容量有所不同。

8031芯片不带任何ROM
8051芯片带4kB(OTP) PROM(一次性写入)
8751芯片带4kB EPROM(紫外线可擦除)。
52系列,有8032、8052、8752 三种机型。52子系列与51子系列相比大部分相同,不同之处在于:片内数据存储器增至256个字节;

8032芯片不带ROM,
8052芯片带8kB PROM,
路8752芯片带8kB EPROM;
MCS-51单片机型号命名规则

MCS-51系列单片机的结构原理
它由中央处理器(CPU)、定时器,并行口等八部分组成


MCS-51系列单片机的中央处理器(CPU)
1. 运算部件
运算部件以一个8位算术逻辑运算单元ALU为核心,包含累加器ACC、B寄存器、标志寄存器PSW等部件,能实现算术运算、逻辑运算、位运算、数据传输等处理。

51单片机的ALU还有一个位运算器,它可以对一位二进制数据进行置位、清零、求反、测试转移及位逻辑“与〞、“或〞等处理,这对于控制方面很有用。

累加器ACC(Accumulator简称为A)是CPU中使用最频繁的寄存器,ALU进行运算时,数据绝大多数时候都来自于累加器A,运算结果也通常送回累加器A。

寄存器B称为辅助寄存器,它是为乘法和除法指令而设置的。

标志寄存器PSW (Program Status Word) 是一个8位的寄存器,它用于保存指令执行结果的状态。

D7    D6    D5    D4    D3    D2    D1    D0
C    AC    F0    RS0    RS0    OV        P
RS1、 RSO ( Register Select):寄存器组选择位.

RS1    RS0    工作寄存器组
0    0    0组 (00H-07H)
0    1    1组 (08H-OFH)
1    0    2组 (10H-17H)
1    1    3组 (18H-1FH)
C(Carry)    进位标志位
AC(Auxilary Carry.    辅助进位标志位
FO (Flag Zero    用户标志位
Ov(Over flow)    溢出标志位
P(Parity)    奇偶标志位
2. 控制部件
控制部件是单片机的控制中心,它包括定时和控制电路、指令寄存器、指令译码器、程序计数器PC ( Por gram Counter)、堆栈指针SP(Stack Pointer)、数据指针DPTR(Data Pointer Register ) 等。

它先以振荡信号为基准产生CPU的时序,从ROM中取出指令到指令寄存器,然后在指令译码器中对指令进行译码,产生指令执行所需的各种控制信号,送到单片机内部的各功能部件,指挥各功能部件产生相应的操作,完成对应的功能。

2.2 MCS-51单片机的程序存储器结构


MCS-51单片机存储器结构与一般微机的存储器种类不同,分为:程序存储器ROM和数据存储器RAM。

程序存储器ROM
存放单片机工作时的程序,单片机上电工作时,程序指令指导单片机完成设定的功能,没有ROM存储器,单片机不能工作。

MCS51单片机专门设置一个16位的程序计数器(PC),用于指示下一时刻CPU将要所执行的程序在ROM空间中的地址位置,由于PC指针长度为16位,即51单片机的程序存储器空间大小为64kB,最大地址从0000-FFFFH

MCS-51单片机的程序存储器,从物理结构上分为:

片内程序存储器ROM(不同型号的容量不同)
片外程序存储器ROM(64kB地址空间,外部通过总线访问)

片外程序存储器ROM(64kB地址空间,外部通过总线访问)
程序存储器的编址与访问
在MCS-51系列中,不同型号机型的程序存储器

8031和8032内部没有ROM,
8051片内有4kBROM,8751内部有4kB EPROM(0000H-0FFFH)
8052片内有8kB ROM,8752内部有8kB EPROM(0000H-1FFFH).
程序存储器的7个特殊地址
MCS-51系列单片机复位后PC的内容为0000H,故单片机复位后将从0000H单元开始执行程序。程序存储器的0000H单元地址是系统程序的启动地址。这里一般放一条绝对转移指令。

中断源    入口地址
外部中断0    0003H
定时/计数器0    000BH
外部中断1    0013H
定时/计数器1    001BH
串行口    0023H
定时/计数器2(仅52子系列有)    002BH
6个中断源的地址之间仅隔8个单元,存放中断服务程序往往不够用,这是通常放一条绝对转移指令,转到真正的中断服务程序,真正的中断服务程序放到后面。

数据存储器RAM
数据存储器(RAM)存储单片机运行期间所需要的数据和临时生成的数据,需要能够快速读出和写入数据。此类存储器掉电后,存储的数据会丢失,不能永久保存。

由于数据存储器包含单片机工作时所需要的多种用途的存储器,各部分存储器特性不同,访问方式也不同。

从物理结构上分为片内数据存储器和片外数据存储器。

片内数据存储器RAM(片内连线访问,不同型号大小不同)
片外数据存储器RAM (64kB地址空间,外部通过16位地址总线访问)

片内数据存储器
工作寄存器组区

OOHI—1FH单元为工作寄存器组区,共32个字节。工作寄存器也称为通用寄存器,用于临时寄存8个信息。工作寄存器共有4组,称为、1、23组,每组用RO~R7表示

位寻址区

20F一2FE为位寻址区,共16字节,128位。这128位每位都可以按位方式使用,一位都有一个位地址,位地址范围为00H—7FH

一般RAM区

30H一7FH是一般RAM区,也称为用户RAM区,共80字节,对于52子系列,般RAM区从30H—FFH单元。另外,对于前两区中未用的单元也可作为用户RAM单元使用。

堆栈区与堆栈指针

堆栈是按先入后出、后入先出的原则进行管理的一段存储区域。MCS-51单片机中,堆栈是用片内数据存储器的一段区域,一般设在2FH以后的单元,使用时应避开工作寄存器、位寻址区。

MCS-51单片机的堆栈是向上生长型的,存入数据是从地址低端向高端延伸,取出数据是从地址高端向低端延伸。入栈和出栈数据是以字节为单位。

为实现堆栈的先入后出、后入先出的数据处理,专门设置了一个堆栈指针SP(Stack Pointer)。

入栈(Push)时,SP指针的内容先自动加1,再把数据存入到SP指针指向的单元;
出栈(Pop)时,先把sP指针指向的单元的数据取出,然后再把SP指针的内容自动城l。
向上生长型堆栈


特殊功能寄存器

特殊功能寄存器(SFR,Special Function Register)专门用于控制、管理片内算术逻辑部件、并行I/0口、串行口、定时/计数器、中断系统等功能模块的工作,用户在编程时可以给其设定值,但不能移作它用。分布在80H—FFH地址空间,与片内数据存储器统一编址,除PC外,51子系列有18个特殊功能寄存器,52子系列有21个特殊寄存器。

它们的分配情况如下:
CPU专用寄存器:累加器A(EOH),寄存器B(FOH),程序状态寄存器PSW(DOE),堆栈指针SP(81H),数据指针DPTR (82H1、 83H)

片外数据存储器
单片机片内RAM存储器不够使用时,单片机可以通过外部总线扩展的片外数据存储器获得更大的存储空间,由于外部地址总线宽度为16位,所以片外RAM扩展最多64KB,地址范围为0000H—0FFFFH。

2.3 MCS-51单片机外部引脚及总线接口


MCS-51系列单片机的引脚及功能说明

一、输入/输出引脚
P0口(3932脚):P0.0P0.7统称为P0口。在不接片外存储器与不扩展I/0口时,作为双向输入/输出口。在接有片外存储器或扩展I/0口时,P0口分时复用为低8位地址总线和双向数据总线。

P1口(18脚):P1.0P1.7统称为P1口,可作为双向I/O口使用。

P2口(2128脚):P2.0P2.7统称为P2口,一般可作为双向I/O口使用;在扩展片外存储器时,P2口用作高8位地址总线。

P3口(1017脚):P3.0P3.7统称为P3口。除作为准双向I/0口使用外,还可以将每一位用于第二功能。

P3口    第二功能
P3.0    RXD 串行口输入端
P3.1    TXD 串行口输出端
P3.2    INTO 外部中断0请求输入端,低电平有效
P3.3    INT1 外部中断1请求输入端,低电平有效
P3.4    T0定时/计数器0外部计数脉冲输入端
P3.5    T1定时/计数器0外部计数脉冲输入端
P3.6    WR 外部数据存储器写信号,低电平有效
P3.7    RD外部数据存储器读信号,低电平有效
二、控制线
ALE(Adress Lock Enable (30脚):地址锁存信号输出端。
PSEN(Peripherals Select Enable)(29脚):片外程序存储器读选通信号输出端。
RST(Reset)(9脚):当单片机振荡器工作时,该引脚上出现持续10 ms以上的高电平,就可实现复位操作,使单片机回复到初始状态。
EA (31脚):EA为片外程序存储器选用端。该引脚低电平时,选用片外程序存储器,高电平或悬空时选用片内程序存储器。
三、主电源引脚
VCC(40脚):接+5V电源。
GND(20脚):接地。
 

3.1 数据类型:

因为51单片机是8位的,所以他的数据类型一般用unsigned char 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Javascript】json

目录 什么是json? 书写格式 json 序列化和反序列化 序列化 反序列化 什么是json? JSON(JavaScript Object Notation)是⼀种轻量级的数据交换格式,它基于JavaScript的⼀个⼦集,易于⼈的编写和阅读,也易于机器解析…

如何绘制【逻辑回归】中threshold参数的学习曲线

threshold参数的意义是通过筛选掉低于threshold的参数,来对逻辑回归的特征进行降维。 首先导入相应的模块: from sklearn.linear_model import LogisticRegression as LR from sklearn.datasets import load_breast_cancer from sklearn.model_selecti…

Qt之自定义QStringListModel设置背景色和前景色

一.效果 二.实现 QStringListModel里只实现了Qt::EditRole和Qt::DisplayRole,不能直接设置背景色和前景色,所以我们要继承QStringListModel,重写其中的data和setData方法,使其支持Qt::ForegroundRole和Qt::BackgroundRole。 QHStringListModel.h #ifndef QHSTRINGLISTMO…

微信小程序设计之主体文件app-ts/js

一、新建一个项目 首先,下载微信小程序开发工具,具体下载方式可以参考文章《微信小程序开发者工具下载》。 然后,注册小程序账号,具体注册方法,可以参考文章《微信小程序个人账号申请和配置详细教程》。 在得到了测…

数据结构—线性表(下)

文章目录 6.线性表(下)(4).栈与队列的定义和ADT#1.ADT#2.栈的基本实现#3.队列的形式#4.队列的几种实现 (5).栈与队列的应用#1.栈的应用i.后缀表达式求值ii.中缀表达式转后缀表达式 #2.队列的应用 (6).线性表的其他存储方式#1.索引存储#2.哈希存储i.什么是哈希存储ii.碰撞了怎么…

大数据Flink(一百零二):SQL 聚合函数(Aggregate Function)

文章目录 SQL 聚合函数(Aggregate Function) SQL 聚合函数(Aggregate Function) Python UDAF,即 Python AggregateFunction。Python UDAF 用来针对一组数据进行聚合运算,比如同一个 window 下的多条数据、或者同一个 key 下的多条数据等。针对同一组输入数据,Python A…

33基于MATLAB的对RGB图像实现中值滤波,均值滤波,维纳滤波。程序已通过调试,可直接运行。

基于MATLAB的对RGB图像实现中值滤波,均值滤波,维纳滤波。程序已通过调试,可直接运行。 33 MATLAB、图像处理、维纳滤波 (xiaohongshu.com)

idea 基础设置

1、设置 IDEA 主题 2、自动导包和优化多余的包 3、同一个包下的类,超过指定个数的时候,导包合并为* 4、显示行号 , 方法和方法间的分隔符: 5、忽略大小写,进行提示 6、多个类不隐藏,多行显示 7、设置默认的…

设计模式(12)状态模式

参考【设计模式】用Java实现状态模式_java 状态模式_卷帘的博客-CSDN博客 一、介绍: 1、状态模式:是一种行为设计模式,它允许对象在内部状态发生改变时改变其行为。该模式将对象的行为包装在不同的状态类中,使得对象的行为可以根…

利用Nginx通过内网穿透实现Windows Web多站点远程访问

文章目录 1. 下载windows版Nginx2. 配置Nginx3. 测试局域网访问4. cpolar内网穿透5. 测试公网访问6. 配置固定二级子域名7. 测试访问公网固定二级子域名 1. 下载windows版Nginx 进入官方网站(http://nginx.org/en/download.html)下载windows版的nginx 下载好后解压进入nginx目…

threejs(4)-纹理材质高级操作

一、纹理重复_缩放_旋转_位移操作 // 导入threejs import * as THREE from "three"; // 导入轨道控制器 import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js"; // 导入lil.gui import { GUI } from "three/examples/jsm/l…

软考高级系统架构师冲关预测

[ – 2023年10月27日 – ] 去年11月通过了软考高级系统架构师的考试,原本想立即分享下过关的总结回顾,但是随着软考新版大纲及教程的发布,也意味着题目及内容的复盘总结经验便不那么适用。在即将迎来今年的软考高架的时候,想着透…