当前位置:文档之家› 单片机原理与接口技术习题答案

单片机原理与接口技术习题答案

2-7 MCS-51单片机的21个特殊功能寄存器中,哪些具有位寻址能力?答:MCS-51单片机中的程序状态字寄存器(PSW),B寄存器,累加器(ACC),端口P0~P3,控制寄存器中用于中断控制的中断优先级控制寄存器(IP)和中断允许控制寄存器(IE),用于设置定时/计数器和串行口工作方式的定时/计数器控制寄存器(TCON)、串行口控制寄存器(SCON)具有位寻址能力。

2-8 程序状态字寄存器(PSW)的作用是什么?答:PSW寄存器是8位寄存器,用做程序运行状态的标志,字节地址为D0H。

可以进行位寻址。

2-9 MCS-51单片机的P3口具有哪些功能?答:P3口是双功能口,除了作为准双向通用I/O口使用外,每一根口线还具有第二种功能,P3口的各位如不设定为第二功能则自动处于第一功能。

P3的第二功能涉及到串行口、外部中断、定时器,与特殊功能寄存器有关。

2-13 什么是时钟周期、状态周期、机器周期和指令周期?当单片机时钟频率为12MHz时,一个机器周期是多少?ALE引脚的输出频率是多少?答:时钟周期也称为振荡周期,定义为时钟脉冲频率(f osc)的倒数,它是计算机中最基本的、最小的时间单位。

时钟周期经2分频后成为内部的时钟信号,用作单片机内部各功能部件按序协调工作的控制信号,称为状态周期,用S表示。

完成一个基本操作所需要的时间称为机器周期。

指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成,指令不同,所需要的机器周期数也不同。

当单片机时钟频率为12MHz时,一个机器周期为1μs。

ALE引脚的输出频率为2MHz。

2-14 什么时候需要复位操作?对复位信号有何要求?答:复位是单片机的初始化操作。

单片机系统在上电启动运行时,都需要先复位。

上电复位利用电容器的充电实现。

在时钟电路工作后,在RST端连续给出2个机器周期的高电平就可完成复位操作。

MCS-51单片机的上电加按键复位电路当复位按键按下后,复位端通过51Ω的小电阻与+5V电源接通,迅速放电,使RST引脚为高电平;当复位按键弹起后,+5V电源通过2kΩ电阻对22μF电容重新充电,RST引脚端出现复位正脉冲。

习题与思考题33-1 什么是寻址方式?MCS-51指令系统有哪些寻址方式?相应的寻址空间在何处?答:在指令系统中,操作数是一个重要的组成部分,它指定了参与运算的数据或数据所在的地址单元。

如何找到参与运算的这个数据或数据所在的地址就称为寻址方式。

MCS-51指令系统的寻址方式主要有立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址、相对寻址和位寻址等七种。

对程序存储器只能采用立即寻址和基址加变址寻址方式;对特殊功能寄存器只能采用直接寻址方式,不能采用寄存器间接寻址,对8032/8052等单片机内部RAM的高128个字节(80H~FFH),只能采用寄存器间接寻址,不能使用直接寻址方式;对位操作指令只能对位寻址区操作;外部扩展的数据存储器只能用MOVX指令访问,而内部RAM的低128个字节(00H~7FH)既能用直接寻址,也能用间接寻址。

3-2 访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。

答:访问外部数据存储器可以用以下指令实现:MOVX A, @Ri ;((Ri))→A,寄存器Ri指向的片外RAM地址中的内容送到累加器A中MOVX @Ri, A ;A→((Ri)),累加器中内容送到寄存器Ri指向的片外RAM地址中MOVX A, @DPTR ;((DPTR))→A,数据指针指向的片外RAM地址中的内容送到累加器A中MOVX @DPTR, A ;A→((DPTR)),累加器中内容送到数据指针指向的片外RAM地址中访问程序存储器可以用以下指令实现:MOVC A, @A+DPTR ;((A+DPTR))→A,表格地址单元中的内容送到累加器A中MOVC A, @A+PC ;PC+1→PC,((A+PC))→A,表格地址单元中的内容送到累加器A中3-3 试用下列3种寻址方式编程,将立即数0FH送入内部RAM的30H单元中。

(1) 立即寻址方式;(2) 寄存器寻址方式;(3) 寄存器间接寻址方式答:(1)立即寻址方式:MOV 30H, #0FH(2)寄存器寻址方式:MOV R5, #0FHMOV 30H, R5(3)寄存器间接寻址方式:MOV @R1, #0FHMOV 30H, @R13-5 试编写一段程序,将内部数据存储器30H、3lH单元内容传送到外部数据存储器1000H、1001H单元中。

答:MOV A, 30HMOV DPTR, #1000HMOV @DPTR, AMOV A, 31HMOV DPTR, #1000HMOV @DPTR, A3-13 SJMP指令和AJMP指令都是字节转移指令,它们有什么区别?各自的转移范围是多少?能否用AJMP指令代替程序中的所有SJMP指令?为什么?答:AJMP和SJMP的区别有:(1) 跳转范围不同。

AJMP addr1 ;短跳转范围:2KBSJMP rel ;相对跳转范围:-128~+127(2) 指令长度不同。

(3) 指令构成不同。

AJMP、LJMP后跟的是绝对地址,而SJMP后跟的是相对地址。

不能用AJMP指令代替程序中的SJMP指令,因为如果改变的话,程序跳转到的新PC值指向的地址会不同,导致程序出现错误。

3-14 试用位操作指令实现下列逻辑操作。

要求不得改变未涉及到的位的内容。

(1)使ACC.0置位;(2)清除累加器高4位;(3)清除ACC.3,ACC.4,ACC.5,ACC.6。

答:(1)SETB ACC.0(2)CLR ACC.4CLR ACC.5CLR ACC.6CLR ACC.7(3)CLR ACC.3CLR ACC.5CLR ACC.6习题与思考题44-1 MCS-51系列单片机汇编语言进行程序设计的步骤如何?答:单片机汇编语言进行程序设计的步骤:(1)分析题意,明确要求;(2)确定算法;(3)画程序流程图,用图解来描述和说明解题步骤;(4)分配内存工作单元,确定程序与数据区的存放地址;(5)编写源程序;(6)程序优化;(7)上机调试、修改和最后确定源程序。

4-3 子程序调用时,参数的传递方法有哪几种?答:传递方法有传递数据、传送地址和通过堆栈传递参数。

4-5 编写程序,采用算术平均值滤波法求采样平均值,设8次采样值依次放在20H~27H的连续单元中,结果保留在A中。

答:FILT: CLR AMOV R2, AMOV R3, AMOV R0, #20HMOV R7, #08H;初始化FILT1: MOV A, @R0ADD A, R3MOV R3, ACLR AADDC A, R2MOV R2, AINC R0DJNZ R7, FILT1;累加采样值到R3,累加进位到R2=00000xxxBFILT2: SWAP ARL A ;R2/8,节省一个指令周期XCH A, R3SWAP ARL A ;R3/8,节省一个指令周期ADD A, #80H ;四舍五入ANL A, #1FH ;屏蔽移位进入的前三位ADDC A, R3 ;结果相加END;取平均值4-8 假设在R0指向的片内RAM区,存有20个16进制数的ASCII字串。

将ASCII码转换为16进制数,然后两两合成一个字节,从低地址单元到高地址单元依次组合。

答:ORG 0000HSTART: MOV R7, #20MOV R1, A ;R1为中间量MOV A, @R0CLR CSUBB A, #30HMOV @R1, AJC S01MOV A, @R0SUBB A, #07HMOV @R1, AS01: INC R0MOV A, @R0CLR CSUBB A, #30HSWAP AORL A, @R1MOV @R1, AJC S02MOV A, @R0SUBB A, #07HSWAP AOR A, @R1MOV @R1, AS02: INC R0DJNZ R7, S0END习题与思考题66-2 MCS-51单片机提供了几个中断源?有几级中断优先级别?各中断标志是如何产生的又如何清除这些中断标志?各中断源所对应的中断矢量地址是多少?答:MCS-51单片机提供了5个中断源,有2级中断优先级别。

中断标志由特殊功能寄存器TCON和SCON的相应位锁存。

(见书中图6-4、6-6)中断标志的撤消分为:1)定时/计数器中断请求的撤消中断请求被响应后,硬件会自动清TF0或TF1。

2)外部中断请求的撤消(1)跳沿方式外部中断请求的撤消是自动撤消的。

(2)电平方式外部中断请求的撤消,除了标志位清“0”之外,还需在中断响应后把中断请求信号引脚从低电平强制改变为高电平。

(见书中图例6-1)3)串行口中断请求的撤消响应串行口的中断后,CPU无法知道是接收中断还是发送中断,还需测试这两个中断标志位的状态,以判定是接收操作还是发送操作,然后才能清除。

所以串行口中断请求的撤消只能使用软件的方法。

CLR TI ;清TI标志位CLR RI ;清RI标志位各中断源对应的中断矢量地址分别为:中断源中断矢量外部中断00003H定时器T0中断000BH外部中断10013H定时器T1中断001BH串行口中断0023H定时器中断T2(仅52系列有)002BH6-3 外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的中断过程有何不同?怎样设定?答:采用中断电平触发方式时,中断请求标志IT0=0,CPU在每个机器周期的S5P2期间采样,一旦在P3.2引脚上检测到低电平,则有中断申请,使IE0置位(置1),向CPU申请中断。

在电平触发方式中,在中断响应后中断标志位IE0的清0由硬件自动完成,但由于CPU对P3.2引脚没有控制作用,使中断请求信号的低电平可能继续存在,在以后的机器周期采样时又会把已清0的IE0标志位重新置1,所以,在中断响应后必须采用其它方法撤消该引脚上的低电平,来撤除外部中断请求信号,否则有可能再次中断造成出错。

采用边沿触发方式时,IT0=1,CPU在每个机器的S5P2期间采样,当检测到前一周期为高电平,后一周期为低电平时,使标志IE0置1,向CPU申请中断,此标志位一直保持到CPU响应中断后,才由硬件自动清除。

在边沿触发方式中,为保证CPU在两个机器周期内检测到由高到低的负跳变,高电平与低电平的持续时间不得少于一个机器周期的时间。

6-4 试分析以下几种中断优先级的排列顺序(级别由高到低)是否可能?若可能,则应如何设置中断源的中断级别?否则,请简述不可能的理由。

(1) 定时器T0中断,定时T1中断,外中断1NT0,外中断INT1,串行口中断;(2) 串行口中断,外中断1NT0,定时器T0中断,外中断INT1,定时器T1中断;(3) 外中断INT0、定时器T1中断,外中断INT1,定时器T0中断,串行口中断。

相关主题