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

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

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

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

课后答案

第一章略

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

思考与练习题解析

【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-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) 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

【4-10]把长度为10 H的字符串从内部RAM的输入缓冲区INBUF向设在外部RAM的输出缓冲区OUTBUF进行传送,一直进行到遇见字符“CR"时停止。若字符串中无字符“CR”,则整个字符串全部传送。加上必要的伪指令,并对源程序加以注释。

【答】程序如下:

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV R7,#10H ;数据长度

MOV R0,#INBUF ;源数据首地址

MOV DPTR,#OUTBUF ;目的数据首地址

LOOP: MOV A,@R0 ;把源数据的值赋给A

CJNE A,#0DH,LOOPl ;判断是否为“CR”(ASCII码值为0DH)

SJMP ENDl ;是“CR",则结束传送

LOOPl: MOVX @DPTR,A ;把A的值赋给目的数据

INC R0 ;源数据下一个地址值

INC DPTR ;目的数据下一个地址值

DJNZ R7,L00P ;判断数据传送是否完毕

ENDI: SJMP ENDI

END

【4-11】内部RAM从2OH单元开始存放一个正数表,表中之数为无序排列,并以“-1”作为结束标志。编程实现在表中找出最小正数,存入10H。加上必要的伪指令,并对源程序加以注释。

【答】程序如下:

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV R0,#20H ;正数表首址

MOV 1 0H,#7FH ;初始值设为正数最大值

LOOP: MOV A,@R0

CJNE A,“-1’’,CHK ;比较结束标志“-1”

SJMP END1 ;是“-l",结束比较

CHK: CJNE A,10H,CHKI ;比较两个数大小

SJMP LOOP1 ;两个数相等,不交换

CHKI: JNC LOOP1 ;A较大,不交换

MOV 10H,A ;A较小,交换

LOOP1 INC R0

SJMP LOOP ‘

END1: SJMP END1

END

例如:已知(20H)=22 H,(21H)=23H,(22H)=0CH,(23H)=20H,(24H)=16H, (25H)=-1。执行结果:(10H)=0CH

【4-12】比较两个ASCII码字符串是否相等。字符串的长度在内部RAM的2 H单元,第一个字符串的首地址在30H中,第二个字符串的首地址在50H中。如果两个字符串相等,则置用户标志FO为0;否则,置用户标志FO为1。加上必要的伪指令,并对源程序加以注释(每个ASCII码字符为一个字节,如ASCII码“A”表示为41H)。

LOOPl: MOVX @DPTR,A ;把A的值赋给目的数据

INC R0 ;源数据下一个地址值

INC DPTR ;目的数据下一个地址值

DJNZ R7,L00P ;判断数据传送是否完毕

ENDI: SJMP ENDI

END

【答】字符串中每一个字符都可以用一个ASCII码表示。只要有一个字符不相同,就可以判断字符串不相等。

ORG 0000H ’

微机原理与接口技术(第三版)课本习题答案

第二章 8086体系结构与80x86CPU 1.8086CPU由哪两部分构成它们的主要功能是什么 答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。 2.8086CPU预取指令队列有什么好处8086CPU内部的并行操作体现在哪里答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。8086CPU 内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。 5.简述8086系统中物理地址的形成过程。8086系统中的物理地址最多有多少个逻辑地址呢答:8086系统中的物理地址是由20根地址总线形成的。8086系统采用分段并附以地址偏移量办法形成20位的物理地址。采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。通过一个20位的地址加法器将这两个地址相加形成物理地址。具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。逻辑地址由段基址和偏移地址两部分构成,都是无符号的16位二进制数,程序设计时采用逻辑地址,也是1MB。 6.8086系统中的存储器为什么要采用分段结构有什么好处 答:8086CPU中的寄存器都是16位的,16位的地址只能访问64KB的内存。086系统中的物理地址是由20根地址总线形成的,要做到对20位地址空间进行访问,就需要两部分地址

单片微型计算机原理胡乾斌课后习题答案

习题1 1.1 什么是单片微型计算机? 答:单片微型计算机是将计算机的基本部件微型化并集成到一块芯片上的微型计算机,是计算机微型化的典型代表之一,通常片内都含有CPU ROM、RAM、并行I/O、串行I/O、定时器/计数器、中断控制、系统时钟及系统总线等。 1.2 单片机的发展经历了哪几个阶段?在哪一阶段确立了单片机在嵌入式应用中的地位。 答:单片机初级阶段(1974 —1976 年),芯片化探索阶段(1976 —1978 年),8位单片机成熟阶段(1978 —1982 年),从SCM向MCU过渡阶段(1983 —1990年),MCU百花齐放阶段(1990年一至今)。 其中,芯片化探索阶段(1976—1978 年)确立了单片机在嵌入式应用中的地位。 1.3 单片机可分为几个系列?简述每个系列的主要特性。 答:单片机按系列可分为80C51系列、PIC系列和AVR系列等。 PIC系列单片机是Micro Chip公司的产品,与51系列单片机不兼容。 1)P IC 系列单片机最大的特点是从实际出发,重视产品的性能与价格比,发展多种型号来满足不同层次的应用要求。 2)精简指令使其执行效率大为提高。 3)产品上市零等待(Zero time to market )。 4)P IC 有优越开发环境。 5)其引脚具有防瞬态能力,通过限流电阻可以接至220V 交流电源,可直接与继电器控制电路相连,无须光电耦合器隔离,给应用带来极大方便。 6)彻底的保密性。 7)自带看门狗定时器,可以用来提高程序运行的可靠性。 8)睡眠和低功耗模式。 AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU)精简指令集高速 8 位单片机。AVR 单片机的主要特性 1)A VR单片机以字作为指令长度单位,将内容丰富的操作数与操作码安排在一字之中(指令集中占大多数的单周期指令 都是如此),取指周期短,又可预取指令,实现流水作业,故可高速执行指令。

(整理)微型计算机原理与接口技术

4.9练习题 10、写一个宏定义,要求能把任意一个寄存器的最低位移至另一个存储器的最高位中。 DATA SEGMENT VAR1 DB 4,6 VAR2 DD 200 DUP(?) DATA ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATA,SS:STACKS START: MOV AX,DATA MOV DS,AX XTY MACRO X,Y MOV AX,X AND AX,1 ROR AX,1 MOV Y,AX ENDM MOV DX,1 MOV AX,0 XTY DX,AX, MOV AH,4CH INT 21H CODES ENDS END START 11、利用DOS功能调用从键盘输入60个字符到缓冲区BUF中,在按下ENTER键后在屏幕上显示这些字符。请写出程序段。 DATA SEGMENT ST1 DB 'Please input 60 characters from keyboard.',0DH,0AH,'$' BUF DB 61 DUP(?) DATA ENDS COD SEGMENT ASSUME CS:COD,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DL,07H MOV AH,2 INT 21H MOV DX,OFFSET ST1 MOV AH,9 INT 21H LEA SI, BUF MOV CX,60 LP: MOV AH,7 INT 21H MOV [SI],AL CMP AL,0DH JZ EXIT INC SI LOOP LP EXIT: MOV BX,60 SUB BX,CX MOV CX,BX LEA SI, BUF LP2: MOV DL,[SI] MOV AH,6 INT 21H INC SI LOOP LP2 MOV AH,4CH INT 21H COD ENDS END START

单片微型计算机原理和接口技术第三版复习总结

单片机复习总结 O、计算机的基本原理 计算机数值表示(原码、反码、补码) 中断 存储器(堆栈) 一、绪论 要求:熟悉,不作为考试内容 二、MCS-51单片机系统结构 1、硬件结构了解 2、引脚功能熟悉,掌握在外部功能扩展中的应用 3、中央处理器熟悉各个寄存器的基本功能 掌握振荡周期、机器周期及指令周期的概念 时钟,复位的定义 三、存储器结构 1、四个物理空间:内、外程序存储器,内、外数据存储器 三个逻辑空间:程序存储器,内、外数据存储器 2、程序存储器地址空间 重点掌握:低地址段的保留单元 3、数据存储器地址空间 重点掌握:内部数据存储器,地址范围,特点,SFR 外部数据存储器,寻址范围及寻址方式 4、位处理器 熟悉位处理器组成及位存储器地址范围 四、指令系统 1、指令的寻址方式(掌握) 7种寻址方式,名称、格式、寻址范围 2、指令系统(五大类) 要求:指令的格式,寻址方式,执行操作,对标志位影响,程序段编写。 五、定时/ 计数器 要求:初始化程序,中断或非中断情况下的应用编程 定时计数器特点:16位加1计数器,计数初值为计数长度的补码;可程控为4种不同工作方式。 初始化程序:1、计数常数的计算 2、置工作方式字 3、置THX,TLX 4、置TRX启动计数 5、置EA、ETX开中断 六、中断系统 1、中断的概念 2、与中断有关的寄存器

3、中断源:外部及内部中断源,中断触发方式,如何设置 4、MCS-51中断优先级的处理原则,同级中断申请的查询次序。 5、中断处理过程(了解),各个中断源对应中断矢量(掌握),中断响应条件(掌握)。 6、中断程序编写的步骤 七、串行通讯口 1、串行通讯概述(熟悉,了解) 重点:异步串行通讯的帧格式 2、MCS-51的串行通讯口 SCON串行控制寄存器,PCON(SMOD位作用) 串行通讯工作方式(熟悉了解),掌握不同工作方式的特点及帧格式,如何启动发送及接收。 串行通讯波特率,常用波特率的获得(掌握)。 串行通讯编程,初始化程序、简单应用程序 八、功能扩展 1、A/D、D/A转换的原理,逐次比较式AD转换的原理 给出接口芯片,画接口电路图; 根据接口电路图,写转换程序 2、键盘(行扫描法、反转扫描法)以及LED显示(静态显示、动态显示)的工作原理

微机原理与接口技术(第二版) 清华大学出版社

习题1 1.什么是汇编语言,汇编程序,和机器语言? 答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。 汇编语言是面向及其的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。 2.微型计算机系统有哪些特点?具有这些特点的根本原因是什么? 答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。 这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细加工工艺基础之上。 3.微型计算机系统由哪些功能部件组成?试说明“存储程序控制”的概念。 答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成。 “存储程序控制”的概念可简要地概括为以下几点: ①计算机(指硬件)应由运算器、存储器、控制器和输入/输出设备五大基本部件组成。 ②在计算机内部采用二进制来表示程序和数据。 ③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义。 ④五大部件以运算器为中心进行组织。 4.请说明微型计算机系统的工作过程。 答:微型计算机的基本工作过程是执行程序的过程,也就是CPU自动从程序存

放的第1个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作。如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。 5.试说明微处理器字长的意义。 答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。它决定着计算机内部寄存器、ALU和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价。计算机的字长越大,其性能越优越。在完成同样精度的运算时,字长较长的微处理器比字长较短的微处理器运算速度快。 6.微机系统中采用的总线结构有几种类型?各有什么特点? 答:微机主板常用总线有系统总线、I/O总线、ISA总线、IPCI总线、AGP总线、IEEE1394总线、USB总线等类型。 7.将下列十进制数转换成二进制数、八进制数、十六进制数。 ①(4.75)10=(0100.11)2=(4.6)8=(4.C)16 ②(2.25)10=(10.01)2=(2.2)8=(2.8)16 ③(1.875)10=(1.111)2=(1.7)8=(1.E)16 8.将下列二进制数转换成十进制数。 ①(1011.011)2=(11.375)10 ②(1101.01011)2=(13.58)10 ③(111.001)2=(7.2)10 9.将下列十进制数转换成8421BCD码。 ① 2006=(0010 0000 0000 0110)BCD ② 123.456=(0001 0010 0011.0100 0101 0110)BCD 10.求下列带符号十进制数的8位基2码补码。 ① [+127]补= 01111111

(完整版)单片微型计算机原理与接口技术髙锋课后答案第3章

第3章【单片机的指令系统】 思考与练习题解析 【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中。

微机原理与接口技术学习心得

本学期微机原理课程已经结束,关于微机课程的心得体会甚多。微机原理与接口技术作为一门专业课,虽然要求没有专业课那么高,但是却对自己今后的工作总会有一定的帮助。记得老师第一节课说学微机原理是为以后的单片机打基础,这就让我下定决心学好微机原理这门课程。 初学《微机原理与接口技术》时,感觉摸不着头绪。面对着众多的术语、概念及原理性的问题不知道该如何下手。在了解课程的特点后,我发现,应该以微机的整机概念为突破口,在如何建立整体概念上下功夫。可以通过学习一个模型机的组成和指令执行的过程,了解和熟悉计算机的结构、特点和工作过程。 《微机原理与接口技术》课程有许多新名词、新专业术语。透彻理解这些名词、术语的意思,为今后深入学习打下基础。一个新的名词从首次接触到理解和应用,需要一个反复的过程。而在众多概念中,真正关键的并不是很多。比如“中断”概念,既是重点又是难点,如果不懂中断技术,就不能算是搞懂了微机原理。在学习中凡是遇到这种情况,绝对不轻易放过,要力求真正弄懂,搞懂一个重点,将使一大串概念迎刃而解。 学习过程中,我发现许多概念很相近,为了更好地掌握,将一些容易混淆的概念集中在一起进行分析,比较它们之间的异同点。比如:微机原理中,引入了计算机由五大部分组成这一概念;从中央处理器引出微处理器的定义;在引出微型计算机定义时,强调输入/输出接口的重要性;在引出微型计算机系统的定义时,强调计算机软件与计算机硬件的相辅相成的关系。微处理器是微型计算机的重要组成部分,它与微型计算机、微型计算机系统是完全不同的概念在微机中,最基础的语言是汇编语言。汇编语言是一个最基础最古老的计算机语言。语言总是越基础越重要,在重大的编程项目中应用最广泛。就我的个人理解,汇编是对寄存的地址以及数据单元进行最直接的修改。而在某些时候,这种方法是最有效,最可靠的。 然而,事物总有两面性。其中,最重要的一点就是,汇编语言很复杂,对某个数据进行修改时,本来很简单的一个操作会用比较烦琐的语言来解决,而这些语言本身在执行和操作的过程中,占有大量的时间和成本。在一些讲求效率的场合,并不可取。 汇编语言对学习其他计算机起到一个比较、对照、参考的促进作用。学习事物总是从最简单基础的开始。那么学习高级语言也当然应当从汇编开始。学习汇

《微机原理与接口技术》参考答案

《微机原理与接口技术》参考答案 《微机原理与接口技术》习题参考答案习题 2 1. 为何说8086CPU是16位CPU?答:16位指的是8086CPU的字长,而字长一般来说和运算器、寄存器、总线宽度一致。因为8086CPU的内部寄存器、内部运算部件以及内部操作都是按16位设计的,这决定了它的字长为16位。 2. 8086CPU哪两个单元组成?其中,指令队列在哪个单元中,有何作用?答:总线接口单元和执行单元。指令队列在BIU中。它的作用是当EU在执行指令时,空闲的BIU可以从内存读取后续指令到指令队列,这样就可以将取指令工作和执行指令工作重叠进行,从而提高CPU的工作效率,加快指令的执行速度。 3. 8086CPU中8位寄存器和16位寄存器是什么关系?答:8086的通用寄存器包括数据寄存器、指

针寄存器和变址寄存器。其中数据寄存器包含AX、BX、CX、DX四个16位寄存器,但他们每个都可以分开作为两个单独的8位寄存器使用。8086的指针寄存器和变址寄存器不可分割为8位寄存器。4. 8086CPU中的IP寄存器有何用途?答:IP寄存器是指令指针寄存器,用来存放下一条要执行的指令在代码段中的偏移地址。在程序运行过程中,IP寄存器始终指向下一条指令的首地址,与CS寄存器联合确定下一条指令的物理地址。8086就是通过IP寄存器来控制指令序列的执行流程。 5. 在标志寄存器中,用于反映运算结果属性的标志位有哪些?它们每一位所表示的含义是什么?答:有CF、PF、AF、ZF、SF、OF。它们的含义如下:CF:进位标志。它记录运算时从最高有效位产生的进位值或结果值。最高有效位有进位或有借位时CF=1,否则CF=0。PF:奇偶标志。它记录运算结果的奇偶检验条件。当结果操作数

微型计算机原理与接口技术_(张荣标_著)_机械工业出版社_课后答案

第一章 1.选择题 (1)C (2) D A (3) C 3填空 (1)CPU,微型计算机,系统软件,外围设备,微型计算机系统 (2)10,3,12 (3)阶数 (4)10010010B,01000100B,11010110B,FF4EH (5)3F7H,1C3H,243H,277H, 4简答题 (1)微处理器,微型计算机和微型计算机系统三者有何联系与区别? 微处理器是把原来的中央处理单元CPU的复杂电路(包括运算器和控制器)做在一片或几片大规模集成电路的芯片上。把这种微缩的CPU大规模集成电路称为微处理器。 微型计算机是以微处理器为核心,再配备上用大规模集成电路工艺制成的存储器和I/O接口就构成了微型计算机。 以微计算机为核心,再配备上系统软件、I/O设备、辅助电路和电源就构成了微机系统。微型计算机系统包括硬件和软件了两大部分。 (2)试述在计算机中常采用二进制的缘由? (3)简述如何从补码判断真值的符号? (4)BCD码与纯二进制数有何区别? 主要区别是二者对应的二进制位所表示的二进制真值不同, (5)试述机器数的定点和浮点数表示形式。 第2章 2填空题 (1)递增,A7,A5,A3,A1. (2)地址总线的宽度,00000H~0FFFFFH (3)寄存器,运算器,控制器;运算和控制 (4)SS,SP (5)MN/MX (6)主频,总线宽度 (7)20,16 3简答题 (1)什么是指令周期?什么是总线周期?一个总线周期至少包括几个时钟周期?指令周期是一条指令执行所需的时钟周期,cpu在执行指令过程中,凡需执行访问存储器或访问I/O端口的操作都统一交给BIU的外部总线完成,进行一次访问所需的时间称为一个总线周期。一般一个基本的总线周期由4个时钟周期组成。 (2)8086CPU在最小模式下构成计算机系统至少应该包括哪几个基本的部分?(3)8086CPU中,标志寄存器包含哪些标志位?各标志位为‘0’,‘1’分别表示什么含义? (4)8086CPU中有哪些通用寄存器和专用寄存器?说明他们的作用。 (5)在8086CPU中,已知CS寄存器和IP寄存器的内容分别如下所示,请确定其物

单片微型计算机原理及应用参考答案

《单片微型计算机原理及应用》习题参考答案 姜志海刘连鑫王蕾编著 电子工业出版社 目录 第1章微型计算机基础 (2) 第2章半导体存储器及I/O接口基础 (5) 第3章MCS51系列单片机硬件结构 (13) 第4章MCS51系列单片机指令系统 (19) 第5章MCS51系列单片机汇编语言程序设计 (23) 第6章MCS51系列单片机中断系统与定时器/计数器 (30) 第7章MCS51系列单片机的串行口 (37) 第8章MCS51系列单片机系统扩展技术 (40) 第9章MCS51系列单片机键盘/显示器接口技术 (42) 第10章MCS51系列单片机模拟量接口技术 (46) 第11章单片机应用系统设计 (50)

第1章微型计算机基础 1.简述微型计算机的结构及各部分的作用 微型计算机在硬件上由运算器、控制器、存储器、输入设备及输出设备五大部分组成。 运算器是计算机处理信息的主要部分;控制器控制计算机各部件自动地、协调一致地工作;存储器是存放数据与程序的部件;输入设备用来输入数据与程序;输出设备将计算机的处理结果用数字、图形等形式表示出来。 通常把运算器、控制器、存储器这三部分称为计算机的主机,而输入、输出设备则称为计算机的外部设备(简称外设)。由于运算器、控制器是计算机处理信息的关键部件,所以常将它们合称为中央处理单元CPU(Central Process Unit)。 2.微处理器、微型计算机、微型计算机系统有什么联系与区别? 微处理器是利用微电子技术将计算机的核心部件(运算器和控制器)集中做在一块集成电路上的一个独立芯片。它具有解释指令、执行指令和与外界交换数据的能力。其内部包括三部分:运算器、控制器、内部寄存器阵列(工作寄存器组)。 微型计算机由CPU、存储器、输入/输出(I/O)接口电路构成,各部分芯片之间通过总线(Bus)连接。 以微型计算机为主体,配上外部输入/输出设备、电源、系统软件一起构成应用系统,称为微型计算机系统。 3.微型计算机是以CPU为核心,配上存储器、输入/输出接口和系统总线组成的计算机。 4.在计算机内部,一切信息的存取、处理和传递的形式是(C )。 A.ASCII码B.BCD码C.二进制D.十六进制 5.0~9的ASCII码是(C )。 A.0~9 B.30~39 C.30H~39H D.40H~49H 6.在微型计算机中,一般具有哪三类总线?试说出各自的特征(包括传输的信息类型、单向传输还是双向传输)。 所谓总线,就是在微型计算机各芯片之间或芯片内部各部件之间传输信息的一组公共通

微机原理与接口技术期末考试试题及答案

微机原理与接口技术期末考试题库 1.微机系统的硬件由哪几部分组成? 答:三部分:微型计算机(微处理器,存储器,I/0接口,系统总线),外围设备,电源。 2.什么是微机的总线,分为哪三组? 答:是传递信息的一组公用导线。分三组:地址总线,数据总线,控制总线。 3.8086/8088CPU的内部结构分为哪两大模块,各自的主要功能是什 么? 答:总线接口部件(BIU)功能:根据执行单元EU的请求完成CPU 与存储器或IO设备之间的数据传送。执行部件(EU),作用:从指令对列中取出指令,对指令进行译码,发出相应的传送数据或算术的控制信号接受由总线接口部件传送来的数据或把数据传送到总线接 口部件进行算术运算。 4.8086指令队列的作用是什么? 答:作用是:在执行指令的同时从内存中取了一条指令或下几条指令,取来的指令放在指令队列中这样它就不需要象以往的计算机那样让CPU轮番进行取指和执行的工作,从而提高CPU的利用率。 5.8086的存储器空间最大可以为多少?怎样用16位寄存器实现对 20位地址的寻址?完成逻辑地址到物理地址转换的部件是什么?

答:8086的存储器空间最大可以为2^20(1MB);8086计算机引入了分段管理机制,当CPU寻址某个存储单元时,先将段寄存器内的内容左移4位,然后加上指令中提供的16位偏移地址形成20位物理地址。 6.段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令 的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗? 答:指令的物理地址为21F00H;CS值和IP值不是唯一的,例如:CS=2100H,IP=0F00H。 7.设存储器的段地址是4ABFH,物理地址为50000H,其偏移地址 为多少? 答:偏移地址为54100H。(物理地址=段地址*16+偏移地址) 8.8086/8088CPU有哪几个状态标志位,有哪几个控制标志位?其意 义各是什么? 答:状态标志位有6个:ZF,SF,CF,OF,AF,PF。其意思是用来反映指令执行的特征,通常是由CPU根据指令执行结果自动设置的;控制标志位有3个:DF,IF,TF。它是由程序通过执行特定的指令来设置的,以控制指令的操作方式。 9.8086CPU的AD0~AD15是什么引脚? 答:数据与地址引脚 10.INTR、INTA、NMI、ALE、HOLD、HLDA引脚的名称各是什么?

微机原理与接口技术

第二章 8086系统结构 一、 8086CPU 的内部结构 1.总线接口部件BIU (Bus Interface Unit ) 组成:20位地址加法器,专用寄存器组,6字节指令队列,总线控制电路。 作用:负责从内存指定单元中取出指令,送入指令流队列中排队;取出指令所需的操作 数送EU 单元去执行。 工作过程:由段寄存器与IP 形成20位物理地址送地址总线,由总线控制电路发出存储器“读”信号,按给定的地址从存储器中取出指令,送到指令队列中等待执行。 *当指令队列有2个或2个以上的字节空余时,BIU 自动将指令取到指令队列中。若遇到转移指令等,则将指令队列清空,BIU 重新取新地址中的指令代码,送入指令队列。 *指令指针IP 由BIU 自动修改,IP 总是指向下一条将要执行指令的地址。 2.指令执行部件EU (Exection Unit) 组成:算术逻辑单元(ALU ),标志寄存器(FR ),通用寄存器,EU 控制系统等。 作用:负责指令的执行,完成指令的操作。 工作过程:从队列中取得指令,进行译码,根据指令要求向EU 内部各部件发出控制命令,完成执行指令的功能。若执行指令需要访问存储器或I/O 端口,则EU 将操作数的偏移地址送给BIU ,由BIU 取得操作数送给EU 。 二、 8088/8086的寄存器结构 标志寄存器 ALU DI DH SP SI BP DL AL AH BL BH CL CH ES SS DS CS 内部暂存器输入 / 输出控制 电路1432EU 控制系 统20位16位8086总线指令 队列总线 接口单元执行 单元 6 516位 属第三代微处理器 运算能力: 数据总线:DB

微型计算机原理与接口技术课后答案资料

15. 已知:在内存BUF开始的单元中,存在一串数据:58,75,36,42,89。编程找出其中的最小值存入MIN单元中,并将这个数显示在屏幕上。 解: STACK SEGMENT STACK DB 100 DUP(?) STACK ENDS DATA SEGMENT BUF DB 58H, 75H, 36H, 42H, 89H MIN DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK START: PUSH DS MOV AX, DATA MOV DS, AX MOV CX, 4 MOV BX, OFFSET BUF MOV AL, [BX] ST1: INC BX CMP AL, [BX] JBE NEXT MOV AL, [BX] NEXT:LOOP ST1 MOV MIN, AL AND AL, 0F0H MOV CL,4 ROR AL, CL ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21H MOV AL, MIN AND AL, 0FH ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21H POP DS MOV AH, 4CH INT 21H HLT CODE ENDS

END START 18. 某班有20个同学的微机原理成绩存放在LIST开始的单元中,要求编程先从高到低的次序排列好,再求出总分和平均值,分别存放在SUM和AVER开始的单元中。 解: STACK ENDS DATA SEGMENT LIST DB 65H,76H,78H,54H,90H,85H,68H,66H,77H,88H DB 99H, 89H, 79H, 69H,75H,85H,63H,73H,83H,93H SUM DW 0 AVER DB 0 BUF DB 100 DUP (?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH DS MOV AX,DATA MOV DS,AX MOV DI, OFFSET LIST MOV BX, 19 LP0: MOV SI, DI MOV CX, BX LP1: MOV AL, [SI] INC SI CMP AL, [SI] JNC LP2 MOV DL, [SI] MOV [SI-1], DL MOV [SI], AL LP2: LOOP LP1 DEC BX JNZ LP0 LP3: MOV CX, 20 MOV BX, OFFSET LIST MOV SUM, 0 XOR AX, AX LP4: ADD AL, [BX] DAA ADC AH, 0 INC BX LOOP LP4 MOV SUM, AX MOV BL, 20H DIV BL ADD AL,0

《微型计算机原理与接口技术》 第三版 习题答案

《微机原理与接口技术》习题解答 习题1 冯·诺依曼型计算机的设计方案有哪些特点 【解答】冯·诺依曼型计算机的设计方案是“存储程序”和“程序控制”,有以下5方面特点:(1)用二进制数表示数据和指令; (2)指令和数据存储在内部存储器中,按顺序自动依次执行指令; (3)由运算器、控制器、存储器、输入设备和输出设备组成基本硬件系统; (4)由控制器来控制程序和数据的存取及程序的执行; (5)以运算器为核心。 微处理器和微型计算机的发展经历了哪些阶段各典型芯片具备哪些特点 【解答】经历了6代演变,各典型芯片的特点如表1-1所示。 表1-1 微处理器的发展及典型芯片的特点 微型计算机的特点和主要性能指标有那些 【解答】除具有运算速度快、计算精度高、有记忆能力和逻辑判断能力、可自动连续工作等基本特点以外,还具有功能强、可靠性高、价格低廉、结构灵活、适应性强、体积小、重量轻、功耗低、使用和维护方便等。 微型计算机的性能指标与系统结构、指令系统、硬件组成、外部设备以及软件配备等有关。常用的微型计算机性能指标主要有:字长、主频、内存容量、指令数、基本指令执行时间、可靠性、兼容性、性能价格比等。 常见的微型计算机硬件结构由哪些部分组成各部分的主要功能和特点是什么

【解答】微型计算机硬件一般由微处理器、内存储器、外存储器、系统总线、接口电路、输入/输出设备等部件组成。 主要组成部件的功能和特点分析如下: (1)微处理器:是微型计算机的核心部件,由运算单元ALU、控制单元、寄存器组以及总线接口部件等组成,其功能是负责统一协调、管理和控制系统中的各个部件有机地工作。 (2)内存储器:用来存放计算机工作过程中需要的操作数据和程序。可分为随机存储器RAM 和只读存储器ROM。RAM存放当前参与运行的各种程序和数据,特点是信息可读可写,存取方便,但信息断电后会丢失;ROM用于存放各种固定的程序和数据,特点是信息固定不变,关机后原存储的信息不会丢失。 (3)系统总线:是CPU与其它部件之间传送数据、地址和控制信息的公共通道。可分成数据总线DB、地址总线AB、控制总线CB。 (4)输入/输出接口电路:完成微型计算机与外部设备之间的信息交换。由寄存器组、专用存储器和控制电路等组成。 (5)主机板:由CPU插座、芯片组、内存插槽、系统BIOS、CMOS、总线扩展槽、串行/并行接口、各种跳线和一些辅助电路等硬件组成。 (6)外存储器:使用最多的是磁盘存储器(软盘、硬盘)和光盘存储器。外存储器容量大,保存的信息不会丢失。 (7)输入/输入设备:是微型计算机系统与外部进行通信联系的主要装置。常用的有键盘、鼠标、显示器、打印机和扫描仪等。 什么是微型计算机的系统总线说明数据总线、地址总线、控制总线各自的作用。 【解答】系统总线是CPU与其它部件之间传送数据、地址和控制信息的公共通道。 (1)数据总线:用来传送数据,主要实现CPU与内存储器或I/O设备之间、内存储器与I/O设备或外存储器之间的数据传送。 (2)地址总线:用来传送地址。主要实现从CPU送地址至内存储器和I/O设备,或从外存储器传送地址至内存储器等。 (3)控制总线:用于传送控制信号、时序信号和状态信息等。 什么是系统的主机板由哪些部件组成 【解答】CPU、RAM、ROM、I/O接口电路以及系统总线组成的计算机装置称为“主机”,主机的主体则是主机板。主机板上主要有CPU插座、芯片组、内存插槽、系统BIOS、CMOS、总线扩展槽、串行/并行接口、各种跳线和一些辅助电路等硬件。 计算机中有哪些常用的数制和码制如何进行数制之间的转换 【解答】数值数据经常用二进制、十进制、八进制和十六进制;字符数据使用ASCII码;表示十进制数字用BCD码。 (1)十进制到二进制:整数部分连续除以2后“倒取余”,小数部分连续乘以2后“正取整”; (2)二进制到十进制:将二进制数按权展开即可。 (3)二进制到八进制:将3位二进制一组对应1位八进制数码。 (4)八进制到二进制:将1位八进制数码对应3位二进制数码。 十六进制与二进制间转换与八进制与二进制间转换类似,只是比例关系为1位十六进制数码对应4位二进制数码。 将下列十进制数分别转化为二进制数、十六进制数和压缩BCD码。 (1)(2)(3)(4) 【解答】:

微机原理与接口技术知识点总结整理

《微机原理与接口技术》复习参考资料 第一章概述 一、计算机中的数制 1、无符号数的表示方法: (1)十进制计数的表示法 特点:以十为底,逢十进一; 共有0-9十个数字符号。 (2)二进制计数表示方法: 特点:以2为底,逢2进位; 只有0和1两个符号。 (3)十六进制数的表示法: 特点:以16为底,逢16进位; 有0--9及A—F(表示10~15)共16个数字符号。 2、各种数制之间的转换 (1)非十进制数到十进制数的转换 按相应进位计数制的权表达式展开,再按十进制求和。(见书本1.2.3,1.2.4)(2)十进制数制转换为二进制数制 ●十进制→二进制的转换: 整数部分:除2取余; 小数部分:乘2取整。 ●十进制→十六进制的转换: 整数部分:除16取余; 小数部分:乘16取整。 以小数点为起点求得整数和小数的各个位。 (3)二进制与十六进制数之间的转换 用4位二进制数表示1位十六进制数 3、无符号数二进制的运算(见教材P5) 4、二进制数的逻辑运算 特点:按位运算,无进借位 (1)与运算 只有A、B变量皆为1时,与运算的结果就是1 (2)或运算 A、B变量中,只要有一个为1,或运算的结果就是1 (3)非运算 (4)异或运算 A、B两个变量只要不同,异或运算的结果就是1 二、计算机中的码制 1、对于符号数,机器数常用的表示方法有原码、反码和补码三种。数X的原码记作[X]原,反码记作[X]反,补码记作[X]补。

注意:对正数,三种表示法均相同。 它们的差别在于对负数的表示。 (1)原码 定义: 符号位:0表示正,1表示负; 数值位:真值的绝对值。 注意:数0的原码不唯一 (2)反码 定义: 若X>0 ,则[X]反=[X]原 若X<0,则[X]反= 对应原码的符号位不变,数值部分按位求反 注意:数0的反码也不唯一 (3)补码 定义: 若X>0,则[X]补= [X]反= [X]原 若X<0,则[X]补= [X]反+1 注意:机器字长为8时,数0的补码唯一,同为00000000 2、8位二进制的表示范围: 原码:-127~+127 反码:-127~+127 补码:-128~+127 3、特殊数10000000 ●该数在原码中定义为:-0 ●在反码中定义为:-127 ●在补码中定义为:-128 ●对无符号数:(10000000)2= 128 三、信息的编码 1、十进制数的二进制数编码 用4位二进制数表示一位十进制数。有两种表示法:压缩BCD码和非压缩BCD码。(1)压缩BCD码的每一位用4位二进制表示,0000~1001表示0~9,一个字节表示两位十进制数。 (2)非压缩BCD码用一个字节表示一位十进制数,高4位总是0000,低4位的0000~1001表示0~9 2、字符的编码 计算机采用7位二进制代码对字符进行编码 (1)数字0~9的编码是0110000~0111001,它们的高3位均是011,后4位正好与其对应的二进制代码(BCD码)相符。

微机原理与接口技术试题库(含答案)汇总

一、问答题 1、下列字符表示成相应的ASCII码是多少? (1)换行0AH (2)字母“Q”51H (3)空格20H 2、下列各机器数所表示数的范围是多少? (1)8位二进制无符号定点整数; 0~255 (2)8位二进制无符号定点小数;0.996094 (3)16位二进制无符号定点整数;0~65535 (4)用补码表示的16位二进制有符号整数;-32768~32767 3、(111)X=273,基数X=?16 4、有一个二进制小数X=0.X1X2X3X4X5X6 (1)若使X≥1/2,则X1……X6应满足什么条件? X1=1 若使X>1/8,则X1……X6应满足什么条件?X1∨X2 ∨X3=1 (2) 5、有两个二进制数X=01101010,Y=10001100,试比较它们的大小。 (1)X和Y两个数均为无符号数;X>Y (2)X和Y两个数均为有符号的补码数。X

微型计算机原理与接口技术第八章课后答案

第八章 1. 8253芯片有哪几个计数通道?每个计数通道可工作于哪几种工作方式?这些操作方式的主要特点是什么? 答:8253内部包含3个完全相同的计数器/定时器通道,即0~2计数通道,对3个通道的操作完全是独立的。8253的每个通道都有6种不同的工作方式。 方式0——计数结束中断方式:当对8253的任一个通道写入控制字,并选定工作于方式0时,该通道的输出端OUT立即变为低电平。要使8253能够进行计数,门控信号GATE 必须为高电平。经过n十1个脉冲后,计数器减为0,这时OUT引脚由低电平变成高电平。OUT引脚上的高电平信号,一直保持到对该计数器装入新的计数值,或设置新的工作方式为止。在计数的过程中,如果GATE变为低电平,则暂停减1计数,计数器保持GATE有效时的值不变,OUT仍为低电平。待GATE回到高电平后,又继续往下计数。 方式1——可编程单稳态输出方式:当CPU用控制字设定某计数器工作于方式1时,该计数器的输出OUT立即变为高电平。GATE出现一个上升沿后,在下一个时钟脉冲的下降沿,将n装入计数器的执行部件,同时,输出端OUT由高电平向低电平跳变。当计数器的值减为零时,输出端OUT产生由低到高的正跳变,在OUT引脚上得到一个n个时钟宽度的负单脉冲。在计数过程中,若GATE产生负跳变,不会影响计数过程的进行。但若在计数器回零前,GATE又产生从低到高的正跳变,则8253又将初值n装入计数器执行部件,重新开始计数,其结果会使输出的单脉冲宽度加宽。 方式2——比率发生器:当对某一计数通道写入控制字,选定工作方式2时,OUT端输出高电平。如果GATE为高电平,则在写入计数值后的下一个时钟脉冲时,将计数值装入执行部件,此后,计数器随着时钟脉冲的输入而递减计数。当计数值减为1时,OUT端由高电乎变为低电平,待计数器的值减为0时,OUT引脚又回到高电平,即低电平的持续时间等于一个输入时钟周期。与此同时,还将计数初值重新装入计数器,开始一个新的计数过程,并由此循环计数。如果装入计数器的初值为n,那么在OUT引脚上,每隔n个时钟脉冲就产生一个负脉冲,其宽度与时钟脉冲的周期相同,频率为输入时钟脉冲频率的n分之一。在操作过程中,任何时候都可由CPU重新写入新的计数值,不影响当前计数过程的进行。当计数值减为0时,一个计数周期结束,8253将按新写入的计数值进行计数。在计数过程中,当GATE变为低电平时,使OUT变为高电平,禁止计数;当GATE从低电平变为高电平,GATE端产生上升沿,则在下一个时钟脉冲时,把预置的计数初值装入计数器,从初值开始递减计数,并循环进行。 方式3——方波发生器:方式3和方式2的工作相类似,但从输出端得到的是对称的方波或基本对称的矩形波。如果写入计数器的初值为偶数,则当8253进行计数时,每输入一个时钟脉冲,均使计数值减2。计数值减为0时,OUT输出引脚由高电平变成低电平,同时自动重新装入计数初值,继续进行计数。当计数值减为0时,OUT引脚又回到高电平,同时再一次将计数初值装入计数器,开始下一轮循环计数;如果写入计数器的初值为奇数,则当输出端OUT为高电平时,第一个时钟脉冲使计数器减1,以后每来一个时钟脉冲,都使计数器减2,当计数值减为0时,输出端OUT由高电平变为低电平,同时自动重新装入计数初值继续进行计数。这时第一个时钟脉冲使计数器减3,以后每个时钟脉冲都使计数器减2,计数值减为0时,OUT端又回到高电平,并重新装入计数初值后,开始下一轮循环计数。 方式4——软件触发选通:当对8253写入控制宇,进入工作方式4后,OUT端输出变为高电平,如果GATE为高电平,那么,写入计数初值后,在下一个时钟脉冲后沿将自动把计数初值装入执行部件,并开始计数。当计数值成为0时,OUT端输出变低,经过一个

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