IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 单片机复习 -> 正文阅读

[嵌入式]单片机复习

一、单片机介绍

  • 定义

  • 概念

    • 在一片集成电路芯片上集成微处理器存储器I/O接口电路,从而构成了单芯片微型计算机,即单片机(SingleChip Microcomputer)
  • 特点

    • 体积小、价格低
    • 速度快、抗干扰好、可靠性高
    • 控制功能强:实时响应速度 + I/O直接操作
    • 使用方便、易扩展:硬件设计简单 + 开发工具资料丰富
    • 性价比高:电路板小 + 接插件少
    • 易产品化:研制周期短
    • 受集成度限制,片内存储器容量较小:一般片内ROM在8KB以下,片内RAM在256B字节内
  • 单片机应用=硬件设计 + 软件程序设计

二、结构与原理

外部引脚图

image-20210909082039396

注意上图中所有引脚的位置,需要熟记,并且其第二功能也应熟记。

  • I/O端口引脚,如P0,P1,P2,P3,4组8位并行I/O端口(32个)
  • 电源和时钟引脚,如Vcc,GND,XTAL1,XTAL2(4个)
  • 编程控制引脚,如RST(复位引脚)/VPD(备用电源输入),PSEN,ALE/PROG,EA/Vpp(4个)
  • Vcc(第40脚)为电源正端
  • GND或Vss(第20脚)为接地端
  • Vcc典型值值为+5V,最低3.3V
  • XTAL1 ( 第 19 脚 ) 、 XTAL2 (第18脚)为外接时钟引脚.XTAL1为片内振荡电路输入端,XTAL2为内振荡电路输出端
  • PSEN(第29脚)为外部ROM程序存储器的读选通信号端(不常用到)
  • ALE/PROG(30脚)为地址锁存信号输出端/EPROM编程脉冲输入端(少用到)
    • P0处出现的是数据,则该口置0.若出现的是地址,则置为1
  • EA/Vpp(第31脚)为内部/外 部ROM存储器选择端。高电平先读内部存储器,若有外部rom则自动读外部;低电平读外部ROM。一般都接高电平
  • 8051时钟有两种方式:第一种是片内时钟振荡方式;第二种是外部时钟方式

++++++++++++++++++++++++++++++++++

  • P0(0.0-0.7):双向8位三态I/O端口,每个端口或引脚可独立控制,其为高阻态时不能正常输出高/低电平(外接上拉电阻)。P0端口的第二功能访问外部RAM/ROM,分时发送低8位地址或读写数据
  • P1(1.0-1.7): 准双向8位通用I/0口,每个引脚可独立控制(内带上拉电阻).准双向IO口。第二功能,编程/校验8751时,接收低八位地址信号
  • P2(2.0-2.7):准双向8位I/0口,每个引脚可独立控制(有内置上拉电阻)。其第二功能:访问外部RAM/ROM,分时发送高8位地址或读写数据;编程/校验8751时,接收高四位地址/控制信号
  • P3(3.0-3.7):准双向8位多用途I/0口,每个引脚可独立控制(内带上拉电阻)。第一功能同P1作普通I/O口。
image-20211022160035481

CPU时序

image-20211022104114588
  • 启动单片机后,指令经过取指令->分析->执行->取指令 这样的顺序执行。一个指令周期即从取指令到执行的所需时间
image-20211022105145003

最简系统

  • 最简系统:使用最少的外围元器件让单片机能够工作的电路

  • 最简单片机系统是所有单片机系统的基础,即任何单片机系统都离不开这个最简系统

总线

  • 锁存器与总线之间的关系
image-20211022160308564

读锁存器、内部总线、写锁存器、读管脚

  • 总线(BUS):计算机各部件之间传送信息的公共通道
  • 有内部总线和外部总线之分,内部总线是CPU内部之间的连线,外部总线则是CPU与其他部件之间的连线
  • 外部总线:数据总线DB、地址总线AB、控制总线CB
image-20211022161848932

内部单元

  1. 中央处理单元CPU(8位)
    • 用于数据处理、位操作(位测试、置位、复位)
  2. 只读存储器ROM(4KB)
    • 用于永久性存储应用程序,掩膜ROM、EPROM、EEPROM、Flash Memory(闪存)
  3. 随机存取存取器RAM(256B)
    • 用于程序运行中存储工作变量和数据
  4. 并行输入/输出口 I / O(32线)
    • 用作系统总线、扩展外存、I / O接口芯片
  5. 串行输入/输出口 UART (二线)
    • 串行通信、扩展I / O接口芯片
  6. 定时/计数器 T(16位增量可编程)
    • 它与CPU之间各自独立工作,当它计数满时向CPU中断
  7. 时钟电路 fosc
    • 分为内部振荡器、外接振荡电路
  8. 中断系统
    • 五源中断、两级优先,可编程进行控制

三、存储器与组织

存储空间

  • 51单片机存储空间划分:

    1. 片内ROM程序存储器4KB (地址为:0000—0FFFH)
    2. 片外ROM程序存储器60KB(地址为:1000—0FFFFH)
    3. 片内RAM数据存储器256B(地址为:00—0FFH)。它分为前128字节和后128字节。前128可位寻址,后128位为特殊功能寄存器
    4. 片外RAM数据存储器,容量最大可扩展到64KB
  • RAM

    1. 片内RAM数据存储器前128B可分成三个部分:工作寄存器区、位寻址区、堆栈或数据缓冲区
    2. image-20211024152901169
    3. 重要它前128字节的组成
    image-20211024153034107

PSW程序状态字

image-20211024153411868

上电默认的工作寄存器组别是第0组,通过修改PSW中的PS0和PS1改变工作寄存器组别

  • 堆栈指针SP

image-20211024154934951

特殊功能寄存器SFR

Special Function Register

  • 每个特殊功能寄存器长度都是1个字节(8位)
  • image-20211024155304841

四、单片机定时器/计数器

TMOD(Timer模式控制寄存器)

image-20211024155946191 image-20211024160132974

注意右侧的说明中的内容

重要例题

image-20211024160352324

TCON

image-20211024160631673

工作模式0的初值的计算

  • 模式0下Timer寄存器只有13位
image-20211028122625643 image-20211028123003884
  • 例题
image-20211028123506631 image-20211028123538453

工作模式1的计算

  • 工作模式1下的Timer是一个16位的定时器或计时器
image-20211028123840331 image-20211028123921114 image-20211028123951224

工作模式2的计算

一个具有自动重新载入功能的8位定时器或计数器。

image-20211028124252798 image-20211028124312154

定时器/计数器的初始化

  • 步骤:
  1. 设置TMOD,确定T0与T1工作模式
  2. 计算并装入初值(THx+TLx)
  3. 根据需要设置中断(IE、IP)
  4. 启动计数器(对TCON编程)

上面的步骤没有顺序要求

五、中断系统

中断的概念

  • 中断发生:CPU在运行处理某一事件A时,发生了另一事件B,请求CPU迅速转去处理

  • 中断响应和中断服务:CPU暂时中断当前的工作,转去处理事件B

  • 中断返回:待CPU将事件B处理完毕后,再回到原来事件A被中

    断的代码处继续执行处理事件A

  • 以上的整个过程称为中断

中断的优点

  1. 分时操作:CPU可以分时为多个I/O设备服务,提高了计算机的利用率
  2. 实时响应:CPU能够及时处理应用系统的随机事件(顺序编程难以处理),系统的实时性大大增强(以硬件为代价)
  3. 可靠性高

中断向量表

image-20211028190743015

定时器控制寄存器(TCON 88H)

image-20211028190857809

串行口控制寄存器(SCON 98H)

image-20211028190955346

中断响应及处理

注意它的一个概念

image-20211028191121329

中断允许寄存器(IE A8H)

image-20211028191235779 image-20211028191405462

中断优先级的原则

  • CPU同时接收到几个中断时,首先响应优先级别最高的中断请求
  • 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断
  • 正在进行的低优先级中断服务,能被高优先级中断请求所中断

中断控制

image-20211028191711433 image-20211028191738665

中断优先级控制寄存器IP

  • 寄存器IP 位于特殊功能寄存器区的地址B8H上,是专门用于设置单片机中断优先级的寄存器
image-20211028191958286 image-20211028192050011

中断响应条件

  • 有中断源发出中断请求
  • 中断总控允许位EA=1,即CPU开中断
  • 申请中断的中断源的中断允许位为1,即没有被屏蔽
  • 以上三条同时满足,CPU才可能响应中断

利用Timer中断作信号发生器

image-20211028192324503

注意下面的例子

image-20211028192346757

六、串行通信

串行通信的特点

  • 传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂

奇偶校验

image-20211028212410160

并行通信的特点

  • 控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难

异步通信的特点

  • 异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程
  • 特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高

波特率

  • 串行口1秒传输1024个字节,则数据传输率为1024Bps,即1KBps。单位Bps代表“字节/秒”(Bytesper second) ? 更小的单位的是bps,即“位/秒”(bits per second)
  • 广泛使用的描述数据传输率的物理量是波特率,对应的单位为波特
image-20211028212807959

串行口控制寄存器SCON

image-20211028212937531

背会上面两张表!!!

SM2多机通信控制位

image-20211029144343698 image-20211029144404069 image-20211029144422776 image-20211029144447941

上面的流程图!!!以及前面的也了解一下

波特率的计算

image-20211029144847792 image-20211029144928923 image-20211029144951410 image-20211029145050741 image-20211029145107279

上面例题类型一定注意!!!

image-20211029145236839

双机通信应用

image-20211029145402775

image-20211029145520896

image-20211029145544385

七、C51语言编程

概述

image-20211029145817930

如何确定编程语言

image-20211029145856277

特殊数据类型

image-20211029145950957 image-20211029150032808

位变量禁忌

image-20211029150130726

位变量与整形变量的对应关系

image-20211029150308490

注意它们的对应关系

sbit、bit和位域区别

image-20211029150405724

指针

通用指针和具体指针

image-20211029150508944 image-20211029150526221

填空时的指针类型

image-20211029150636297

左右两边应该可以熟悉变换!!!!!

image-20211029150806776

中断函数遵循的原则

image-20211029150936023

串行通信程序举例

image-20211029151017603
  • 查询方式发送程序
image-20211029151057345
  • 查询方式接收程序
image-20211029151113258
  • 中断方式发送主程序
image-20211029151157375
  • 中断方式发送中断服务程序
image-20211029151229313
  • 中断方式接收主程序
image-20211029151256110
  • 中断方式接收中断服务程序
image-20211029151333781

八、汇编指令

汇编的六种寻址方式

  • 立即寻址
  • 直接寻址
  • 寄存器寻址
  • 间接寻址
  • 变址寻址
  • 寄存器特征寻址

注意给出指令做出是否正确的判断

image-20211029152010850

数据传送类指令

image-20211029152100152

算数运算指令

image-20211029152152338 image-20211029152224327 image-20211029152250113 image-20211029152315254

逻辑运算指令

与操作

image-20211029152525976

异或操作

image-20211029152608601

+++++++++++++++++++++++++++++++

image-20211029152719137 image-20211029152840879 image-20211029152903285

布尔指令

image-20211029152943746

控制转移类指令

image-20211029153039964 image-20211029153100426 image-20211029153123949 image-20211029153203007 image-20211029153242099

上题为阅读题

image-20211029153334615

汇编、目标程序的对应转换

image-20211029153424987

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-11-12 19:45:23  更:2021-11-12 19:47:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:54:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码