单片微型计算机原理及接口技术答案_第1页
单片微型计算机原理及接口技术答案_第2页
单片微型计算机原理及接口技术答案_第3页
单片微型计算机原理及接口技术答案_第4页
单片微型计算机原理及接口技术答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片微型计算机原理及接口技术答案

【篇一:单片微型计算机原理与接口技术高锋版课后

答案第4章】

txt>思考与练习题解析

[4-1]简述下列基本概念:程序、程序设计、机器语言、汇编语

言及高级语言。

【答】各基本概念如下。

[4-2]在单片机领域,目前最广泛使用的是哪几种语言?有哪些

优越性?单片机能否直接执行这几种语言?

【答】在单片机领域,目前最广泛使用的是汇编语言和高级语言。

汇编语言编写的程序效率高,占用存储空间小,运行速度快,而且

能反映单片机的实际运行情况。但编程比使用高级语言困难,通用

性差。单片机不能直接执行汇编语言程序,必须通过人工(或机器)汇

编把汇编语言程序转换为机器语言程序。

高级语言不受具体机器的限制,而且使用了许多数学公式和习惯用

语,从而简化了程序设计的过程,通用性强,易于移植到不同类型

的单片中°

单片机不能直接识别和执行高级语言,需要将其转换为机器语言程

序才能识别和执行。对于高级语言,这一转换工作通常称为“编译”

或者“解释”。进行编译或者解释的专用程序称为“编译程序”或者“解

释程序,

[4-3]什么叫伪指令?8OC51单片机程序设计中主要有哪些伪指

令语句?

【答】伪指令又称为“汇编程序控制译码指令”。“伪”体现在汇编时

不产生机器指令代码,不影响程序的执行,仅指明在汇编时执行一

些特殊的操作。例如.为程序指定一个存储区,将一些数据、表格

常数存放在指定的存储单元,说明源程序开始或结束等.。不同的

单片机开发装置所定义的伪指令不全相同。

80C51单片机程序设计中主要有伪指令语句如下。

1.org(origin)一汇编起始地址伪指令,

指令格式为:org表达式'

其含义是向汇编程序说明,下述程序段的起始地址由表达式指明。

表达式通常为十六进制地址码。

2.end(endOfassembly)一汇编结束伪指令。

其含义是通知汇编程序,该程序段汇编至此结束。

3.equ(equate)—赋值伪指令。

指令格式为:标号equ表达式

其含义是把表达式赋值于标号,这里的标号和表达式是必不可少的。

用equ语句给一个标号赋值以后,在整个源程序中该标号的值是固

定的,不能更改。

4.dl-定义标号值伪指令

指令格式为:标号dl表达式

其含义也是说明标号等值于表达式。同样,标号和表达式是必不可

少的。用dl语句在同一源程序中给同一标号赋予不同的值,即可更

改已定义的标号值。

5.db(definebyte)一定义字节伪指令

指令格式为:标号db表达式或表达式表

其含义是将表达式或表达式表所表示的数据或数据串存入从标号开

始的连续存储单元中。标号为可选项,它表示数据存储单元地址。

表达式或表达式表是指一个字节或用逗号分开的字节数据。可以是

用引号括起来的字符串,字符串中的字符按ascii码存于连续的

rom中。

6.dw(defineword)…定义字伪指令

指令格式为:标号dw表达式或表达式表

其含义是把字或字串值存入由标号开始的连续存储单元中,并且把

字的高字节数存人低地址单元,低字节数存入高地址单元。按顺序

连续存放。

7.ds(definestonage)—定义存储区伪指令

指令格式为:标号ds表达式

注意:对于80C51单片机,db、dw和ds等伪指令只能应用于程

序存储器,而不能应用于数据存储器。

8.bit一位定义伪指令

用于给字符名称赋予位地址。

命令格式为:字符名称bit位地址

其中,位地址可以是绝对地址,也可以是符号地址。

[4-4]什么是结构化程序设计?它包含哪些基,本结构程序?

【答】程序设计有时可能是一件很复杂的工作,但往往有些程序结

构是很典型的。采用结构化程序编程时,规律性极强,简单清晰,

易读/写,具有调试方便、生成周期短、可靠性高等特点。

根据结构化程序设计的观点,功能复杂的程序结构一般采用三种基

本控制结构,即顺序结构、分支结构和循环结构,再加上子程序结

构及中断服务子程序结构,共包含五种基本程序结构。

[4-5]顺序结构程序的特点是什么?试用顺序结构编写三字节无

符号数的加法程序段,最高字节的进位存入用户标志fO中。

【答】顺序结构是按照逻辑操作顺序,从某一条指令开始逐条顺序

执行,直至某一条指令为止。比如数据的传送与交换、简单的运算、

查表等程序的设计。顺序结构是所有程序设计中最基本、最单纯的

程序结构形式,因而是一种最简单、应用最普遍的程序结构。在顺

序结构程序中没有分支,也没有子程序,但它是组成复杂程序的基

础和主干。

例如:三字节无符号数的加法程序段,最高字节的进位存人用户标

志fo中。

假设加数存放在内存20h、21h和22h中,被加数存放在内存3oh、

31h和32h中,和存放在内存40h、41h和42h中。数据存放次序

为低字节在前。

mova,3Oh;取被加数低字节数

adda,20h;求和

m0740h,a;和存入

mova,31h

addca921h;带进位求和

mov41h,a

mova,32h

addca,22h;带进位求和

mov42h.a,

movfO,c;最高字节的进位存入用户标志ft)中

[4—6]80c51单片机有哪些查表指令?它们有何本质区别?请编写

按序号i值查找di(16位长度)的方法。设值i存放在"中,将查找

到的数据存放于片内ram的30h、31h单兀中。请画出程序流程图,

编写查表程序段,加上必要的伪指令,并对源程序加以注释。

【答】80C51有两种查表指令,即近程查表指令“movea,@a+pc,J

和远程查表指令“movea,@aa+dptr这两条指令的功能均是从程

序存储器中读取数据(如表格、常数等),执行过程相同,其差别是基

址不同,因此,适用范围也不同。

累加器a为变址寄存器,而pc、dptr为基址寄存器。dptr为基址

寄存器时,允许数表存放在程序存储器的任意单元,称为“远程查

表”,编程比较直观;而pc为基址寄存器时,数表只能放在该指令

单元往下的256个单元中,称为“近程查表”。编程时需要计算累加

器a中的值与数表首址的偏移量。

例如,按序号i值查找di(16位长度)的源程序如下所示:

orgxxxxh

movdptr,#table指向表首址

mova,r7;取值i

rla;di为二个字节

movr7,a;ix2

movea,@a+dptr;查表获得di的高字节

mov30h.a

mova,r7

inca指向表的下一个地址

movea,@a+dptr;{表获得di的低字节

mov31h,a

table:dw??;表(dw为双字节,高字节在前)

ret

查表程序流程图如图4-1所示。

[4-7]根据运算结果给出的数据到指定的

数据表中查找对应的数据字。运算结果给出的

数据在片内ram的40h单元中,给出的数据大

小在00〜Ofh之间,数据表存放在20h开始的

片内存储器中。查表所得数据字为双字节(高字

节在后),高字节存于42h、低字节存于41h单

元。其对应关系为:

给出数据:00h01h02h?OdhOehOfh

对应数据;00aOh7dc2hff09h?3456h89abh5678h

请编制查表程序段,加上必要的伪指令,并加以注释。

【答】程序如下:

org0000h

ajmpmain,

Org0020h

tab:dboaoh>ooh,0c2h,7dh,09h,offh,…,56h,34h,

0.abh,89h,db78h,56h;数据字表

org0050h

main:mova,40h;运算结果给出的数据放在40h中

movdptr,#tab;指向数据字表首地址

Ha;由于是双字节,所以a左移1位(乘2)

mov40h,a;结果放在40h,

movea,@a+dptr;查表,找出对应的值

mov41h,a;看找出的数据值低字节放入41h

mova.40h

adda,#01h;查找数据的高位字节

movdptr,#tab

movea,@a+dptr

mov42h,a。;查找出的数据值高字节放入42h

sjmp$

注意:数据表存放在20h开始的片内存储器中,该存储器应为内部

程序存储器,因为查表指令move的功能是从程序存储器中读数据。

[4-8]什么是分支结构程序?8oc1的哪些指令可用于分支结构程

序编程?有哪些多分支转移指令?由累加器a中的动态运行结果值进

行选择分支程序,分支转移指令选用Ijmp,请编写散转程序段和画

出程序流程图,加上必要的伪指令,并加以注释。

【答】分支结构程序的主要特点是程序执行流程中必然包含有条件

判断指令。符合条件要求和不符合条件要求的有不同的处理路径。

编程的主要方法和技术是合理选用具有逻辑判断功能的指令。在程

序设计时,往往借助程序框图(判断框)来指明程序的走向。

一般情况下,每个分支均需要单独执行一段程序,对分支程序的起

始地址赋予一个地址标号,以便当条件满足时转向指定地址单元去

执行程序,条件不满足时仍顺序往下执行程序。80C51的条件判跳

指令极其丰富,功能极强,特别是位处理判跳指令,对复杂问题的

编程提供了极大方便。程序中每增加一条条件判跳指令,就应增加

一条分支。

分支结构程序的形式有单分支结构和多分支结构两种。

(a)散转指令:jmp@a+dptr

散转指令由数据

指针dptr决定多分支转移程序的首地址,由累加器a中内容动态地

选择对应的分支程序。因此,可以从多达256个分支中选择一个分

支散转。

(b)比较指令;cjnea,direct,rel(共有4条)

比较两个数的大小,必然存在大于、等于、小于三种情况,这时就

需要从三个分支中选择一个分支执行程序。

例如:由累加器a中的动态运行结果值进行选择分支程序,分支转

移指令选用Ijmpoorgxxxxh

movdptr,#jptab;分支转移表首地址

clrc

movb,a

rlca

jnctab

incdptr

tab:adda,b;(a)*3

jnctable

incdptr

table:jmp@a+dptr;多分支转移

jptab:Itmploopl:长转移指令为3个字节

IjmpIoop2

注意:长转移指令为3字节,因此,a中内容应乘以3。若大于一个

字节,贝!Jdph要加1。

分支程序流程图如图4・2所示。

[4-9]循环结构程序有何特点?80c51的循环转移指令有什么特点?

何谓循环嵌套?编程时应注意什么?

【答】循环是强制cpu重复多次地执行一串指令的基本程序结构。

从本质上看,循环程序结构只是分支程序中的一个特殊形式。循环

程序由4个部分构成,即循环初始化、循环体、循环控制和结束部

分。

循环次数已知情况下,采用计数循环程序,其特点是必须在初始化

部分设定计数的初值,循环控制部分依据计数器的值决定循环次数。

根据控制循环结束的条件,决定是否继续循环程序的执行。所谓的

结束条件可以是搜索到某个关键字(比如回车符cr),也可以是发生

的某种变化(如故障引起电路电平变化)等,什么时候结束循环是不

可预知的。

80C51设有功能强的循环转移指令:

djnzrn,rel..;以工作寄存器作为控制计数器

djnzdirect,rel.;以直接寻址单元作为控制计数器

cjnea,direct,rel;比较不相等转移

这几条基本指令可派生出很多条不同控制计数器的循环转移指令,

大大扩充了应用范围和多重循环层次。

循环嵌套就是在循环内套用循环的结构形式,也称“多重循环”。

循环的执行过程是从内向外逐层展开的。内层执行完全部循环后,

外层则完成一次循环,逐次类推。层次必须分明,层次之间不能有

交叉,否则将产生错误。

编程时要注意循环的正确退出,要防止出现“死循环,

[4-10]什么是子程序?它的结构特点是什么?什么是子程序嵌套?

【答】在编制应用程序时,往往将需要多次应用但完成的运算或操

作相同的程序段,编制成一个子程序,并尽量使其标准化,存放于

某存储区域。调用子程序的程序称为“主程序”或“调用程序”。

子程序是由专门的子程序调用指令call调用,而以子程序返回指令

ret结束的程序段。子程序的第一条指令地址,通常称为“子程序首

地址”或“人口地址”,往往采用标号(可用助记符)加以表示,调用(转

子)指令的下一条指令地址,通常称为“返回地址”或“断

【篇二:单片微机原理与接口技术答案(宋跃版)】

写出下列二进制数的原码、反码和补码(设字长为8位)。

(1)001011

(3)-001011

答:

(1)原码:00001011反码:00001011补码:00001011

(2)原码:00100110反码:00100110补码:00100110

(3)原码:10001011反码:11110100补码:11110101

(4)原码:10111111反码:11000000补码:11000001

1.2已知x和y,试计算下列各题的[x+y]补和[x・y]补(设字长为8

位)。

(1)x=1011

(2)x=1011

⑶x=1000

答:

(1)x补码=00001011y补码=00000011[-y]补码=11111101

[x+y]补=00001110[x・y]补=00001000

(2)x补码=00001011y补码=00000111[-y]补码=11111001

[x+y]补=00010010[x・y]补=00000100

(3)x补码=00001000y补码=00001100[-y]补码=11110100

[x+y]补=00010100[x-y]^b=11111100

1.3微型计算机由那几部分构成?

答:微型计算机由微处理器、存储器和i/。接口电路构成。各部分通

过地址总线(ab)、数据总线(db)和控制总线(cb)相连。

(2)100110(4)-111111y=0011y=0111y=1100

1.48086的寻址范围有多大?其物理地址是如何形成?

答:8086有20根地址总线,它可以直接寻址的存储器单元数为

1m字节,其地址区域为OOOOOh—fffffh。

1.5什么叫单片机?它有何特点?

答:单片机就是在一块硅片上集成了cpu>ram、rom>定时器/计

数器和多种i/。口(如并行、串行及a/d变换器等)的一个完整的数

字处理系统。单片机主要特点有:品种多样,型号繁多;存储容量

大;频率高,速度快;控制功能强,集成度高;功耗低;配套应用

软件多。

第2章思考题及习题参考答案:

2.1.说明rom、eprom、eeprom和flash之间的主要区别

解:rom为只读存储器,在一般情况下只能读出所存信息,而不能

重新写入。信息的写入是通过工厂的制造环节或采用特殊的编程方

法进行的,一旦写入,就能长期保存。eprom芯片一般允许用户多

次编程和擦除。擦除时,通过向芯片窗口照射紫外光的方法来进行。

eeprom,也称e2prom。该类芯片允许用户多次编程和擦除。擦除

时,可采用加电方法在线进行。flash是一种新型的大容量、速度快、

电可擦除可编程只读存储器。

2.2.eprom>prom、动态ram、静态ram等存储器中,哪几类是

可以随时读写的?

解:动态ram、静态ram这几类是可以随时读写的。

2.3某rom芯片中有12根地址输入端和8个数据输出端,该芯片

的存储容量是多少位?

解:芯片的存储容量是4k*8位。

2.4.说明动态ram和静态ram的主要区别,使用时应如何选用?

解:静态(static)ram,即sram。它以触发器为基本存储单元,所

以只要不掉电,其所存信息就不会丢失。该类芯片的集成度不如动

态ram,功耗也比动态ram高,但它的速度比动态ram快,也不需

要刷新电路。在构成小容量的存储系统时一般选用sramo在微型计

算机中普遍用sram构成高速缓冲存储器。

动态(dynamic)ram,即dram。一般用mos型半导体存储器件构

成,最简单的存储形式以单个mOs管为基本单元,以极间的分布电

容是否持有电荷作为信息的存储手段,其结构简单,集成度高。但

是,如果不及时进行刷新,极间电容中的电荷会在很短时间内自然

泄漏,致使信息丢失。所以,必须为它配备专门的刷新电路。动态

ram芯片的集成度高、价格低廉,所以多用在存储容量较大的系统

中。目前,微型计算机中的主存几乎都是使用动态ram。

25说明norflash与nandflash的主要区别,使用时应如何选用?

解:norflash具有以下特点:

(1)程序和数据可存放在同一芯片上,拥有独立的数据总线和地

址总线,能快速随机读取,允许系统直接从flash中读取代码执行,

而无需先将代码下载至ram中再执行;

(2)可以单字节或单字编程,但不能单字节擦除,必须以块为单

位或对整片执行擦除操作,在对存储器进行重新编程之前需要对块

或整片进行预编程和擦除操作。

但是norflash的擦除和编程速度较慢,块尺寸又较大,因此擦除

和编程操作所花费的时间很长,在纯数据存储和文件存储的应用中,

nor技术显得力不从心。

nandflash具有以下特点:

(1)以页为单位进行读和编程操作,1页为256或512b(字节);

以块为单位进行擦除操作,1块为4k、8k或16kb。具有快编程和

快擦除的功能,其块擦除时间是2ms;而nor技术的块擦除时间达

到几百ms。(2)数据、地址采用同一总线,实现串行读取。随机

读取速度慢且不能按字节随机编程。(3)芯片尺寸小,引脚少,是

位成本(bitcost)最低的固态存储器,将很快突破每兆字节1美元的

价格限制。(4)芯片包含有失效块,其数目最大可达到3~35块

(取决于存储器密度)。失效块不会影响有效块的性能,但设计者

需要将失效块在地址映射表中屏蔽起来。

norflash具有可靠性高、随机读取速度快的优势,在擦除和编程操

作较少而直接执行代码的场合,尤其是纯代码存储的应用中广泛使

用,如pc的bios固件、移动电话、硬盘驱动器的控制存储器等。

nandflash结构的闪速存储器适合于纯数据存储和文件存储,主要

作为smartmedia卡、compactflash卡、pcmciaata卡、固态盘

的存储介质,并正成为闪速磁盘技术的核心。

27什么是地址重叠区?它对存储器扩展有什么影响?

解:基本地址和前面全译码连接的地址范围是相同的,但两者还是

有区别的。区别在于全译码连接时各芯片的地址是唯一的,而部分

译码连接时各芯片地址不是唯一的,也就是可以由若干个地址都选

中同一芯片的同一单元,既所谓的地址重叠区。由于存在的地址重

叠,影响了地址区的有效使用,也限制了存储器的扩展。因此,在

选用部分译码时,也要尽可能多选一些高位地址线来作为译码器的

输入。

解:a15a14a13a12a11a10a9a8a7a6a5a4a3a2a1a0地址

g1abc

1010000000000000片1:aOOOh

1010001111111111片1:a3ffh

a15a14a13a12a11a10a9a8a7a6a5a4a3a2a1a0地址

g1abc

1011000000000000片2:bOOOh

1011001111111111片2:b3ffh

a15a14a13a12a11a10a9a8a7a6a5a4a3a2a1a0地址

g1abc

1011010000000000片3:b400h

1011011111111111片3:b7ffh

所以各片地址范围为:

片1:a000h-a3ffh,

片2:b000h-b3ffh,

片3:b400h-b7ffh

解:

线译码法:寻址范围:2000h-5fffh

【篇三:单片微机原理与接口技术作业参考

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论