当前位置:文档之家› 单片机课后题答案(第二版) 高锋

单片机课后题答案(第二版) 高锋

单片机课后题答案(第二版) 高锋
单片机课后题答案(第二版) 高锋

单片微型计算机原理与接口技术_髙锋版

课后答案

第一章略

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

思考与练习题解析

【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。在布尔运算中,c Y既是数据源之一,又是运算结果的存放处和位数据

传送的中心。根据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 口的分工和特点如下:

1 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-13】已知(A)=7AH,(RO)=30H,(30H)=A5 H,(PSW)=81H。请填写各条指令单独执行后的结果。

【答】结果如下:

(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) SW AP 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 子程序

【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 子程序

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

思考与练习题解析

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

【答】各基本概念如下。

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

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

制程序的工作过程。’

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

统的语言称为“汇编语言”或“符号语言”。

·高级语言:参照数学语言而设计的、近似于人们日常用语的语言。它是面向问题或者面向过程

的语言。这种语言不仅直观、易学、易懂,而且通用性强,易于移植到不同类型的机器中。【4—2】在单片机领域,目前最广泛使用的是哪几种语言?有哪些优越性?单片机能否直接执行这几种语言?

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

汇编语言编写的程序效率高,占用存储空间小,运行速度快,而且能反映单片机的实际运行情况。但

编程比使用高级语言困难,通用性差。单片机不能直接执行汇编语言程序,必须通过人工(或机器)汇编把

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

高级语言不受具体机器的限制,而且使用了许多数学公式和习惯用语,从而简化了程序设计的过程,

通用性强,易于移植到不同类型的单片机中。

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

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

程序”或者“解释程序”。

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

【答】程序设计有时可能是一件很复杂的工作,但往往有些程序结构是很典型的。采用结构化程序编

程时,规律性极强,简单清晰,易读/写,具有调试方便、生成周期短、可靠性高等特点。根据结构化程序设计的观点,功能复杂的程序结构一般采用三种基本控制结构,即顺序结构、分支结

构和循环结构,再加上子程序结构及中断服务子程序结构,共包含五种基本程序结构。【4—4】顺序结构程序的特点是什么?试用顺序结构编写三字节无符号数的加法程序段,最高字节的进位

存入用户标志F0 中。

【答】顺序结构是按照逻辑操作顺序,从某一条指令开始逐条顺序执行,直至某一条指令为止。比如数据

的传送与交换、简单的运算、查表等程序的设计。顺序结构是所有程序设计中最基本、最单

单片机课后习题解答

练习练习练习 第二章单片机结构及原理 1、MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么? 答:(1)一个8bit CPU是微处理器的核心,是运算和逻辑计算的中心。 (2)片内震荡器及时钟电路:提供标准时钟信号,所有动作都依据此进行。 (3)4K ROM程序存贮器:存贮程序及常用表格。 (4)128B RAM 数据存贮器:存贮一些中间变量和常数等。 (5)两个16bit定时器/计数器:完全硬件定时器 (6)32根可编程I/O口线:标准8位双向(4个)I/O接口,每一条I/O线都能独立地作输入或输出。 (7)一个可编程全双工串行口。 (8)五个中断源。 2、什么是指令?什么是程序? 答:指令是规定计算机执行某种操作的命令。 程序是根据任务要求有序编排指令的集合。 3、如何认识89S51/52存储器空间在物理结构上可以划分为4个空间,而在逻辑上又可以划分为3个空间? 答:89S51/52存储器空间在物理结构上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。在逻辑上有3个存储器地址空间:片内、片外统一的64KB程序存储器地址空间,片内256B数据存储器地址空间,片外64KB的数据存储器地址空间。 4、开机复位后,CPU使用的是哪组工作寄存器?他们的地址是多少?CPU如何确定

和改变当前工作寄存器组? 答:开机复位后,CPU使用的是第0组工作寄存器,地址为00H~07H,CPU通过改变状态字寄存器PSW中的RS0和RS1来确定工作寄存器组。 5、什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针SP重新赋值?如果CPU在操作中要使用两组工作寄存器,SP应该多大? 答:堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。堆栈指针SP复位后指向07H单元,00H~1FH为工作寄存器区,20H~2FH 为位寻址区,这些单元有其他功能,因此在程序设计时,需要对SP重新赋值。如果CPU在操作中要使用两组工作寄存器,SP应该至少设置为0FH。 6、89S51/52的时钟周期、机器周期、指令周期是如何分配的?当振荡频率为8MHz 时,一个单片机周期为多少微秒? 答:时钟周期为时钟脉冲频率的倒数,他是单片机中最基本的、最小的时间单位。机器周期是指完成一个基本操作所需要的时间,一个机器周期由12个时钟周期组成。指令周期是执行一条指令所需要的时间,由若干个机器周期组成。 若fosc=8MHz,则一个机器周期=1/8×12μs=μs 7、89S51/52扩展系统中,片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突? 答:访问片外程序存储器和访问数据存储器使用不同的指令用来区分同一地址空间。 8、程序状态字寄存器PSW的作用是什么?常用状态标志有哪些位?作用是什么? 答:程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下: ):进位标志位。 (C y (AC):辅助进位标志位,又称为半进位标志位。

单片机试卷及答案

一选择题 (n )1.MCS—51单片机是高档16位单片机。 (y )2.MCS—51的产品8051与8031的区别是:8031片内无ROM。 (n )3.单片机的CPU从功能上可分为运算器和存贮器。 (y )4.MCS-51的指令寄存器是一个8位寄存器,用于暂存待执行指令,等待译码。 (n )5.MCS—51的指令寄存器是对指令寄存器中的指令进行译码,将指令转变为执行此指令所需要的电信号。 (y )6.8051的累加器ACC是一个8位的寄存器,简称为A,用来存一个操作数或中间结果。 (y )7.8051的程序状态字寄存器PSW是一个8位的专用寄存器,用于存程序运行中的各种状态信息。 (n )8.MCS—51的程序存贮器用于存放运算中间结果。(y )9.MCS—51的数据存贮器在物理上和逻辑上都分为两个地址空间:一个是片内的256字节的RAM,另一个是片外最大可扩充64K字节的RAM。 (y )10.单片机的复位有上电自动复位和按钮手动复位两种,当单片机运行出错或进入死循环时,可按复位键重新启动。 (n )11.CPU的时钟周期为振荡器频率的倒数。 (n )12.单片机的一个机器周期是指完成某一个规定操作所需的时间,一般情况下,一个机器周期等于一个时钟周期组成。(y )13.单片机的指令周期是执行一条指令所需要的时间。一般由若干个机器周期组成。 (n )14.单片机系统扩展时使用的锁存器,是用于锁存高8位地址。 (n )15.MCS—51单片机上电复位后,片内数据存储器的内容均为00H。 (y )16.当8051单片机的晶振频率为12MHZ时,ALE地址锁存信号端的输出频率为2MHZ的方脉冲。 (y )17.8051单片机片内RAM从00H~1FH的32个单元,不仅可以作工作寄存器使用,而且可作为RAM来读写。 (n )18.MCS—51单片机的片内存贮器称为程序存贮器。(n )19.MCS—51单片机的数据存贮器是指外部存贮器。(y )20.MCS—51单片机的特殊功能寄存器集中布置在片内数据存贮器的一个区域中。 (y )21.微机控制系统的抗干扰问题是关系到微机应用成败的大问题. 二、单项选择题 1.MCS—51单片机的CPU主要的组成部分为a 。 A.运算器、控制器B.加法器、寄存器C.运算器、加法器D.运算器、译码器 2.单片机能直接运行的程序叫c 。 源程序B。汇编程序C。目标程序D。编译程序3.单片机中的程序计数器PC用来c 。 A.存放指令B.存放正在执行的指令地址C.存放下一条指令地址 D.存放上一条指令地址 4.单片机上电复位后,PC的内容和SP的内容为b 。A.0000H,00H B。0000H,07H C。0003H,07H D。0800H,08H 5.单片机8031的ALE引脚是b 。 输出高电平B。输出矩形脉冲,频率为fosc的1/6 C.输出低电平D。输出矩形脉冲,频率为fosc的1/2 6.单片机8031的引脚a 。 A.必须接地B。必须接+5V C。可悬空D。以上三种视需要而定7.访问外部存贮器或其它接口芯片时,作数据线和低8位地址线的是A 。 A.P0口B。P1口C。P2口D。P0口和P2口 8.PSW中的RS1和RS0用来a 。 选择工作寄存器区号B。指示复位C。选择定时器D。选择工作方式 9.上电复位后,PSW的值为d 。 A.1 B。07H C。FFH D。0 10.单片机上电复位后,堆栈区的最大允许范围是b 个单元。A.64 B。120 C。128 D。256 11.单片机上电复位后,堆栈区的最大允许范围是内部RAM的d 。 A.00H—FFH B。00H—07H C。07H—7FH D。08H—7FH 12.堆栈指针SP在内部RAM中的直接地址是c 。 A.00H B。07H C。81H D。FFH 的P0口,当使用外部存贮存器时它是一个d 。 A.传输高8位地址口A.传输低8位地址口 C.传输高8位数据口D.传输低8位地址/数据口 14.P0口作数据线和低8位地址线时b 。 A.应外接上拉电阻B.不能作I/O口C.能作I/O口D.应外接高电平 15.对于8031单片机,其内部RAM d 。 A.只能位寻址B.只能字节寻址C.既可位寻址又可字节寻址D.少部分只能位寻址 16.寻址方式就是c 的方式。 A.查找指令操作码B.查找指令C.查找指令操作数 D.查找指令操作码和操作数 17.8031 单片机若晶振频率为fosc=12MHz,则一个机器周期等于c μS。 A.1/12 B.1/2 C.1 D.2 18.MCS—51单片机的数据指针DPTR是一个16位的专用地址指针寄存器,主要用来b 。 A.存放指令B.存放16位地址,作间址寄存器使用C.存放

单片机课后答案

答:中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因而必须终止原程序的执行,转去完成相应的处理程序,待处理结束之后再返回继续执行被终止原程序的过程。中断源指向 CPU 提出中断申请的设备,包括中断请求信号的产生及该信号怎样被CPU 有效地识别,要求中断请求信号产生一次,只能被CPU 接收处理一次,即不能一 次中断申请被CPU 多次响应。当 CPU 正在执行中断服务程序时,又有中断优先级更高的中断申请产生,CPU 就会暂停原来的中断处理程序而转去处理优先级更高的中断请求,处理完毕后再返回原低级中断服务程序,这一过程称为中断嵌套.中断优先级指在实际应用系统中往往有多个中断源,且中断申请是随机的,有时还可能会有多个中断源同时提出中断申请,但CPU 一次只能响应一个中断源发出的中断请求,CPU 响应哪个中断请求,就需要用软件或硬件安排一个优先顺序,即中断优先级排队。 6-2 MCS-51 单片机提供了几个中断源有几级中断优先级别各中断标志是如何产生的又如何清除这些中断标志各中断源所对应的中断矢量地址是多少 答:(1)MCS-51 单片机提供了5 个中断源: INT0 、INT1 、T0、T1、串行口。 (2)MCS-51 系列单片机有两个中断优先级,每一个中断请求源均可编程为高优先级中 断或低优先级中断,从而实现两级中断嵌套。 (3)外部中断可以设置边沿触发或者电平触发,靠软件置位。边沿触发进入中断程序后硬件自动清中断标志。电平触发需要软件清除中断标志位,还需在中断响应后把中断请求信号引脚从低电平强制改变为高电平。 (4)定时器T0、T1 计数溢出产生中断,进入中断程序后由硬件自动清除标志位TF0 或TF1。(5)串行口发送完成或者接收到数据就触发中断,由于是两个中断标志共享一个中断向量,所以需要在中断程序里由软件判断是发送中断还是接受中断,并且只能由软件清除中断标志位。使用软件清除中断标志位的方法是: CLR TI ;清TI 标志位 CLR RI ;清RI 标志位 (6)各中断源对应的中断矢量地址分别为: 中断源中断矢量 外部中断 0 0003H 定时器T0 中断000BH 外部中断1 0013H 定时器T1 中断001BH 串行口中断0023H 定时器中断T2(仅52 系列有) 002BH 6-3 外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的中断过程有何不同怎样设定 答:采用中断电平触发方式时,中断请求标志IT0=0,CPU 在每个机器周期的S5P2 期间采样,一旦在( INT0 )引脚上检测到低电平,则有中断申请,使IE0 置位(置1),向CPU 申请中断。在电平触发方式中,在中断响应后中断标志位IE0 的清0 由硬件自动完成,但由于CPU 对( INT0 )引脚没有控制作用,使中断请求信号的低电平可能继续存在,在以后的机器周期采样时又会把已清0 的IE0 标志位重新置1,所以, 在中断响应后必须采用其它方法撤消该引脚上的低电平,来撤除外部中断请求信号,否则有可能再次中断造成出错。采用边沿触发方式时,IT0=1,CPU 在每个机器的S5P2 期间采样,当检测到前一周期为高电平,后一周期为低电平时,使标志IE0 置1,向CPU 申请中断,此标志位一直保持到CPU 响应中断后,才由硬件自动清除。在边沿触发方式中,为保证CPU 在两个机器周期内检测到由高到低的负跳变,高电平与低电平的持续时间不得少于一个机器周

单片机原理与应用教程第3版习题课后答案

《单片机原理及应用程序》(第三版)习题参考答案 第一章 1. 为什么计算机要采用二进制数?学习十六进制数的目的是什么? 在计算机中,由于所采用的电子逻辑器件仅能存储和识别两种状态的特点,计算机部一切信息存储、处理和传送均采用二进制数的形式。可以说,二进制数是计算机硬件能直接识别并进行处理的惟一形式。十六进制数可以简化表示二进制数。 2. (1) 01111001 79H (2) 0.11 0.CH (3) 01111001.11 79.CH (4) 11101010.101 0EA.AH (5)01100001 61H (6) 00110001 31H 3. (1) 0B3H (2)80H (3) 17.AH (4) 0C.CH 4. (1)01000001B 65 (2) 110101111B 431 5. (1) 00100100 00100100 00100100 (2) 10100100 11011011 11011100 (5) 10000001 11111110 11111111 6. 00100101B 00110111BCD 25H 7. 137 119 89 8.什么是总线?总线主要有哪几部分组成?各部分的作用是什么? 总线是连接计算机各部件之间的一组公共的信号线。一般情况下,可分为系统总线和外总线。 系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB) 地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信

息由地址总线输出,然后经地址译码单元处理。地址总线为16位时,可寻址围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的围。在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。 控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。 数据总线(DB):CPU是通过数据总线与存储单元或外部设备交换数据信息的,故数据总线应为双向总线。在CPU进行读操作时,存储单元或外设的数据信息通过数据总线传送给CPU;在CPU进行写操作时,CPU把数据通过数据总线传送给存储单元或外设9.什么是接口电路? CPU与接口电路连接一般应具有哪些信号线?外部设备与接口电路连接一般应具有哪些信号线? CPU通过接口电路与外部输入、输出设备交换信息, 一般情况下,外部设备种类、数量较多,而且各种参量(如运行速度、数据格式及物理量)也不尽相同。CPU为了实现选取目标外部设备并与其交换信息,必须借助接口电路。一般情况下,接口电路通过地址总线、控制总线和数据总线与CPU连接;通过数据线(D)、控制线(C)和状态线(S)与外部设备连接。 10. 存储器的作用是什么?只读存储器和随机存储器有什么不同? 存储器具有记忆功能,用来存放数据和程序。计算机中的存储器主要有随机存储器(RAM)和只读存储器(ROM)两种。随机存储器一般用来存放程序运行过程中的中间数据,计算机掉电时数据不再保存。只读存储器一般用来存放程序,计算机掉电时信息不会丢失。 11.某存储器的存储容量为64KB,它表示多少个存储单元?64×1024 12. 简述微型计算机硬件系统组成。

单片机课后习题答案

习题答案 习题0 1.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM 和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。 2.什么叫单片机?其主要特点有哪些? 将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。 单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。 3. 单片机有哪几个发展阶段? (1)第一阶段(1974—1976年):制造工艺落后,集成度低,而且采用了双片形式。典型的代表产品有Fairchild公司的F8系列。其特点是:片内只包括了8位CPU,64B的RAM 和两个并行口,需要外加一块3851芯片(内部具有1KB的ROM、定时器/计数器和两个并行口)才能组成一台完整的单片机。 (2)第二阶段(1977—1978年):在单片芯片内集成CPU、并行口、定时器/计数器、RAM和ROM等功能部件,但性能低,品种少,应用范围也不是很广。典型的产品有Intel 公司的MCS-48系列。其特点是,片内集成有8位的CPU,1KB或2KB的ROM,64B或128B的RAM,只有并行接口,无串行接口,有1个8位的定时器/计数器,中断源有2个。片外寻址范围为4KB,芯片引脚为40个。 (3)第三阶段(1979—1982年):8位单片机成熟的阶段。其存储容量和寻址范围增大,而且中断源、并行I/O口和定时器/计数器个数都有了不同程度的增加,并且集成有全双工串行通信接口。在指令系统方面增设了乘除法、位操作和比较指令。其特点是,片内包括了8位的CPU,4KB或8KB的ROM,128B或256B的RAM,具有串/并行接口,2个或3个16位的定时器/计数器,有5~7个中断源。片外寻址范围可达64KB,芯片引脚为40个。代表产品有Intel公司的MCS-51系列,Motorola公司的MC6805系列,TI公司的TMS7000系列,Zilog公司的Z8系列等。 (4)第四阶段(1983年至今):16位单片机和8位高性能单片机并行发展的时代。16位机的工艺先进,集成度高,内部功能强,运算速度快,而且允许用户采用面向工业控制的专用语言,其特点是,片内包括了16位的CPU,8KB的ROM,232B 的RAM,具有串/并行接口,4个16位的定时器/计数器,有8个中断源,具有看门狗(Watchdog),总线控制部件,增加了D/A和A/D转换电路,片外寻址范围可达64KB。代表产品有Intel公司的MCS-96系列,Motorola公司的MC68HC16系列,TI公司的TMS9900系列,NEC公司的783××系列和NS公司的HPC16040等。然而,由于16位单片机价格比较贵,销售量不大,大量应用领域需要的是高性能、大容量和多功能的新型8位单片机。 近年来出现的32位单片机,是单片机的顶级产品,具有较高的运算速度。代表产品有Motorola公司的M68300系列和Hitachi(日立)公司的SH系列、ARM等。 4.在实际应用中,如何选择单片机的类型? 选择原则:主要从指令结构、运行速度、程序存储方式和功能等几个方面选择单片机。 MCS-51为主流产品。 Motorola是世界上最大的单片机厂商。品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。 Microchip单片机是市场份额增长较快的单片机。它的主要产品是PIC系列8位单片机。其特点是运行速度快,低价位,适用于量大、档次低、价格敏感的产品。 美国德州仪器(TI)公司生产的MSP430系列单片机是一种特低功耗的Flash微控制器。主要用于三表及超低功耗场合。 1

单片机试题及答案

单片机原理与接口技术习题答案 习题与思考题1 1-1 微型计算机通常由哪些部分组成?各有哪些功能? 答:微型计算机通常由控制器、运算器、存储器、输入/输出接口电路、输入设备和输出设备组成。控制器的功能是负责从内部存储器中取出指令并对指令进行分析、判断、并根据指令发出控制信号,使计算机有条不紊的协调工作;运算器主要完成算数运算和逻辑运算;存储器用于存储程序和数据;输入/输出接口电路完成CPU与外设之间相连;输入和输出设备用于和计算机进行信息交流的输入和输出。 1-2 单片微型计算机与一般微型计算机相比较有哪些区别?有哪些特点? 答:与通用微型计算机相比,单片机的硬件上,具有严格分工的存储器ROM和RAM和I/O端口引脚具有复用功能;软件上,采用面向控制的指令系统和硬件功能具有广泛的通用性,以及品种规格的系列化。单片机还具备体积小、价格低、性能强大、速度快、用途广、灵活性强、可靠性高等特点。 1-3 简述计算机的工作过程。 答:计算机的工作是由微处理器以一定的时序来不断的取指令、指令译码和执行指令的过程。 1-4 单片机的几个重要指标的定义。 答:单片机的重要指标包括位数、存储器、I/O口、速度、工作电压、功耗和温度。 1-5 单片微型计算机主要应用在哪些方面? 答:单片机的主要应用领域有智能化产品、智能化仪表、智能化测控系统、智能化接口等方面。 1-6 为什么说单片微型计算机有较高的性能价格比和抗干扰能力? 答:因为单片微型计算机主要面向特定应用而设计,设计者在硬件和软件上都高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,具备较高的性能、价格比;单片机嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中,另外单片机体积小,可以放入屏蔽设备中,从而使其具有较高的抗干扰能力。 1-7 简述单片机嵌入式系统的定义和特点。 答:单片机嵌入式系统是嵌入到对象体系中的专用计算机系统;其特点是面向特定应用、与各个行业的具体应用相结合、硬件和软件高效率、软件固化在存储器芯片或单片机本身和不具备自举开发能力。 习题与思考题2 2-1 MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么? 答:MCS-51单片机在一块芯片中集成了CPU、RAM、ROM、定时/计数器、多功能I/O口和中断控制等基本功能部件。 单片机的核心部分是CPU,CPU是单片机的大脑和心脏。 程序存储器用于存放编好的程序或表格常数。数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。 定时/计数器实质上是加法计数器,当它对具有固定时间间隔的内部机器周期进行计数时,它是定时器;当它对外部事件进行计数时,它是计数器。 I/O接口的主要功能包括:缓冲与锁存数据、地址译码、信息格式转换、传递状态(外设状态)和发布命令等。 中断控制可以解决CPU与外设之间速度匹配的问题,使单片机可以及时处理系统中许多随机的参数和信息,同时,它也提高了其处理故障与应变能力的能力。 2-2 MCS-51单片机的核心器件是什么?它由哪些部分组成?各部分的主要功能是什么? 答:单片机的核心部分是CPU,可以说CPU是单片机的大脑和心脏。它由运算器、控制器和布尔(位)处理器组成。 运算器是用于对数据进行算术运算和逻辑操作的执行部件。

单片机课后习题答案

单片机课后习题答案 1.89C51单片机内包含哪些主要逻辑功能部件? 答:80C51系列单片机在片内集成了以下主要逻辑功能部件: (l)CPU(中央处理器):8位(2)片内RAM:128B(3)特殊功能寄存器:21个(4)程序存储器:4KB (5)并行I/O口:8位,4个(6)串行接口:全双工,1个(7)定时器/计数器:16位,2个(8)片内时钟电路:1个 2.89C51的EA端有何用途? 答:/EA端接高电平时,CPU只访问片内flash Rom并执行内部程序,存储器。/EA端接低电平时,CPU只访问外部ROM,并执行片外程序存储器中的指令。/EA端保持高电平时,CPU执行内部存储器中的指令。 3.89C51的存储器分哪几个空间?如何区别不同空间的寻址? 答:ROM(片内ROM和片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits地址)(64KB)片外RAM(MOVX)(16bits地址)(64KB)片内RAM (MOV)(8bits地址)(256B) 4.简述89C51片内RAM的空间分配。 答:片内RAM有256B,低128B是真正的RAM区,高128B是SFR(特殊功能寄存器)区。 5.简述布尔处理存储器的空间分配,片内RAM中包含哪些可位寻址单元。 答:片内RAM区从00H~FFH(256B) 其中20H~2FH(字节地址)是位寻址区对应的位地址是00H~7FH 6. 如何简捷地判断89C51正在工作? 答:用示波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路工作是否正常?)ALE(地址锁存允许)(Address Latch Enable)输出是fosc的6分频 用示波器观察ALE是否有脉冲输出(判断8051芯片的好坏?) 观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?) 因为/PSEN接外部EPROM(ROM)的/OE端子OE=Output Enable(输出允许) 7. 89C51如何确定和改变当前工作寄存器组? 答:PSW(程序状态字)(Program Status Word)中的RS1和RS0 可以给出4中组合,用来从4组工作寄存器组中进行选择PSW属于SFR(Special Function Register)(特殊功能寄存器) 9.读端口锁存器和“读引脚”有何不同?各使用哪种指令? 答:读锁存器(ANLP0,A)就是相当于从存储器中拿数据,而读引脚是从外部拿数据(如MOV A,P1这条指令就是读引脚的,意思就是把端口p1输入数据送给A)传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常用这些指令于外部通信,判断外部键盘等;字节交换XCH、XCHD算术及逻辑运算 ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制转移CJNE、DJNZ

单片机课后习题答案

1.1 计算机经过了哪些主要发展阶段? 解:单片机的发展大致经历了四个阶段: 第一阶段(1970—1974年),为4位单片机阶段; 第二阶段(1974—1978年),为低中档8位单片机阶段; 第三阶段(1978—1983年),为高档8位单片机阶段; 第四阶段(1983年至今),为8位单片机巩固发展阶段及16位单片机、32位单片机推出阶段。 1.2 写出下列机器数的真值: (1)01101110 (2)10001101 (3)01011001 (4)11001110 解:(1)01101110的真值=+110 (2)10001101的真值=+141或-115 (3)01011001的真值=+89 (4)11001110的真值=+206或-50 说明:机器数是指计算机中使用的二进制数,机器数的值称为真值。机器数可表示为无符号数也可表示为带符号数,其中计算机中的带符号数一般为补码形式。10001101若为无符号数。则其真值为+141;若为带符号数,由于最高位(符号位)为1.所以为负数(补码形式),则其真值为-115。 1.4 写出下列二进制数的原码、反码和补码(设字长为8位)。 (1)010111 (2)101011 (3)-101000 (4)-111111 解:(1) [x]原=00010111 [x]反= 00010111 [x]补= 00010111 (2)[x]原=00101011 [x]反= 00101011 [x]补= 00101011 (3)[x]原=10101000 [x]反= 11010111 [x]补= 11011000 (4)[x]原=10111111 [x]反= 11000000 [x]补=11000001 1.5 已知X=10110110,Y=11001111,求X 和Y 的逻辑与、逻辑或和逻辑异或。 解:10000110X Y ?= 11111111X Y += 01111001X Y ⊕= 1.6 已知X 和Y ,试计算下列各题的[]X Y +补和[]-X Y 补(设字长为8位)。 (1)X=1011 Y=0011 (2)X=1011 Y=0101 (3)X=1001 Y=-0100 (4)X=-1000 Y=0101 (5)X=-1100 Y=-0100 解:(1)X 补码=00001011 Y 补码=00000011 [X+Y]补=00001110 [X-Y]补=00001000 (2)X 补码=00001011 Y 补码=00000101 [X+Y]补=00010000 [X-Y]补=00000110 (3)X 补码=00001001 Y 补码=11111100 [X+Y]补=00010000 [X-Y]补=00000110

单片机试题及答案1

一、填空题 已知x的补码数10110111B,x的真值是___201D。 进制转换:134D=__10000110B;=______86H。 32K存储容量对应的地址范围从0000H-7FFFH_。 CPU与内存或I/O接口相连的系统总线通常由_控制总线__、数据总线__、地址总线___等三种信号组成。MCS-51单片机上电复位时PC=_0000_H,SP=_07_H;工作寄存器缺省采用第___________组,这组寄存器的地址范围是从______H~_____H。 MCS-51单片机系列有__5__个中断源,可分为___2__个优先级。上电复位时外部中断0__中断源的优先级别最高。 MCS-51单片机内部RAM共分为______2__个功能区,其高端128个字节的地址空间称为特殊功能寄存器_区,其中仅有________个字节有实际意义。 8255可编程芯片通常作为_并行接口_______扩展之用;8253可编程芯片通常作为_定时器_______扩展之用。8155可编程芯片通常作为_并行接口计数器和存储器______扩展之用;8279可编程芯片通常作为_键盘/显示控制器________扩展之用。 MCS-51 的并行I/O口信息有____读引脚________和____读锁存_________两种读取方法,读一改一写操作是针对并行I/O口内的锁存器进行的。 74LS273通常用来作为简单______输出__________接口扩展;而74LS244则常用来作为简单________输入_______接口扩展。 不带输入数据锁存器的D/A转换器,CPU必须通过______锁存或寄存__器件与D/A转换器传送数据;无三态输出功能的A/D转换器,应当通过_____三态___器件与CPU传送数据。 若用并行口来扩展一个有36只按键的行列式键盘,最少需__12_根I/O线。 74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中___八_块芯片。 MCS-51单片机访问外存储器时利用_____ALE_______信号锁存来自_____P0_____口的低八位地址信号。在MCS-51系统中,当晶振频率采用12MHz时,一个机器周期等于_1__微秒。 8051的T0作为计数器用时,其计数频率不能超过晶振频率的___二十四分之一__。 二、选择题 通常所说的主机是指( C )。 (A)硬件和软件(B)CPU和磁盘存储器 (C)CPU和主存(D)运算器和控制器

单片机课后习题答案解析

一)填空题 1. 十进制数14对应的二进制数表示为(1110B),十六进制数表 示为(0EH)。十进制数-100的补码为(9CH),+100的补码为(64H)。 2. 在一个非零的无符号二进制整数的末尾加两个0后,形成一个新的无符号二进制整数,则新数是原数的(4)倍。 3. 8位无符号二进制数能表示的最大十进制数是(255)。带符号二进制数11001101转换成十进制数是(-51)。 4. 可以将各种不同类型数据转换为计算机能处理的形式并输送到计算机中去的设备统称为(输入设备)。 5. 已知字符D的ASCII码是十六进制数44,则字符T的ASCII码是十进制数(84)。 6. 若某存储器容量为640KB,则表示该存储器共有(655360)个存储单元。 7. 在计算机中,二进制数的单位从小到大依次为(位)、(字节)和(字),对应的英文名称分别是(bit)、(Byte)和(Word)。 8. 设二进制数A=10101101,B=01110110,则逻辑运算A∨B=(11111111),A ∧B=(00100100),A⊕B=(11011011)。 9. 机器数01101110的真值是(+110),机器数01011001的真值是(+89),机器数10011101的真值是(+157或-115),机器数10001101的真值是(+206或-50)。(二)单项选择题 1. 用8位二进制补码数所能表示的十进制数范围是(D) (A)-127 ~ +127 (B)-128 ~ +128 (C)-127 ~ +128 (D)-128 ~ +127 2. 下列等式中,正确的是(B) (A)1 KB = 1024×1024 B (B)1 MB = 1024×1024 B (C)1 KB = 1024 M B (D)1 MB = 1024 B 3. 程序与软件的区别是(C) (A)程序小而软件大(B)程序便宜而软件昂贵 (C)软件包括程序(D)程序包括软件 4. 存储器中,每个存储单元都被赋予惟一的编号,这个编号称为(A) (A)地址(B)字节(C)列号(D)容量 5. 8位二进制数所能表示的最大无符号数是(B) (A)255 (B)256 (C)128 (D)127 6. 下列4个无符号数中,最小的数是(B) (A)11011001(二进制)(B)37(八进制) (C)75(十进制)(D)24(十六进制) 7. 下列字符中,ASCII码最小的是(B) (A)a (B)A (C)x (D)X 8. 下列字符中,ASCII码最大的是(C) (A)a (B)A (C)x (D)X 9. 有一个数152,它与十六进制数6A相等,那么该数是(B) (A)二进制数(B)八进制数(C)十进制数(D)十六进制数 第2章80C51单片机的硬件结构 (一)填空题

单片机课后习题答案部分筛选

第一章 2单片机具有哪些特点 (1)片内存储容量越来越大。 (2抗干扰性好,可靠性高。 (3)芯片引线齐全,容易扩展。 (4)运行速度高,控制功能强。 (5)单片机内部的数据信息保存时间很长,有的芯片可以达到100年以上。 第二章 6. 如何简捷地判断89C51正在工作? 答:用示波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路工作是否正常?) ALE(地址锁存允许)(Address Latch Enable)输出是fosc的6分频用示波器观察ALE是否有脉冲输出(判断 8051芯片的好坏?) 观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?) 因为/PSEN接外部EPROM(ROM)的/OE端子 OE=Output Enable(输出允许) 9. 读端口锁存器和“读引脚”有何不同?各使用哪种指令? 答:读锁存器(ANL P0,A)就是相当于从存储器中拿数据,而读引脚是从外部拿数据(如MOV A,P1 这条指令就是读引脚的,意思就是把端口p1输入数据送给A) 传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常用这些指令于外部通信,判断外部键盘等;字节交换XCH、XCHD算术及逻辑运算 ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制转移CJNE、DJNZ都属于读锁存器。 13. 内部RAM低128字节单元划分为哪3个主要部分?各部分主要功能是什么? 答:片内RAM低128单元的划分及主要功能: (l)工作寄存器组(00H~lFH) 这是一个用寄存器直接寻址的区域,内部数据RAM区的0~31(00H~lFH),共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0~R7。 (2)位寻址区(20H~2FH) 从内部数据RAM区的32~47(20H~2FH)的16个字节单元,共包含128位,是可位寻 址的RAM区。这16个字节单元,既可进行字节寻址,又可实现位寻址。 (3)字节寻址区(30H~7FH) 从内部数据RAM区的48~127(30H~7FH),共80个字节单元,可以采用间接字节寻址 的方法访问。 15. 开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?

单片机习题集及答案

1.在MCS-51中,有7种寻址方式,它们分别为立即数寻、寄存器寻址、直接寻址、寄存器间接寻址、相对寻址、变址寻址和位寻址。 2.汇编语言的指令格式为标号:操作码操作数注释。 3.数据传送类指令执行完毕,源操作数的内容不会(会/不会)丢失。 4.8051内部RAM从20H至2FH既可位寻址,又可间接寻址,位地址空间从00H到7FH。 5.MCS-51单片机指令系统中,指令长度有一字节、二字节和(三)字节,指令执行时间有一个机器周期、两个机器周期和四机器周期,乘法指令需四机器周期。6.MOV A,20H中,20H的寻址方式称之为_直接___;SETB 20H的寻址方式为位寻址。 7.关于堆栈类操作的两条指令分别是_PUSH(入栈)指令_ 、POP(出栈)指令;堆栈操作只能是寄存器间接寻址寻址。 8.访问8031片外数据存储器MOVX指令采用的是寄存器间接寻址寻址方式。访问片外序存储器MOVC指令采用的是变址寻址方式。 9.设(A)=55H,(R5)=AAH,则执行ANL A,R5指令后的结果是(A)= 00H,(R5)= AAH;则执行ORL A,R5指令后的结果是(A)= FFH ,(R5)= AAF;则执行XRL A,R5指令后的结果是(A)= FFH,(R5)= AAH 。 10.伪指令不产生(产生/不产生)可执行目标代码。汇编语言程序结束的指令为END。11.DA指令跟在ADD,ADDC指令的后面,用与二进制数与BCD码的调整。若 (A)=0AH ,执行DA A指令后,(A)= 15。 单项选择题 1.JMP跳转范围是:(D. -128~127B) 2.MCS—51系列单片机最长的一条指令需 B. 4个机器周期。 3.MOV A,@R0这条指令中@R0的寻址方式称为:(B. 寄存器间接寻址) 4.在CPU内部,反映程序运行状态或反映运算结果的特征寄存器是:B. PSW 5.下列指令中正确的是:B. JBC TF0,L1 6.下列指令中错误的是:A. SETB 50H.0 7.将累加器的值压入堆栈的正确指令是:B. PUSH A 8.下列那条减法指令是错误的:C. SUBBC 9. 指令CJNE A ,#00H ,LOOP 影响PSW的哪一位:C.CY 10. 在MUL AB指令中,若积超过255,则C. OV=1 11.在相对寻址方式中,寻址的结果体现在A.PC中 12.在相对寻址方式中,"相对"两字是指相对于 C.当前指令的末地址 13.在寄存器间接寻址方式中,指定寄存器中存放的是B.操作数地址 14.对程序存储器的读操作,只能使用D.MOVC指令 15.必须进行十进制调整的十进制运算C.只有加法 16.执行返回指令时,返回的断点是C.调用指令下一条指令的首地址 17.下列指令中与进位标志位CY 无关的指令有D.无条件转移指令 18.可以为访问程序存储器提供或构成地址的有D.PC、A、DPTR和SP 19.以下各项中不能用来对内部数据存储器进行访问的是A.数据指针DPTR 20.若原来工作寄存器0组为当前寄存器组,现要改1组为当前寄存器组,不能使用指令C.MOV PSW.3,C 21.不能为程序存储器提供和构成地址的有:D.PSW 22.MCS-51汇编语言指令格式中,唯一不可缺少的部分是:B.操作码 23.MCS—51的立即寻址方式中,立即数前面:D.应加前缀“#”号 24.下列完成8031单片机内部数据传送的指令是:D.MOV direct,direct (25).MCS—51的立即寻址的指令中,立即数就是:A.放在寄存器R0中的内容26.单片机中PUSH和POP指令常用来:C.保护现场,恢复现场 27.MCS—51寻址方式中,操作数Ri加前缀“@”号的寻址方式是:A.寄存器间接寻址 28.MCS—51寻址方式中,位寻址的寻址空间是: D.片内RAM的20H~2FH字节中的所有位和部分专用寄存器SFR的位 29.MCS—51寻址方式中,直接寻址的寻址空间是B.专用寄存器SFR 30.执行指令MOVX A,@DPTR时,WR、RD脚的电平为:C.WR高电平,RD低电平 31.主程序执行完ACALL后返回主程序后,堆栈指针SP的值:A.不变 32.单片机中使用MOVX A,@R1指令寻址数据存贮器1050H单元。B.不能 33.下列指令判断若P1口最低位为高电平就转LP,否则就执行下一句的是:D.JNZ P1.0,LP 34.指令JB OEOH,LP中的OEOH是指:D.一个单元的地址 35.下列指令中比较转移指令是指:B.CJNE Rn,#data,rel

单片机原理及应用课后习题参考答案1~6章(DOC)

《单片机原理及应用》习题答案 第一章计算机基础知识 1-1 微型计算机主要由哪几部分组成?各部分有何功能? 答:一台微型计算机由中央处理单元(CPU)、存储器、I/O接口及I/O设备等组成,相互之间通过三组总线(Bus):即地址总线AB、数据总线DB和控制总线CB来连接。 CPU由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。 存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。按其功能可分为RAM和ROM。 输入/输出(I/O)接口是CPU与外部设备进行信息交换的部件。 总线是将CPU、存储器和I/O接口等相对独立的功能部件连接起来,并传送信息的公共通道。 1-3 什么叫单片机?其主要由哪几部分组成? 答:单片机(Single Chip Microcomputer)是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。 1-4 在各种系列的单片机中,片内ROM的配置有几种形式?用户应根据什么原则来选用? 答:单片机片内ROM的配置状态可分四种: (1)片内掩膜(Mask)ROM型单片机(如8051),适合于定型大批量应用产品的生产; (2)片内EPROM型单片机(如8751),适合于研制产品样机; (3)片内无ROM型单片机(如8031),需外接EPROM,单片机扩展灵活,适用于研制新产品; (4)EEPROM(或Flash ROM)型单片机(如89C51),内部程序存储器电可擦除,使用更方便。 1-5 写出下列各数的另两种数制的表达形式(二、十、十六进制) 1-6 写出下列各数的BCD参与: 59:01011001,1996:0001100110010110,4859.2:0100100001011001.0010

51单片机练习题

一.闪烁灯 1.实验任务 如图4.1.1所示:在端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1)延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为秒,相对于微秒来说,相差太大,所以我们在执行 某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是 如何设计呢下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个22+2×248=49820× DJNZ R7,$ 2个2×248(498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。如本实验要求秒=200ms,10ms×R5 =200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当端口输出高电平,即=1时,根据发光二极管的单向导 电性可知,这时发光二极管L1熄灭;当端口输出低电平,即=0时,发 光二极管L1亮;我们可以使用SETB指令使端口输出高电平,使用CLR 指令使端口输出低电平。 5.程序框图

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