新编单片机原理与应用课后答案.docx

上传人:b****5 文档编号:5633583 上传时间:2022-12-29 格式:DOCX 页数:25 大小:71.25KB
下载 相关 举报
新编单片机原理与应用课后答案.docx_第1页
第1页 / 共25页
新编单片机原理与应用课后答案.docx_第2页
第2页 / 共25页
新编单片机原理与应用课后答案.docx_第3页
第3页 / 共25页
新编单片机原理与应用课后答案.docx_第4页
第4页 / 共25页
新编单片机原理与应用课后答案.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

新编单片机原理与应用课后答案.docx

《新编单片机原理与应用课后答案.docx》由会员分享,可在线阅读,更多相关《新编单片机原理与应用课后答案.docx(25页珍藏版)》请在冰豆网上搜索。

新编单片机原理与应用课后答案.docx

新编单片机原理与应用课后答案

习题一参考答案

1-1假设某CPU含有16根地址线,8根数据线,那么该CPU的最大寻址能力为多少KB?

答:

CPU的最大寻址能力为:

1-2在计算机里,一般具有哪三类总线?

请说出各自的特征(包括传输的信息类型、单向传输还是双向传输)。

答:

1、数据总线,双向,输入输出数据信息;

2、地址总线,单向,输出地址信息;

3、控制总线,具体到某一根控制线为单向,输入或者输出控制信息;

1-3MCS-51系列单片机时钟周期、机器周期与指令周期这三者关系如何?

CISC指令系统CPU所有指令周期是否均相同?

答:

时钟周期即为振荡周期,由外接晶振频率或外部输入的时钟频率决定,机器周期由12个时钟周期(或6个)构成,指令周期由1~4个机器周期构成;指令周期因具体指令不同而不同;

1-4计算机字长的含义是什么?

MCS-51单片机的字长是多少?

答:

计算机字长是指CPU一次能够处理的信息位长度;MCS-51单片机的字长是8位。

1-5ALU单元的作用是什么?

一般能完成哪些运算操作?

答:

ALU单元的作用是进行算术逻辑运算;算术运算主要是加、减、乘、除,逻辑运算主要是与、或、非、异或等。

1-6CPU内部结构包含了哪几部分?

单片机(MCU)芯片与通用微机CPU有什么异同?

答:

CPU主要包括算术逻辑单元ALU、控制单元CU和内部寄存器;单片机(MCU)芯片是在通用CPU的基础上增加存储器、定时器/计数器、通信接口以及各种接口电路等构成。

1-7在单片机系统中常使用哪些存储器?

答:

包括程序存储器ROM和数据存储器RAM。

1-8指令由哪几部分组成?

答:

一般由操作码和操作数组成,部分指令只有操作码而无操作数。

1-9、什么是汇编语言指令?

为什么说汇编语言指令比机器语言指令更容易理解和记忆?

通过什么方式可将汇编语言程序转化为机器语言程序?

答:

【1】用助记符表示的指令

【2】因为在汇编语言指令中每条操作码、操作数都是用特定符号表示;而机器语言中的操作码和操作数均用二进制表示,没有明显特征

【3】可通过专门的软件或手工查表方式

1-10、汇编语言程序和汇编程序这两个术语的含义是否相同?

答:

两者含义不同;1.汇编语言程序指由汇编语言指令构成的程序;

2.汇编程序指将完成汇编语言指令转换为机器语言指令的程序

1-11、什么是寻址方式?

对于双操作数指令来说,为什么不需要指定操作结果存放位置?

答:

【1】确定指令中操作数所在存储单元地址的方式

【2】在现代计算机系统中,对于双操作数指令,一般将指令执行后的结果放在第一个操作数(即目标操作数),这样可以减少指令码的长度

1-12、指出下列指令中每一操作数的寻址方式?

答:

【1】目标操作数为寄存器寻址,源操作数为立即数寻址

【2】目标操作数为直接寻址,源操作数为寄存器寻址

【3】目标操作数为直接寻址,源操作数为直接寻址

【4】目标操作数为直接寻址,源操作数为寄存器间接寻址

【5】寄存器寻址

注:

在单片机中,问到指令的寻址方式,既要答目标操作数的寻址方式,也要答源操作数的寻址方式,这与微机不同,请切记!

1-13、单片机的主要用途是什么?

新一代8位单片机芯片具有哪些主要技术特征?

列举目前应用较为广泛的8位、32位单片机品种。

答:

【1】数值计算,能实时监测系统的输入量,控制系统的输出量,从而实现自动控制功能,主要面向工业控制等

【2】可参考23页

【3】可参考21~22页

习题二参考答案

2-180C54、80C32、87C54、89C54CPU有什么不同?

在由80C32芯片组成的应用系统中引脚是如何连接的?

为什么要这样连接?

答:

2-28XC5X,如89C52单片机内部含有哪几类存储器?

各自的容量分别是多少?

答:

包括程序存储器8K和数据存储器256B。

2-38XC5X系列CPU共有多少根I/O引脚?

在什么情况下,不能将P0口作为通常意义上的输入/输出引脚使用?

答:

共有I/O引脚32根;在P0作为地址数据总线端口使用时就不能作为普通I/O口使用。

2-4简述P1口的内部结构。

为什么将P1口引脚作为输入引脚使用前,一定要向P1口锁存器相应位写入“1”?

答:

主要由两个三态门、一个D型锁存器、一个MOS管和一个上拉电阻构成;P1作为输入引脚使用时一定要先写入“1”,其目的是使内部MOS管处于截止状态,避免MOS管对输入信号构成影响。

2-5根据8XC5X系列CPUP1~P3口结构,如果用P1.x引脚驱动NPN三极管,则最大集电极电流ICMAX为多少?

(假设β取100)。

答:

假设内部上拉电阻的阻值为

,三极管发射结正向导通电压为

,则:

基极电流:

集电极电流:

2-6地址/数据分时复用的含义是什么?

8XC5XP0口与存储器,如62256相连时,两者之间需要接什么功能的芯片,才能锁存低8位地址信息?

试画出8XC5X与SRAM62256芯片(作数据存储器使用)之间的连接图。

答:

地址/数据分时复用是指总线既可作为数据线,也可作为地址线,但是具体到某一时刻只能作为数据线或者地址线;与62256相连时,在存储芯片和单片机芯片之间必须加锁存芯片,如74LS373等,用来锁存低8位地址信息;

连接电路图(见课本,略)

2-78XC5X单片机CPU复位后,使用了哪一工作寄存器区?

其中R1对应的物理存储单元地址是什么?

答:

8XC5X单片机CPU复位后,使用了工作寄存器区0;此时R1对应的物理存储单元的地址为01H。

2-8如果希望工作寄存器组中R0对应的物理存储单元为10H,请写出系统复位后,实现这一要求的指令。

答:

SETBCS1

CLRCS0

2-9说出访问下列寄存器或存储空间可以使用的寻址方式,并举例:

(1) 8XC5X系列内部RAM前128字节。

答:

直接和寄存器间接寻址。

(2) 8XC52/54/58系列内部RAM后128字节。

答:

寄存器间接寻址

(3)特殊功能寄存器。

答:

直接寻址。

(4)外部数据存储器。

答:

寄存器间接寻址

2-108XC5XCPU的机器周期与时钟周期是什么关系?

如果晶振频率为12 MHz,则一个机器周期是多少微秒?

答:

1)、12个时钟周期构成1个机器周期。

2)、1uS

2-118XC5XX2CPU的机器周期与时钟周期是什么关系?

为什么说当CKCON寄存器为01H时,时钟频率为6 MHz的8XC5XX2系统运行速度与时钟频率为12 MHz的8XC5X系统的运行速度相同?

答:

可以选择“机器周期/12时钟”或“机器周期/6时钟”。

当CKCON寄存器为01H时,时钟频率为6 MHz的的8XC5XX2机器周期为:

而时钟频率为12 MHz的8XC5X系统的机器周期为:

2-12在晶振输出端X2引脚应观察到什么样的波形?

当晶振频率较低时,如何使X2引脚输出为理想状态下的波形?

答:

方波。

2-13分析MCS-51写外部数据存储器写时序,说明为什么可使用74LS573或74LS373芯片扩展MCS-51的输入口,而不能扩展输出口。

请画出使用两片74LS373芯片扩展MCS-51的输入口、使用两片74LS237扩展输出口的电路图(假设系统中无需扩展外部存储器)。

答:

使用边沿触发器作为输出锁存器时可以可靠的锁存输出数据。

2-148XC5XCPU复位后内部RAM各单元的内容是否改变?

程序计数器PC的值是什么?

答:

否。

此时PC=0000H.

2-15MCS-51单片机通过什么指令读/写外部数据存储器?

通过什么引脚选通外部数据存储器?

答:

使用MOVX读写外部数据存储器。

通过

或者

.

2-16画出由一片80C32CPU、一片27128  EPROM和一片6264SRAM组成的单片机应用系统,要求给出有关信号的连接以及各自存储空间的地址范围。

答:

2-17在图2-7所示的电路中,假设驱动引脚为P1.0,则执行了如下程序段后,累加器Acc的内容为什么?

这又说明了什么?

  SETBP1.0

  JBP1.0,NEXT1

 MOVA,#0AAH

 SJMPEXIT

 NEXT1:

  MOVA,#55H

 EXIT:

  NOP

答:

Acc的内容为AAH。

因为JBP1.0,NEXT1是根据P1.0的电平进行判断转移,如果P1.0引脚的电平为高则转移。

因为三极管导通时P1.0引脚被钳位到低电平。

习题三参考答案

3-1MCS-51内部RAM低128字节支持哪些寻址方式?

请写出用不同寻址方式将内部RAM30H单元信息传送到累加器A的指令或程序片段;内部RAM高128字节支持哪些寻址方式?

请写出将内部RAM80H单元内容传送到累加器A的指令或程序片段。

答:

略:

3-2简述“RET”与“RETI”指令的区别。

答:

1)RET是子程序返回指令,RETI是中断服务程序返回指令;

2)RETI在返回时会清除有关中断标志位,而RET不具有此功能。

3-3指出下列指令中每一操作数的寻址方式。

  

(1)  MOV40H,A

  

(2)  MOVA,@R0

  (3)  MOVX@DPTR,A

  (4)  MOVCA,@A+DPTR

  (5)  ADDA,#23H

  (6)  PUSHAcc

  (7)  MOVP1,32H

  (8)  MOVC,P1.0

  (9)  INCP0

  (10) DECR2

  (11)  SJMPEXIT

答:

3-4执行“CJNEA,#60,NEXT”指令后,寄存器A中的内容是否被改变?

请验证。

答:

否。

3-5写出实现下列要求的指令或程序片段,并在仿真机上验证。

(1)将内部RAM20H单元内容与累加器A相加,结果存放在20H单元中。

答:

ADDA,20H

MOV20H,A

(2)将内部RAM80H单元内容与内部RAM31H单元内容相加,结果存放到内部RAM的31H单元中。

答:

MOVR0,#80H

MOVA,@R0

ADDA,31H

MOV31H,A

(3)将内部RAM20H单元内容传送到外部RAM20H单元中。

答:

MOVA,20H

MOVDPTR,#0020H

MOVX@DPTR,A

(4)将程序状态字寄存器PSW内容传送到外部RAM的0D0H单元中。

答:

MOVA,PSW

MOVDPTR,#00D0H

MOVX@DPTR,A

(5)将内部RAM08H~7FH单元,共120字节传送到以8000H为首地址的外部RAM中。

答:

MOVDPTR,#8000H

MOVR0,#08H

MOVR2,#120

LOOP:

MOVA,@R0

MOVX@DPTR,A

INCR0

INCDPTR

DJNZR2,LOOP

END

(6)将外部RAM8000H~0803FH单元,共64字节传送到以40H为首地址的内部RAM中。

答:

MOVDPTR,#8000H

MOVR0,#40H

MOVR2,#64

LOOP:

MOVXA,@DPTR

MOV@R0,A

INCDPTR

INCR0

DJNZR2,LOOP

END

(7)将外部RAM8000H~0807FH单元,共128字节传送到以0000H为首地址的外部RAM中。

答:

AURX1EQU0A2H;注意要自己定义

MOVDPTR,#8000H

INCAUXR1

MOVDPTR,#0000H

INCAUXR1

MOVR0,#128

LOOP:

MOVXA,@DPTR

INCDPTR

INCAUXR1

MOVX@DPTR,A

INCDPTR

INCAUXR1

DJNZR0,LOOP

END

(8)将存放在内部RAM的40H、41H和外部RAM的8000H、8001H的16位二进制数相加,结果存放在内部RAM的40H和41H单元中(假设低位字节存放在低地址中)。

答:

MOVDPTR,#8000H

MOVXA,@DPTR;注意使用MOVX指令,下同

ADDA,40H

MOV40H,A

INCDPTR

MOVXA,@DPTR

ADDCA,41H

MOV41H,A

END

(9)如果0~9七段数码显示器对应的字模码3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH存放在1000H为首地址的程序存储器中,写出将数字4对应的字模码输出到外部RAM3003H单元(即扩展I/O端口地址)的程序段。

答:

MOVDPTR,#1000H

MOVA,#4

MOVCA,@A+DPTR;注意使用MOVC指令

MOVDPTR,#3003H

MOVX@DPTR,A;注意使用MOVX指令

ORG1000H

DB03FH,06H,5BH,4FH,55H,66H,6DH,6DH,07H,7FH,6FH

END

(10)将内部RAM01H~0FFH单元内容清零。

答:

MOVR0,#01H

LOOP:

MOV@R0,#0

INCR0

CJNER0,#0FFH,LOOP

END

(11)我国FSK来电显示采用单数据消息格式,其中第0字节为消息类型(固定为04,即单数据消息格式标志),随后的一个字节为消息体长度,消息体内的消息字包括了来电日期(月、日)与时间(时、分)(8个字节)及主叫号码,最后一个字节为校验信息(校验算法可概括为:

从消息类型字节到主叫号码最后一个字节按256模式累加和,再求补码)。

试写出相应的校验程序片段(假设来电信息从内部RAM30H单元开始存放)。

答:

(12)使内部RAM20H单元的b7、b3位清零,b6、b2位置1,b4、b0位取反,其他位不变。

答:

SETB20H.6;如果给定的地址不在20H~2FH之间,则不能用位寻址

SETB20H.2

CLR20H.7

CLR20H.3

CPL20H.4

CPL20H.0

(13)将IPH寄存器的b7、b5位清零,b2、b0位置1,其他位不变。

答:

IPHEQU0B7H

MOVA,IPH

ANLA,#01011111B

ORLA,#00000101B

MOVIPH,A

END

(14)将内部RAM30H单元乘4(假设30H单元内容不超过63)。

答:

MOV30H,#4

MOVA,30H

RLA

RLA

MOV30H,A

END

(15)将存放在内部RAM40H、41H和外部RAM8000H、8001H的四位BCD码相加,结果存放在内部RAM40H、41H、42H单元中(假设低位字节存放在低地址中,高位字节存放在高地址中)。

答:

MOVDPTR,#8000H

MOVXA,@DPTR

CLRC

ADDA,40H

DAA

MOV40H,A

INCDPTR

MOVXA,@DPTR

ADDCA,41H

DAA

MOV41H,A

MOV42H,C

END

(16)将立即数32H传送到内部RAM30H单元中。

答:

MOV30H,#32H

(17)将立即数32H传送到内部RAM88H单元中。

答:

MOVR0,#88H

MOV@R0,32H

END

(18)将Acc.3位送Acc.0位。

答:

MOVC,ACC.3

MOVACC.0,C

END

(19)用MCS-51位指令,实现

的逻辑运算。

答:

MOVC,P1.3

ANLC,/P1.2

MOV20H.0,C;暂存

MOVC,P1.1

ORLC,P1.0

CPLC

ORLC,20H.0

END

  3-6假设4位BCD码压缩存放在R3、R2中,试编写BCD减1的程序段,并在仿真机上验证。

答:

;相当于WXYZ+10000-1=WXYZ+9999

CLRC;

MOVA,R2

ADDA,#99

DAA

MOVR2,A

MOVA,R3

ADDCA,#99

DAA

MOVR3,A

END

  3-7利用双DPTR功能,将存放在程序存储区内的数表(共计16字节,首地址为DATATAB)传送到以4000H为首地址的外部RAM中。

答:

AUXR1EQU0A2H

MOVDPTR,#DATATAB

INCAUXR1

MOVDPTR,#4000H

MOVR7,#16;16个字节

MOVA,#0;最开始的位置

LOOP:

MOVR6,A;暂存A的值

MOVCA,@A+DPTR;注意用MOVC,同时职能用A做变址寄存器

INCDPTR

MOVX@DPTR,A;注意使用MOVX指令

MOVA,R6

INCDPTR

IINCA;A的值增1,指向下一个字节

DJNZR7,LOOP

DATATAB:

DB01H,02H,03H,04H,01H,02H,03H,04H

END

  3-8将存放在R3、R2中的三位压缩BCD码转换为二进制形式。

答:

三位BCD码<999

MAIN:

MOVA,R2

ANLA,#0F0H

SWAPA

MOVB,#10

MULAB

MOVB,A//存放十位

MOVA,R2

ANLA,#0FH

ADDA,B//加个位

MOVR2,A//暂存

//

MOVA,R3

ANLA,#0FH

MOVB,#100

MULAB//

ADDA,R2//

MOVR2,A

//

MOVA,B//

ADDCA,#0

MOVR3,A  

3-9将存放在R2中不超过十进制99的二进制数转换为压缩BCD码,结果存放在R2中。

答:

MOVA,R2

MOVB,#10

DIVAB

SWAPA

ORLA,B

MOVR2,A

3-10在32位除16位的多位除法运算中,如果已知除数在8000H~FFFFH之间,为缩短运算时间,是否需要扩展被除数?

请写出相应的程序段。

答:

不需要,因为32位二进制(FFFFFFFFH)表示的最大十进制数为4294967295,除以80000H~FFFFH之间的数,其结果<=1FFFFH(注:

“1”存放在进位位),所以用32位已经足够存放商和余数。

程序如下:

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOV42H,#0FFH

MOV43H,#0FFH

MOV44H,#0FFH

MOV45H,#0FFH

;

MOV46H,#80H

MOV47H,#00H

//

//MOV40H,#0

//MOV41H,#0

MOVR7,#16

LOOP1:

;整体左移1位

CLRC

MOVR1,#4;移动4个字节

MOVR0,#45H;从最低位开始移

LOOP2:

MOVA,@R0

RLCA

MOV@R0,A

DECR0

DJNZR1,LOOP2

MOVF0,C;暂存移出的最高位

//

CLRC

MOVA,43H

SUBBA,47H

MOVR3,A

//

MOVA,42H

SUBBA,46H

MOVR2,A

//

ANLC,/F0

;进位标志cy为0及F0为1均属于没有借位的情况

;没有借位,商置1,用差替换

JCNEXT

MOV43H,R3

MOV42H,R2

ORL45H,#01H

NEXT:

;有借位,在保留被减数,商的最后一位清零(移位时已将0移入商的最后一位)

DJNZR7,LOOP1

NOP

//////////////////////////////////////////////////////////

END

  3-11假设程序头中含有如下变量定义伪指令

TXDBUFDATA#40H(注意:

原题错误,应该去掉“#”号,下同)

  BDATADATA#28H

(1)请指出“MOVR0,#TXDBUF”指令和“MOVR0,TXDBUF”指令源操作数的寻址方式。

答:

“MOVR0,#TXDBUF”指令(立即寻址);“MOVR0,TXDBUF”指令(直接寻址)

(2)执行如下程序段后,内部RAM40H~4FH单元的内容是什么?

28H单元的内容又是什么?

  MOVBDATA,#10H

  MOVR0,#TXDBUF

  CLRA

  LOOP:

  MOV@R0,A

  INCA

  INCR0

  DJNZBDATA,LOOP

  END

答:

内部RAM40H~4FH单元的内容是:

0~F,28H单元的内容是0

3-12指出复位后工作寄存器组R7~R0的物理地址。

如果希望快速保护工作寄存器组,请写出将2区作为当前工作寄存器区的程序段。

答:

(1)07H~00H.

(2)SETBRS1

CLRRS0

3-13简述顺序程序结构与分时操作程序结构的异同,以及这两种程序设计的注意事项。

答:

习题四参考答案

4-1增强型MCS-51有几个中断优先级?

试通过修改IP、IPH寄存器内容,使串行口的中断优先级最高,定时器T1的中断优先级最低。

答:

(1)4;

(2)MOVIPH,#00010000B,MOVIP,#00010000B

4-2MCS-51外中断有几种触发方式?

一般情况下,采用哪种触发方式较

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1