单片微型计算机原理胡乾斌课后习题答案Word下载.docx

上传人:b****3 文档编号:16791759 上传时间:2022-11-26 格式:DOCX 页数:36 大小:119.18KB
下载 相关 举报
单片微型计算机原理胡乾斌课后习题答案Word下载.docx_第1页
第1页 / 共36页
单片微型计算机原理胡乾斌课后习题答案Word下载.docx_第2页
第2页 / 共36页
单片微型计算机原理胡乾斌课后习题答案Word下载.docx_第3页
第3页 / 共36页
单片微型计算机原理胡乾斌课后习题答案Word下载.docx_第4页
第4页 / 共36页
单片微型计算机原理胡乾斌课后习题答案Word下载.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

单片微型计算机原理胡乾斌课后习题答案Word下载.docx

《单片微型计算机原理胡乾斌课后习题答案Word下载.docx》由会员分享,可在线阅读,更多相关《单片微型计算机原理胡乾斌课后习题答案Word下载.docx(36页珍藏版)》请在冰豆网上搜索。

单片微型计算机原理胡乾斌课后习题答案Word下载.docx

几乎所有的单片机都有Wait、Stop等省电运行方式。

允许使用的电源电压范围也越来越宽。

一般单片机都能在3~6V范围内工作,对电池供电的单片机不再需要对电源采取稳压措施。

低电压供电的单片机电源下限已由2.7V降至2.2V、1.8V。

0.9V供电的单片机已经问世。

5.低噪声与高可靠性

为提高单片机系统的抗电磁干扰能力,使产品能适应恶劣的工作环境,满足电磁兼容性方面更高标准的要求,各单片机商家在单片机内部电路中采取了一些新的技术措施。

如ST公司的由标准8032核和PSD(可编程系统器件)构成的μPSD系列单片机片内增加了看门狗定时器,NS公司的COP8单片机内部增加了抗EMI电路,增强了“看门狗”的性能。

Motorola推出了低噪声的LN系列单片机。

6.ISP与IAP

ISP(In-SystemProgramming)技术的优势是不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由于频繁地插入取出芯片对芯片和电路板带来的不便。

IAP(In-ApplicationProgramming)技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。

ISP的实现一般需要很少的外部电路辅助实现,而IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器,可以通过现有的INTERNET或其它通讯方式很方便地实现远程升级和维护。

单片机的应用领域:

1)智能化家用电器:

各种家用电器普遍采用单片机智能化控制代替传统的电子线路控制,升级换代,提高档次。

如洗衣机、空调、电视机、录像机、微波炉、电冰箱、电饭煲以及各种视听设备等。

2)办公自动化设备:

现代办公室使用的大量通信和办公设备多数嵌入了单片机。

如打印机、复印机、传真机、绘图机、考勤机、电话以及通用计算机中的键盘译码、磁盘驱动等。

3)商业营销设备:

在商业营销系统中已广泛使用的电子称、收款机、条形码阅读器、IC卡刷卡机、出租车计价器以及仓储安全监测系统、商场保安系统、空气调节系统、冷冻保险系统等都采用了单片机控制。

4)工业自动化控制:

工业自动化控制是最早采用单片机控制的领域之一。

如各种测控系统、过程控制、机电一体化、PLC等。

在化工、建筑、冶金等各种工业领域都要用到单片机控制。

5)智能仪器仪表:

采用单片机的智能化仪表大大提升了仪表的档次,强化了功能。

如数据处理和存储、故障诊断、联网集控等。

6)智能化通信产品:

最突出的是手机,当然手机内的芯片属专用型单片机。

7)汽车电子产品:

现代汽车的集中显示系统、动力监测控制系统、自动驾驶系统、通信系统和运行监视器(黑匣子)等都离不开单片机。

8)航空航天系统和国防军事、尖端武器等领域:

单片机的应用更是不言而喻。

习题2

2.1MCS-51单片机内部包含哪些主要逻辑功能部件?

微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、特殊功能寄存器(SFR)、并行I/O口、串行通信口、定时器/计数器及中断系统。

2.2说明程序计数器PC和堆栈指针SP的作用。

复位后PC和SP各为何值?

程序计数器PC中存放将要执行的指令地址,PC有自动加1功能,以实现程序的顺序执行。

它是SFR中唯一隐含地址的,因此,用户无法对它进行读写。

但在执行转移、调用、返回等指令时能自动改变其内容,以实现改变程序的执行顺序。

程序计数器PC中内容的变化决定程序的流程,在执行程序的工作过程中,由PC输出将要执行的指令的程序存储器地址,CPU读取该地址单元中存储的指令并进行指令译码等操作,PC则自动指向下一条将要执行的指令的程序存储器地址。

SP是一个8位的SFR,它用来指示堆栈顶部在内部RAM中的位置。

系统复位后SP为07H,若不对SP设置初值,则堆栈在08H开始的区域,为了不占用工作寄存器R0~R7的地址,一般在编程时应设置SP的初值(最好在30H~7FH区域)。

2.3程序状态字寄存器PSW的作用是什么?

其中状态标志有哪几位?

它们的含义是什么?

PSW是保存数据操作的结果标志,其中状态标志有CY(PSW.7):

进位标志,AC(PSW.6):

辅助进位标志,又称半进位标志,F0、F1(PSW.5、PSW.1):

用户标志;

OV(PSW.2):

溢出标志;

P(PSW.0):

奇偶标志。

2.4什么是堆栈?

堆栈有何作用?

为什么要对堆栈指针SP重新赋值?

SP的初值应如何设定?

堆栈是一种数据结构,所谓堆栈就是只允许在其一端进行数据写入和数据读出的线性表。

其主要作用有两个:

保护断点和保护现场。

堆栈区的设置原则上可以在内部RAM的任意区域,但由于MCS-51单片机内部RAM的00H~1FH地址单元已被工作寄存器R0~R7占用,20H~2FH为位寻址区,故堆栈一般设在30H~7FH(对于8032系列芯片可为30H~0FFH)的区域内。

单片机复位后,SP的内容为07H,堆栈事实上由08H单元开始,考虑到08H~1FH单元分别属于1~3组的工作寄存器区,则最好把SP值改置为1FH或更大的值。

2.5开机复位后,CPU使用的是哪组工作寄存器?

它们的地址如何?

CPU如何指定和改变当前工作寄存器组?

开机复位后使用的是0组工作寄存器,它们的地址是00H~07H,对程序状态字PSW中的RS1和RS0两位进行编程设置,可指定和改变当前工作寄存器组。

RS1、RS0=00H时,当前工作寄存器被指定为0组;

RS1、RS0=01H时,当前工作寄存器被指定为1组;

RS1、RS0=10H时,当前工作寄存器被指定为2组;

RS1、RS0=11H时,当前工作寄存器被指定为3组。

2.6MCS-51的时钟周期、机器周期、指令周期是如何定义的?

当振荡频率为12MHz时,一个机器周期为多少微秒?

①时钟周期也称为振荡周期,定义为时钟脉冲的倒数,是计算机中最基本的、最小的时间单位。

②CPU取出一条指令至该指令执行完所需的时间称为指令周期,因不同的指令执行所需的时间可能不同,故不同的指令可能有不同的指令周期。

③机器周期是用来衡量指令或程序执行速度的最小单位。

它的确定原则是以最小指令周期为基准的,即一个最小指令周期为一个机器周期。

④当振荡频率为12MHz时,一个机器周期1微秒

2.7MCS-51单片机的控制信号、、有哪些功能?

是访问程序存储器控制信号。

当端接低电平时,则不管芯片内部是否有程序存储器,CPU只访问外部程序存储器。

对8031来说,因其内部无程序存储器,所以该引脚必须接地。

当端接高电平时,CPU访问内部程序存储器,但当PC(程序计数器)值超过某一值时,将自动转向片外程序存储器1000H地址继续执行程序。

是地址锁存允许信号。

当CPU访问外部存储器或I/O接口时,ALE输出脉冲的下降沿用于锁存16位地址的低8位。

在不访问外部存储器或I/O接口时,ALE端有周期性正脉冲输出,其频率为振荡频率的1/6。

但是,每当访问外部数据存储器或I/O接口时,在第二个机器周期中ALE只出现一次,即丢失一个ALE脉冲。

片外程序存储器读选通信号。

在CPU从外部程序存储器读取指令(或常数)期间,每个机器周期两次有效,但在访问外部数据存储器或I/O接口时,信号将不出现。

端可以驱动8个TTL负载。

2.8MCS-51的片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突?

MCS-51的片外程序存储器和片外数据存储器共处同一地址空间,地址范围都是0000H~FFFFH(64KB),但不会发生总线冲突。

因片外程序存储器和片外数据存储器的读写控制信号不同,片外程序存储器的读信号是,而片外数据存储器的读信号为、写信号为,访问片外程序存储器和片外数据存储器的指令也不同,所以它们不会发生总线冲突。

2.9简述MCS-51内部数据存储器的存储空间分配。

内部数据存储器分为3个区域:

1.工作寄存器区(00H~1FH);

2.位寻址区(20H~2FH);

3.堆栈和数据缓冲器区(30H~7FH或30H~0FFH)。

2.10位地址和字节地址有何区别?

位地址20H具体在内存中什么位置?

MCS-51的位存储器由以内部RAM中20H~2FH单元和特殊功能寄存器中地址为8的倍数的特殊功能寄存器两部分组成。

其中每个单元的每一位都有一个位地址映像,它们既可以像普通内部RAM单元一样按字节存取,也可以对单元中的任何一位单独存取。

字节地址是内部RAM中和特殊功能寄存器中每个存储单元的地址。

位地址20H是内部RAM24H中的D0位。

2.118051的4个I/O口作用是什么?

8051的片外三总线是如何分配的?

MCS-51单片机有4个8位并行I/O端口,分别记作P0、P1、P2、P3口。

①在访问片外扩展存储器时,P0口分时传送低8位地址和数据,P2口传送高8位地址。

P1口通常作为通用I/O口供用户使用。

P3口具有第二功能,为系统提供一些控制信号。

在无片外扩展存储器的系统中,这4个口均可作为通用I/O端口使用。

在作为通用I/O端口使用时,这4个口都是准双向口。

②在访问片外扩展存储器时,片外三总线的构成:

P0口传送低8位地址经锁存器所存构成低8位地址总线,高8位地址总线由P2口构成。

P0口作为单片机系统的低8位地址/数据线分时复用,在低8位地址锁存后,P0口作为双向数据总线。

由P3口的第二功能输出数据存储器的读、写控制信号与片外程序存储器读选通信号,访问程序存储器控制信号,地址锁存允许信号构成控制总线。

习题3

3.1汇编语句是由4个部分(字段)构成的,简述各部分的含义。

汇编语句的4个部分为:

[标号:

][操作码][操作数];

[注释]

标号是用户设定的一个符号,表示存放指令或数据的存储单元地址。

标号由以字母开始的1―8个字母或数字串组成,以冒号结尾。

不能用指令助记符、伪指令或寄存器名来作标号。

标号是任选的,并不是每条指令或数据存储单元都要标号,只在需要时才设标号。

如转移指令所要访问的存储单元前面一般要设置标号。

一旦使用了某标号定义一个地址单元,在程序的其它地方就不能随意修改这个定义,也不能重复定义。

操作码是指令或伪指令的助记符,用来表示指令的性质或功能。

对于一条汇编语言指令,这个字段是必不可少的。

操作数给出参加运算(或其它操作)的数据或数据的地址。

操作数可以表示为工作寄存器名、特殊功能寄存器名、标号名、常数、表达式等。

这一字段可能有,也可能没有。

若有两个或三个操作数,它们之间应以逗号分开。

注释字段不是汇编语言的功能部分,只是增加程序的可读性。

言简意赅的注释是汇编语言程序编写中的重要组成部分。

3.2举例说明MCS-51单片机的7种寻址方式,各寻址方式的寻址空间。

1.立即寻址立即寻址方式的寻址空间为程序存储器。

例如:

MOVA,#3FH;

3FH→A

1.直接寻址直接寻址方式中操作数存储的空间有三种:

1.内部数据存储器的低128个字节单元(00H~7FH)

MOVA,30H;

(30H)→A

指令功能是把内部RAM30H单元中的内容送入累加器A。

⑵位地址空间

MOVC,00H;

直接位00H内容→进位位

⑶特殊功能寄存器

MOVIE,#85H;

立即数85H→中断允许寄存器IE。

1.寄存器寻址寄存器寻址方式的寻址空间为工作寄存器和特殊功能寄存器等。

MOVA,R6;

(R6)→A

1.寄存器间接寻址寄存器间接寻址空间为内部RAM128字节,外部RAM

MOVA,@R0;

((R0))→A

1.变址寻址变址寻址空间为程序存储器。

MOVCA,@A+DPTR;

((DPTR)+(A))→A

MOVCA,@A+PC;

((PC)+(A))→A

1.相对寻址相对寻址空间为程序存储器。

2.当前PC值是指相对转移指令所在地址(源地址)加转移指令字节数。

即:

当前PC值=源地址+转移指令字节数

1.偏移量rel是有符号的单字节数,以补码表示,相对值在-128~+127范围内,负数表示从当前地址向上转移,正数表示从当前地址向下转移。

所以转移的目的地址为:

目的地址=当前PC值+rel=源地址+转移指令字节数+rel

JNC2AH,JZF8H

1.位寻址位寻址空间为内部RAM20H~2FH的128位和SFR中的83位。

MOVC,30H,MOVP1.0,C

3.3指出下列指令的寻址方式和操作功能:

INC40H;

直接寻址(40H)+1→40H

INCA;

寄存器寻址(A)+1→A

INC@R2;

寄存器间接寻址((R2))+1→(R2)

MOVCA,@A+DPTR;

基址加变址寄存器寻址((A)+(DPTR))→A

MOVA,#6EH;

立即寻址6EH→A

SETBP1.0;

位寻址P1.0置1

3.4设内部RAM中3AH单元的内容为50H,写出当执行下列程序段后寄存器A、R0和内部RAM50H,51H单元的内容为何值?

MOVA,3AH;

(A)=50H

MOVR0,A;

(R0)=50H

MOVA,#00H;

(A)=00H

MOV@R0,A;

(50H)=00H

MOVA,#25H;

(A)=25H

MOV51H,A;

(51H)=25H

(A)=25H,(3AH)=50H,(R0)=50H,(50H)=00H,(51H)=25H

3.5设堆栈指针SP中的内容为60H,内部RAM30H和31H单元的内容分别为27H和1AH,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?

PUSH30H;

(SP)+1→SP,(30H)→61H

PUSH31H;

(SP)+1→SP,(31H)→62H

POPDPL;

(62)→DPL,(SP)-1→SP

POPDPH;

(61)→DPH,(SP)-1→SP

MOV30H,#00H;

00H→30H

MOV31H,#0FFH;

FFH→31H

(61H)=27H,(62H)=1AH,(30H)=00H,(31H)=FFH,(DPTR)=271AH,(SP)=60H

3.6设(A)=30H,(R1)=23H,(30H)=05H。

执行下列两条指令后,累加器A和R1以及内部RAM30H单元的内容各为何值?

XCHA,R1

XCHDA,@R1

(A)=25H,(R1)=30H,(30H)=03H

3.7设(A)=01010101B,(R5)=10101010B,分别写出执行下列指令后的结果

ANLA,R5;

(A)=00000000B,(R5)=10101010B

ORLA,R5;

(A)=10101010B,(R5)=10101010B

XRLA,R5;

(A)=00000000B

3.8设指令SJMPrel=7FH,并假设该指令存放在2113H和2114H单元中。

当该条指令执行后,程序将跳转到何地址?

程序将跳转到2194H地址

3.9简述转移指令AJMPaddr11,SJMPrel,LJMPaddr16及JMP@A+DPTR的应用场合。

AJMPaddr11这是在当前PC的2K字节范围内的无条件转移指令,把程序的执行转移到指定的地址。

SJMPrel这是相对跳转指令,其中rel为相对偏移量。

转向的目标地址是在当前PC的前128字节到后127字节之间。

LJMPaddR16执行这条指令时把指令的第二和第三字节分别装入PC的高位和低位字节中,无条件地转向指定地址。

转移的目标地址可以在64KB程序存储器地址空间的任何地方,不影响任何标志。

JMP@A+DPTR把累加器A中8位无符号数与数据指针DPTR中的16位数相加,将结果作为转移的目标地址送入PC,不改变累加器A和数据指针DPTR内容,也不影响标志。

本指令以DPTR内容作为基址,A的内容作为变址。

只要把DPTR的值固定,而给A赋予不同的值,即可实现程序的多分支转移。

3.10查指令表,写出下列两条指令的机器码,并比较一下机器码中操作数排列次序的特点。

MOV78H,80H;

858078

MOV78H,#80H;

757880

直接寻址单元传送到直接寻址单元的机器码是第二个操作数在前,而立即数传送到直接地址单元是第一个操作数在前,次序正好相反。

3.11试编写程序,查找在内部RAM30H~50H单元中1AH这一数据。

若找到1AH则将51H单元置为01H;

没找到则将51H单元置为00H。

参考程序如下

MOVR1,#2FH

LOOP1:

INCR1

CJNE@R1,#1AH,LOOP2

SJMPLOOP3

LOOP2:

CJNER1,#51,LOOP1

MOV51H,#00H

SJMPEND

LOOP3:

MOV51H,#01H

END:

RET

3.12若SP=60H,子程序标号MULT所在的地址为3A40H。

执行LCALLMULT指令后,堆栈指针SP和堆栈内容发生了什么变化?

(SP)=62H,(61H)=40H,(62H)=3AH

3.13假设外部存储器215AH单元的内容为3DH,执行下列指令后,累加器A中的内容为何值?

MOVP2,#21H

MOVR0,#5AH

MOVXA,@R0

(A)=3DH

习题4

4.1编程将数据存储器中以2A00H为首地址的100个连续单元清零。

CLRA

MOVR0,#64H

MOVDPTR,#2A00H

LOOP:

MOVX@DPTR,A

INCDPTR

DJNZR0,LOOP

END

4.2编程将片内50H~70H单元中的内容传送到以5C00H为起始地址的存储区中。

MOVDPTR,#5C00H

MOVR0,#50H

MOVA,@R0

MOVX@DPTR,A

INCR0

INCDPTR

CJNER0,#70H,LOOP

4.3片外RAM区从1000H单元开始存有100个单字节无符号数,找出最大值并存入1100H单元中,试编写程序。

MOVDPTR,#1000H;

置片外RAM区首地址

MOVR0,#00H;

清R0

MOVR1,64H;

置计数初值100

MOVXA,@DPTR;

取片外RAM区的某个数送A

CJNZA,R0,NT1;

与R0中的数比较

NT1:

JCNT2;

(A)<

(R0)跳转到NT2

MOVRO,A;

若(A)(R0),则大数送RO

NT2:

INCDPTR;

修改数据块指针

DJNZR1,LOOP;

未完,循环

RET

 

4.4设有100个单字节有符号数,连续存放在以2100H为首地址的存储区中,试编程统计其中正数、负数、零的个数。

MOVR0,#00H;

置负数的计数初值

MOVR1,#00H;

置正数的计数初值

MOVR2,#00H;

置0的计数初值

MOVR4,#64H;

置循环计数初值

MOVDPTR,#2100H;

置数据区首地址

START:

MOVXA,@DPTR;

取某一数据送入A

JZEQUAL;

为0转EQUAL

JNBACC.7,POSI;

为正数转POSI

INCR0;

负数计数值加1

INCDPTR;

修改数据块指针

DJNZR4,START;

未完,返回

POSI:

INCR1;

正数计数值加1

DJNZR4,START

EQUAL:

INCR2;

0计数值加1

DJNZR4,START

4.5从2030H单元开始,存有100个有符号数,要求把它传送到从20BOH开始的存储区中,但负数不传送,试编写程序。

MOVR1,#64H;

置计数初值

MOVR0,#B0H;

目标数据区首地址低8位,高8位为20H

M

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

当前位置:首页 > 求职职场 > 简历

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

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