1条回答 默认 最新
关注- 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: 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在线课程)
解决 无用评论 打赏 举报