零基础学习8051单片机(十三)

续上一篇文章,由题来复习前面的知识。

题目来自《单片机原理与接口技术第五版》李清朝。

 

 答:

EA端接高电平时,CPU 只访问片内 ROM并执行内部程序,存储器。

EA端接低电平时,CPU 只访问外部ROM,并执行片外程序存储器中的指令。

EA端保持高电平时,CPU 执行内部存储器中的指令。

 

 答:片内数据存储器最大可寻址256个单元,它们又分为两部分:低128字节(00H~7FH)是真正的 RAM区:高128字节(80H~FFH)为特殊功能寄存器(SFR)区。

注:布尔运算就是指位运算

答:

布尔处理存储器的空间分布有内部RAM的128位和部分专用、特殊功能寄存器,片内RAM区从00H到FFH(256B),内部RAM中包含的可位寻址的单元是20H~2FH(字节地址),共16个单元,这是位寻址区,对应的位地址是 00H~7FH。

答:要先向锁存器口置1,同时要外接一个上拉电阻。因为P0口内部没有上拉电阻,必须外接一个上拉电阻,才能使其端口为高电平,置1的目的就是为了使P0口作为准双向口。

 答:

P0口内部无上拉电阻,用作通用I/O口,也可用作收发低8位地址的总线口,做I/O口必须外加一个上拉电阻,才能使端口为高电平,同时还必把锁存器置为1。

P1口的内部结构有上拉电阻,相当于把P0口简化,就是一个普通的I/O口。

P2口内部有上拉电阻,是一个双功能口,即可做普通的I/O口,也可做收发高8位地址的总线口。

P3口内部也有上拉电阻,除了作为通用的I/O口,P3口还具有第二功能。

简述:除P0口无上拉电阻,其余三个端口都具有上拉电阻。做通用的I/O口时,P0口必须外加一个上拉电阻,才能使端口为高电平。四个端口做通用的I/O口时,还必把锁存器置为1

 答:

(1)80C51 单片机的 EA 信号的功能

EA为片外程序存储器访问允许信号,低电平有效EA引脚接高电平时,程序从片内程序存储器开始执行,即访问片内存储器;

EA引脚接低电平时,迫使系统全部执行片外程序存储器程序。

(2)在使用80C31 时,EA信号引脚的处理方法:

因为 80C31 没有片内的程序存储器,所以在使用它时必定要有外部的程序存储器,信号引脚应接低电平。

 对于S51型号的单片机:P1  口还有

                          P1.5                          主机输出/从机输人数据信号(MOSI)
                          P1.6                          主机输入/从机输出数据信号(MISO)
                          P1.7                          串行时钟信号(SCK)
 

 

答:                  (1)单片机复位方法:上电自动复位和按键电平复位两种方式

 答:一般开机复位后都是选择第0组通用工作寄存器作为工作寄存器,一共有4组,分别为0、1、2、3组,四组寄存器连续位于 00h 到 1FH 地址,程序状态字PSW 的第四和第三位 RS1,RS0 用来选择工作寄存器组,地址如下表:

通过定义程序状态字来选择使用不同的寄存器组。也可以直接对R1和R0赋值,来选择工作寄存器。 

答:

PSW是一个8位特殊功能寄存器,它的各位包含了程序执行后的状态信息,供程序查询或判别之用。

常用标志位有:

CY(进位标志位)                                               作用:进行位运算的位累加器
AC(辅助进位标志位)(半进位标志位)              
F0 用户标志位                                                 作用:用户根据需要选择置1或清0
RS1,RS0                                                       作用:用来选择当前工作寄存器组(RO~R7)
OV(溢出标志位)                                               作用:当作有符号数判断
P(奇偶校验位)                                                  作用:常用于校验串行通信中的数据传送是否出错

 

 答:

低 128 字节 RAM 单元地址范围也是 00H~7FH,89C51/S51 采用不同寻址方式来加以区分,即访问128个位地址用位寻址方式,访问低 128 字节单元用直接寻址和间接寻址。这样就可以区分开00H~7FH是位地址还是字节地址。

查表可知,7CH在片内RAM的2F单元的第5位。

答:

时钟信号的周期称为机器状态周期 S(STATE),是振荡周期的2倍。

一个机器周期是指 CPU 访问存储器一次(例如取指令、读存储器、写存储器等)所需要的时间。

指令周期:执行一条指令所需的时间。一个指令周期由1~4个机器周期组成。

答:1个机器周期由6个状态周期即12个振荡周期组成即:

一个机器周期=12个震荡周期=6 个时钟周期(状态周期)

其中12个振荡周期为:

S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1,S5P2,S6P1,S6P2

s=state(状态),p=phase(相位)

答:

堆栈就是一种数据项按序排列的数据结构,只能在一端对数据项进行插入和删除。

SP 的作用就是一个指针,当进行中断调用,子函数调用时将现场数据压入SP 所指向的存储器,SP 自动增加1或2,当中断结束 RETI,调用返回 RET,POP 时将SP 数据弹出,SP自动减1或2

8051 最大为 128 字节的片内存储器,理论都可以做堆栈用。

 

 答:

两种,空闲方式和掉电方式。

空闲方式和掉电方式是通过对 SFR 中的PCON(地址 87H)相应位置1而启动的。

当 CPU 执行完置 IDL=1(PCON.1)的指令后,系统进入空闲工作方式。

当 CPU 执行一条置 PCON.1位(PD)为1的指令后,系统进入掉电工作方式

 答:

读锁存器指令是从锁存器中读取一个值并进行处理,把处理后的值重新写入锁存器中,这类指令称为读-修改-写指令。
对于读-修改-写指令。直接读锁存器而不是读端口引脚,是因为从引脚上读出的数据不一定能真正反映锁存器的状态。

答:

单片机复位后,其堆栈指针SP的值通常是0。这个值是硬件规定的,通常与单片机的架构和设计有关。

如果不对SP进行修改,那么单片机的堆栈操作将始终在内存的0地址进行。这意味着堆栈会覆盖掉程序的其他部分,包括但不限于全局变量、静态变量、程序代码等。这种情况通常会导致程序崩溃或不可预测的行为。

因此,在编写程序时,通常需要确保对SP进行适当的设置,以便为堆栈分配足够的空间,并避免与其他内存区域发生冲突。这可以通过在程序的初始化部分对SP寄存器进行赋值来实现。

答:每两个中断源之间差8个单元,但是由于编的程序,8个单元往往不够,所以在这里放跳转指令。不能在这里乱放指令,只能放跳转指令或中断服务程序。

  • 22
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值