80c51单片微型计算机原理与接口技术

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/845115052286160.jpg "#left"*

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7538941
  • 以下回答由chatgpt基于相关博客总结生成:

    80C51单片微型计算机是一种常用的嵌入式系统芯片,在嵌入式开发中应用广泛。以下是80C51单片微型计算机原理与接口技术的相关知识和学习资料。

    机器指令的编码格式

    机器指令通常由操作码和操作数(或操作数地址)两部分构成。操作码用来规定指令执行的操作功能,如加、减、比较、移位等;操作数是指参与操作的数据(在指令编码中通常给出该数据的不同寻找方法)。

    80C51 的机器指令按指令字节数分为三种格式:单字节指令、双字节指令和三字节指令。

    一、单字节指令

    1. 8位编码仅为操作码

    这种指令的8位编码仅为操作码,指令的操作数隐含在其中。例如:INC A,该指令的编码为0000 0100B,其十六进制表示为04H,累加器 A 隐含在操作码中。指令的功能是累加器 A 的内容加 1。

    2. 8位编码含有操作码和寄存器编码

    这种指令的高5位为操作码,低3位为存放操作数的寄存器编码。如指令MOV A,R0的编码为1110 1000B,其十六进制表示为E8H(低3位000为寄存器R0的编码)。该指令的功能是将当前工作寄存器R0中的数据传送到累加器A中。

    二、双字节指令

    这类指令的第一个字节表示操作码,第二个字节表示参与操作的数据或数据存放的地址。如数据传送指令MOV A,#50H的两字节编码为0111 0100B,0101 0000B。其十六进制表示为74H,50H。该指令的功能是将立即数“50H”传送到累加器A中。

    三、三字节指令

    这类指令的第一个字节表示该指令的操作码,后两个字节表示参与操作的数据或数据存放的地址。例如数据传送指令MOV 20H,#50H的三个字节编码为0111 0101B,0010 0000B,0101 0000B。其十六进制表示为75H,20H,50H。该指令的功能是将立即数“50H”传送到内部RAM的20H单元中。

    80C51串行口

    80C51有一个串行口,又称为UART(Universal Asynchronous Receiver/Transmitter)。它可以进行串行通信,支持异步方式和同步方式。串行口的控制寄存器SCON用来设定串行口的工作方式、接受/发送控制、设置状态标志。串行口工作方式有四种,由SCON寄存器种SM0和SM1控制。一般情况下我们使用工作方式1(SM0=0;SM1=1;)10位异步收发(8位数据),波特率可变。允许串行口接受位的标志位为REN,若想接受数据,则REN必须为1(REN=1;)。发送中断标志位为TI,接受中断标志位为RI。波特率倍增位SMOD控制波特率。串行口工作方式为1、2、3时,波特率与SMOD有关。当SMOD=1时,波特率提高一倍;当SMOD=0时,波特率不变。波特率计算可以用软件计算。

    复位方式

    80C51的复位方式有上电复位和手动复位。RST引脚是复位信号输入端,复位信号为高电平有效,其有效时间应持续24个振荡周期以上才能完成复位操作。

    不带进位加法

    这组指令的功能是把源操作数与累加器的内容相加再送入累加器中。源操作数的寻址方式分别为立即寻址、直接寻址、寄存器间接寻址和寄存器寻址。影响程序状态字PSW中的CY、AC、OV和P的情况可以参考相应的指令文档。

    累加器清0和取反

    这两条指令的功能分别是把累加器A的内容清0和取反,结果仍在A中。例如:若(A)=A5H,执行指令CLR A后,(A)=00H。

    相关学习资料

    • 《单片机常用指令集》
    • 《MCS-51单片机原理与应用》
    • 《MCS-51单片机指令集详解》
    • 《MCS-51单片机应用与开发实践》
    • 《51单片机高级应用实践》
    • 51单片机C语言开发教程 (Udemy在线课程)