精华内容
下载资源
问答
  • 单片机数字钟设计 单片机数字钟设计,原理图,系统框图,程序
  • 单片机基础-第一个单片机系统

    千次阅读 多人点赞 2020-05-14 10:17:11
    单片机基础-第一个单片机系统 简单的单片机系统 构成单片机系统——单片机+外围器件 如果把单片机和外围器件组合起来,实现一定的功能,那我们就称单片机和外围器件组成了单片机系统。 如何控制一个发光...

    没写完。

    目录

    51单片机应用从0开始

    第一章单片机基本概念

    定义

    把中央处理器CPU(Central Processing Unit)、存储器(Memory)、定时器/计数器、中断、输入/输出I/O(Input/Output)接口电路等功能部件集成在一块集成电路芯片上的微型计算机。
    基本概念

    单片机的功能部件

    中央处理器CPU

    计算机的核心部件 由运算器和控制器组成 主要完成计算机的运算和控制功能

    1. 运算器——中央处理器CPU

    - 算术逻辑单元ALU 
    - 累加器ACC(Accumulator) 
    - 寄存器B 
    - 程序状态字PSW(Programe State Word)
    

    PSW👇 在这里插入图片描述在这里插入图片描述
    RS1、 RS0与片内工作寄存器组的对应关系👇
    RS1、 RS0与片内工作寄存器组的对应关系

    2. 控制器——中央处理器CPU

    • 时钟电路
      • (a)内部时钟电路
      • (b)外部振荡源
        在这里插入图片描述
    • 复位电路
      • (a)上电复位电路
      • (b)开关复位电路
        在这里插入图片描述
      • 复位后内部寄存器状态
        在这里插入图片描述

    3. 指令寄存器和指令译码器——中央处理器CPU

    指令寄存器中存放指令代码。CPU执行指令时, 由程序存储器中读取的指令代码送入指令存储器, 经译码器译码后由定时与控制电路发出相应的控制信号, 完成指令所指定的操作。

    4. 程序计数器PC(Program Counter)

    PC用于存放CPU下一条要执行的指令地址, 是一个 16 位的专用寄存器, 可寻址范围是0000H~0FFFFH共 64 KB。 程序中的每条指令存放在ROM区的某一单元, 并都有自己的存放地址。 CPU 要执行哪条指令时, 就把该条指令所在 的单元的地址送上地址总线。 在顺序执行程序中, 当PC的 内容被送到地址总线后, 会自动加 1, 即(PC)← (PC)+1, 又指向CPU下一条要执行的指令地址。

    5. 堆栈指针SP(Stack Pointer)——中央处理器CPU

    堆栈操作是在内存RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一种工作方式, 主要用于子程序调用及返回和中断处理断点的保护及返回, 它在完成子程序嵌套和多重中断处理中是必不可少的。为保证逐级正确返回, 进入栈区的“断点”数据应遵循“先进后出”的原则。SP用 来指示堆栈所处的位置, 在进行操作之前, 先用指令给SP赋值, 以规定栈区在RAM区的起始地址(栈底层)。当数据推入栈 区后, SP的值也自动随之变化。MCS - 51 系统复位后, SP初始化为07H

    6. 数据指针寄存器DPTR——中央处理器CPU

    数据指针DPTR是一个 16 位的专用寄存器, 其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。既可作为一个 16 位寄存器DPTR来处理, 也可作为两个独立的 8 位寄存器DPH和DPL来处理。
    DPTR 主要用来存放 16 位地址, 当对 64 KB外部数据存储器空间寻址时, 作为间址寄存器用。在访问程序存储器时, 用作基址寄存器。

    存储器

    具有记忆功能的电子部件,分为程序存储器和数据存储器两类
    程序存储器:存储程序、表格等相对固定的信息
    数据存储器:存储程序运行期间所用到的数据信息

    1. 程序存储器ROM

    • 对于8051来说, 程序存储器(ROM)的内部地址为0000H~0FFFH, 共 4 KB; 外部地址为 1000H~FFFFH, 共 60 KB。 当程序计数器由内部 0FFFH执行到外部 1000H 时, 会自动跳转。 对于 8751 来说, 内部有 4 KB的EPROM, 将它作为内部程序存 储器; 8031 内部无程序存储器, 必须外接程序存储器。 8031 最多可外扩 64 KB程序存储器, 其中 6 个单元地址具有特殊用途, 是保留给系统使用的。0000H是系统的启动地址, 一般在该单元中存放一条绝对跳转指令。0003H、000BH、 000BH、001BH和 0023H对应 5 种中断源的中断服务入口地址。

    2. 内部数据存储器

    • MCS-51 单片机片内RAM的配置如下图所示。片内RAM为 256 字节, 地址范围为00H~FFH, 分为两大部分: 低 128 字节(00H~7FH)为真正的RAM区; 高 128 字节 (80H~FFH)为特殊功能寄存器区SFR。 在低 128 字节RAM中, 00H~1FH共 32 单元是 4 个通用
      工作寄存器区。每一个区有 8 个通用寄存器R0~R7。寄存器和RAM地址对应关系如表 。
      寄存器与RAM 地址对照表👇在这里插入图片描述
      RAM中的位寻址区地址表👇
      在这里插入图片描述
      SFR特殊功能寄存器地址表1👇
      在这里插入图片描述
      SFR特殊功能寄存器地址表2👇
      在这里插入图片描述
      SFR特殊功能寄存器地址表3👇在这里插入图片描述

    3. 外部数据存储器

    外部数据存储器一般由静态RAM构成,其容量大小由用户根据需要而定, 最大可扩展到 64 KB RAM , 地址是 0000H~0FFFFH。 CPU通过MOVX指令访问外部数据存储器, 用间接寻址方式, R0、R1和 DPTR都可作间接寄存器。注意, 外部RAM和扩展的I/O接口是统一编址的, 所有的外扩I/O 口都要占用 64 KB中的地址单元。

    并行输入/输出接口

    CPU与相应的I/O设备(如: 键盘、鼠标、显示器、打印机等)进行信息交换的桥梁,
    主要功能是协调、匹配CPU与外设的工作

    1. P0口

    P0 口内部一位结构图👇在这里插入图片描述

    2. P1、P2和P3口

    P1、P2 和P3 口为准双向口, 在内部差别不大, 但使用功能有所不同。
    P1口是用户专用 8 位准双向I/O口, 具有通用输入/输出功能, 每一位都能独立地设定为输入或输出。当有输出方式变为输入 方式时, 该位的锁存器必须写入“1”, 然后才能进入输入操作。
    P2口是 8 位准双向I/O口。外接I/O设备时, 可作为扩展系统的地址总线, 输出高8位地址, 与P0 口一起组成 16 位地址总线。 对于 8031 而言, P2 口一般只作为地址总线使用, 而不作为I/O线 直接与外部设备相连。
    P3口的第二功能👇
    在这里插入图片描述
    单片机的引脚及其功能👇

    • (a) 管脚图;
    • (b) 8031 引脚功能分类
    • 在这里插入图片描述

    串行口

    实现单片机和其他设备之间的串行数据传送
    即可作为全双工异步通用收发器使用,又可作为同步移位寄存器使用。

    定时器/计数器

    用于实现定时或计数功能
    并以其定时或计数结果对操作对象进行控制

    中断控制系统

    为满足各种实时控制的需要而设置
    是重要的输入输出方式
    8051单片机中有5个中断源,可分为高级和低级两个优先级别。

    时钟电路

    主要由振荡器和分频器组成
    为系统各工作部件提供时间基准
    串口、中断、定时/计数是单片机重要的内部资源
    为CPU控制外部设备、实现信息交流提供了强有力的支持

    1. 机器周期和指令周期——单片机工作的基本时序

    -(1)振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期。
    -(2)状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。
    -(3)机器周期: 一个机器周期包含 6 个状态周期S1~S6, 也就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个独立的操作。
    -(4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS 51 系统中, 有单周期指令、双周期指令和四周期指令。

    2. MCS - 51 指令的取指/执行时序

    在这里插入图片描述

    3. 访问外部ROM和RAM的时序

    读外部程序ROM时序👇
    在这里插入图片描述
    读外部数据RAM时序 👇
    在这里插入图片描述
    写外部数据RAM的时序👇
    在这里插入图片描述

    总线

    计算机各工作部件之间传送信息的公共通道
    按功能可分为

    • 数据总线DB(Data Bus)
    • 地址总线 AB(Address Bus)
    • 控制总线 CB(Control Bus)
      三类分别传送数据信息、地址信息和控制信息

    总结_MCS -51单片机硬件结构&MCS - 51单片机的内部结构

    在这里插入图片描述

    特点

    - 严格区分ROM和RAM

     - 程序存储器(ROM)只存放程序、固定常数及数据表格
     - 数据存储器(RAM)用作工作区及存放用户数据
     - 小容量的数据存储器能以高速RAM形式集成在单片机内,以 加速单片机的执行速度
    

    - 采用面向控制的指令系统

    - 为满足控制的需要,单片机有强大的逻辑控制能力,特别是 具有很强的位处理能力。
    

    - I/O引脚通常为多功能

    - 引脚处于何种功能,可由指令来设置或由机器状态来区分 
    - 解决实际引脚数和需要的信号线的矛盾
    

    - 外部扩展能力强

    - 在内部的各种功能部件不能满足应用需要时,均可在外部进 行扩展
    - (如扩展ROM、RAM,I/O接口,定时器/计数器, 中断系统等)
    - 与许多通用的微机接口芯片兼容 
    - 给应用系统设计带来极大的方便和灵活性。
    

    - 结构功能优化

    - 能方便灵活地组成各种智能测控仪器仪表和设备
    

    - 可靠性高

    - 单片机芯片按工业测校环境要求设计 
    - 产品在120°C温度条件下经44小时老化处理,并通 过电气测试及最终质量检验
    - 可以适应各种恶劣的工作环境。
    


    第二章 MCS-51单片机的指令系统

    1. 指令系统定义

    • 指令是规定计算机完成一个特定功能的命令 • MCS-51单片机设有传送、算术运算、逻辑运算、控制转移、位操作共5 类111条指令
    • 用户可以通过立即寻址、寄存器寻址、寄存器间接寻址、直接寻址、变址 寻址、相对寻址、位寻址等7种寻址方式规定操作数
    • 深入理解不同寻址方式的特点及功能,全面掌握各条指令的格式、功能及 使用方法是灵活运用指令系统的关键。

    2. 单片机指令

    2.1MCS-51单片机指令——分类

    2.1.1 按指令所占的字节数

    • 单字节指令(49条)
    • 双字节指令(46条)
    • 三字节指令(16条)

    2.1.2 按指令的执行时间

    • 单周期指令(65条)
    • 双周期指令(44条)
    • 四周期指令(2条)

    2.1.3 按指令的功能

    • 数据传送类指令(29条)
    • 算术运算类指令(24条)
    • 逻辑运算类指令(24条)
    • 控制转移类指令(17条)
    • 位操作类指令(17条)

    2.2 MCS-51单片机指令——格式

    [标号: ] 操作码助记符 [目的操作数][, 源操作数] [;注释]
    【例】AA: ADD A, #10H ;将累加器A的内容与10H相加,结果存入累加器A

    • AA为标号,是这条指令的标志,其值是该条指令的首地址
    • ADD为操作码,说明要进行加法运算
    • 目的操作数为累加器A,源操作数为#10H
    • “;”后面为注释部分

    2.3 单片机指令——常用符号

    为清晰准确地表述指令的格式及功能,下面对MCS-51单片机指令中常用的符号作一些规定:

    1. A(ACC):累加器
    2. B:专用寄存器,用于乘法和除法指令中
    3. C:进位标志或进位位,或布尔处理机中的累加位(器)
    4. DPTR:数据指针,可用作16位地址寄存器
    5. Rn(n=07):当前寄存器组的8个工作寄存器R0R7,由PSW中的 RS1、RS0决定当前使用的寄存器组。
    6. Ri(i=0或1):可用于间接寻址的两个寄存器R0、R1
    7. #data:8位立即数,即出现在指令中直接参与操作的操作数
    8. #data16:16位立即数
    9. rel:以补码形式表示的8位相对偏移量,范围为-128~127,主要用在相对寻址的指令中
    10. addr16和addr11:分别表示16位直接地址和11位直接地址,即存放操作数的存储器地址。
    11. direct:表示内部数据存贮器单元的地址或特殊功能寄存器SFR的地址, 对SFR而言,既可使用它的物理地址,也可直接使用它的名字。
    12. @:间接寻址中工作寄存器的前缀符号
    13. (X) :X单元中的内容
    14. bit :表示内部RAM和SFR中的某些具有位寻址功能的位地址。SFR中的 位地址可以直接出现在指令中,为了阅读方便,往往也可用SFR的名字和 所在的数位表示。如:表示PSW中的奇偶校验位,可写成D0H,也可写 成PSW.0的形式。
    15. ((X)) :以X单元的内容为地址的存储器单元内容,即(X)作地址,该地址 单元的内容用((X))表示。
    16. $:当前指令的地址
    17. / :对该位操作数取反,但不影响该位的原值
    18. →:表示操作流程,将箭尾一方的内容送入箭头所指的另一方单元中

    3. 寻址方式

    3.1 MCS-51单片机寻址方式——立即寻址

    • 定义:指操作数包括在指令字节中,紧跟在操作码的后面,作为指令的一 部分与操作码一起存放在程序存储器中,可以立即得到并执行,不需要经 过别的途径去寻找,故称为立即寻址。
    • 汇编指令中,在一个数的前面冠以"#"符号作为前缀,就表示该操作数为立即数。
    • 【例】==MOV A, #52H ;A←52H ==
      • MOV DPTR, #5678H ;DPTR←5678H
    • 在这里插入图片描述

    3.2 寻址方式——寄存器寻址

    • 定义:指令指定寄存器的名字,寄存器的内容为操作数
      • 【例】MOV A, R0 ;A← (R0)
      • 该指令的功能是把源寄存器R0中的内容传送到累加器A中,如R0中的 内容为30H,则执行该指令后A的内容也为30H。
      • 可用于寄存器寻址的寄存器有: • 四组工作寄存器R0~R7共32个,但每次只能使用当前寄存器组中的8 个。
      • 部分特殊功能寄存器A、B、DPTR等。

    3.3 寻址方式——寄存器间接寻址

    • 规定如下:
      • 片内基本RAM的低128B、高128B,间接用Ri,即@R1, @R0
      • 片外RAM(64KB):间接用DPTR,即@DPTR
      • 片外扩展RAM:若小于256B,可用@DPTR或@R1, @R0,若大于256字 节,间接用DPTR,即@DPTR
      • 注意:寄存器间接寻址方式不能用于对特殊功能寄存器SFR的寻址
      • 【例】MOV DPTR, #3456H ;DPTR ←3456H
        MOVX A, @DPTR ;A ←((DPTR))
      • 是把DPTR寄存器的作为地址单元,从这个地址单元中取出内容传送给A, 假设(3456H)=99H,指令运行后(A)=99H。

    3.4 寻址方式——直接寻址

    • 指令中直接给出操作数的存储器地址,操作数在存储器中。
    • 【例】MOV A, 52H ;A←(52H)
    • 在这里插入图片描述
      指令中52H为操作数的存储器地址
      该指令的功能是把片内RAM地址为52H单元的内容送到A中,A的地址是E0H
      该指令的机器码为E5H 52H。

    3.5 寻址方式——变址寻址

    变址寻址指令具有以下三个特点:

    1. 指令操作码内隐含有作为基地址寄存器用的数据指针DPTR或程序计数器PC,其中DPTR或PC中应预先存放有操作数的相应基地址。
    2. 指令操作码内也含有累加器A,累加器A中应预先存放有被寻址操作数地址对基地址的偏移量,该地址偏移量应是一个00H~0FFH范围内的无符号数。
    3. 在执行变址寻址指令时,单片机先把基地址和地址偏移量相加,以形成操作数的有效地址。
    • MCS-51单片机共有三条变址指令

    • MOVC A, @A+PC ;A←((A)+(PC))

    • MOVC A, @A+DPTR ;A←((A)+(DPTR))

    • JMP @A+DPTR ;PC←(A)+(DPTR)

    • 前两条指令是在程序存储器中取操作数

    • 第三条指令是要获得程序的跳转地址,实现程序的转移。

    • 【例】MOV A, #22H

    • MOV DPTR, #63A0H

    • MOV A, @A+DPTR ;A←((A)+(DPTR))

    • 在这里插入图片描述

    3.6 寻址方式——相对寻址

    • 相对寻址以程序计数器PC的当前值作为基地址,与指令中给出的相对偏移量rel进行相加,把所得之和作为程序的转移地址。
    • 使用时注意以下两点
    1. ==当前PC值是指相对转移指令的存储地址加上该指令的字节数 ==
      【例】JZ rel 是一条累加器A为零就转移的双字节指令。**若该指令的存储地址为2050H,则执行该指令时的当前PC值即为2052H。**即当前PC值是相对转移指令取指结束时的值。
    2. 偏移量rel是有符号的单字节数,以补码表示,其取值范围是-128~+127 (00H~FFH)。**负数表示从当前地址向地址小的方向转移,正数表示从当前地址向地址大的方向转移。**所以,相对转移指令满足条件后,转移的目标地址为:
      目标地址 = 当前PC值 + rel = 指令存储地址 + 指令字节数 + rel
      【例】SJMP 08H ;PC←PC+2+08H
      • 这是一条转移指令,设PC当前值=2000H,PC+2=2002H因此程序转向(PC)+2+rel=2000H+2+08H =200AH单元。
      在这里插入图片描述

    3.7 寻址方式——位寻址

    为了使程序设计方便,MCS-51指令系统提供了多种位地址的表示方式,可归纳为4种形式:

    1. 直接使用位地址
      【例】MOV C, 0D5H ;将PSW的位5(位地址D5H)的状态送进位标志位。
    2. 单元地址加位序号的形式
      【例】MOV C, 0D0H.5 ;将PSW(单元地址0D0H)的位5(位地址D5H)的状态送进位标志位。
    3. 特殊功能寄存器符号加位序号的形式
      【例】MOV C, PSW.5 ;将PSW的位5的状态送进位标志位。
    4. 位名称表示形式
      【例】MOV C, F0 ;将PSW的位5(位地址D5H、位名称为F0)的状态送进位标志位。

    3.8 寻址方式总结

    • 寻址方式与寻址空间的关系
      在这里插入图片描述
    • 寻址方式与存储空间的关系
      在这里插入图片描述

    4. 数据传送类指令

    • 数据传送类指令用到的助记符有:MOV,MOVX,MOVC,XCH, XCHD,PUSH,POP,SWAP
    • 一般格式:MOV [目的操作数], [源操作数]
    • 一般功能:目的操作数 ← 源操作数中的数据
    • 源操作数可以是:A、Rn、direct、@Ri、#data
    • 目的操作数可以是:A、Rn、direct、@Ri
    • 数据传送指令一般不影响标志,只有一种堆栈操作可能直接修改程序状态 字PSW。
    • 如果目的操作数为ACC,将会影响奇偶标志P。

    4.1 以累加器A为目的操作数的传送指令(4条)

    • 功能:把源操作数送到累加器A
    • 有直接、立即数、寄存器和寄存器间接寻址方式
      在这里插入图片描述
      【例】 设外部RAM(2023H)=0FH,执行以下程序段:
      MOV DPTR, #2023H ;DPTR←2023H
      MOVX A, @DPTR ;A←((DPTR))
      MOV 30H, A ;30H←(A)
      MOV A, #00H ;A←00H
      MOVX @DPTR, A 😭(DPTR))←(A)DPTR所指向的内容赋予00H
      程序段执行后,(DPTR)=2023H,(30H)=0FH, (A)=00H,(2023H)=00H,表示把片外RAM 2023H单元的内容0FH送到内部RAM的30H单 元,然后把外部RAM 2023H单元和累加器A清0。

    4.2 以寄存器Rn为目的操作数的传送指令(3条)

    • 功能:把源操作数送到所选定的工作寄存器Rn中
    • 有直接、立即数和寄存器寻址方式
    • 注意:没有
    • MOV Rn, Rn;
    • MOV Rn, @Ri;
    • MOV @Ri, Rn
      在这里插入图片描述
      【例】设内部RAM(30H)=40H,(40H)=10H,(10H)=00H,(P1)=0CAH,分析以下程序执行后,各单元、寄存器、P2口的内容。
      MOV R0, #30H ;R0←30H
      MOV A, @R0 ;A←((R0))
      MOV R1, A ;R1←(A)
      MOV B, @R1 ;B←((R1))
      MOV @R1, P1 😭(R1))←(P1)
      MOV P2, P1 ;P2←(P1)
      MOV 10H, #20H ;10H←20H
      执行上述指令后,(R0)=30H;(R1)=(A)=40H;(B)=10H; (40H)=(P1)=(P2)=0CAH;(10H)=20H。

    4.3 以直接地址为目的操作数的传送指令(5条) 

    • 功能:把源操作数送到由直接地址direct所选定的片内RAM中 
    • 有直接、立即、寄存器和寄存器间接4种寻址方式 
    • 注意:MOV direct1, direct2,翻译成机器码时,源地址在前,目的地址在后。;一般格式:MOV [目的操作数], [源操作数]
      在这里插入图片描述

    4.4 以间接地址为目的操作数的传送指令(3条) 

    • 功能:把源操作数送到以Ri中的内容为地址的片内RAM中 
    • 有直接、立即和寄存器3种寻址方式
      在这里插入图片描述

    4.5 查表指令(2条) 

    • 功能:对存放于程序存储器中的数据表格进行查找传送 
    • 使用变址寻址方式
      在这里插入图片描述
      【例】编一查表程序,将内部RAM40H单元内的数(0~9)的平方存入内 部RAM50H单元。先作一个0~9的平方表,存入TAB中。然后用查表指令 实现上述功能。
      MOV A, 40H ;40H单元的数送A
      MOV DPTR, #TAB ;DP
      MOVC A, @A+DPTR ;查表
      MOV 50H, A ;查表得到的平方值,存50HTR指向表头
      SJMP $ ;等待
      TAB: 0, 1, 4, 9, ……81

    4.6 累加器A与片外数据存储器的传送指令(4条) 

    • 这4条指令的功能是实现累加器A与片外RAM间的数据传送。使用寄存器寻址方式
      在这里插入图片描述

    4.7 堆栈操作指令(2条) 

    • 堆栈操作有进栈和出栈,即可以压入和弹出数据,常用于保存或恢复现场。 
    • 进栈指令:保存片内RAM单元(低128字节)或特殊功能寄存器SFR的内容 
    • 出栈指令:恢复片内RAM单元(低128字节)或特殊功能寄存器SFR的内容
      在这里插入图片描述
    • 单片机开机复位后,(SP)默认为07H,但一般都需要重新赋值,设置新的 SP首址。
    • 入栈的第一个数据必须存放于SP+1所指存储单元,故实际的堆栈底为SP 初值+1所指的存储单元。
    • 注意:对于累加器来说,在堆栈指令中只能用ACC,不能用A,属于直接寻址。
      【例】进入中断服务程序时,常把程序状态寄存器PSW、累加器A、数据指针DPTR进栈保护。
      设当前SP为60H。则程序段
      MOV SP, #60H
      PUSH PSW
      PUSH ACC
      PUSH DPL
      PUSH DPH
      执行后,SP内容修改为64H,而61H、 62H、63H、64H单元中依次存入 PSW、A、DPL、DPH的内容。
      在中断服务程序结束之前,用下列程序 段恢复数据。
      POP DPH
      POP DPL
      POP ACC
      POP PSW
      指令执行之后,SP内容修改为60H, 而64H、63H、62、61H单元的内容依次弹出到DPH、DPL、A、PSW中。
      保护数据时,进栈、出栈的次序一定要符合“先进后出”的原则。

    4.8 交换指令(5条)

    在这里插入图片描述
    在这里插入图片描述

    • 这条指令的功能是把16位常数送入数据指针寄存器。这也是唯一一条16 位数据传送指令。
    • 【例】设(R0)=30H,(A)=65H,(30H)=8FH,执行指令:
    • XCH A, @R0 ;(R0)=30H,(A)=8FH,(30H)=65H
    • XCHD A, @R0 ;(R0)=30H,(A)=6FH,(30H)=85H
    • SWAP A ;(A)=56H

    4.9 16位数据传送指令(1条)

    【例】将片内RAM30H单元与40H单元中的内容互换。

    • 方法1(直接地址传送法)
    • MOV 31H, 30H
    • MOV 30H, 40H
    • MOV 40H, 31H
    • SJMP $

    • 方法2(间接地址传送法)
    • MOV R0, #40H
    • MOV R1, #30H
    • MOV A, @R0
    • MOV B , @R1
    • MOV @R1, A
    • MOV @R0, B
    • SJMP $

    • 方法3(字节交换传送法)
    • MOV A, 30H
    • XCH A, 40H
    • MOV 30H, A
    • SJMP $

    • 方法4(堆栈传送法)
    • PUSH 30H
    • PUSH 40H
    • POP 30H
    • POP 40H
    • SJMP $

    5 算术运算类指令 

    • 算术运算指令共有24条 
    • 算术运算主要是执行加、减、乘、除法四则运算 
    • MCS-51指令系统中还有加1、减1操作及BCD码的运算调整 
    • 虽然MCS-51单片机的算术逻辑单元ALU仅能对8位无符号整数进行运算, 但利用进位标志C,则可进行多字节无符号整数的运算。同时利用溢出标志,还可以对带符号数进行补码运算。
    • 需要指出的是,除加1、减1指令外,这类指令一般都会对PSW有影响

    5.1 加法指令(4条)

    这4条指令的功能是把立即数,直接地址、工作寄存器及间接地址内容与累加器A中的内容相加,运算结果存在A中。
    在这里插入图片描述

    • 各标志位的形成方法 
    • 如果位7有进位输出,则置位进位标志CY,否则清CY; 
    • 如果位3有进位输出,则置位半进位标志AC,否则清AC; 
    • 如果位6有进位输出而位7没有,或者位7有进位输出而位6没有,则置位溢出标志OV,否则清OV,即OV=CY7⊕CY6。 
    • 若累加器A中1的个数为奇数,则P=1,否则,P=0。
    • 对于加法,溢出只能发生在两个加数符号相同的情况。在进行带符号数的加法运算时,溢出标志OV=1表示有溢出发生(即和大于+127或小于 ~128)。
    • 【例】设(A)=85H,(R1)=30H,(30H)=0AFH,执行指令:
    • ADD A,@R1
    • 1000 0101
      + 1010 1111
      1 0011 0100
      执行结果为:(A)=34H, CY=1, AC=1, OV=1, P=1

    5.2 带进位加法指令(4条)

    在这里插入图片描述

    5.3 带借位减法指令(4条)

    在这里插入图片描述

    • 在进行减法运算中,CY=1表示有借位,CY=0则无借位。

    • OV=1表明带符号数相减时,从一个正数减去一个负数结果为负数,或者 从一个负数中减去一个正数结果为正数的错误情况。

    • 在进行减法运算前,如果不知道借位标志位C的状态,则应先对CY进行清零操作。

    • 如果要进行不带借位减法,只需把CY先清零。

    • 【例】设(A)=0C9H, (R3)=54H, (CY)=1, 执行指令:SUBB A, R3
      1100 1001
      -0000 0001

      1100 1000

    • 0101 0100
      0111 0100
      结果:(A)=74H, Cy=0, AC=0, OV=1, P=0

    5.4 乘法指令(1条)

    在这里插入图片描述
    在乘法运算时,如果OV=1,说明乘积大于FFH,否则OV=0,但进位标志位CY总是等于0。
    【例】若(A)=80H=128, (B)=32H=50,执行指令: MUL AB
    结果:(B)=19H, (A)=00H, OV=1, CY=0

    5.5 除法指令(1条)

    在这里插入图片描述

    • 除法运算总是使进位标志位CY等于0
    • 如果OV=1,表明寄存器B中的内容为00H,那么执行结果为不确定值, 表示除法有溢出。
    • 【例】设(A)=0BFH,(B)=32H,执行指令: DIV AB
      结果: (A)=03H, (B)=29H, CY=0, OV=0

    5.5 除法指令(1条)

    在这里插入图片描述

    • 除法运算总是使进位标志位CY等于0
    • 如果OV=1,表明寄存器B中的内容为00H,那么执行结果为不确定值, 表示除法有溢出。
    • 【例】设(A)=0BFH,(B)=32H,
    • 执行指令: DIV AB
    • 结果: (A)=03H, (B)=29H, CY=0, OV=0

    5.6 加1指令(5条)

    在这里插入图片描述

    • 在INC direct指令中,如果直接地址是I/O口,其功能是先读入I/O锁存器的内容,然后在CPU进行加1操作,再输出到I/O口中,这就是“读— 修改—写”操作。
    • 加1指令不影响标志。如果原寄存器的内容为FFH,执行加1后,结果就会 是00H。但不会影响标志。

    5.7 减1指令(4条)

    在这里插入图片描述
    减1操作也不影响标志。若原寄存器的内容为00H,减1后为FFH,运算结 果不影响任何标志位。当直接地址是I/O口时,实现“读—修改—写” 操作。

    5.8 十进制调整指令(1条)

    在这里插入图片描述

    • 在进行BCD码运算时,这条指令总是跟在ADD或ADDC指令之后,其功能是对执行加法运算后存于累加器A中的结果进行调整。
    • 注意:只能用于加法运算
    • 【例】有两个BCD数36与45相加,结果应为BCD码81,程序如下:
    • MOV A, #36H
    • ADD A, #45H
    • DA A
      加法指令执行后得结果7BH;
      第三条指令对累加器A中的结构进行十进制调整,低4位(为0BH)大于9,因此要加6,最后得到调整的BCD码为81。

    6 逻辑操作指令

    6.1 清零指令(1条)

    在这里插入图片描述

    6.2 求反指令(1条)

    在这里插入图片描述

    6.3 循环移位指令(4条)

    在这里插入图片描述
    【例】
    MOV A, #04H ;(A)=04
    RL A ; (A)=08
    RR A ;(A)=04
    • 逻辑左移一位相当于乘2,逻辑右移一位相当于除2。

    6.4 逻辑与操作指令(6条)

    在这里插入图片描述

    6.4 逻辑或操作指令(6条)

    在这里插入图片描述

    6.5 逻辑异或操作指令(6条)

    在这里插入图片描述
    【例】利用逻辑运算指令,可以模拟各种硬件逻辑电路。
    如下图所示的组合逻辑电路,试编写一程序模拟其功能。设输入信号放在X、Y、Z单元中, 输出信号放在F单元。
    在这里插入图片描述
    • 参考程序如下:
    MOV A, X ;A ← (X)
    ANL A, Y ;A ← (A) ∧ (Y)
    MOV R1, A ;A内容暂存
    MOV A, Y ;A ← (Y)
    XRL A, Z ;A ← (Y) ⊕ (Z)
    CPL A ;A ← (Y) ⊕ (Z)
    ORL A, R1 ;得到输出
    MOV F, A ;存输出
    SJMP $

    7 控制转移类指令

    7.1无条件转移指令(4条)

    在这里插入图片描述

    7.2 条件转移指令(8条)

    在这里插入图片描述
    在这里插入图片描述
    【例】将外部数据RAM中的一个数据块传送到内部数据RAM中,两者的首地址分别为 DATA1和TATA2,遇到传送的数据为0时停止。
    解:外部RAM向内部RAM的数据传送一定要借助于累加器A,利用累加器判零转移指令正好可以判别是否要继续传送或者终止。
    MOV DPTR, #DATA1
    MOV R1, #DATA2
    LOOP: MOVX A, @DPTR HERE: JZ HERE
    MOV @R1, A INC DPTR
    INC R1 SJMP LOOP
    ;外部数据块首地址 ;内部数据块首地址 ;外部数据送给A ;为0则终止
    ;不为0传送内部RAM数据 ;修改地址指针 ;继续循环

    7.2 条件转移指令(8条)

    【例】将外部数据RAM中的一个数据块传送到内部数据RAM中,两者的首地址分别为 DATA1和TATA2,遇到传送的数据为0时停止。

    第5章MCS - 51单片机的中断

    5.1 中断的概述

    5.1.1. 中断

    中断是指计算机在执行某一程序的过程中, 由于计算机系统内、外的某种原因, 而必须中止原程序的执行, 转去执行相应的处理程序, 待处理结束之后, 再回来继续执行被中止的原程序的过程。采用了中断技术后的计算机, 可以解决CPU与外设之间速度匹配的问题, 使计算机可以及时处理系统中许多随机的参数和信息, 同时, 它也提高了计算机处理故障与应变的能力。

    5.1.2. 中断源

    中断源是指在计算机系统中向CPU发出中断请求的来源, 中断可以人为设定, 也可以是为响应突发性随机事件而 设置。通常有I/O设备、实时控制系统中的随机参数和信息 故障源等。

    5.1.3. 中断优先级

    中断优先级越高, 则响应优先权就越高。当CPU正在执行中断服务程序时, 又有中断优先级更高的中断申请产生, 这时CPU就会暂停当前的中断服务转而处理高级中断申请, 待高级中断处理程序完毕再返回原中断程序断点处继续执行, 这一过程称为中断嵌套。

    5.1.4. 中断响应的过程

    (1) 在每条指令结束后, 系统都自动检测中断请求信号, 如果有中断请求,且CPU处于开中断状态下, 则响应中断。
    (2) 保护现场, 在保护现场前, 一般要关中断, 以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。
    (3) 中断服务, 即为相应的中断源服务。
    (4) 恢复现场, 用堆栈指令将保护在堆栈中的数据弹出来, 在 恢复现场前要关中断, 以防止现场被破坏。在恢复现场后应及时开中断。
    (5) 返回, 此时 CPU将推入到堆栈的断点地址弹回到程序计数器, 从而使CPU继续执行刚才被中断的程序。

    5.2 MCS - 51中断系统

    图 MCS - 51中断系统结构框图👇
    在这里插入图片描述
    在INT0或INT1口输入一个信号(低电平或下降沿),就可以使单片机临时停下正在执行的程序,转去执行预先编内好、另外的程序。
    INT0:外部中断0触发方式控制位,1表示边沿触发,0表示电平触发;
    EX0:外部中断0允许位,1表示允许外部中断0的中断申请;
    ET0:定时/计数器0中断允许位,1表示允许定时/计数器0的溢出中断;
    IE0:外部中断0中断申请标志位,1表示有中断申请。
    IT0设置触发中断的方法:单片机中IT0=1——下降沿触发(边缘触发方法),IT0=0——低电平触发(电平触发方法)
    EA是总中断,开启总中断时只要用SETB EA将EA置1就行了。
    Px0=1高优先级中断;px0=0低优先级中断

    5.2.1 中断源

    表 8051 中断源
    在这里插入图片描述

    1. 特殊功能寄存器TCON中的标志👇在这里插入图片描述

    2. 特殊功能寄存器SCON
      在这里插入图片描述

    5.2.2 中断控制

    1. 中断允许控制 MCS - 51单片机有 5个(8052有 6个)中断源, 为了使每个中断源都能独立地被允许或禁止, 以便用户能灵活使用, 它在每个中断信号的通道中设置了一个中断屏蔽触发器。 只有该触发器无效, 它所对应的中断请求信号才能进入CPU, 即此类型中断开放。 否则, 即使其对应的中断标志位置 1, CPU也不会响应中断, 即此类型中断被屏蔽了。同时CPU内还设置了一个中断允许触发器, 它控制CPU能否响应中断。
      在这里插入图片描述
    2. 中断优先级
      在这里插入图片描述
      表 5.2 同级内第二优先级次序👇
      在这里插入图片描述
      例如, 某软件中对寄存器IE、 IP设置如下:
      MOV IE, # 8FH
      MOV IP, # 06H
      则此时该系统中:
    • CPU中断允许;
    • 允许外部中断 0、外部中断 1、定时器 /计数器 0、
    • 定时器 /计数器1提出的中断申请;
    • 允许中断源的中断优先次序为: 定时器 /计数器 0>外部中断 1>外部中断 0>定时器/计数器 1。

    5.2.3 中断响应

    1. 中断响应的条件
      (1)同级或高优先级的中断已在进行中;
      (2)当前的机器周期还不是正在执行指令的最后一个机器周期(换言之, 正在执行的指令完成前, 任何中断请求都得不到响应);
      (3)正在执行的是一条 RETI或者访问特殊功能寄存器IE或 IP的指令(换言之, 在 RETI或读写 IE或 IP之后, 不会马上响应中断请求, 而至少执行一条其它指令之后才会响应)。
      2.中断响应请求
      单片机一旦响应中断请求, 就由硬件完成以下功能:
      (1)根据响应的中断源的中断优先级, 使相应的优先级状态触发器置 1;
      (2)执行硬件中断服务子程序调用, 并把当前程序计数器PC的内容压入堆栈;
      (3)清除相应的中断请求标志位(串行口中断请求标志 RI和 TI除外);
      (4)把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC, 从而转入相应的中断服务程序。
      表 中断服务程序入口地址表👇
      在这里插入图片描述
      例如, 现有外部中断 1 提出申请, 且主程序中有R0、 R1、
      DPTR、累加器A需保护, 则编制程序应为:
      ORG 0000H
      AJMP MAIN
      ORG 0013H
      LJMP INT1 …
      ORG 0100H
      MAIN: …; 主程序 …
      ORG 1000H

    INT1:
    PUSH ACC ; 中断服务程序
    PUSH DPH
    PUSH DPL
    PUSH 0
    PUSH 1

    POP 1
    POP 0
    POP DPL
    POP DPH
    POP ACC
    RETI

    编程中应注意:
    (1) 在 0000H放一条跳转到主程序的跳转指令, 这是因为MCS-51单片机复位后, PC的内容变为 0000H, 程序从 0000H 开始执行, 紧接着 0003H是中断程序入口地址, 故在此中间只能 插入一条转移指令;
    (2) 响应中断时, 先自动执行一条隐指令“LCALL 0013H”, 而 0013H至 001BH(定时器 1 溢出中断入口地址)之间可利用的存储单元不够, 故放一条无条件转移指令。
    (3) 在中断服务程序的末尾, 必须安排一条中断返回指令RETI, 使程序自动返回主程序。

    5.3 中断系统的应用

    5.3 中断系统的应用
    例 1 单步操作的中断实现。 把一个外部中断(设为INT0])设置为电平激活方式。
    其中断服务程序的末尾写上如下几条指令:
    JNB P3.2, $ ; 在INT0变高前原地等待(死循环)
    JB P3.2, $; 在 INT0变低前原地等待(死循环)
    RETI; 返回并执行一条指令

    现在,若INT0保持低电平, 且允许INT0中断, 则CPU就进入外部中断 0 服务程序, 由于有上述几条指令, 它就会停在 JNB 处, 原地等待。当INT0 端出现一个正脉冲(由低到高, 再到低)时, 程序就会往下执行, 执行RETI后, 将返回主程序, 往下执行一条指令, 然后又立即响应中断,以等待INT0端出现的下一个正脉冲。 这样在INT0端每出现一个正脉冲, 主程序就执行一条指令, 实现了单步执行的目的, 要注意的是, 这个正脉冲的高电平持续时间不小于 3个周期, 以确保CPU能采集到高电平值。

    例 2 多中断源。
    MCS - 51 单片机有两个外部中断输入端, 当有 2 个以上中断源时, 它的中断输入端就不够了。此时, 可以采用中断与查询相结合的方法来实现。 可以使每个中断源都接在同一 个外部中断输入端上, 同时利用输入口线作为多中断源情况 下各中断源的识别线。
    在这里插入图片描述
    ORG 0003H
    LJMP INT0 …
    INT0:
    PUSH PSW
    PUSH ACC
    JB P0.7, DV1
    JB P0.6, DV2
    JB P0.5, DV3
    JB P0.4, DV4
    GOBACK:
    POP ACC
    POP PSW
    RETI
    DV1: … ; 装置1中断服务程序


    开关S1和S2分别接至INT0和INT1,
    初始时LED指示灯L1和L2熄灭,
    当S1按下S2断开,L1亮,L2灭;
    当S2按下S1断开,L2亮,L1灭。
    用中断方式实现。编写程序

    ORG 0000H
    AJMP MAIN

    ORG 0003H
    LJMP INT0
    ORG 0013H
    LJMP INT1

    MAIN:
    MOV IE,#85H;让EX0,EX1为1,启动中断
    SETB P0.0
    SETB P0.1

    INT0:
    MOV SP,#50H
    JMP SAVE
    CLR P0.0
    SETB P0.1
    JMP BACK
    RET1

    INT1:
    MOV SP,#70H
    JMP SAVE
    CLR P0.1
    SETB P0.0
    JMP BACK
    RET1

    SAVE:
    SETB RS0;对Ri存储区的保护
    SETB RS1
    PUSH ACC
    PUSH DPH;对DPTR的保护
    PUSH DLH
    PUSH B

    BACK:
    CLR RS0
    CLR RS1
    POP B
    POP DLH
    POP DPH
    POP ACC
    POP PSW

    END


    第6章 MCS - 51单片机内部定时器/ 计数器及串行接口

    6.1 定时器/计数器的结构及工作原理

    6.1 定时器/计数器的结构及工作原理

    图 6.1 定时器/计数器结构框图
    在这里插入图片描述
    加法计数器是计满溢出时才申请中断, 所以在给计数器赋初值时, 不能直接输入所需的计数值, 而应输入的是计数 器计数的最大值与这一计数值的差值, 设最大值为 M, 计数 值为 N, 初值为 X, 则 X的计算方法如下:
    计数状态: X=M-N <计数外部给的信号>
    定时状态: X=M-定时时间/T <内部时钟信号>
    而T=12÷晶振频<常选晶振频率11.0592Mhz>

    6.2 方式和控制寄存器

    一、定时器/计数器的方式寄存器TMOD

    图 6.2 TMOD各位定义
    在这里插入图片描述

    1. M1M0工作方式控制位

    表 6.1 工作方式选择表
    在这里插入图片描述

    2. C/T定时器方式或计数器方式选择位

    若C/T=1时, 为计数器方式; C/T = 0时, 为定时器方式。

    3. GATE 定时器/计数器运行门控标志位

    当GATE=1时, 只有INT0 (或INT1)引脚为高电平且TR0(或TR1 )置 1 时, 相应的定时器 /计数器才被选通工作, 这时可用于测量在INTx端出现的正脉冲的宽度。若GATE=0, 则只要 TR0 (或 TR1)置 1, 定时器 /计数器就被选通, 而不管 INT0 (或 INT1)的电平是高还是低

    二、定时器/计数器控制寄存器TCON

    TF0、TF1分别是定时器/计数器T0、 T1 的溢出标志位, 加法计数器计满溢出时置 1, 申请中断, 在中断响应后自动复 0。
    TF产生的中断申请是否被接受, 还需要由中断是否开放来决定。
    TR1、TR0 分别是定时器 /计数器T1、 T0 的运行控制位,通过软件置 1 后, 定时器 /计数器才开始工作, 在系统复位时被清 0。

    6.3 工作方式

    一、方式 0

    图 6.4 方式 1(16位计数器)
    在这里插入图片描述

    二、方式 1

    图 6.4 方式 1(16位计数器)
    在这里插入图片描述

    三、方式 2

    图 6.5 方式 2(初始常数自动重装载)
    在这里插入图片描述
    另一个八位置有初值,自动重新装载

    四、方式 3

    图 6.6 方式 3(两个 8 位独立计数器)
    在这里插入图片描述
    T1去串行口相关工作位置

    6.4 定时器/计数器应用举例

    一、方式 0 的应用例 1 利用定时器输出周期为 2 ms的方波, 设单片机晶振频率为 6 MHz。

    选用定时器 /计数器T0 作定时器, 输出为P1.0 引脚, 2 ms 的方波可由间隔 1 ms的高低电平相间而成, 因而只要每隔 1 ms对 P1.0 取反一次即可得到这个方波。
    定时 1 ms的初值:
    因为机器周期=12÷6 MHz= 2 μs
    所以 1 ms内T0需要计数N次: N= 1 ms÷2 μs = 500

    6.5 MCS - 51单片机的串行接口

    6.6 串行口的应用

    5. 算数运算类指令

    6. 逻辑操作类指令

    7. 控制转移类指令

    8. 位操作类指令

    第三章 第一个单片机系统

    • 如何控制一个发光二极管——闪烁 500ms

    发光二极管电路图
    电路描述1

    展开全文
  • 最小单片机系统

    千次阅读 2020-05-26 13:57:36
    以89C51单片机为例,在protues画出的最小单片机系统。 仿真图如下: 单片机最小系统就是使单片机工作的最少的器件构成的系统。最小单片机系统主要包括时钟电路、复位电路、31脚EA接Vcc。 最左上角的是时钟电路,给...

    以89C51单片机为例,在protues画出的最小单片机系统。
    仿真图如下:
    最小
    单片机最小系统就是使单片机工作的最少的器件构成的系统。最小单片机系统主要包括时钟电路、复位电路、31脚EA接Vcc。
    最左上角的是时钟电路,给单片机提供时钟信号。复位电路的作用是单片机恢复到最初的状态,主要有上电复位、按键复位及复合复位(上电复位和按键复位两者结合)。
    在这里插入图片描述
    31号脚接VCC,这是因为当31号引脚EA引脚接高电平时,4 KB以内的地址在片内ROM,大于4KB的地址在片外ROM中,两者共同构成64KB空间,而一般情况下,我们是片内和片外ROM都会使用。

    新的改变

    我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

    1. 全新的界面设计 ,将会带来全新的写作体验;
    2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
    3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
    4. 全新的 KaTeX数学公式 语法;
    5. 增加了支持甘特图的mermaid语法1 功能;
    6. 增加了 多屏幕编辑 Markdown文章功能;
    7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
    8. 增加了 检查列表 功能。

    功能快捷键

    撤销:Ctrl/Command + Z
    重做:Ctrl/Command + Y
    加粗:Ctrl/Command + B
    斜体:Ctrl/Command + I
    标题:Ctrl/Command + Shift + H
    无序列表:Ctrl/Command + Shift + U
    有序列表:Ctrl/Command + Shift + O
    检查列表:Ctrl/Command + Shift + C
    插入代码:Ctrl/Command + Shift + K
    插入链接:Ctrl/Command + Shift + L
    插入图片:Ctrl/Command + Shift + G
    查找:Ctrl/Command + F
    替换:Ctrl/Command + G

    合理的创建标题,有助于目录的生成

    直接输入1次#,并按下space后,将生成1级标题。
    输入2次#,并按下space后,将生成2级标题。
    以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

    如何改变文本的样式

    强调文本 强调文本

    加粗文本 加粗文本

    标记文本

    删除文本

    引用文本

    H2O is是液体。

    210 运算结果是 1024.

    插入链接与图片

    链接: link.

    图片: Alt

    带尺寸的图片: Alt

    居中的图片: Alt

    居中并且带尺寸的图片: Alt

    当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

    如何插入一段漂亮的代码片

    博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

    // An highlighted block
    var foo = 'bar';

    生成一个适合你的列表

    • 项目
      • 项目
        • 项目
    1. 项目1
    2. 项目2
    3. 项目3
    • 计划任务
    • 完成任务

    创建一个表格

    一个简单的表格是这么创建的:

    项目Value
    电脑$1600
    手机$12
    导管$1

    设定内容居中、居左、居右

    使用:---------:居中
    使用:----------居左
    使用----------:居右

    第一列第二列第三列
    第一列文本居中第二列文本居右第三列文本居左

    SmartyPants

    SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

    TYPEASCIIHTML
    Single backticks'Isn't this fun?'‘Isn’t this fun?’
    Quotes"Isn't this fun?"“Isn’t this fun?”
    Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

    创建一个自定义列表

    Markdown
    Text-to- HTML conversion tool
    Authors
    John
    Luke

    如何创建一个注脚

    一个具有注脚的文本。2

    注释也是必不可少的

    Markdown将文本转换为 HTML

    KaTeX数学公式

    您可以使用渲染LaTeX数学表达式 KaTeX:

    Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

    Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

    你可以找到更多关于的信息 LaTeX 数学表达式here.

    新的甘特图功能,丰富你的文章

    Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
    • 关于 甘特图 语法,参考 这儿,

    UML 图表

    可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

    张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

    这将产生一个流程图。:

    链接
    长方形
    圆角长方形
    菱形
    • 关于 Mermaid 语法,参考 这儿,

    FLowchart流程图

    我们依旧会支持flowchart的流程图:

    Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
    • 关于 Flowchart流程图 语法,参考 这儿.

    导出与导入

    导出

    如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

    导入

    如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
    继续你的创作。


    1. mermaid语法说明 ↩︎

    2. 注脚的解释 ↩︎

    展开全文
  • / 第7章 单片机应用系统设计 7.2 单片机应用系统举例 话机的拨号键盘与显示系统设计 本项目的设计内容主要包括主控模块LCD1602液晶显示电路键盘输入模块时钟电路和复位电路等整体结构框图如图所示 1. 总体设计 根据...
  • 如上图所示,这是一个WiFi指纹识别前端的系统框图,其应用场景是:手指按压指纹识别模块时,指纹数据被采集并传输到单片机单片机经过识别算法对指纹数据进行处理后,把处理结果通过WiFi模块无线传输到云端参与身份...
  • 典型的单机结构框图见图71与图72前面所叙述的单片机应用系统的设计方法是针对单机结构而言的 单机结构的优点是设计简单系统紧凑对于小规模应用系统具有最佳的性能/价格比 但在大规模应用系统中由于单机结构难以实现...
  • STM32系统框图

    千次阅读 2019-09-23 03:24:13
    转载于:https://www.cnblogs.com/ice-emperor-wu/p/10921468.html

     

     

    转载于:https://www.cnblogs.com/ice-emperor-wu/p/10921468.html

    展开全文
  • 利用单片机8031对中型冷库进行自动化改造,使得控制系统自动化程度大大提高,温度控制精确,节约了能源,提高了库存产品质量,降低了值班...第3部分介绍了系统软件、中断温度检测控制系统、按键处理中断系统框图
  • MCS-51系列单片机系统结构;8051单片机基本结构框图;运算器;控制器;内部数据存储器;定时器/计数器串行口中断控制系统;并行I/O口;时钟电路;MCS-51单片机的外部引脚与逻辑符号;2.2 时钟和时钟电路;一HMOS型单片机外部...
  •  系统由单片机系统、称重传感器、A/D转换、通信接口和语音提示模块组成,硬件结构框图如图1。  1.1 单片机系统  系统采用AT89S52作为控制核心,配备键盘、液晶显示电路和扬声器。  AT89S52是Atmel公司新...
  •  本文从硬件和软件两方面介绍了AT89C2051单片机温度控制系统的设计,对硬件原理图和程序框图作了简洁的描述。 关键词: 单片机AT89C2051;温度传感器DS18B20;温度;测量 引言 单片机在电子产品中的应用已经越来越广泛...
  • 具体描述了该实验系统的设计思路,给出设计思路的流程框图。使用ADI公司的高新能模拟开关阵列ADG1611芯片和赛灵思公司(Xilinx Inc)的FPGA芯片XC3S1200E,并配合设计作为控制部件,给出了实现现场自动转接线的局部...
  • 掌握单片机的硬件结构,这一篇就够了。

    单片机硬件结构知识点非常琐碎,通过一次两次的学习是不太可能记住的。想要熟练掌握硬件结构,最好的方法是在实验中练习,通过编程多见多用才能牢固的掌握。

    1.硬件系统框图

    在这里插入图片描述

    2.单片机功能图

    在这里插入图片描述
    单片机就是一个芯片集成了计算机的三大部分,中央处理器、存储器、I/O接口,这三大部分又通过三总线(数据总线、地址总线、控制总线)相互连接。

    3.单片机的主要部件

    CPU

    • 1个8位CPU

    存储器

    • 4KB程序存储器ROM(Read Only Memory),片外最多可扩展64KB,ROM是只读存储器,用于存储数据,相当于硬盘。
    • 128B数据存储器RAM(Random Access Memory),片外最多可扩展64KB,RAM是随机存取存储器,用于临时存放数据,相当于内存条。
    • 21个具有特殊功能的寄存器SFR。

    I/O接口

    • 4个8位并行口,P0、P1、P2、P3
    • 1个全双工串行口

    其它

    • 2个16位定时/计数器
    • 5个中断源
    • 1个片内振荡器、时钟电路

    4.CPU内部结构

    4.1.运算器

    1. 算术/逻辑运算单元ALU:进行算术逻辑运算,加减乘除、与或非等等。
    2. 累加器ACC(8位):助记符A。
    3. 寄存器B(8位):配合ACC完成乘除运算,没有乘除运算时,可当做RAM的一个单元。
    4. 程序状态字寄存器PSW(8位):存放ALU运算状态

    4.2.控制器

    1. 堆栈指针SP(8位):存取数据,先进后出。数据入栈出栈时,SP自动加1减1。复位时SP=07H。
    2. 程序计数器PC(16位):存放下条要执行的指令的地址,PC指针指向哪,CPU就执行哪条指令。复位时PC=0000H
    3. 数据指针DPTR(16位):与PC功能一样,区别是DPTR是外部存储器的指针。

    5.存储器

    5.1.存储器结构图

    在这里插入图片描述
    单片机存储器在物理结构上分为4部分,片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。但在逻辑上分为3部分,片内外统一编制的程序存储器、片内数据存储器、片外数据存储器,访问这3个存储空间时,采用不同形式的指令。

    5.2.程序存储器ROM


    读取数据的两条指令
    MOVC A, @A + DPTR
    MOVC A, @A + PC
    DPTR为外部扩展ROM的数据指针


    最多扩展64KB的程序存储器


    复位地址0000H


    当EA为低电平时,所有取指令操作都在片外ROM中进行;当EA为高电平,所有取指令操作都在片内ROM中进行。


    各中断入口地址

    中断源入口地址
    外部中断0(INT0)0003H
    外部中断1(INT1)0013H
    定时器0(T0)000BH
    定时器0(T1)001BH
    串行口(TI或RI)0023H

    5.3.数据存储器RAM

    数据存储器分为外部RAM和内部RAM,内部RAM只有128B地址空间(00H~7FH),外部RAM有64KB(0000H ~ 0FFFFH);访问内部RAM用指令MOV,访问外部RAM用指令MOVX。
    内部RAM分为通用数据存储器和特殊功能寄存器,两大部分

    5.3.1.通用数据存储器

    通用数据存储器被分为三个区,工作寄存器区、可位寻址区、用户数据缓冲器

    5.3.1.1.工作寄存器区(00H ~ 1FH)

    工作寄存器区共分为4个工作寄存器组,每组有8个工作寄存器R0 ~ R7,可以通过程序状态字寄存器(PSW)中RS0和RS1两位来选择工作寄存器组。

    5.3.1.2.可位寻址区(20H ~ 2FH)

    可以对具体的某一位进行处理、传输数据等。

    5.3.1.3.用户数据缓冲区(30H ~ 7FH)

    用户RAM,只能按字节寻址

    5.3.2.特殊功能寄存器

    21个特殊功能寄存器中,有11可位寻址。
    在这里插入图片描述

    重要:程序状态字寄存器PSW

    5.3.3.三大逻辑存储部分指令

    访问ROM用MOVC
    访问片内RAM用MOV
    访问片外RAM用MOVX

    • 从外部RAM取数 MOVX A,@DPTR
    • 从数到外部RAM MOVX @DPTR,A

    6.I/O接口

    6.1.引脚图

    在这里插入图片描述

    6.2.引脚功能

    6.2.1.P0 ~ P3

    P0口是三态双向口,如果需要输出电平,需要外接上拉电阻。P1、P2是准双向IO口。P3
    准双向IO口,双功能口
    在这里插入图片描述

    6.2.2.电源引脚
    引脚功能
    Vcc电源输入端
    Vss接地端
    6.2.3.时钟震荡电路引脚
    引脚功能
    XTAL1晶体振荡电路反相器输入端
    XTAL2输出端,称为单片机的主频
    6.2.4.控制信号引脚
    引脚功能
    RST/VPDRST是复位信号输入端,VPD是内部RAM备用电源,防止突然断电时导致RAM中的数据丢失
    ALE/PROGALE地址锁存允许信号
    PSEN外部ROM的读选通信号
    EA/VPP访问外部ROM控制信号

    时钟电路

    在这里插入图片描述

    复位电路

    上电自动复位

    在这里插入图片描述

    上电加按键手动复位

    在这里插入图片描述

    展开全文
  • 一.STM32学习(5)-时钟系统框图,RCC相关寄存器配置,系统初始化函数SystemInit()介绍以及系统如何执行的系统初始化函数 参考STM32中文参考手册和STM32开发指南 参考上面图片: 二.RCC相关寄存器配置 2.1 时钟...
  • 1) 时钟系统框图解读; 2) 时钟系统配置相关函数解读。 1. 为什么 STM32 要有多个时钟源呢? 因为STM32非常复杂,外设多,但并不是所有外设都需要系统时钟这么高的频率,比如看门狗及RTC只需要几十k的时钟即可。...
  • 水箱单片机 控制系统

    2008-12-27 12:47:45
    单片机系统设计的目的是应用单片机控制技术,以8051单片机为核心控制 庆丰热电公司的800立方米的水箱的水位,并实现了报警和手动、自动切换功能。 该系统操作方便、性能良好,比较符合电厂生产用水系统控制的...
  • 系统设计的总体方案 本设计方案总体框图如图1所示,它是由单片机、四路数据采集模块、集成功放模块、人机交互界面和系统电源等组成。 本设计系统以AT89C52单片机作为控制,数据采集部分由温度传感器DS18B20组成;...
  • 概述 在单片机系统中,当输入按键较多时,在硬件设计和软件编程之间总存在着矛盾。对于不同的单片机系统需要进行专用的键盘硬件设计和编程调试,通用性差,使项目开发复杂化。标准PC键盘在工艺与技术上都已相当成熟...
  • 基于低成本、高精度的目的提出了一种超声波测距系统的设计方案....设计测距仪的思路和所需考虑的问题,给出了实现超声波测距方案的软、硬件设计系统框图.在设计中兼顾了系统性能 和器件成本的关系,降低了整套系统的成本.
  •  远程数据采集系统框图,由两部分组成:一是基于89C51实现的现场数据采集电路,二是PC机与89C51之间的远程通讯电路。  1.1 89C51数据采集系统  数据采集系统的硬件原理如图1所示。  该系统选用89C51单片机...
  • 笔者设计和开发了基于51型单片机的自动巡线轮式机器人系统。  2 控制系统总体设计  机器人控制系统由主控制电路模块、存储器模块、光电检测模块、电机及舵机驱动模块等部分组成,控制系统框图如图1所示。 ...
  • 结合实际工作的经验,介绍单片机系统采用CPLD器件时的几种输入输出接口形式,分析典型的单片机系统框图以及相应的外围线路;并且对CPLD器件用原理图输入方式设计实际的数字电路,同时给出了仿真波形。  关键词:...
  •  图1为系统硬件组成框图。外部传感器将与温度相对应的电信号传至A/D转换器,进行模数转换,完成后将数据传送至单片机单片机进行数据处理后将数据送至译码器,最后在数码管上显示。当有键盘输入控制温度时,...
  • 2.倾角测量系统的硬件设计 图1是系统硬件组成的框图。如图所示,整个系统由SCA100T倾角传感器、一阶低通滤波器、ADS1211AD转换器、单片机、上位机等几部分组成。下面简单对硬件的各个组成部分进行介绍: 图
  • 1 引言  在学校宿舍、课室、图书馆、商场等场所的出入口,如果采用监控与管理系统,就可以对进出的人数进行...图1 基于AT89S51单片机的监控与管理系统的结构框图  图1所示是基于AT89S51单片机的监控与管理系统的结
  • 引言  在网络技术应用日益广泛的今天,网络传输... 系统的硬件结构框图如图1所示。本系统的微控制器是Winbond公司的78E58,网络接口芯片是与NE2000系列兼容的Realtek公司的RTL8019AS.RTL8019AS内置了10BASE-T收发器,
  • 系统框图

    千次阅读 2020-02-01 17:27:27
    对于已经前期学习过“自动控制原理”,“信号与系统”课程的同学来讲,文档中描述算法的系统框图是简单的,但对于初学者来讲,看懂系统框图还需要了解 一些基本概念。 ^四轮车模直立运行 | 公众号留图^ 假设你...
  • 具体描述了该实验系统的设计思路,给出设计思路的流程框图。使用ADI公司的高新能模拟开关阵列ADG1611芯片和赛灵思公司(Xilinx Inc)的FPGA芯片XC3S1200E,并配合设计作为控制部件,给出了实现现场自动转接线的局部...
  • 根据电力线载波传输和温湿度调控的原理,阐述了系统的硬件框图、模块结构,详细介绍了系统终端、编解码单元和耦合电路模块,并给出了系统软件逻辑及流程框图、PID温湿度控制算法。通过本地或远程操作实现对网络内的...
  • 引言  在网络技术应用日益广泛的今天,网络传输是最经济有效的数据传输... 系统的硬件结构框图如图1所示。本系统的微控制器是Winbond公司的78E58,网络接口芯片是与NE2000系列兼容的Realtek公司的RTL8019AS。R

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,036
精华内容 2,014
关键字:

单片机系统框图