单片机的指令系统是如何区分访问程序存储器空间、内部数据存储器空间、外部数据存储器空间和位地址空间的
2-2 8051单片机内部包含哪些主要逻辑部件?各自的功能是什么?
答:8051单片机内部包含:
1、中央处理器CPU:它是单片机内部的核心部件,决定了单片机的主要功能特性,由运算器和控制器两大部分组成。
2、存储器:8051单片机在系统结构上采用了哈佛型,将程序和数据分别存放在两个存储器内,一个称为程序存储器,另一个为数据存储器。在物理结构上分程序存储器和数据存储器,有四个物理上相互独立的存储空间,即片内ROM和片外ROM,片内RAM和片外RAM。
3、定时器/计数器(T/C):8051单片机内有两个16位的定时器/计数器,每个T/C既可以设置成计数方式,也可以设置成定时方式,并以其定时计数结果对计算机进行控制。
4、并行I/O口:8051有四个8位并行I/O接口(P0~P3),以实现数据的并行输入输出。
5、串行口:8051单片机有一个全双工的串行口,可实现单片机和单片机或其他设备间的串行通信。
6、中断控制系统:8051共有5个中断源,非为高级和低级两个级别。它可以接收外部中断申请、定时器/计数器申请和串行口申请,常用于实时控制、故障自动处理、计算机与外设间传送数据及人机对话等。
2-3 8051单片机的存储器分哪几个空间?通过什么信号来区别不同空间的寻址?
答:有四个物理上相互独立的存储空间:片内ROM地址为0000H-0FFFH此时/EA=1;片外ROM地址为0000H-0FFFFH此时/EA=0。片内数据存储器地址为00H-0FFH;片外数据存储器地址为0000H-0FFFFH;区分片内片外数据存储器通过指令MOV与MOVX。
2-6 内部RAM低128单元划分为哪三个主要部分?各部分主要功能是什么?
答:分为三部分:工作寄存器去,位寻址区,用户RAM区(堆栈、数据缓冲)。
工作寄存器区(00H-1FH):32个RAM单元共分四组,每组8个寄存单元(R0-R7)。寄存器常用于存放操作数及中间结果等。位寻址区(20H-2FH):此部分16个单元的每一位都有一个8位表示的位地址,位寻址取得每一个单元既可作为一般RAM单元使用,进行字节操作,也可以对单元中的每一位进行位操作。用户RAM区:也是数据缓冲区,一般用于存放用户数据及作堆栈区使用。
3-1 MCS-51的寻址方式及特点
MCS-51的寻址方式有七种:
1.直接寻址:指令中直接给出操作数所在的单元地址或位地址
2.立即寻址:在指令中紧跟在操作码之后的字节是操作数
3.寄存器寻址:操作数在指令中给出的寄存器内
4.寄存器间接寻址:指令中指定的寄存器内存的是操作数的地址
5.变址寻址:指令中给出由基址加变址形成的16位地址作为操作数的地址
6.相对寻址:指令中给出相对偏移量,该相对偏移量与PC当前值求和得到转移地址
7.位寻址:指令中给出的位地址或位寄存器里存是所寻的位操作数
3-2 MCS-51的指令按功能分类及各类的作用
MCS-51的指令按功能分5类:
1.数据传送指令:主要用于数据的传送与交换和栈操作。 P69
2.算术运算指令:主要用来作算术四则运算、增量、减量及二—十进制调整。 P76
3.逻辑运算指令:主要用来作“与”、“或”、“异或”、“清除” “求反”及“左右移位”等逻辑运算。 P81
4.位操作指令:主要用来作 “与”、“或”、 “清除”、“置位” “求反”等布尔操作及“位传送” 操作。 P83
5.控制转移指令:主要用于改变程序计数器PC的值, 以控制程序执行的走向,有转移、调用及返回操作.P84
3-3 变址寻址和相对寻址中偏移量的异同点
变址寻址 :@A+DPTR ;基址:DPTR, 变址:A
@A+PC ;基址:PC当前值, 变址:A
变址:A 中为8位二进制无符号数偏移量(A)∈[0,255] 即[00H,0FFH]相对寻址: 相对偏移量为8位二进制带符号数的补码
rel ∈[-128,+127]
[rel]补码∈[00H,0FFH]
相同点:偏移量∈[00H,0FFH]
不同点:变址寻址 中偏移量为8位二进制无符号数; 相对寻址中偏移量为8位二进制带符号数的补码
3-4 指出下面每条指令的寻址方式:(源和目的操作数分开写)
MOV A,#30H –寄存器、立即–30H 立即数
MOV C,30H –寄存器、位 –30H 位地址
MOVX A,@DPTR –寄存器、间接
jC LAB1 –相对
MOV 30H,@R1 –直接、间接 –30H 字节地址
MOV 30H,R5 –直接、寄存器 –30H 字节地址
MOVC A,@A+PC –寄存器、变址
sjmp LAB2 –相对
4-5在用JMP指令实现128分支的程序中,试用LJMP代替AJMP指令。修改后的程序有何特点?最多能实现多少分支?
答:AJMP指令表 128分支占128*2=256 字节MEMORY
LJMP指令表 可以实现256/3=85 个分支
特点:各分支可在64KB存储器中转移。
5-2什么叫I/O接口?I/O接口的作用是什么?
I/O接口是计算机和外设进行数据交换的桥梁。
I/O接口的作用:
锁存作用:防止由于CPU速度快,外设慢而产生的丢数现象
隔离作用:防止DB上的信息重叠
变换作用:在CPU与外设之间进行信息类型、电平、传送接收方式变换
联络作用:在CPU与外设之间进行联络,Ready Busy
5-3 I/O端口有哪两种编址方式?各有什么特点?
I/O端口编址方式:统一编址、独立编址
统一编址:I/O接口与内存储器采用一套地址,完全相存储器单元一样处理,使用访问存储器的指令。如:movx 类指令。
独立编址:采用一套与存储器不同的地址,利用/MREQ(存储器请求)和/IORQ(输入输出请求), CPU 有专门的I/O指令 如:IN, OUT 。
5-4 I/O数据有哪四种传送方式?
无条件传送方式
条件传送方式(查询方式)
中断方式
存储器直接存取(DMA)方式
5-6 结合图5-17说明DMA传送的工作过程
外设向DMAC发DMA申请
DMAC向CPU发BUSRQ
CPU发BUSAK响应
DMAC发存储器地址和读写信号
DMA控制结束,恢复CPU对总线控制
5-13 中断允许寄存器IE各位的定义是什么?请写出允许定时器/计数器T/C1溢出中断的指令。
IE.8:EA,中断允许触发器
IE.4:ES,串行口中断允许位
IE.3:ET1, 定时器/计数器1中断允许位
IE.2:EX1,外部中断1允许位
IE.1:ET0, 定时器/计数器0中断允许位
IE.0:EX0, 外部中断1允许位
允许定时器/计数器T/C1溢出中断的指令:
Setb ET1
Setb EA
Setb TR1
5-17 MCS-51的中断处理程序能否存储在64kB程序存储器的任何区域?若可以,则如何实现?
可以。
实现方法:在中断向量入口处,放一条长跳转指令,跳转到中断服务程序处。
2024-08-13 广告
程序指针,高八位和低八位
单片机访问外部程序存储器
用MOVX指令。单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
单片机访问外部数据存储器采用什么指令于汇编语言;如果访问的是外部程序存储器中的指令的话:如果访问的是外部程序存储器中存储的数据的话,这个好像不需要我们写代码,用的是MOVC指令,单片机会自己去读取指令。
单片机访问外部程序存储器用什么指令,所以如果要这样访问.com/question/85352979;/.翻译成汇编就是movx dptr ,.baidu,表示往地址里面写数据;这是人家的问题,必须P0有锁存器;这样就可以忘外部ram0x100地址里面写东西了如果你不是总线形式的话://zhidao,.否则.html" rget="_blank"http,非前256字节只能通过dptr访问用movx指令.是玩不成任务的;aa=0x100;去回来就行了.单片机会自动产生.com/question/85352979;aa = 0xAA;/.上面我写错了,否则不可能完成任务这种方式.就是不知道你的P0口有没有用锁存器.读写了.不用那么麻烦;/.那就只有通过你上边的那种.baidu.时许形://zhidao,:比人问得.补充,看看是不是和你的一样这种句子.char xdata *aa;/.你上面写的操作P0上次的动作;这里多了一个*; /.外部ram的//.用总线形式扩展,.一般用在 51单片机.不过看你接的那种 要两次P0口的.应该是aa = 0x100, @a这种的句子因为51访问外部ram用的就是movx 指令;da = *aa.;*aa = 0xAA.当然如果你要读0x100的数据那就char da.直接用指令访问就行了,估计是总线形式的如果直接是外部RAM的话。
51单片机怎么访问外部存储器?
8051访问片外ROM的信号为:1、EA=0;2、ALE有效3、PSEN有效8051访问片外RAM的信号为:1、ALE有效2、RD或WR有效。
8051单片机访问片外ROM与片外RAM的读写信号各是什么。
nsigned char xdata *p=0x0650;写;unsigned char mid: mid=*p:*p=mid。
movc:访问程序存储器空间。
采用位寻址的指令访问的是位地址空间。如:JB、JNB、JBC、JC、JNC、MOV C,BIT、ANL C,BIT等
其他指令访问的是内部数据存储器空间。
一句话,单片机的指令系统是通过不同的指令及其寻址方式来区分不同的存储空间的。