当前位置:文档之家› 单片微型计算机原理与接口技术_高锋版_课后答案全集

单片微型计算机原理与接口技术_高锋版_课后答案全集

单片微型计算机原理与接口技术_高锋版_课后答案全集
单片微型计算机原理与接口技术_高锋版_课后答案全集

单片微型计算机原理与接口技术高锋版课后答案

第一章略

第二章【单片机的基本结构】

思考与练习题解析

【2-1】8()C51单片机在片内集成了哪些主要逻辑功能部件?各个逻辑部件的最主要功能是什么?

【答】80C51单片机在片内主要包含中央处理器CPU(算术逻辑单元ALU及控制器等)、只读存储器ROM、读/写存储器RAM、定时器/计数器、并行I/O口Po~P3、串行口、中断系统以及定时控制逻辑电路等,各部分通过内部总线相连。

1.中央处理器(CPU)

单片机中的中央处理器和通用微处理器基本相同,是单片机的最核心部分,主要完成运算和控制功能,又增设了“面向控制”的处理功能,增强了实时性。80C51的CPU是一个字长为8位的中央处理单元。

2.内部程序存储器

根据内部是否带有程序存储器而形成三种型号:内部没有程序存储器的称为80C31;内部带ROM的称为80c51,80c51共有4 KB掩膜ROM;内部以EPROM代替RoM的称为87C51。

程序存储器用于存放程序和表格、原始数据等。

3.内部数据存储器(RAM)

在单片机中,用读/写存储器(RAM)来存储程序在运行期间的工作变量和数据。80C51中共有256个RAM单元。

4.I/O口

单片机提供了功能强、使用灵活的I/O引脚,用于检测与控制。有些I/O引脚还具有多种功能,比如可以作为数据总线的数据线、地址总线的地址线或控制总线的控制线等。有的单片机I/0引脚的驱动能力增大。

5.串行I/O口

目前高档8位单片机均设置了全双工串行I/0口,用以实现与某些终端设备进行串行通信,或与一些特殊功能的器件相连的能力,甚至用多个单片机相连构成多机系统。有些型号的单片机内部还包含两个串行I/O口。

6·定时器/计数器

80c51单片机内部共有两个16位定时器/计数器,80C52则有3个16位定时器/计数器。

定时器/计数器可以编程实现定时和计数功能。

7.中断系统

80C51单片机的中断功能较强,具有内、外共5 个中断源,具有两个中断优先级。

8.定时电路及元件

单片机内部设有定时电路,只需外接振荡元件。近年来有些单片机将振荡元件也集成到

芯片内部。单片机整个工作是在时钟信号的驱动下,按照严格的时序有规律地一个节拍一个

节拍地执行各种操作。

【2-2】80C51单片机引脚有哪些第二功能?

【答】80C51单片机的P0、P2和P3引脚都具有第二功能。

第一功能第二变异功能

P0.0~P0.7 地址总线Ao~A7/数据总线D0~D7

P2.0~P2.7 地址总线A8~A15

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 INT0外部中断0)

P3.3 IINT1(外部中断1)

P3.4 TO(定时器/计数器0的外部输入)

P3.5 T1(定时器/计数器0的外部输出)

P3.6 WR(外部数据存储器或I/O的写选通)

P3.7 RD外部数据存储器或I/O的读选通)

【2-3】程序计数器PC和数据指针DPTR有哪些异同?

【答】程序计数器PC中存放的是下一条将要从程序存储器中取出的指令的地址。DPTR是数据指针,在访问外部数据存储器或I/O时,作为地址使用;在访问程序存储器时,作为基址寄存器。

①PC和DPTR都是与地址有关的16位寄存器。其中PC与程序存储器的地址有关,而DPTR与数据存储器或I/O的端口地址有关。作为地址寄存器使用时,PC与DPTR都是通过P0和P2口输出的。PC的输出与ALE 及PSEN信号有关,DPTR的输出则与ALE、WR和RD信号有关。

②PC只能作为16位寄存器。PC是不可访问的,它不属于特殊功能寄存器,有自己独特的变化方式。DPTR 可以作为16位寄存器,也可以作为两个8位寄存器DPL和DPH。DPTR是可以访问的,DPL和DPH都位于特殊功能寄存器区中。

【2—4】 80C51单片机的存储器在结构上有何特点?在物理上和逻辑上各有哪几种地址空间?访问片内RAM 和片外RAM的指令格式有何区别?

【答】80C5l单片机采用哈佛(Har—yard)结构,即将程序存储器和数据存储器截然分开,分别进行寻址。不仅在片内驻留一定容量的程序存储器和数据存储器及众多的特殊功能寄存器,而且还具有较强的外部存储器扩展能力,扩展的程序存储器和数据存储器寻址范围都可达64 KB。

1.在物理上设有4个存储器空间

·片内程序存储器;

·片外程序存储器;

·片内数据存储器;.

·片外数据存储器。

2.在逻辑上设有3个存储器地址空间

片内、片外统一的64 KB程序存储器地址空间。

片内256字节(80C52为384字节)数据存储器地址空间。

片内数据存储器空间在物理上又包含两部分:

对于80C51型单片机,0~127字节为片内数据存储器空间;128~255字节为特殊功能寄存器(SFR)空间(实际仅占用了20多个字节)。

对于80C52型单片机,O~127字节为片内数据存储器空间;128~255字节共128个字节是数据存储器和特殊功能寄存器地址重叠空间。

片外64 KB的数据存储器地址空间。

在访问3个不同的逻辑空间时,应采用不同形式的指令,以产生不同存储空间的选通信号。访问片内RAM采用MOV指令,访问片外RAM则一定要采用MOVX指令,因为MOVX指令会产生控制信号RD或WR,用来访问片外RAM。访问程序存储器地址空间,则应采用MOVC指令。

【2—5】80C51单片机的EA信号有什么功能?在使用80C51时,EA信号引脚应如何处理?在使用80C31时,EA信号引脚应如何处理?

【答】80C51单片机的EA信号被称为“片外程序存储器访问允许信号”。CPU访问片内还是片外程序存储器,可由EA引脚所接的电平来确定:

EA引脚接高电平时,程序从片内程序存储器地址为0000H开始执行,即访问片内存储器;当PC值超出片内ROM容量时,程序会自动转向片外程序存储器空间执行。片内和片外的程序存储器地址空间是连续的。EA引脚接低电平时,迫使系统全部执行片外程序存储器0000H开始存放的程序。对于有片内ROM的80C51/87C51单片机,应将EA引脚接高电平。在使用80C31单片机时,EA信号引脚应接低电平,即此时程序存储器全部为外部扩展。

【2—6】80C51单片机片内RAM低128个存储单元划分为哪3个主要部分?各部分主要功能是什么?

【答】80C51片内RAM的低128个存储单元划分为3个主要部分:

·寄存器区。共4组寄存器,每组8个存储单元,各组以R0~R7作为单元编号。常用于保存操作数及中间结果等。:R0~R7也称为“通用工作寄存器”,占用00H~1FH共32个单元地址。

·位寻址区。单元地址为20H~2FH,既可作为一般RAM单元使用,按字节进行操作,也可对单元中的每一位进行位操作。因此,称为“位寻址区”。寻址区共有16个RAM单元,共计128位,位地址为OOH~7FH。

·用户RAM区。在内部RAM低128单元中,除去前面两个区,剩下80个单元,单元地址为30H~7FH。在用户RAM区内可以设置堆栈区。

【2—7】程序存储器的哪些单元被保留用于特定场合?

【答】80C51单片机复位后,程序计数器PC的地址为0000H,所以系统从0000H单元开始取指,并执行程序。0000H是系统的启动地址,一般在该单元设置一条绝对转移指令,使之转向用户主程序处执行。

0003H~002DH单元被保留用于6个中断源的中断服务程序的入口地址,故有以下7个特定地址被保留:复位 0000H

外部中断O 0003H

计时器TO溢出 000BH

外部中断1 0013H

计时器T1溢出 001BH

串行口中断 0023H

计时器T2/T2EX 002BH(仅对80C52单片机)

由于每个中断入口之间的间隔仅为8个地址单元,所以在程序设计时,通常在这些中断入口处设置一条无条件转移指令,使之转向对应的中断服务子程序处执行。

【2—8】80C51单片机设有4个通用工作寄存器组,有什么特点?如何选用?如何实现工作寄存器的现场保护?

【答】片内数据RAM区的O~31(OOH~1FH),共32个单元,是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0~R7,工作寄存器组如表2-l所列。在某一时刻,只能选用一个寄存器组。可以通过软件对程序状态字PSW中:RS0、RSl两

位的设置来实现。设置RS0,RSl时,可以对PSW采用字节寻址方式,也可以采用位寻址方

式,间接或直接修改RS0、RSl的内容。例如,若.RS0、RSl均为1,则选用工作寄存器3组为当前工作寄存器。若需要选用工作寄存器2组,则只需将RS0改成0.可用位寻址方式 (即“CLR PSW.3”;其中:PSW.3为RS0位的符号地址)来实现。特别是在中断嵌套时,只要通过软件对程序状态字PSW中的RS0、RSl两位进行设置,切换工作寄存器组,就可以极其方便地实现对工作寄存器的现场保护。

【2—9】什么是堆栈?堆栈有哪些功能? 设计时,为什么还要对SP重新赋值?

表2—1工作寄存器组

┏━━━━┳━━━┳━━━━┳━━━━━━━━━━┓

┃ RSI ┃ RS0 ┃组号┃寄存器RO~R7地址┃

┣━━━━╋━━━╋━━━━╋━━━━━━━━━━┫

┃ O ┃ 0 ┃ O组┃ 00H~07H ┃

┣━━━━╋━━━╋━━━━╋━━━━━━━━━━┫

┃ O ┃ 1 ┃ l组┃ 08H~OFH ┃

┣━━━━╋━━━╋━━━━╋━━━━━━━━━━┫

┃ 1 ┃ O ┃ 2组┃:10H~17H ┃

┣━━━━╋━━━╋━━━━╋━━━━━━━━━━┫

┃ 1 ┃ l ┃ 3组┃ 18H~1FH ┃

┗━━━━┻━━━┻━━━━┻━━━━━━━━━━┛

堆栈指针SP的作用是什么?在程序

【答】堆栈是在片内数据RAM区中,数据按照“先进后出”或“后进先出”原则进行管理的区域。堆栈功能有两个:保护断点和保护数据。在子程序调用和中断操作时这两个功能特别有用。在80C51单片机中,堆栈在子程序调用和中断时会把断点地址自动进栈和出栈。进栈和出栈的指令(PUSH、POP)操作可用于保护现场和恢复现场。由于子程序调用和中断都允许嵌套,并可以多级嵌套,而现场的保护也往往使用堆栈,所以一定要注意给堆栈以一定的深度,以免造成堆栈内容的破坏而引起程序执行的“跑飞”。

堆栈指针SP在80C51中存放当前的堆栈栈顶所指存储单元地址的一个8位寄存器。80C51单片机的堆栈是向上生成的,即进栈时SP的内容是增加的;出栈时SP的内容是减少的。

系统复位后。80C51的SP内容为07H。若不重新定义,则以07H为栈底,压栈的内容从08H单元开始存放。但工作寄存器R0~R7有4组,占有内部RAM地址为00H~1FH,位寻址区占有内部RAM地址为20H~2FH。若程序中使用了工作寄存器1~3组或位寻址区,则必须通过软件对SP的内容重新定义,使堆栈区设定在片内数据RAM区中的某一区域内(如30H),堆栈深度不能超过片内RAM空间。

【2-10】80C51单片机的特殊功能寄存器SFR区有哪些特点?

【答】特殊功能寄存器SFR区是80C51单片机中各功能部件所对应的寄存器区,用来存放相应功能部件的控制命令寄存器、状态寄存器或数据寄存器的区域。这是80C51系列单片机中最有特色的部分。.

80C51系列单片机设有128字节片内数据RAM结构的特殊功能寄存器区。除程序计数器PC和4个通用工作寄存器组外,其余所有的寄存器都在这个地址空间之内。特殊功能寄存器在128字节空间中只分布了很小部分,这为80C51单片机系列功能的增加提供了极大的可能性。所有80C51单片机系列功能部件的增加和扩展几乎都是通过增加特殊功能寄存器来达到的。

在80C51的21个特殊功能寄存器中,字节地址中低位地址为0H或8H的特殊功能寄存器,除有字节寻址能力外,还有位寻址能力。其中对于PO~P1口4个特殊功能寄存器的位寻址使I/O的控制功能得到了增强。

【2-11】80C51单片机的布尔处理机包括哪些部分?它们具有哪些功能?共有多少个单元可以位寻址? 【答】在80C51单片机系统中,专门设置了一个结构完整、功能极强的布尔(位)处理机。这是一个完整的一位微计算机,它具有自己的CPU、寄存器、I/0、存储器和指令集。80C51单片机把8位机和布尔(位)处理机的硬件资源复合在一起,这是80C51系列单片机的突出优点之一,给实际应用带来了极大的方便。布尔处理机系统包括以下几个功能部件。

·位累加器:借用进位标志位CY。在布尔运算中,cY既是数据源之一,又是运算结果的存放处和位数据传送的中心。根据CY的状态实现程序条件转移:JC rel、JNC reI

·位寻址的RAM:内部RAM位寻址区中的0~127位(20H~2FH)。

·位寻址的寄存器:特殊功能寄存器SF、R中的可位寻址的位。

·位寻址的I/O口:并行I/O口中可位寻址的位(如P1.0)。

·位操作指令系统:位操作指令可实现对位的置位、清零、取反、位状态判跳、传送、位逻辑运算、位输入/输出等操作。

布尔处理机的程序存储器和ALU与字节处理器合用。利用内部并行I/O口的位操作,提高了测控速度,增强了实时性。利用位逻辑操作功能把逻辑表达式直接变换成软件进行设计和运算,免去了过多的数据往返传送、字节屏蔽和测试分支,大大简化了编程,增强了实时性能。还可实现复杂的组合逻辑处理功能。因此,一位机在开关决策、逻辑电路仿真和实时控制方面非常有效。

可以位寻址的单元包括两部分:一是内部RAM位寻址区中的0~127位(20H~2FH);二是SFR中字节地址的低位地址为0H或8H的特殊功能寄存器。

【2一12】80C5l单片机的节拍、状态、机器周期、指令周期是如何设置的?当主频为12 MHz时,各种周期等于多少微秒?

【答】把单片机振荡脉冲的周期定义为节拍。节拍经过二分频后,就是单片机的时钟信号。时钟信号周期定义为状态S,其前半周期对应的节拍叫P1,后半周期对应的节拍叫P2。

一个机器周期宽度为6个状态,并依次表示为S1~S6。由于一个机器周期共有12个振荡脉冲周期,因此,机器周期就是振荡频率的1/12。机器周期是80C51单片机的最小时间单位。执行一条指令的时间被称为“指令周期”,80C51单片机执行一条指令的时间包含有1个、2个或4个机器周期。当主频为12 MHz时,振荡脉冲的周期为1/12μs,状态周期为1/6μs,机器周期为1 μs,指令周期为1~4μs

【2一13】程序存储器指令地址、堆栈地址和外接数据存储器地址各使用什么指针?为什么?

【答】程序存储器指令地址使用程序计数器PC指针,PC中存放的是下一条将要从程序存储器中取出的指令的地址。程序计数器PC变化的轨迹决定程序的流程。PC最基本的工作方式是自动加1。在执行条件转移或无条件转移指令时,将转移的目的地址送入程序计数器,程序流向发生变化。在执行调用指令或响应中断时,将子程序的入口地址或者中断矢量地址送人PC,程序流向发生变化。堆栈地址使用堆栈指针.SP。SP在80C51中存放当前的堆栈栈顶所指存储单元地址,是一个8位寄存器,对数据按照“先进后出”原则进行管理。外接数据存储器地址使用数据指针DPTR。DPTR是一个16位特殊功能寄存器,主要功能是作为片外数据存储器或I/0寻址用的地址寄存器,这时会产生RD或wR控制信号,用于单片机对外扩的数据存储器或I/0的控制。数据指针DPTR也可以作为访问程序存储器时的基址寄存器,此时是寻址程序存储器中的表格、常数等单元,而不是寻址指令。

【2-14】请说明80C51单片机ALE引脚的时序功能,并举例说明其在系统中有哪些应用?

【答】80C51单片机ALE引脚是地址锁存允许信号。在系统中主要有两种应用:

①在访问片外存储器或I/O时,用于锁存低8位地址,以实现低8位地址A0~A7与数据DO~D7的隔离。在ALE的下降沿将P0口输出的地址A0~A7通过锁存器锁存,然后在PO口上出现DO~D7。

②由于ALE以1/6振荡频率的固定速率输出,因此,可以作为对外输出的时钟或外部定时脉冲,比如ALE信号可以做ADC0809的时钟。

【2—15】说明80C51单片机的程序状态字PSW的主要功能。

【答】程序状态字PSW(Program Status Word)是一个程序可访问的8位寄存器,其内容的主要部分是算术逻辑运算单元ALU的输出,例如,奇偶校验位P、溢出标志位OV、辅助进位标志位AC及进位标志位CY,都是ALU运算结果的直接输出。一些条件转移指令就是根据PSW中的相关标志位的状态来实现程序的条件转移。

程序状态字PSW如图2-1所示。

CY AC FO Rsl l RS0 OV — P l

图2—1程序状态字PSW

1.P——奇偶标志位

该位表示累加器A中值为1的个数的奇偶性。若累加器A中值为1的个数是奇数,则P 置位(奇校验);否则,P清除(偶校验)。

在串行通信中,常以传送奇偶校验位来检验传输数据的可靠性。通常将P置入串行帧中的奇偶校验位。 2.OV——溢出标志位

当执行运算指令时,由硬件置位或清除,以指示运算是否产生溢出。OV置位表示运算结果超出了目的寄存器A所能表示的带符号数的范围(一128~+127)。

若以Ci表示位i向位i+1有进位,则0V=C6①C7。当位6向位7有进位(或借位),而位7不向cY进位(或借位);或当位7向c进位(或借位),而位6不向位7进位(或借位)时,OV标志置位,表示带符号数运算时运算结果是错误的;否则,清除0V标志,运算结果正确。

对于MUL乘法,当A、B两个乘数的积超过255时,OV置位;否则,OV=0。

对于DIV除法,若除数为0,OV=l;否则,OV=O。

3.RSl、RS0——4组工作寄存器组选择位

用于设定当前工作寄存器的组号,参见表2—1。

4.AC——辅助进位标志位

当进行加法或减法运算时,若低4位向高4位数发生进位(或借位),.AC将被硬件置位;否则,被清除。在十进制调整指令DA中要用到AC标志位状态。

5.CY——进位标志位

在进行算术运算时,可以被硬件置位或清除,以表示运算结果中高位是否有进位(或借位)。在布尔处理器中,CY被认为是位累加器。

6.F0——用户标志位

开机时该位为0。用户可根据需要,通过位操作指令将FO置1或者清0。当CPU执行对F0位测试条件转移指令时,根据FO的状态实现分支转移,相当于“软开关”。

【2—16】80C51单片机的片内外最大存储容量可达多大? ’

【答】80C51单片机存储容量应包括程序存储器和数据存储器两部分。80C51具有16条地址线,PC指针为16位,因此,程序存储器最大容量为64 KB。数据指针DPTR为16位,因此,外扩数据存储器最大容量为64 KB,再加上片内具有的256个存储单元,80C51单片机的

片内外最大存储容量可达128.256 KB。采用其他地址译码方法,80C51单片机存储容量会得到更大的扩展。

【2-17】80C51单片机片外数据存储器与片内数据存储器地址允许重复,并与程序存储器地址也允许重复,如何区分?

【答】80C5l单片机对片外数据存储器、片内数据存储器及程序存储器采用不同的指令,会产生不同的控制信号。片外数据存储器有读RD和写WR控制信号,程序存储器有读PSEN控制信号,因此,扩展时虽然数据线和地址线重复,但由不同的控制信号加以区别。片内数据存储器地址采用MOVC指令,不会产生读RD和写WR控制信号。

【2-18】使80C51单片机复位有哪几种方法?复位后单片机的初始状态,即各寄存器及RAM中的状态如何? 【答】复位操作有上电自动复位、按键电平复位和外部脉冲复位3种方式。上电自动复位是通过外部复位电路的电容充电来实现的;按键电平复位是通过按压键使复位端经电阻与VCC接通而实现的;外部脉冲复位是由外部提供一个宽度大于两个机器周期复位脉冲而实现的。复位操作把Pc初始化为0000H,使单片机从0000H单元开始执行程序。当由于程序运行出错或操作错误使系统处于死锁状态时,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。

除PC之外,复位操作还对其他一些特殊功能寄存器有影响,SFR的复位状态如表2-2所列。复位操作还对单片机的个别引脚信号有影响。例如在复位期间,ALE和PSEN信号变为无效状态,即ALE=1,PSEN=1。复位操作对RAM内容没有影响。

表2-2 SFR的复位状态

┏━━━━━━┳━━━━━━━━┳━━━━━┳━━━━━━━━┓

┃寄存器┃复位时的内容┃寄存器┃复位时的内容┃

┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫

┃ PC ┃ 00H ┃ TCON ┃ 0X000000B ┃

┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫

┃ ACC ┃ 00H ┃ TLO ┃ OOH ┃

┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫

┃ B ┃ 00H ┃THO ┃ OOH ┃

┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫

┃ PSW ┃ 00H ┃ TLl ┃ 00H ┃

┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫

┃ SP ┃ 07H ┃ THl ┃ 00H ┃

┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫

┃ DPTR ┃ 00H ┃SCON ┃ 00H ┃

┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫

┃ PO~P3 ┃ FFH ┃ SBUF ┃不定┃

┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫

┃TMOD ┃ XX000000B ┃ PCON ┃ 0XXX0000B ┃

┗━━━━━━┻━━━━━━━━┻━━━━━┻━━━━━━━━┛

【2一19】80C51单片机的4个I/O口在使用上有哪些分工和特点?

【答】4个I/O口的分工和特点如下:

P0口是一个多功能的8位口,可按字节访问也可按位访问。

用作I/0口。相当于一个真正的双向口:输出锁存,输入缓冲,但输入时须先将口置l;每根口线可以独立定义为输入或输出。

用作地址/数据复用总线。作数据总线使用时,输入/输出8位数据D0~D7;作地址总线用时,输出低8位地址AO~A7。

② P1口是一个8位口,可按字节访问也可按位访问,因此,P1口不仅可以8位一组进行输入、输出操作,还可以逐位分别定义各口线为输入线或输出线。输入时有条件,即需要先输出1,将该口设为输入状态。一般作I/o口用。

③ P2口是一个多功能的8位口,可按字节访问也可按位访问。在单片机采用并行扩展方式时,P2口作为地址总线的高8位D8~D15。

④ P3口是一个多功能的8位口,可按字节访问,也按可位访问。可作为I/0口使用,为准双向口。既可以字节操作,也可以位操作;既可以8位口操作,也可以逐位定义口线为输入线或输出线。

P3可替代输入、输出功能。

替代输入功能:

P3.0一一RXD,串行输入口。

P3.2一一IN'I、0,外部中断O的请求。

P3.3一一INTl,外部中断1的请求。

P3.4一TO,定时器/计数器O外部计数脉冲输入。

P3.5一一T1,定时器/计数器1外部计数脉冲输入。

替代输出功能:

P3.1一一TXD,串行输出口。

P3.6一一wR,外部数据存储器写选通,输出,低电平有效。

P3.7~RD,外部数据存储器读选通,输出,低电平有效。

【2—20】80C51单片机的I/0口.P0~P3用作通用I/O口时,要注意什么?

【答】PO~P3用作通用I/0口时,输入时都须先将相应端口锁存器置1,类似于置为输入方式。

I/O口:Po~P3都具有位地址,所以每根I/o口线可以独立定义为输入或输出。

PO口输出时为漏极开路输出,与NM0S的电路接口时,必须要用电阻上拉,才能有高电平输出;输入时为悬浮状态,为一个高阻抗的输入口。P1~P3口输出级接有内部上拉负载电阻,能向外提供上拉负载电流,所以不必外接上拉电阻。

【2—2l】80C51单片机有哪几种工作方式?简单说明其应用场合和特点。

【答】80C51单片机共有复位、程序执行、低功耗以及编程和校验4种工作方式。

复位方式:是单片机的初始化操作,其主要功能是把程序计数器Pc初始化为0000H,使单片机从000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键重新启动,也可以通过监视定时器WDT来强迫复位。

程序执行方式:是单片机的基本工作方式。

低功耗方式:80C5l单片机有两种低功耗方式,即待机方式和掉电保护方式。用于降低功耗,提高可靠性。编程和校验方式:对于片内具有EPROM型程序存储器的87C51(87C52)和片内具有闪速存储器的89C51(89C52)、78E51(78E52)等单片机,可以通过编程来修改程序储器中的程序。

【2—22】举例说明80C51单片机在工业控制系统中低功耗工作方式的意义及实现方法。

【答】有些产品和系统要求工作时功耗尽量低,有的要求在停电时采用备用电池能工作较长时间,以上这些设计和要求往往与工业控制系统的低功耗设计密切相连。工业控制系统低功耗设计除了降低功耗,节省能源,满足绿色电子的基本要求之外,还能提高系统的可靠性,满足便携式、电池供电等特殊应用场合产品的要求。

80C51单片机有两种低功耗方式,即待机(空闲)方式和掉电(停机)保护方式。待机(空闲)方式和掉电(停机)保护方式都是由电源控制寄存器PCON的有关位来控制的。电源控制寄存器是一个逐位定义的8位寄存器,其格式如图2-2所示。

┏━━━━━━━━━┳━━━━━━━━━━━━┓

┃SMOD—————┃GFl GF0 PD IDl。┃

┗━━━━━━━━━┻━━━━━━━━━━━━┛

图2-2电源控制寄存器PCON

SMOD 波特率倍增位,在串行口工作方式时,设SMOD=1,则波特率加倍。

GFl、GF0 通信标志位1、O,由软件置位或复位。

PD 掉电方位式,PD=1,则进入掉电工作方式。

IDL 待机方式位,IDL=1,则进入待机工作方式。

若PD位和IDL位同时为1,则先激活掉电方式。复位时PCON中所有位均为0。

1.待机方式

①使用指令使PCON寄存器IDL位置1,则80C51进入待机方式。

此时振荡器仍然运行,并向中断逻辑、串行口和定时器/计数器电路提供时钟,中断功能继续存在。

向CPU提供时钟的电路被阻断,因此,CPU不能工作,与CPU有关的SP、PC、PSW、ACC以及全部通用寄存器都被冻结在原状态。

②可以采用中断方式或硬件复位来退出待机方式。

在待机方式下,若产生一个外部中断请求信号,在单片机响应中断的同时,IDL位被硬件自动清0,单片机就退出待机方式,而进入正常工作方式。在中断服务程序中安排一条RETI指令,就可以使单片机恢复正常工作,从设置待机方式指令的下一条指令开始继续执行程序。

在待机方式下,振荡器仍然在工作,因此,硬件复位只需保持两个机器周期的高电平就可以完成。RST端复位信号直接将IDL位清O,从而退出待机方式。CPU则从进入待机方式的下一条指令开始重新执行程序。 2.掉电保护方式.

①PCON寄存器的PD位控制单片机进入掉电保护方式。

80C51单片机在检测到电源故障时,除进行信息保护外,还应把PD位置1,使之进入掉电保护方式。此时单片机一切工作都停止,只有内部RAM单元的内容被保护。

②只能依靠复位退出掉电保护方式。

80C51单片机备用电源由VCC端引人。当VCC恢复正常后,只要硬件复位信号维持10 ms,就能使单片机退出掉电保护方式,CPU则从进入待机方式的下一条指令开始重新执行

【2—2】单片机“面向控制”应用的特点,在硬件结构方面有哪些体现?

【答】单片机“面向控制”应用的特点,在硬件结构方面有以下几个方面的体现:

提供了数量多、功能强、使用灵活的I/O口和串行口。在80C51单片机系统中,还特别设置了布尔(位)处理机,对并行I/O口的口线直接进行位的控制,对“面向控制”的应用带来了极大方便。

设置多个中断源,并具有可编程的中断优先级,对于实时控制非常有利。

提供了多个定时器/计数器,有的单片机内部还具有监视定时器,有利于提高单片机的实时控制能力和控制的可靠性。

第三章【单片机的指令系统】思考与练习题解析

【3—1】什么是指令及指令系统?

【答】控制单片机进行某种操作的命令称为“指令”。单片机就是根据指令来指挥和控制

单片机各部分协调工作。指令由二进制代码表示,指令通常包括操作码和操作数两部分:操作码规定操作的类型,操作数给出参加操作的数或存放数的地址。

所有指令的集合称为“指令系统”。80C51单片机的指令系统专用于80C51系列单片机,

是一个具有255种操作码(OOH~FFH,除A5H外)的集合。

【3—2】80C51单片机的指令系统具有哪些特点?

【答】80C51单片机的指令系统容易理解和阅读。只要熟记代表33种功能的42种助记即可。有的功能如数据传送,可以有几种助记符,如MOV、MOVc、MOVX。而指令功能助

记符与操作数各种寻址方式的结合,共构造出111种指令,而同一种指令所对应的操作码可以多至8种(如指令中Rn对应寄存器R0~R7)。

80C51单片机的指令系统具有较强的控制操作类指令,容易实现“面向控制”的功能;具有位操作类指令,有较强的布尔变量处理能力。

【3—3】简述80C51指令的分类和格式。

【答】80C51的指令系统共有111条指令,按其功能可分为5大类:数据传送类指令(28条)、算术运算类指令(24条)、逻辑运算类指令(25条)、控制转移类指令(17条)和布尔操作(位)类指令(17条)。

指令的表示方法称之为“指令格式”,其内容包括指令的长度和指令内部信息的安排等。在80C51系列的指令系统中,有单字节、双字节和三字节等不同长度的指令。

·单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。

·双字节指令:包括两个字节。其中一个字节为操作码,另一个字节是操作数。

·三字节指令:操作码占一个字节,操作数占两个字节。其中操作数既可能是数据,也可能是地址。【3—4】简述80C51的指令寻址方式,并举例说明。

【答】执行任何一条指令都需要使用操作数,寻址方式就是在指令中给出的寻找操作数或操作数所在地址的方法。

80C5l系列单片机的指令系统中共有以下7种寻址方式。

①立即寻址。在指令中直接给出操作数。出现在指令中的操作数称为“立即数”,为了与直接寻址指令中的直接地址相区别,在立即数前面必须加上前缀“#”。

例如:MOV DPTR,#1234H ;1234H为立即数,直接送DPTR

②直接寻址。在指令中直接给出操作数单元的地址。

例如: MOV A,55H ;55H是操作数单元的地址,55H单元内的数据才是操作数,取出后送累加器A

③寄存器寻址。在指令中将指定寄存器的内容作为操作数。因此,指定了寄存器就能得

到操作数。寄存器寻址方式中,用符号名称来表示寄存器。

例如: INC R7 ;R7的内容为操作数,加1后再送回R7

④寄存器间接寻址。在指令中给出的寄存器内容是操作数的地址,从该地址中取出的才

是操作数。可以看出,在寄存器寻址方式中,寄存器中存放的是操作数;而在寄存器间接寻址

方式中,寄存器中存放的则是操作数的地址。

寄存器间接寻址须以寄存器符号名称的形式表示。为了区别寄存器寻址和寄存器间接寻

址,在寄存器间接寻址中,应在寄存器的名称前面加前缀“@”。

例如: ORL A.@Ro;当R0寄存器的内容是60H时,该指令功能是以RO寄存器的内容60H为地址,将60H地址单元的内容与累加器A中的数相“或”,其结果仍存放在A中。

⑤相对寻址。在指令中给出的操作数为程序转移的偏移量。相对寻址方式是为实现程序的相对转移而设立的,为相对转移指令所采用。

在相对转移指令中,给出地址偏移量(在80C51系列单片机的指令系统中,以“rel”表示,为8位带符号数),把PC的当前值加上偏移量就构成了程序转移的目的地址。而PC的当前值是指执行完转移指令后的PC值,即转移指令的PC值加上转移指令的字节数。转移的目的地址可用如下公式表示:目的地址=(转移指令所在地址+转移指令字节数)+rel

例如:SJMP 80H ;80H为程序转移的偏移量,即一128。当前PC值减去128后即为转移地址

⑥变址寻址。以DPTR或PC作基址寄存器,累加器A作变址寄存器,以两者内容相加形成的16位程序存储器地址作为操作数地址。又称“基址寄存器+变址寄存器间接寻址”。变址寻址方式只能对程序存储器进行寻址。

例如: MOVC A,@A+DPTR ;功能是把DPTR和A的内容相加,所得到的程序存储器地址单元的内容送A

⑦位寻址。80C51系列单片机有位处理功能,可以对数据位进行操作,因此,就有相应的位寻址方式。位寻址的寻址范围:

●片内RAM中的位寻址区。

·可位寻址的特殊功能寄存器位。

例如:MOV c,80H ;功能是把位寻址区的80H位(即P0.0)状态送累加位C

【3—5】访问特殊功能寄存器SFR,可使用哪些寻址方式?

【答】访问特殊功能寄存器SFR的惟一寻址方式是直接寻址方式。这时除了可以单元地址形式(如90H)给出外,还可以寄存器符号形式(如P1)给出。虽然特殊功能寄存器可以使用寄存器符号标志,但在指令代码中还是按地址进行编码的。

【3—6】若访问外部RAM单元,可使用哪些寻址方式?

【答】访问外部RAM单元的惟一寻址方式是寄存器间接寻址方式。片外RAM的64 KB单元,使用DPTR作为间址寄存器,其形式为@DPTR,例如“MOVX A,@DPTR”的功能是把DPTR指定的片外RAM单元的内容送累加器A。

片外RAM低256个单元,除了可使用DPTR作为间址寄存器外,也可使用:R0或R1作间址寄存器。例如“MOVX A,@R0'’即把R0指定的片外RAM单元的内容送累加器A。

【3—7】若访问内部RAM单元,可使用哪些寻址方式?

【答】片内RAM的低128单元可以使用寄存器间接寻址方式,但只能采用R0或R1为间址寄存器,其形式为@Ri(i=0,1)。

片内RAM的低128单元可以使用直接寻址方式,在指令中直接以单元地址形式给出。

片内RAM的低128单元中的20H~2FH有128个可寻址位,还可以使用位寻址方式,对这128个位的寻址使用直接位地址表示。

【3—8】若访问程序存储器,可使用哪些寻址方式?

【答】访问程序存储器可使用的寻址方式有立即寻址方式、变址寻址方式和相对寻址方式三种。立即寻址是指在指令中直接给出操作数。变址寻址方式只能对程序存储器进行寻址,或者说这是专门针对程序存储器的寻址方式。相对寻址方式是为实现程序的相对转移而设立的。这三种寻址方式所得到的操作数或操作数地址都在程序存储器中。

【3—9】MOV、MOVC、MOⅥ(指令有什么区别?分别用于哪些场合?为什么?

【答】MOV指令用于对内部RAM的访问。MOVC指令用于对程序存储器的访问,从程序存储器中读取数据(如表格、常数等)。MOVX指令采用间接寻址方式访问外部数据存储器.有Ri和DPTR两种间接寻址方式。执行MOVX指令时,在P3.7引脚上输出RD有效信号.或在P3.6引脚上输出WR有效信号,可以用做外部数据存储器或I/O的读/写选通信号,与单片机扩展电路有关。

【3—10】说明“DA A”指令功能,并说明二一十进制调整的原理和方法。

【答】“DA A”指令的功能是对两个BCD码的加法结果进行调整。两个压缩型BCD码按二进制数相加之后,必须经过该指令的调整才能得到压缩型BCD码的和数。“DA A”指令对两个BCD码的减法结果不能进行调整。

BCD码采用4位二进制数编码,并且只采用了其中的10个编码,即0000~1001,分别代表BCD码0~9,而10lO~1111为无效码。当两个BCD码相加结果大于9时,说明已进入无效编码区;当两个BCD码相加结果有进位时,说明已跳过无效编码区。若结果进入或跳过无效编码区,则结果是错误的,相加结果均比正确结果小6(差6个无效编码)。

十进制调整的修正方法为:当累加器低4位大于9或半进位标志AC=1时,进行低4位加6修正;当累加器高4位大于9或进位标志CY=l时,进行高4位加6修正。

【3一11】说明80C51单片机的布尔处理机的构造及功能。

【答】80C51单片机内部有一个布尔(位)处理机,具有较强的布尔变量处理能力。布尔处理机实际上是一位微处理机,它包括硬件和软件。布尔处理机以进位标志CY作为位累加器,以80C51单片机内部RAM的20H~2FH单元及部分特殊功能寄存器为位存储器,以80C51单片机的PO、P1、P2和P3为位I/O。

对位地址空间具有丰富的位操作指令,包括布尔传送指令、布尔状态控制指令、位逻辑操作指令及位条件转移指令,为单片机的控制带来很大方便。

【3—12】试分析以下程序段的执行结果。

【答】结果如下:

MOV SP,#60tt ;(SP)=60H

NOV A,#88tt ;(A)=88H

MOV B.#0FFH ;(B)=FFH

PUSH ACC ;(SP)=61H,(61H)=88H

PUSH B ;(SP)=62H,(62H)=FFH

POP ACC ;(A)=FFH,(SP)=61H

POP B ;(B)=88H,(SP)=60H

程序段的执行结果:累加器A和寄存器B的内容通过堆栈进行了交换。

注意:80C51单片机的堆栈是按照先进后出的原则进行管理的。

【3-1】已知(A)=7AH,(RO)=30H,(30H)=A5 H,(PSW)=80H。请填写各条指令单独执行后的结果。

【答】结果如下:

(1) XCH A,R0 ;(A)=30H,(R0):7AH

(2) XCH A,30H ;(A)=A5H,(30H)=7AH,(PSW)=81H

(3) XCH A,@R0 ;(A)=R5H,(30H)=7AH,(PSW)=81H

(4) XCHD A,@R0 ;(A)=75H,(30H)=AAH,(PSW)=81H

(5) SWAP A ;(A)=A7H

(6) ADD A,R0 ;(A)=AAH,(PSW)=04H

(7) ADD A,30H ;(A)=1FH,(PSW)=81H

(8) ADD A,#30H ;(A)=AAH,(PSW)=04H

(9) ADDC A,30H ;(A)=20H,(PSW)=01H

(10) SUBB A,30H ;(A)=D4H,(PSW)=84H

(11) SUBB A,#30H ;(A)=49H,(PSW)=01H

【3—14】已知(30H)=40H,(40H)=10 H,(10H)=00H,(P1)=CAH,请写出执行以下程序段后有关单元的内容。

【答】有关单元的内容如下:

MOV R0,#30H ;(RO)=30H

MOV A,@R0 ;(A)=40H

MOV Rl,A ;(R1)=40H

MOV B,@R1 ;(B)=1OH

MOV @R1,P1 ;(40H)=CAH

MOV A,@RO ;(A)=40H

MOV 10H,#20H ;(10H)=20H

MOV 30H,10H ;(30H)=20H

执行以上程序段后,有关单元的内容分别为:(30H)=20H,(40H)=CAH,(10H)=20H,(P1)=CAH。

【3-15】已知(R1)=20 H,(20 H)=AAH,请写出执行完下列程序段后A的内容。

【答】各指令的执行结果如下:

MOV A,#55H ;(A)=55H

ANL A,#0FFH ;(A)=55H

ORL 20H,A ;(20H)=FFH

XRL A,@R1 ;(A)=AAH

CPL A ;(A)=55H

执行完程序段后,A的内容为5 5 H。

【3-16】阅读下列程序,说明其功能。

【答】对程序注释如下:

MOV R0,#30H ;(RO)=30H

M0V A,@R0 ;取数

RL A ;(A)×2

MOV R1,A

RL A ;(A)x 4

RL A ;(A)×8

ADD A,R1 ;(A)X i0

MOV @R0,A ;存数

功能:将30 H中的数乘以10以后再存回30H中。

条件:30 H中的数不能大于25,25×10=250仍为一个字节。若30H中的数大于25,则应考虑进位。【3—17】已知两个十进制数分别在内部RAM中的40 H单元和50H单元开始存放(低位在前),其字节长度存放在内部RAM的30 H单元中。编程实现两个十进制数求和,求和结果存放在40 H开始的单元中。【答】程序如下:

ORG 0000H

SJMP MAIN

ORG 0030H

MAIN:

MOV R0,#40H ;被加数首址.又作两个十进制数和的首址

MOV R1,#50H ;加数首址

MOV R2,30H ;字节长度

CLR C

PP: MOV A,@R1 ;取加数

ADDC A,@R0 ;带进位加

DA A ;二一十进制数调整

MOV @R0,A ;存和

INC R0 ;修正地址

INC R1

DJNZ R2,PP ;多字节循环加

AJMP $

END

【3—18】编程实现把外部RAM中从8000 H开始的100个字节数据传送到 8100开始的单元中。

【答】程序如下:

ORG 0000H

SJMP MAIN

ORG 0030H

MAIN:MOV DPTR,#8000H ;字节数据源首地址

MOV R1,#100 ;字节数据计数器

MOV R2,#01H

MOV R3,#00H

PP: MOVX A,@DPTR ;读数据

MOV R4,A ;保存读出数据

CLR C

MOV A,DPL ;计算得到字节数据目的地址

ADD A,R3

MOV DPL,A

MOV A,DPH

ADDC A,R2

MOV DPH,A

MOV A,R4 ;恢复读出数据

MOVX @DPTR,A ;写数据至目的地址

CLR C ;恢复源数据地址.

MOV A,DPL

SUBB A,R3

MOV DPL,A

MOV A,DPH

SUBB A,R2

MOV DPH,A

INC DPTR ;地址加1

DJNZ R1,PP ;是否传送完?

SJMP $

注意:字节数据源地址和目的地址都在外部RAM中,地址指针都为DPTR,所以要注意DPTR地址指针的保护和恢复。地址的保护和恢复的方法有多种,如通过堆栈或寄存器。

【3-20】读下列程序,请:

①写出程序功能,并以图示意。

②对源程序加以注释。

ORG 0000H

MAIN:MOV DPTR,#TAB

MOV R1,#06H

LP: CLR A

MOVC A,@A+DPTR

MOV P1,A

LCALL DELAY O.5 s .

、INC DPTR

DJNZ R1,LP

AJMP MAIN’

TAB:DB 01H,03H,02H,06H,04H,05H

DEL AY0.5 s:······

RET

END

【答】.

①程序功能:将TAB表中的6个参数依次从P1口中输出(每次输出延时0.5 s),然后

重复输出。P1口输出波形如图3-1所示。这是步进电机三相六拍输出波形。

图3-l Pl口输出波形

②注释见源程序右边所述。

ORG 0000H

MAIN:MOV DPTR,#TAB ;P1输出参数表首地址

MOV R1,#06H ;P1输出参数有6个

L,P: CLR A

MOVC A,@A+DPTR ;查表输出

MOV P1,A

LCALL DELAY 0.5 s ;软件延时0.5 S

INC DPTR

DJNZ R1,LP ;输出参数已有6个 ?

AJMP MAIN ;输出参数已有6个,则重复输出

TAB:DB 01H,03H,02H,06H,04H,05H ;参数表

DELAY0.5 s:……;延时0.5 S子程序

RET

【3—21】读下列程序,然后①画出P I.O~P1.3引脚上的波形图,并标出电压V一时间t坐标。

②对源程序加以注释。

ORG 0000H

START: MOV SP,#20H

MOV 30H,#01H

MOV P1,#01H

MLP0: ACALT, D50ms

M07 A,30H

CJNE A,#08H,MLPI

MOV A,#01H

MOV DPTR,#ITAB

MLP2: MOV 30H,A

MOVC A,@A+DPTR

MOV P1,A

SJMP Mr,p0

MLPl: INC A

SJMP MLP2

ITAB:DB 0,1,2,4,8 .

DB 8,4,2,1

D50ms:······.

【答】

①程序功能:P1.O~P1.3引脚上的波形图如图3—2所示。

图3—2 P1.O~P1.3引脚上的波形图

②注释见源程序右边所述。

ORG 0000H

START: MOV SP,#20H

MOV 30H,#01H

MOV P1,#01H

MLP0: ACALL ,D50ms ;软件延时50 ms

MOV A,30H

CJNE A,#08H,MLPI ;判断表格中数据是否取完?

MOV A,#01H ;取完,从表头开始取

MOV DPTR,#ITAB ;表格首地址

MLP2: MOV 30H,A

MOVC A,@A+DPTR ;取表格中数据

MOV P1,A

SJMP MLP0

MLPI: INC A ;表格中数据未取完,准备取下一个

SJMP MLP2

ITAB:DB 0,1,2,4,8 ;表

DB 8,4,2,1

D50ms:……;软件延时50 ms子程序

RET

第四章【单片机的程序设计】

思考与练习题解析

【4—1】简述下列基本概念:程序、程序设计、机器语言、汇编语言及高级语言。

【答】各基本概念如下。

·程序:为计算某一算式或完成某一工作的若干指令的有序集合。

·程序设计:单片机的全部工作概括起来,就是执行程序的过程。为单片机准备这一程序,即编制程序的工作过程。’

·机器语言:用二进制代码表示的指令系统称为“机器语言系统”,简称为“机器语言”。

·汇编语言:用英文字符来代替机器语言,这些英文字符称为“助记符’’。用这种助记符表示指令系统的语言称为“汇编语言”或“符号语言”。

·高级语言:参照数学语言而设计的、近似于人们日常用语的语言。它是面向问题或者面向过程的语言。这种语言不仅直观、易学、易懂,而且通用性强,易于移植到不同类型的机器中。

【4—2】在单片机领域,目前最广泛使用的是哪几种语言?有哪些优越性?单片机能否直接执行这几种语言? 【答】在单片机领域,目前最广泛使用的是汇编语言和高级语言。

汇编语言编写的程序效率高,占用存储空间小,运行速度快,而且能反映单片机的实际运行情况。但编程比使用高级语言困难,通用性差。单片机不能直接执行汇编语言程序,必须通过人工(或机器)汇编把汇编语言程序转换为机器语言程序。

高级语言不受具体机器的限制,而且使用了许多数学公式和习惯用语,从而简化了程序设计的过程,通用性强,易于移植到不同类型的单片机中。

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

对于高级语言,这一转换工作通常称为“编译”或者“解释”。进行编译或者解释的专用程序称为“编译程序”或者“解释程序”。

【4—3】什么是结构化程序设计?它包含哪些基’本结构程序?

【答】程序设计有时可能是一件很复杂的工作,但往往有些程序结构是很典型的。采用结构化程序编程时,规律性极强,简单清晰,易读/写,具有调试方便、生成周期短、可靠性高等特点。

根据结构化程序设计的观点,功能复杂的程序结构一般采用三种基本控制结构,即顺序结构、分支结构和循环结构,再加上子程序结构及中断服务子程序结构,共包含五种基本程序结构。

【4—4】顺序结构程序的特点是什么?试用顺序结构编写三字节无符号数的加法程序段,最高字节的进位存入用户标志F0中。

【答】顺序结构是按照逻辑操作顺序,从某一条指令开始逐条顺序执行,直至某一条指令为止。比如数据的传送与交换、简单的运算、查表等程序的设计。顺序结构是所有程序设计中最基本、最单纯的程序结构形式,因而是一种最简单、应用最普遍的程序结构。在顺序结构程序中没有分支,也没有子程序,但它是组成复杂程序的基础和主干。

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

假设加数存放在内存20H、21H和22H中,被加数存放在内存3OH、31H和32H中,和存放在内存40H、41H和42H中。数据存放次序为低字节在前。

MOV A,3 0H ;取被加数低字节数

ADD A,20H ;求和

M07 40H,A ;和存入

MOV A,31H

ADDC A,21H ;带进位求和

MOV 41H,A

MOV A,32H

ADDC A,22H ;带进位求和

MOV 42H.A ,

MOV F0,C ;最高字节的进位存入用户标志F0中

【4—5】80C51单片机有哪些查表指令?它们有何本质区别?请编写按序号i 值查找Di(1 6位长度)的方法。设值i存放在R7中,将查找到的数据存放于片内RAM的30H、31H单元中。请画出程序流程图,编写查表程序段,加上必要的伪指令,并对源程序加以注释。

【答】80c51有两种查表指令,即近程查表指令“MOVC A,@A+PC”和远程查表指令“MOVC A,@AA+ DPTR" 这两条指令的功能均是从程序存储器中读取数据(如表格、常数等),执行过程相同,其差别是基址不同,因此,适用范围也不同。

累加器A为变址寄存器,而PC、DPTR为基址寄存器。DPTR为基址寄存器时,允许数表存放在程序存储器的任意单元,称为“远程查表”,编程比较直观;而PC为基址寄存器时,数表只能放在该指令单元往下的256个单元中,称为“近程查表”。编程时需要计算累加器A中的值与数表首址的偏移量。

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

ORG XXXXH

MOV DPTR,#TABLE 指向表首址

MOV A,R7 ;取值i

RL A ;Di为二个字节

MOV R7,A ;i x 2

MOVC A,@A+DPTR ;查表获得Di的高字节

MOV 30H.A

MOV A,R7

INC A 指向表的下一个地址

MOVC A,@A+DPTR ;{表获得Di的低字节

MOV 31H, A

TABLE: Dw ……;表(Dw为双字节,高字节在前)

RET

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

【4—6】根据运算结果给出的数据到指定的

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

数据在片内RAM的40H单元中,给出的数据大

小在00~0FH之间,数据表存放在20H开始的

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

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

元。其对应关系为:

给出数据: 00 H 0 1 H 0 2 H …0DH 0EH 0FH

对应数据:00 A0 H 7DC2 H FF09 H … 3456H 89ABH 5678 H

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

【答】程序如下:

ORG 0000H

AJMP MAIN ,

0RG 0020H

TAB:DB OAOH,OOH,0C2H,7DH,09H,OFFH,...,56H,34H,0.ABH,89H,DB 78H,56H;数据字表

ORG 0050H

MAIN: MOV A,40H ;运算结果给出的数据放在40H中

MOV DPTR,#TAB ;指向数据字表首地址

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

MOV 40H,A ;结果放在40H ’

MOVC A,@A+DPTR ;查表,找出对应的值

MOV 41H,A ;查找出的数据值低字节放入41H

MOV A.40H

ADD A,#01H ;查找数据的高位字节

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV 42H,A 。;查找出的数据值高字节放入42H

SJMP$

注意:数据表存放在20 H开始的片内存储器中,该存储器应为内部程序存储器,因为查表指令MOVC的功能是从程序存储器中读数据。

【4—7】什么是分支结构程序?8OC 1的哪些指令可用于分支结构程序编程?有哪些多分支转移指令?由累加器A中的动态运行结果值进行选择分支程序,分支转移指令选用LJMP,请编写散转程序段和画出程序流程图,加上必要的伪指令,并加以注释。

【答】分支结构程序的主要特点是程序执行流程中必然包含有条件判断指令。符合条件要求和不符合条件要求的有不同的处理路径。编程的主要方法和技术是合理选用具有逻辑判断功能的指令。在程序设计时,往往借助程序框图(判断框)来指明程序的走向。

一般情况下,每个分支均需要单独执行一段程序,对分支程序的起始地址赋予一个地址标号,以便当条件满足时转向指定地址单元去执行程序,条件不满足时仍顺序往下执行程序。

80C51的条件判跳指令极其丰富,功能极强,特别是位处理判跳指令,对复杂问题的编程提供了极大方便。程序中每增加一条条件判跳指令,就应增加一条分支。

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

①在80C51指令系统中·可实现单分支程序转移的指令有位条件转移指令,如JC、JNC、

JB、JNB和JBC等,还有一些条件转移指令,如JZ、JNZ和DJNZ等。.

②80C51设有两条多分支选择指令。

(a)散转指令:JMP @A+DPTR

散转指令由数据指针DPTR决定多分支转移程序的首地址,由累加器A中内容动态地选择对应的分支程序。因此,可以从多达256个分支中选择一个分支散转。

(b)比较指令:CJNE A,direct,rel (共有4条)

比较两个数的大小,必然存在大于、等于、小于三种情况,这时就需要从三个分支中选择一个分支执行程序。

例如:由累加器A中的动态运行结果值进行选择分支程序,分支转移指令选用LJMP。

ORG XXXXH

MOV DPTR,#JPTAB ;分支转移表首地址

CLR C

MOV B, A

RLC A

JNC TAB

INC DPTR

TAB: ADD A,B ;(A)* 3

JNC TABLE

INC DPTR

TABLE: JMP@A+DPTR ;多分支转移

JPTAB:LTMP LOOPl ;长转移指令为3个字节

LJMP LOOP2

注意:长转移指令为3字节,因此,A中内容应乘以3。若大于一个字节,则DPH要加1。

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

【4-8】循环结构程序有何特点?80C51的循环转移指令有什么特点?何谓循环嵌套?编程时应注意什么? 【答】循环是强制CPU重复多次地执行一串指令的基本程序结构。从本质上看,循环程序结构只是分支程序中的一个特殊形式。循环程序由4个部分构成,即循环初始化、循环体、循环控制和结束部分。

循环次数已知情况下,采用计数循环程序,其特点是必须在初始化部分设定计数的初值,循环控制部分依据计数器的值决定循环次数。

根据控制循环结束的条件,决定是否继续循环程序的执行。所谓的结束条件可以是搜索到某个关键字(比如回车符CR),也可以是发生的某种变化(如故障引起电路电平变化)等,什么时候结束循环是不可预知的。

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

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

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

CJNE A,direct,rel ;比较不相等转移

这几条基本指令可派生出很多条不同控制计数器的循环转移指令,大大扩充了应用范围和多重循环层次。

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

循环的执行过程是从内向外逐层展开的。内层执行完全部循环后,外层则完成一次循环,逐次类推。层次必须分明,层次之间不能有交叉,否则将产生错误。

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

【4-9】什么是子程序?它的结构特点是什么?什么是子程序嵌套?

【答】在编制应用程序时,往往将需要多次应用但完成的运算或操作相同的程序段,编制成一个子程序,并尽量使其标准化,存放于某存储区域。调用子程序的程序称为“主程序”或“调用程序”。

子程序是由专门的子程序调用指令CALL调用,而以子程序返回指令RET结束的程序段。子程序的第一条指令地址,通常称为“子程序首地址”或“人口地址”,往往采用标号(可用助记符)加以表示,调用(转子)指令的下一条指令地址,通常称为“返回地址”或“断点”。

在子程序中调用子程序的现象通常称为子程序嵌套。

【4-11】手工汇编下列程序:

KEY EQU 2 0H

ORG 2000H

MOV RO,#30H ;数据区首址

MOV Rl,#1 6 ;数据区长度

MOV 20H,#KEY ;关键字送20H单元

CLR F0 ;清用户标志位

MOV 21H,#0l ;序号置l

LP: MOV A,@R0 ;取数

CJNE A,20H,LP1.

SJMP HERE ;找到关键字,结束.

LPI: INC 21H ;序号加1

INC R0 ;数据区地址指针加1

DJNZ R1,LP ;继续

SETB F0 ;未搜索到关键字,则置位用户标志

HERE:SJMP HERE

【答】根据指令查指令表得到机器码,手工汇编结果如下:

KEY EQU 20H

ORG 2000H

2000 7830 MOV R0,#30H ;数据区首址

2002 7910 MOV R1,#1 6 ;数据区长度

2004 752020 MOV 20H,#KEY ;关键字送20H单元

2007 C2D5 CLR F0 ;清用户标志位

2009 752101 MOV 21H,#01 ;序号置1

200C E6 LP: MOV A,@R0 ;取数

200D B52002 CJNE A,20H,LPI

2010 8007 SJMP HERE ;找到关键字,结束

2012 0521 LPI:INC 21H ;序号加1

2014 08 INC R0 ;数据区地址指针加1

2015 D9F5 DJNZ R1,LP ;继续

2017 D2D5 SETB F0 ;未搜索到关键字,则置位用户标志

2019 80FE HERE:SJMP HERE

(完整版)微机原理课后习题参考答案

第一章 2、完成下列数制之间的转换。 (1)01011100B=92D (3)135D=10000111B (5)10110010B=262Q=B2H 3、组合型BCD码和非组合型BCD码有什么区别?写出十进制数254的组合型BCD数和非组合型数。 答:组合型BCD码用高四位和低四位分别对应十进制数的个位和十位,其表示范围是0~99;非组合型BCD码用一个字节的低四位表示十进制数,高四位则任意取值,表示范围为0~9。 组合型:254=(001001010100)BCD 非组合型:254=(00000010 00000101 00000100)BCD 7、计算机为什么采用补码形式存储数据?当计算机的字长n=16,补码的数据表示范围是多少? 答:在补码运算过程中,符号位参加运算,简化了加减法规则,且能使减法运算转化为加法运算,可以简化机器的运算器电路。+32767~ -32768。 9、设计算机字长n=8,求下列各式的[X+Y]补和[X-Y]补,并验证计算结果是否正确。 (1)X=18,Y=89 [X+Y]补=00010010+01011001=01101011B=107D 正确 [X-Y]补=10111001B=00010010+10100111=(-71D)补正确 (2)X=-23,Y=-11 [X+Y]补=11101001+11110101=11011110B=(-34D)补正确[X-Y]补=11101001+00001011=11110100B=(-12D)补正确 (3)X=18,Y=-15 [X+Y]补=00010010+11110001=00000011B=(3D)补正确 [X-Y]补=00010010+00001111=00100001B=(33D)补正确 (4)X=-18,Y=120 [X+Y]补=11101110+01111000=01100110B=(102D)补正确[X-Y]补=11101110+10001000=01110110B=(123D)补由于X-Y=-138 超出了机器数范围,因此出错了。 13、微型计算机的主要性能指标有哪些? 答:CPU字长、存储器容量、运算速度、CPU内核和IO工作电压、制造工艺、扩展能力、软件配置。 第二章 2、8086标志寄存器包含哪些标志位?试说明各标志位的作用。 答:进位标志:CF;奇偶校验:PF;辅助进位:AF;零标志:ZF;符号标志:SF;溢出标志:OF。 5、逻辑地址与物理地址有什么区别?如何将逻辑地址转换为物理地址? 答:物理地址是访问存储器的实际地址,一个存储单元对应唯一的一个物理地址。逻辑地址是对应逻辑段内的一种地址表示形式,它由段基址和段内偏移地址两部分组成,通常表示为段基址:偏移地址。 物理地址=段基址*10H+偏移地址。 6、写出下列逻辑地址的段基址、偏移地址和物理地址。 (1)2314H:0035H (2)1FD0H:000AH 答:(1)段基址:2314H;偏移地址:0035H;物理地址:23175H。 (2)段基址:1FD0H;偏移地址:000AH;物理地址:1FD0AH。 8、设(CS)=2025H,(IP)=0100H,则当前将要执行指令的物理地址是多少? 答:物理地址=(CS)*10H+(IP)=20350H 9、设一个16字的数据区,它的起始地址为70A0H:DDF6H(段基址:偏移地址),求这个数据区的首字单元和末字单元的物理地址。

微机原理课后习题答案

李伯成《微机原理》习题第一章 本章作业参考书目: ①薛钧义主编《微型计算机原理与应用——Intel 80X86系列》 机械工业出版社2002年2月第一版 ②陆一倩编《微型计算机原理及其应用(十六位微型机)》 哈尔滨工业大学出版社1994年8月第四版 ③王永山等编《微型计算机原理与应用》 西安电子科技大学出版社2000年9月 1.1将下列二进制数转换成十进制数: X=10010110B= 1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21 =128D+0D+0D+16D+0D+0D+4D+2D=150D X=101101100B =1*28+0*27+1*26+1*25+0*24+1*23+1*22+0*21+0*20 =256D+0D+64D+32D+0D+16D+4D+0D=364D X=1101101B= 1*26+1*25+0*24+1*23+1*22+0*21 +1*20 =64D+32D+0D+8D+4D+0D+1D=109D 1.2 将下列二进制小数转换成十进制数: (1)X=0.00111B= 0*2-1+0*2-2+1*2-3+1*2-4+1*2-5= 0D+0D+0.125D+0.0625D+0.03125D=0.21875D (2) X=0.11011B= 1*2-1+1*2-2+0*2-3+1*2-4+1*2-5= 0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D (3) X=0.101101B= 1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6= 0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D 1.3 将下列十进制整数转换成二进制数: (1)X=254D=11111110B (2)X=1039D=10000001111B (3)X=141D=10001101B 1.4 将下列十进制小数转换成二进制数: (1)X=0.75D=0.11B (2) X=0.102 D=0.0001101B (3) X=0.6667D=0.101010101B 1.5 将下列十进制数转换成二进制数 (1) 100.25D= 0110 0100.01H (2) 680.75D= 0010 1010 1000.11B 1.6 将下列二进制数转换成十进制数 (1) X=1001101.1011B =77.6875D

微机原理课后作业答案(第五版)

6、[+42]原=00101010B=[+42]反=[+42]补 [-42]原=10101010B [-42]反=11010101B [-42]补=11010110B [+85]原=01010101B=[+85]反=[+85]补 [-85]原=11010101B [-85]反=10101010B [-85]补=10101011B 10、微型计算机基本结构框图 微处理器通过一组总线(Bus)与存储器和I/O接口相连,根据指令的控制,选中并控制它们。微处理器的工作:控制它与存储器或I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。 存储器用来存放数据和指令,其内容以二进制表示。每个单元可存8位(1字节)二进制信息。 输入——将原始数据和程序传送到计算机。 输出——将计算机处理好的数据以各种形式(数字、字母、文字、图形、图像和声音等)送到外部。 接口电路是主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。 总线:从CPU和各I/O接口芯片的内部各功能电路的连接,到计算机系统内部的各部件间的数据传送和通信,乃至计算机主板与适配器卡的连接,以及计算机与外部设备间的连接,都要通过总线(Bus)来实现。 13、8086有20根地址线A19~A0,最大可寻址220=1048576字节单元,即1MB;80386有32根地址线,可寻址232=4GB。8086有16根数据线,80386有32根数据线。

1、8086外部有16根数据总线,可并行传送16位数据; 具有20根地址总线,能直接寻址220=1MB的内存空间; 用低16位地址线访问I/O端口,可访问216=64K个I/O端口。 另外,8088只有8根数据总线 2、8086 CPU由两部分组成:总线接口单元(Bus Interface Unit,BIU) BIU负责CPU与内存和I/O端口间的数据交换: BIU先从指定内存单元中取出指令,送到指令队列中排队,等待执行。 执行指令时所需的操作数,也可由BIU从指定的内存单元或I/O端口中获取,再送到EU去执行。 执行完指令后,可通过BIU将数据传送到内存或I/O端口中。 指令执行单元(Execution Unit,EU) EU负责执行指令: 它先从BIU的指令队列中取出指令,送到EU控制器,经译码分析后执行指令。EU的算术逻辑单元(Arithmetic Logic Unit,ALU)完成各种运算。 6、见书P28-29。 7.(1) 1200:3500H=1200H×16+3500H=15500H (2) FF00:0458H=FF00H×16+0458H=FF458H (3) 3A60:0100H=3A80H×16+0100H=3A700H 8、(1)段起始地址 1200H×16=12000H,结束地址 1200H×16+FFFFH=21FFFH (2)段起始地址 3F05H×16=3F050H,结束地址 3F05H×16+FFFFH=4F04FH (3)段起始地址 0FFEH×16=0FFE0H,结束地址 0FFEH×16+FFFFH=1FFD0H 9、3456H×16+0210H=34770H 11、堆栈地址范围:2000:0000H~2000H(0300H-1),即20000H~202FFH。执行两条PUSH指令后,SS:SP=2000:02FCH,再执行1条PUSH指令后,SS:SP=2000:02FAH。 12、(2000H)=3AH, (2001H)=28H, (2002H)=56H, (2003H)=4FH 从2000H单元取出一个字数据需要1次操作,数据是 283AH; 从2001H单元取出一个字数据需要2次操作,数据是 5628H; 17、CPU读写一次存储器或I/O端口的时间叫总线周期。1个总线周期需要4个系统时钟周期(T1~T4)。8086-2的时钟频率为8MHz,则一个T周期为125ns,一个总线周期为500ns,则CPU每秒最多可以执行200万条指令。

《测试技术》(第二版)课后习题答案-_

《测试技术》(第二版)课后 习题答案-_ -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

解: (1) 瞬变信号-指数衰减振荡信号,其频谱具有连续性和衰减性。 (2) 准周期信号,因为各简谐成分的频率比为无理数,其频谱仍具有离 散性。 (3) 周期信号,因为各简谐成分的频率比为有理数,其频谱具有离散 性、谐波性和收敛性。 解:x(t)=sin2t f 0π的有效值(均方根值): 2 /1)4sin 41(21)4sin 41(21)4cos 1(212sin 1)(1000 00 00 00 000 020 2 000=-= - = -== =? ? ? T f f T T t f f T T dt t f T dt t f T dt t x T x T T T T rms ππππππ 解:周期三角波的时域数学描述如下:

(1)傅里叶级数的三角函数展开: ,式中由于x(t)是偶函数,t n 0sin ω是奇函数,则t n t x 0sin )(ω也是奇函数,而奇函数在上下限对称区间上的积分等于0。故 =n b 0。 因此,其三角函数展开式如下: 其频谱如下图所示: ? ????????+≤ ≤-≤≤- +=) (2 02022)(0000 0nT t x T t t T A A t T t T A A t x 2 1)21(2)(12/0002/2/00000= -==??-T T T dt t T T dt t x T a ??-==-2/000 02 /2/00 000cos )21(4cos )(2T T T n dt t n t T T dt t n t x T a ωω?????==== ,6,4,20 ,5,3,14 2sin 422222n n n n n π ππ?-=2 /2 /00 00sin )(2T T n dt t n t x T b ω∑∞ =+=102 2 cos 1 4 21)(n t n n t x ωπ ∑∞ =++=102 2)2sin(1 421n t n n πωπ (n =1, 3, 5, …)

微机原理与接口技术课后习题答案

第1章微型计算机系统 〔习题〕简答题 (2)总线信号分成哪三组信号 (3)PC机主存采用DRAM组成还是SRAM组成 (5)ROM-BIOS是什么 (6)中断是什么 (9)处理器的“取指-译码-执行周期”是指什么 〔解答〕 ②总线信号分成三组,分别是数据总线、地址总线和控制总线。 ③ PC机主存采用DRAM组成。 ⑤ ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS 的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。 ⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍

返回被中断的指令继续执行的过程。 ⑨指令的处理过程。处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。 〔习题〕填空题 (2)Intel 8086支持___________容量主存空间,80486支持___________容量主存空间。 (3)二进制16位共有___________个编码组合,如果一位对应处理器一个地址信号,16位地址信号共能寻址___________容量主存空间。 (9)最初由公司采用Intel 8088处理器和()操作系统推出PC机。 ② 1MB,4GB ③ 216,64KB (9)IBM,DOS 〔习题〕说明微型计算机系统的硬件组成及各部分作用。 〔解答〕

CPU:CPU也称处理器,是微机的核心。它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。 存储器:存储器是存放程序和数据的部件。 外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。I/O设备通过I/O接口与主机连接。 总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。 〔习题〕区别如下概念:助记符、汇编语言、汇编语言程序和汇编程序。 〔解答〕 助记符:人们采用便于记忆、并能描述指令功能的符号来表示机器指令操作码,该符号称为指令助记符。 汇编语言:用助记符表示的指令以及使用它们编写程序的规则就形成汇编语言。 汇编语言程序:用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序。

微机原理[第三版]课后练习答案解析

1 思考与练习题 一、选择题 1.计算机硬件中最核心的部件是( )。C A.运算器 B.主存储器 C.CPU D.输入/输出设备 2.微机的性能主要取决于( )。 A (B——计算机数据处理能力的一个重要指标) A.CPU B.主存储器 C.硬盘 D.显示器 3.计算机中带符号数的表示通常采用( )。C A.原码 B.反码 C.补码 D.BCD码 4.采用补码表示的8位二进制数真值范围是( )。C A.-127~+127 B.-1 27~+128 C.-128~+127 D.-128~+128 5.大写字母“B”的ASCII码是( )。B A.41H B.42H C.61H D.62H 6.某数在计算机中用压缩BCD码表示为10010011,其真值为( )。C A.10010011B B.93H C.93 D.147 二、填空题 1.微处理器是指_CPU_;微型计算机以_CPU_为核心,配置_内存和I/O接口_构成;其特点是_(1)功能强 (2)可靠性高 (3)价格低 (4)适应性强 (5)体积小 (6)维护方便_。P8 P5 2.主存容量是指_RAM和ROM总和_;它是衡量微型计算机_计算机数据处理_能力的一个重要指标;构成主存的器件通常采用_DRAM和PROM半导体器件_。P5 P9 3.系统总线是_CPU与其他部件之间传送数据、地址和控制信息_的公共通道;根据传送内容的不同可分成_数据、地址、控制_3种总线。P9 4.计算机中的数据可分为_数值型和非数值型_两类,前者的作用是_表示数值大小,进行算术运算等处理操作_;后者的作用是_表示字符编码,在计算机中描述某种特定的信息_。P12 5.机器数是指_数及其符号在机器中加以表示的数值化_;机器数的表示应考虑_机器数的范围、机器数的符号、机器数中小数点位置_3个因素。P15 P16 6.ASCII码可以表示_128_种字符,其中起控制作用的称为_功能码_;供书写程序和描述命令使用的称为_信息码_。P18 P19 三、判断题 1.计算机中带符号数采用补码表示的目的是为了简化机器数的运算。( )√ 2.计算机中数据的表示范围不受计算机字长的限制。( )× 3.计算机地址总线的宽度决定了内存容量的大小。( )√ 4.计算机键盘输入的各类符号在计算机内部均表示为ASCII码。( )× (键盘与计算机通信采用ASCII码) 2 思考与练习题 一、选择题 1.在EU中起数据加工与处理作用的功能部件是( )。A A.ALU B.数据暂存器 C.数据寄存器 D.EU控制电路 2.以下不属于BIU中的功能部件是( )。 B A.地址加法器 B.地址寄存器 C.段寄存器 D.指令队列缓冲器

微机原理课后答案

1.2 课后练习题 一、填空题 1.将二进制数1011011.1转换为十六进制数为__5B.8H_____。 2.将十进制数199转换为二进制数为____ 11000111____B。 3.BCD码表示的数,加减时逢__10____进一,ASCII码用来表示数值时,是一种非压缩的BCD 码。 4.十进制数36.875转换成二进制是___100100.111____________。 5.以_微型计算机____为主体,配上系统软件和外设之后,就构成了__微型计算机系统____。6.十进制数98.45转换成二进制为__1100010.0111_B、八进制__142.3463________Q、十六进制__62.7333________H。(精确到小数点后4位) 二、选择题 1.堆栈的工作方式是__B_________。 A)先进先出B)后进先出C)随机读写D)只能读出不能写入 2.八位定点补码整数的范围是____D_________。 A)-128-+128 B)-127-+127 C)-127-+128 D)-128-+127 3.字长为16位的数可表示有符号数的范围是___B___。 A)-32767-+32768 B)-32768-+32767 C)0-65535 D)-32768-+32768 三、简答题 1.微型计算机系统的基本组成? 微型计算机,系统软件,应用软件,输入输出设备 2.简述冯.诺依曼型计算机基本思想? ●将计算过程描述为由许多条指令按一定顺序组成的程序,并放入存储器保存 ●指令按其在存储器中存放的顺序执行; ●由控制器控制整个程序和数据的存取以及程序的执行; ●以运算器为核心,所有的执行都经过运算器。 3.什么是微型计算机? 微型计算机由CPU、存储器、输入/输出接口电路和系统总线构成。 4.什么是溢出? 运算结果超出了计算机所能表示的范围。 2.2 一、填空题 1. 8086/8088的基本总线周期由___4____个时钟周期组成,若CPU主频为10MHz,则一个时钟周期的时间为___0.1μs_____。 2. 在8086CPU的时序中,为满足慢速外围芯片的需要,CPU采样___READY_________信号,若未准备好,插入___TW__________时钟周期。 3. 8086系统总线形成时,须要用_____ALE__________信号锁定地址信号。 4. 对于8086微处理器,可屏蔽中断请求输入信号加在_____INTR__________引脚。

微机原理(王忠民版课后答案)

部分习题答案 第二章计算机中的数值和编码 1、将十进制数转换为二进制和十六进制 (1) =1000 =(2) =1101 = (3) ==(4) =10 1B=H 2、将下列二进制数转换为十进制和十六进制 (1) 111010 B=58 =3A H(2) 1011 = =H (3) 1B= = (4) B= = 3、完成下列二进制数的加减法运算 (1) +=(2) -= (3) 00111101+=(4) -= 4、完成下列十六进制数的加减法运算 (1) 745CH+56DFH=D14B H(2) -=H (3) +=1678 .FC H(4) 6F01H-EFD8H=7F29 H 5、计算下列表达式的值 (1) +.1011B+= (2) -.11H+= (3) ++-= 6、选取字长n为8位和16位两种情况,求下列十进制数的补码。 (1) X=-33的补码:1101 1111, 111 (2) Y=+33的补码:0010 0001, 0000 0000 0010 0001 (3) Z=-128的补码:1000 0000,1111 1111 1000 0000 (4) N=+127的补码:0111 1111, 0000 0000 0111 1111 (5) A=-65的补码:1011 1111, 1111 1111 1011 1111 (6) B=+65的补码:0100 0001,0000 0000 0100 0001 (7) C=-96的补码:1010 0000,1111 1111 1010 0000 (8) D=+96的补码:0110 0000, 0000 0000 0110 0000 7、写出下列用补码表示的二进制数的真值 (1) [X]补=1000 0000 0000 0000 H X=-1000 0000 0000 0000 H=-32768 (2) [Y]补=0000 0001 0000 0001 H Y=+0000 0001 0000 0001 H=+257 (3) [Z]补=1111 1110 1010 0101 H Z=-0000 0001 0101 1011 H=-347 (4) [A]补=0000 0010 0101 0111 H A=+0000 0010 0101 0111 H=+599 8、设机器字长为8位,最高位为符号位,试对下列格式进行二进制补码运算,并判断结果是否溢出。 (1) 43+8 ∵[43]补=00101011B,[8]补=00001000B ∴[43]补+[8]补=00101011B+00001000B=00110011B=33H 00101011B +00001000B

(完整版)测试技术课后题答案

1-3 求指数函数()(0,0)at x t Ae a t -=>≥的频谱。 (2)220 2 2 (2) ()()(2) 2(2)a j f t j f t at j f t e A A a j f X f x t e dt Ae e dt A a j f a j f a f -+∞ ∞ ---∞-∞-==== =-+++??πππππππ ()X f = Im ()2()arctan arctan Re ()X f f f X f a ==-π? 1-5 求被截断的余弦函数0cos ωt (见图1-26)的傅里叶变换。 0cos ()0 ωt t T x t t T ?≥的频谱密度函数为 1122 1()()j t at j t a j X f x t e dt e e dt a j a ∞ ∞ ----∞ -= == =++? ?ωωω ωω 根据频移特性和叠加性得: []001010222200222 000222222220000()()11()()()22()()[()]2[()][()][()][()] a j a j X X X j j a a a a j a a a a ??---+= --+=-??+-++?? --= -+-+++-++ωωωωωωωωωωωωωωωωωω ωωωωωωωω

微机原理课后答案

课后练习题 一、填空题 1.将二进制数转换为十六进制数为。 2.将十进制数199转换为二进制数为____ ____B。 3.BCD码表示的数,加减时逢__10____进一,ASCII码用来表示数值时,是一种非压缩的BCD 码。 4.十进制数转换成二进制是。 5.以_微型计算机____为主体,配上系统软件和外设之后,就构成了__微型计算机系统____。6.十进制数转换成二进制为、八进制、十六进制。(精确到小数点后4位) 二、选择题 1.堆栈的工作方式是__B_________。 A)先进先出 B)后进先出 C)随机读写 D)只能读出不能写入 2.八位定点补码整数的范围是____D_________。 A)-128-+128 B)-127-+127 C)-127-+128 D)-128-+127 3.字长为16位的数可表示有符号数的范围是___B___。 A)-32767-+32768 B)-32768-+32767 C)0-65535 D)-32768-+32768 三、简答题 1.微型计算机系统的基本组成? 微型计算机,系统软件,应用软件,输入输出设备 2.简述冯.诺依曼型计算机基本思想? 将计算过程描述为由许多条指令按一定顺序组成的程序,并放入存储器保存 指令按其在存储器中存放的顺序执行; 由控制器控制整个程序和数据的存取以及程序的执行; 以运算器为核心,所有的执行都经过运算器。 3.什么是微型计算机? 微型计算机由CPU、存储器、输入/输出接口电路和系统总线构成。 4.什么是溢出? 运算结果超出了计算机所能表示的范围。 2.2 一、填空题 1. 8086/8088的基本总线周期由___4____个时钟周期组成,若CPU主频为10MHz,则一个时钟周期的时间为μs_____。 2. 在8086CPU的时序中,为满足慢速外围芯片的需要,CPU采样___READY_________信号,若未准备好,插入___TW__________时钟周期。 3. 8086系统总线形成时,须要用_____ALE__________信号锁定地址信号。 4. 对于8086微处理器,可屏蔽中断请求输入信号加在_____INTR__________引脚。 5. 在8086系统中,若某一存贮单元的逻辑地址为7FFFH:5020H,则其物理地址为

机械工程测试技术课后习题答案

机械工程测试技术课后 习题答案 集团标准化小组:[VVOPPT-JOPP28-JPPTL98-LOPPNN]

第三章:常用传感器技术 3-1 传感器主要包括哪几部分?试举例说明。 传感器一般由敏感元件、转换元件、基本转换电路三部分组成。 如图所示的气体压力传感器。其内部的膜盒就是敏感元件,它的外部与大气压力相通,内部感受被测压力p ,当p 发生变化时,引起膜盒上半部分移动,可变线圈是传感器的转换元件,它把输入的位移量转换成电感的变化。基本电路则是完成上述电感变化量接入基本转换电路,便可转换成电量输出。 3-2 请举例说明结构型传感器与物性型传感器的区别。 答:结构型传感器主要是通过传感器结构参量的变化实现信号变换的。例如,电容式传感器依靠极板间距离变化引起电容量的变化;电感式传感器依靠衔铁位移引起自感或互感的变化。 物性型传感器则是利用敏感元件材料本身物理性质的变化来实现信号变换。例如,水银温度计是利用水银的热胀冷缩性质;压电式传感器是利用石英晶体的压电效应等。 3-3 金属电阻应变片与半导体应变片在工作原理上有何区别? 答: (1)金属电阻应变片是基于金属导体的“电阻应变效应”, 即电阻材料在外力作用下发生机械变形时,其电阻值发生变化的现象,其电阻的相对变化为()12dR R με=+; (2)半导体应变片是基于半导体材料的“压阻效应”,即电阻材料受到载荷作用而产生应力时,其电阻率发生变化的现象,其电阻的相对变化为dR d E R ρλερ == 。 3-4 有一电阻应变片(见图3-105),其灵敏度S 0=2,R =120Ω,设工作时其 应变为1000με,问ΔR =?设将此应变片接成图中所示的电路,试求:1)无应变时电流指示值;2)有应变时电流指示值;3)试分析这个变量能否从表中读出? 解:根据应变效应表达式R /R =S g 得 R =S g R =2100010-6120=0.24 1)I 1=1.5/R =1.5/120=0.0125A=12.5mA 2)I 2=1.5/(R +R )=1.5/(120+0.24)0.012475A=12.475mA 图3-105 题3-4图

微机原理王忠民版课后答案

部分习题答案 (3) 0.1101 1B= 0.84375 = 0.D8H (4) 11110.01 B= 30.25 =1E.4H 3、完成下列二进制数的加减法运算 (1) 1001.11 + 100.01 = 1110.0001110101.0110 (4) 01011101.0110 — 101101.1011 = 101111.1011 4、 完成下列十六进制数的加减法运算 (1) 745CH + 56DFH= D14B H (2) ABF.8H — EF6.AH = 9C28.E H (3) 12AB.F7 + 3CD.05= 1678 .FC H (4) 6F01H — EFD8H= 7F29 H 5、 计算下列表达式的值 103.CEH (3) 18.9 + 1010.1101B + 12.6H — 1011.1001 = 36.525 6、选取字长n 为8位和16位两种情况,求下列十进制数的补码。 (1) X=— 33的补码: ⑵ Y=+ 33的补码: 0010 0001 , 0000 0000 0010 0001 ⑶ Z=— 128 的补码:1000 0000 , 1111 1111 1000 0000 ⑷ N=+ 127的补码: 0111 1111 , 0000 0000 0111 1111 A=— 65的补码: 1011 1111 , 1111 1111 1011 1111 ⑹ B=+ 65的补码: 0100 0001 , 0000 0000 0100 0001 ⑺ C=— 96的补码: 1010 0000 , 1111 1111 1010 0000 (8) D=+ 96的补码: 0110 0000 , 0000 0000 0110 0000 7、写出下列用补码表示的二进制数的真值 (1) [X 补=1000 0000 0000 0000 H X = — 1000 0000 0000 0000 H =— 32768 (2) [Y 补=0000 0001 0000 0001 H Y = + 0000 0001 0000 0001 H = + 257 (3) [Z 补=1111 1110 1010 0101 H Z= — 0000 0001 0101 1011 H =—347 (4) [A 补=0000 0010 0101 0111 H A= + 0000 0010 0101 0111 H =+ 599 8、设机器字长为8位,最高位为符号位,试对下列格式进行二进制补码运算,并判断结果是否溢出。 (1) 43 + 8 [43]补=00101011B , [8]补=00001000B [43]补+ [8]补=00101011B + 00001000B = 00110011B = 33H 00101011B + 00001000B 00110011B T C s = 0, C D = 0, OF= C S ? C D = 0 ? 0= 0 ??? 无溢出 (1) 43 + 8 33H (无溢出) 第二章 1、 将十进制数转换为二进制和十六进制 (1) 129.75 = 1000 0001.11B = 81.CH (3) 15.625 = 1111.101B = F.AH 2、 将下列二进制数转换为十进制和十六进制 (1) 111010 B= 58 =3A H 计算机中的数值和编码 (2) 218.8125 = 1101 1010.1101B = DA.DH ⑷ 47.15625 = 10 1111.0010 1B = 2F.28 H (2) 1011 1100.111B= 188.875 = BC.E H (2) — 52 + 7 D3 H (无溢出)

微机原理习题解答

第一章微型计算机的基础知识 1-1 将下列十进制数转换为二进制数、十六进制数。 (1)110 (2)1 039 (3)0.75 (4)0.156 25 1-2 将下列十进制数转换为BCD 码。 (1)129 (2)5 678 (3)0.984 (4)93.745 1-3 将下列二进制数转换为十进制数、十六进制数。 (1)10101010 (2)10000000 (3)11000011.01 (4)01111110 1-4 将下列十六进制数转换为二进制数、十进制数。 (1)8E6H (2)0A42H (3)7E.C5H (4) 0F19.1DH 1-5 将下列二进制数转换为BCD 码。 (1)1011011.101 (2)1010110.001 1-6 将下列BCD 码转换为二进制数。 (1)(0010 0111 0011) BCD (2)(1001 0111.0010 0101) BCD 1-7 完成下列二进制数的运算。 (1)1001.11+11.11 (2)1101.01-0110.11 (3)1000.011-1001.101 (4)1111+1101 1-8 完成下列十六进制数的运算。 (1)6AH+0A6H (2)0AB1FH+0EFCH (3)12ADH-1DEH (4)117H-0ABH 1-9 已知X=01H,Y=0FFH ,在下面的情况下比较两数的大小。 (1)无符号数 (2)符号数 (均为补码) 1-10 计算下列各表达式。 (1)101+‘A’+01101001B+0D5H+57Q (2)127.8125+10111101.101+375.63Q+1FC.8AH 1-11 写出下列字符串的ASCII 码。 (1)HELLO (2)A8=

微机原理课后习题答案

第二章 1.8086CPU由哪两部分组成?它们的主要功能是什么? 8086CPU由总线接口部件BIU和指令执行部件EU组成,BIU和EU的操作是并行的。 总线接口部件BIU的功能:地址形成、取指令、指令排队、读/写操作数和总线控制。所有与外部的操作由其完成。 指令执行部件EU的功能:指令译码,执行指令。 2.8086CPU中有哪些寄存器?各有什么用途? 8086CPU的寄存器有通用寄存器组、指针和变址寄存器、段寄存器、指令指针寄存器及标志位寄存器PSW。 4个16位通用寄存器,它们分别是AX,BX,CX,DX,用以存放16位数据或地址。也可分为8个8位寄存器来使用,低8位是AL、BL、CL、DL,高8位是AH、BH、CH、DH,只能存放8位数据,不能存放地址。 指针和变址寄存器存放的内容是某一段内地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。 段寄存器给出相应逻辑段的首地址,称为“段基址”。段基址与段内偏移地址结合形成20位物理地址。 指令指针寄存器用来存放将要执行的下一条指令在现行代码中的偏移地址。 16位标志寄存器PSW用来存放运算结果的特征,常用作后续条件转移指令的转移控制条件。 5.要完成下述运算或控制,用什么标志位判断?其值是什么? ⑴比较两数是否相等? 将两数相减,当全零标志位ZF=1时,说明两数相等,当ZF=0时,两数不等。 ⑵两数运算后结果是正数还是负数? 用符号标志位SF来判断,SF=1,为负数;SF=0,为正数。 ⑶两数相加后是否溢出? 用溢出标志位来判断,OF=1,产生溢出;OF=0,没有溢出。 ⑷采用偶校验方式。判定是否要补“1”? 用奇偶校验标志位判断,有偶数个“1”时,PF=1,不需要补“1”;有奇数个“1”时,PF=0,需要补“1”。 (5)两数相减后比较大小? ●ZF=1时,说明两数是相等的; ●ZF=0时: 无符号数时,CF=0,被减数大;CF=1,被减数小。 带符号数时,SF=OF=0或SF=OF=1,被减数大;SF=1,OF=0或SF=0,OF1,被减数小。 (6)中断信号能否允许? 用中断标志位来判断,IF=1,允许CPU响应可屏蔽中断;IF=0,不响应。 6.8086系统中存储器采用什么结构?用什么信号来选中存储体? 8086存储器采用分体式结构:偶地址存储体和奇地址存储体,各为512k。 用A0和BHE来选择存储体。当A0=0时,访问偶地址存储体;当BHE=0时,访问奇地址存储体;当A0=0,BHE=0时,访问两个存储体。 9.实模式下,段寄存器装入如下数据,写出每段的起始和结束地址 a)1000H 10000H~1FFFFH b)1234H 12340H~2233FH c)2300H 23000H~32FFFH d)E000H E0000H~EFFFFH e)AB00H AB000H~BAFFFH

测试技术部分课后习题参考答案

第1章测试技术基础知识 1.4常用的测呈结果的表达方式有哪3种?对某量进行了8次测量,测得值分别为:8 2.40、 82.43、82.50、82.48、82.45、82.38、82.42、82.46 0试用3 种表达方式表示其测量结果。 解:常用的测量结果的表达方式有基于极限误差的表达方式、基于/分布的表达方式和基于不确怎度的表达方式等3种 1)基于极限误差的表达方式可以表示为 均值为 因为最大测量值为82.50,最小测量值为82.38,所以本次测量的最大误差为0.06.极限误差戈m取为最大误差的两倍,所以 忑=82.44 ±2x 0.06 = 82.44 ±0.12 2)基于/分布的表达方式可以表示为 一A = X ± S

= 0.014 自由度“8-1 = 7,置信概率0 = 0.95,查表得f 分布值0 = 2.365,所以 x () = 82.44 ± 2.365 x 0.014 = 82.44 ± 0.033 3)基于不确定度的表达方式可以表示为 所以 X O =82.44±O.O14 解題思路:1)给岀公式;2)分别讣算公式里而的各分项的值;3)将值代入公式,算岀结 果。 第2章信号的描述与分析 2.2 一个周期信号的傅立叶级数展开为 含有正弦项的形式。 解^基波分量为 2JT T I 120JT . n ——cos —r + sin —r 10 4 30 4 所以:1)基频 co {} = - (rad / s) 4 2)信号的周期7 = —= 8(5) 5 — A — =X±(7x = X± 求: 曲)=4 + £( /I-1 2 K /? rm os —1 + 10 4 120”兀.fin ---- sin ——/) 30 4 (/的单位是秒) 1) ^(): 2)信号的周期:3)信号的均值; 4)将傅立叶级数表示成只 y(r)h ?]=

微机原理课后习题答案

第一章 学习指导: 1.掌握十六进制、二进制、BCD(十进制数)、ASCII码 2.掌握有符号数(补码、原码)、无符号数计算机的表示方法以及表示范围 3.掌握补码运算 4.了解计算机基本组成及工作原理 5.了解新技术 6.了解计算机主要性能指标 2、完成下列数制之间的转换。 (1)01011100B=92D (3)135D=10000111B (5)10110010B=262Q=B2H 3、组合型BCD码和非组合型BCD码有什么区别?写出十进制数254的组合型BCD数和非组合型数。 答:组合型BCD码用高四位和低四位分别对应十进制数的个位和十位,其表示范围是0~99;非组合型BCD码用一个字节的低四位表示十进制数,高四位则任意取值,表示范围为0~9。 组合型:254=(001001010100)BCD 非组合型:254=(00000010 00000101 00000100)BCD 7、计算机为什么采用补码形式存储数据?当计算机的字长n=16,补码的数据表示范围是多少? 答:在补码运算过程中,符号位参加运算,简化了加减法规则,且能使减法运算转化为加法运算,可以简化机器的运算器电路。+32767~ -32768。 9、设计算机字长n=8,求下列各式的[X+Y]补和[X-Y]补,并验证计算结果是否正确。 (1)X=18,Y=89 [X+Y]补=00010010+01011001=01101011B=107D 正确 [X-Y]补=10111001B=00010010+10100111=(-71D)补正确 (2)X=-23,Y=-11 [X+Y]补=11101001+11110101=11011110B=(-34D)补正确[X-Y]补=11101001+00001011=11110100B=(-12D)补正确 (3)X=18,Y=-15 [X+Y]补=00010010+11110001=00000011B=(3D)补正确 [X-Y]补=00010010+00001111=00100001B=(33D)补正确 (4)X=-18,Y=120 [X+Y]补=11101110+01111000=01100110B=(102D)补正确[X-Y]补=11101110+10001000=01110110B=(123D)补由于X-Y=-138 超出了机器数范围,因此出错了。 13、微型计算机的主要性能指标有哪些? 答:CPU字长、存储器容量、运算速度、CPU内核和IO工作电压、制造工艺、扩展能力、软件配置。 第二章 学习指导: 1.了解8086微处理器的基本组成及工作原理 2.掌握通用寄存器(AX、BX、DX、CX、SI、DI、SP、BP)段寄存器(CS、SS、DS、ES)标志寄存器(状态标志位和控制标志位含义)作用 3.掌握逻辑地址、物理地址以及它们之间的关系物理地址=段基址x16+偏移地址 4.掌握逻辑地址和物理地址表示形式2000:0100,20100 5.存储器地址的表示图2-5 6.主要引脚RD、WR、M/IO、INTR、INTA、NMI、HOLD、HLDA

相关主题
文本预览
相关文档 最新文档