美文网首页
2019-01-05 常用接口、指令系统

2019-01-05 常用接口、指令系统

作者: Invoke_r | 来源:发表于2019-01-06 09:14 被阅读0次

    8051/8751的最小系统

    存储器概述

    • 存储器分类

    • ROM

    ROM是只读存储器, 具有非易失性,即掉电后其上的信息不消失,常常用于存储程序和固定的数据表格

    • RAM

    RAM是随机读写存储器,信息由CPU通过MOVX指令读写。 RAM具有易失性,即掉电后其上的信息消失,故用于存储临时性数据

    • MCS51单片机存储器扩展

    • 线选法
      直接以系统的地址位作为存储芯片的片选信号
      优缺点:简单明了,且不需增加电路。但存储空间的使用是断续的,不能有效地利用空间,扩充容量受限,只适用于小规模系统的存储器扩展

    • 译码法
      对系统的高位地址进行译码,以其译码输出作为片选信号。高效率地利用存储空间,适用于大容量多芯片扩展
      常用的译码芯片有:74LS139(双2-4译码器)、74LS138(3-8译码器)和74LS154(4-16译码器)等

    MCS51指令系统

    • 符号说明

    • 寻址方式

    • 直接寻址

    指令码中含有操作数的地址, 根据操作数的地址直接可以找到操作数

    • MOV A, 32H ;(0E532H)
    • 在MCS -51 单片机指令系统中, 直接寻址方式中可以访问 2种存储器空间:
      1. RAM的低 128 个字节单元(00H~7FH)
      1. 特殊功能寄存器。 特殊功能寄存器只能用直接寻址方式进行访问
    • 立即寻址

    指令码中含有操作数

    MOV A, #05H ;(7405H)

    • 寄存器寻址

    指令码中含有操作数的寄存器号,MCS-51根据该寄存器号可以找到操作数

    MOV A, R0 ;(0E8H)

    • 寄存器间接寻址

    指令码中含有操作数地址所在的寄存器号。MCS-51根据指令码中的寄存器号便可以找到操作数地址,再根据操作数地址便可以找到操作数

    MOV R0, #3AH ;(783AH)
    MOV A, @R0 ;(0E6H)

    1. 寄存器间接寻址只能使用寄存器R0、R1 作为地址指针,寻址内部RAM区的数据;当访问外部RAM时, 可使用R0、 R1及DPTR作为地址指针
    2. 寄存器间接寻址符号为“@”
    3. 寄存器间址不可以访问SFR
    • 变址寻址

    1. 指令码内隐含基地址寄存器DPTR/PC的寄存器号;
    2. 基地址寄存器DPTR/PC内含有基地址,累加器A中含有地址偏移量rel;
    3. 操作数地址=基地址+地址偏移量
    • 这种寻址方式用于访问程序存储器中的数据表格

    MOVC A, @A+DPTR ;(93H )
    MOVC A, @A+PC ;(83H)

    • 相对寻址

    相对寻址不是要找操作数,是寻找将要执行的指令所在的目标地址。MCS-51中的间接转移指令采用这种寻址方式,是以PC的内容为基本地址, 加上指令中给定的偏移量作为转移地址。指令中给出的偏移量是一个 8 位带符号的常数, 其范围为-128~+127

    SJMP 80H ;(8080H)

    • 位寻址

    指令码中含有位地址,操作数是八位二进制数中的某位

    SETB 00H ;(D200H)

    • 位寻址指令中位地址的表示方法
      1. 直接位地址: SETB 07H
      1. 采用第几单元第几位: SETB 20H.7
      1. 寄存器名+位数: MOV ACC.7, C
      1. 用伪指令定义
    • 寻址方式对比

    • 习题

    (a) immediate (g) direct addressing
    (b) direct addressing (h) direct addressing
    (c) direct addressing (i) register indirect
    (d) immediate (j) direct addressing
    (e) direct addressing (k) register indirect
    (f) immediate

    • 数据传送类指令

    • 内部数据传送指令速记图

    数据传送类指令可以实现片内RAM之间;A与片外RAM及ROM之间的数据传送,只要不对PSW进行直接操作,不影响标志位

    • 立即型数据传送指令

    • 直接型数据传送指令

    • 寄存器寻址型数据传送指令类

    • 寄存器间接寻址型数据传送指令类

    • 习题

    (a) 立即数大于255,超界!属于逻辑错误;(b)OK;(c)OK;(d)原因同(a);(e)OK
    (f)OK。当十六进制数以字母开头时,前面加0,否则程序编译时提示“句法错误”。
    (g)非法的工作寄存器,合法的只有R0~R7

    • 小结

    • 外部ROM/RAM数据传送指令

    • DPTR赋值指令

    MOV DPTR, #2000H

    • 对外部RAM的数据传送指令

    • 片外数据存储器不能直接寻址
    • 对外部ROM的数据传送指令

    • 作用:又称查表指令,可直接求取常数表中的函数值或存放系统的不变参数
    • DPTR为基址寄存器: 查表范围为 64KB 程序存储器任意空间,称为远程查表指令
    • PC为基址寄存器: 常数表只能在查表指令后256B范围内。(PC内容为下一条指令的起始地址。)
    • MOVX和MOVC区别

    1. MOVC是与ROM之间的数据传送,而MOVX是与外部RAM数据传送;
    2. MOV就是移动的意思,C就是Code,代码的意思,X就是eXternal,外部的意思 MOVC就是读代码存储器,MOVX就是读写外部存储器,即外部RAM ;
    3. MOVC是读取ROM中的数据,只能读不能写(一般来说主要是用来读取常量或常量表) MOVX是读写外部扩展的RAM和扩展的IO口,可以读也可以写
    • 数据交换指令速记

    • 累加器高低4位交换指令

    XCH A, Rn
    XCH A, Direct
    XCH A, @Ri
    SWAP A

    • 半字节交换指令

    XCHD A, @Ri
    把累加器A中低4位和Ri中地址所指单元中低4位交换

    • 位操作类指令速记图

    • 除位传送类指令外,数据传送类不影响进位标志Cy和AC,但是会影响奇偶标志P
    • 算术运算指令

    • 加法指令

    • 不带进位位的加法指令

    ADD A , #data8\direct@Ri\Rn

    • 带进位位的加法指令

    ADDC A , #data8\direct@Ri\Rn
    指令中的所加的Cy为指令执行前原有的Cy的内容,执行后所形成新的Cy保留在PSW中

    • 加1指令

    INC A\direct@Ri\Rn\DPTR

    • 不论两操作数是否带符号,机器均按带符号数运算
    • 减法指令

    • 减法指令

    SUBB A , #data8\direct@Ri\Rn
    所有减法指令都是带减进位位的

    • 减1指令

    DEC A\direct@Ri\Rn

    • 乘法指令

    MUL AB ;AXB=BA

    • 除法指令

    • 逻辑及移位类指令

    • 控制转移类指令

    • 条件转移指令

    • 调用与返回指令

    • 子程序返回指令

    RET
    用途: 子程序末尾、返回主程

    • 中断返回指令

    RETI
    用途:中断程序尾、返回断点

    相关文章

      网友评论

          本文标题:2019-01-05 常用接口、指令系统

          本文链接:https://www.haomeiwen.com/subject/nrerrqtx.html