单片机部分习题答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第2章:2、CIP-51有哪些存储空间?各个存储空间的功能及寻址范围是什么?

有程序存储器、内部数据存储器、外部数据存储器、特殊功能寄存器和位寻址区五个独立的地址空间。

●程序存储器:存放程序和常数,容量为64KB,地址范围0000H-0FFFFH ●内部数据存储器:用于通用寄存器和存放数据的临时存储器,容量为256B,

地址范围00H-0FFH

●外部数据存储器:用于存放数据,容量为64KB(有4KB在芯片内部),地

址为0000-0FFFFH

●特殊功能寄存器(SFR):提供对片内资源和外设的访问和控制,以及与外

设的数据交换,C8051F020有122个,离散分布在地址80H-0FFH中。

●位地址空间:存放位变量,进行布尔运算,容量为256位,有内部RAM的

20H-2FH(16字节,128位)和部分SFR(字节地址可以被8整除的)组成,地址范围为00H-0FFH

3、CIP-51的内部RAM空间有多少字节?它们在应用中有什么专门用途?堆栈一般应设置在什么位置?

●内部RAM有256字节

●低128B中的00H-1FH用于通用寄存器,20H-2FH既可以字节寻址也可以

位寻址,30H-7FH作一般存储器用;高128B因为与SFR地址重叠,故只能间接寻址,也作一般存储器用

●理论上堆栈可以设在内部数据存储器的任何位置,复位时堆栈指针SP为

07H,但为了避开通用寄存器和位地址空间,一般设在30H-0FFH。

5、读写内部RAM与外部RAM的数据时,使用的指令有什么区别?读程序存储器的数据的指令又有什么不同?

读写内部RAM用MOV指令;读写外部RAM用MOVX指令;读程序存储器用MOVC指令,写程序存储器用MOVX指令,但为与写外部RAM相区分,需要对相应SFR的相关位进行设置。

6、若(PSW)=0x10,则当前的R0~R7在内部RAM中有哪些单元?

由(PSW)=0x10可知RS1RS0=10,故通用寄存器R0-R7在内部RAM的0x10-0x17单元。(PSW的格式P22)

第一次作业存在的问题:

第一题:5个存储空间,有的同学写的不全,漏SFR和位寻址区;有的同学对位寻址区的寻址范围写的不对,应为0x00-0xff而非0x20-0x2f。

第三题:内部RAM每一部分的专门作用,尤其低128B要再分类说明;片内XRAM不算片内RAM;堆栈一般在0x30-0xff,而非0x30-0x7f。

第六题:部分同学不会做;要查询PSW的格式,RS1RS0的作用,P22表2-2 8、请叙述中断的响应过程。一个中断请求从提出到CPU响应最短要多长时间?如果CPU响应中断的条件全部具备,响应中断最长的时间是多少?在什么样的情况下会出现这个响应时间?

C8051F的每个系统时钟周期对中断标志采样并对优先级译码,如果允许中断响应,则置位相应的优先级状态触发器,然后执行一条硬件长调用指令,控制转移到相应的入口,清相应中断请求标志(有些需要在中断服务程序中清除,如RI、TI),接着PC压栈(但不保护PSW),将中断服务程序的入口地址送给PC,完成中断响应。

最快需要5个系统时钟周期:1个中断检测周期,4个对ISR的调用周期(LCALL)。最慢发生在CPU正在执行RETI指令的时候,需要再执行一条指令才能进入中断服务程序,而最慢的指令是DIV需要8个系统时钟周期。因此,最慢需要18个系统时钟周期:1个中断检测周期,5个执行RETI的周期,8个执行DIV指令的周期,4个对ISR的调用周期(LCALL)。

9、C8051F020单片机的外部RAM有片内和片外之分,如何实现片外的RAM?复用与非复用方式的外部RAM是什么意思?数据总线和地址总线是如何连接的?

通过外部数据存储器接口EMIF实现片外数据存储器,用并行口P0-P3或P4-P7实现数据总线和地址总线,数据线和地址线可以复用也可以非复用,由EMIOCF 控制。

复用是指数据总线和地址总线的低8位共用一组端口信号线。非复用是指数据总线和地址总线的低8位各用单独的一组端口信号线。

若用低端端口实现,复用时用P2口提供地址高8位,P3口提供地址低8位和数据线;非复用时用P1口提供高8位地址线,P2口提供地址线低8位,P3口提供数据线。若用高端端口实现,非复用则用P5、P6提供地址高、低8位,P7做数据线,复用则用P6提供地址线高8位,P7提供地址低8位和数据线。

10.什么是优先权交叉开关译码器?C8051F020单片机有多少数字I/O口?C8051F单片机的引脚与片内资源是如何对应的?

C8051F单片机没有为定时器、串行口、A/D、D/A等提供单独的引脚信号线,而是用并行口P0-P3提供,C8051F单片机允许使用部分数字和模拟外设,没有用到的就不用分配引脚信号,因此内部提供了一个优先交叉开关译码电路,实现P0-P3和这些资源的可编程连接,这就是优先交叉开关译码器。

C8051F单片机有64位数字I/O端口。其中P0-P3可以按照优先交叉开关译码的方式为片内资源分配引脚,用端口I/O交叉开关寄存器XBR0-XBR2实现。

11、假如一个单片机应用系统中要用到的资源位UART0、SMBus、SPI、和CP0分配端引口(共9个引脚)。另外将外部存储器解耦配置为复用方式并使用低端口。同时还将P1.2、P1.3、P1.4配置为模拟输入,以便用ADC1测量加在这些引脚上的电压。试用Config软件进行优先权交叉开关译码器的配置,写出配置步骤,配置XBR0~XBR2等相关SFR的值。

(1)按UART0EN=1(XBR0.2)、SMB0EN=1(XBR0.0)、SPI0EN=1(XBR0.1)、CP0E=1(XBR0.7)、EMIFLE=1(XBR2.1)设置XBR0、XBR1、XBR2得XBR0=0x87、XBR1=0x00、XBR2=0x02;

(2)存储器接口配置为复用方式并使用低端口,有PTRSEL=0(EMIOCF.5)、EMD2=0(EMIOCF.4);

(3)P1.2~P1.4配置为模拟输入方式有:P1MDIN=0xe3;

(4)设置XBARE=1使能交叉开关,则XBR2=0x42。UART0优先级最高,P0.0、P0.1分配给TX0、RX0;SPI优先权次之,P0.2~P0.4分配给SCK、MISO、MOSI、P0.5~P0.7分配给ALE、/RD、/WR、P1.0分配给NSS;下一个优先的是SMBUS,P1.1分配给SDA、P1.2~P1.4做模拟量输入,跳过,P1.5分配给SCL;再下面的优先权是CP0,P1.6分配给CP0;

(5)UART0的TX0(P0.0)、ALE(P0.5)、/RD(P0.6)、/WR(P0.7)的输出设置为推挽方式,P0MDOUT=0xe1;(6)P2、P3设置为推挽方式P2MDOUT=0xff、P3MDOUT=0xff;

(7)P1设置为漏极开路方式,并禁止3个模拟输入的输出驱动:P1MDOUT=0x00、P1=0xff。

13、8051F单片机进入空闲方式时,单片机的振荡器是否工作?采用何种方法能使单片机退出空闲方式?

工作。复位或中断。

14、C8051F020有几个复位源,分别是什么?自己的项目中最常使用的是什么复位源?

7个:上/电复位、外部/RST引脚复位、外部CNVSTR信号复位、软件命令复位、比较器0复位、时钟丢失检测器复位、WatchDog超时复位。

15、再简单的试验程序中,如果看门狗定时器复位不使用,该如何禁用?

向WDTCN写入0xDE后,4个系统时钟周期内再写入0xAD。该过程不应被中断。C51代码:

EA=0; //禁止中断

相关文档
最新文档