单片机与通用微机相比,两者在结构上的异同?(一)

第1章练习参考答案

1-1:什么是单片机?与通用微机相比,两者在结构上有何异同?

Answer: 构成计算机的基本单元电路,如微处理器(CPU)、存储器、I/O接口电路及相应的实时控制器件,都集成在一个单片机上,称为单片机微型计算机。计算机,简称单片机。

单片机与通用微机在结构上的异同:

(1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。例如,当今微机的CPU支持浮点运算,采用流水线运算、并行处理、多级缓存技术等,CPU主频达到数百兆赫(MHz),字长一般达到32位。单片机主要用于控制,控制中的数据类型和数据处理都比较简单,所以单片机的数据处理功能相对于通用微机来说比较弱,计算速度和精度比较高,比如现在的单片机产品的CPU大多不支持浮点运算,而且CPU也工作在串行模式,其振荡频率ie 大多在 100 MHz 范围内;在一些简单的应用系统中,使用 4 位字长的 CPU。 , 8位字长单片机广泛应用于中小型应用,16位字长单片机仅用于一些复杂的中大型应用系统,32-位单片机产品目前应用并不广泛。

(2)两者都有内存,但通用微机中的内存组织结构主要是为了增加存储容量和CPU访问数据的速度。现在的微机内存容量达到了几百兆(MB),存储系统采用多体、并行读取技术和段、页等多种管理方式。单片机,CPU根据直接物理地址读写内存,用于寻址内存单元,内存的寻址空间一般为64KB。

(3)都有I/O接口,但通用微机中的I/O接口主要考虑标准外设(如CRT、标准键盘、鼠标、打印机、硬盘、CD-ROM、等)。用户可以通过标准总线连接外设,实现即插即用。单片机应用系统的外设非标准,种类繁多。单片机的I/O接口实际上是提供给用户与外设连接的物理接口,用户需要为外设的连接设计特定的接口电路,需要熟练的接口电路设计技术。

此外,单片机的微处理器(CPU)、存储器和I/O接口电路集成在一个芯片上,而单片机的微处理器(CPU)、存储器和I/O接口电路通用微机一般都是独立的。芯片

1-4 IAP和ISP是什么意思?

ISP:In System Programable,即在系统编程。用户可以通过下载线以特定的硬件时序在线编程(到单片机集成的FLASH),但用户程序本身不能修改内部存储器。

IAP:In Application Programable,即在应用程序编程中。用户可以通过下载线在线对单片机进行编程,用户程序也可以自行重新修改内部存储器。

与通用微机相比,1-6 51单片机在结构上的主要特点是什么?

(1)单片机的程序存储器和数据存储器是严格区分的,前者是ROM,后者是RAM;

(2)采用面向控制的指令系统,位处理能力强;

(3)I/O引脚通常是多功能的;

(4)产品系列齐全,功能可扩展;

(5)功能很一般,就像一个普通的微处理器,可以广泛应用于各个方面。

1-7 51单片机主要系列有哪些?

(1)Intel公司的MCS-51系列单片机:功能比较强、价格低、应用较早的单片机。该系列的三个基础产品分别是:8031/8051/8751 ; 包含闪存,在开发过程中可以轻松进行程序修改。

有8位Flash子系列、ISP_Flash子系列、I2C_Flash子系列;

(3)@ >SST公司SST89系列MCU:独特的超级Flash技术和小扇区结构设计,采用IAP和ISP技术;

(4)PHILIPS公司增强型80C51系列MCU:其产品类型比较齐全,包括通用型、Flash型、OTP型和低成本型。主要产品系列包括P80、P8 7、P89、LPC76、LPC900

等等

第2章练习参考答案

2-1 51单片机内部主要的逻辑功能部件有哪些?

(1)一个 8 位微处理器 CPU。

(2)256B数据存储器RAM和特殊功能寄存器SFR.

(3)4K 程序存储器 ROM.

(4)两个定时器/计数器,用于对外部事件进行计数,也可以用作定时器。

(5)4个8位可编程I/O(输入/输出)并口,每个可用于输入和输出。(6)1个串口,用于串口通讯数据

(7)1个中断管理系统,可管理5个中断源和2级优先级嵌套;.

(8)片上振荡器和时钟发生器。

2-2MCS-51 引脚中有多少个 I/O 总线?它们和单片机的地址总线和数据总线有什么关系?地址总线和数据总线各有多少位?

32个I/O口,分为4组,每组8个,称为P0~P3口,P0口有8位数据总线和低8位地址总线,P2口有高8位地址总线,所以单片机的地址总线位为16位,寻址空间为64KB,数据总线位宽为8位。同时,P3端口上还有一条R/W控制信号线。 I/O端口线的总数与地址总线和数据总线关系不大,只是地址总线和数据总线需要占用某个端口。像T89C2051单片机一样只有15个I/O口(P3.6个不引出,作为内部使用),分为P1口(8位)和P3口(7位) ),没有所谓的地址总线和数据总线,而且P1口也不完整,因为P1.0和P1.1都被电压比较器占用了。

2-3 2-3 51单片机的EA、ALE、PSEN信号有什么作用?

EA:片外程序存储器选择端。该引脚有效(低电平)时,仅选择片外程序存储器。否则,在单片机上电或复位后选择片上程序存储器。

ALE:地址锁存有效信号输出 访问片外程序存储器时,每个机器周期发出两次ALE信号,其下降沿用于控制锁存器P0输出的低8位地址;不访问片外程序存储器时,ALE端仍然出现在上述频率(振荡频率f osc的1/6)),可作为时钟脉冲用于外部输出或定时目的。

PSEN:片外程序存储器读选通信号输出端,低电平有效。

2-4 51系列单片机需要芯片管脚第二功能提供哪些信号?

P3.0:RxD串口输入

P3.1:TxD串口输出

P3.2:INT0外部中断0请求输入,低电平有效

P3.3:INT1外部中断1请求输入,低电平有效

P3.4:T0定时/计数器0技术脉冲输入

P3.5:T1定时/计数器1技术脉冲输入

P3.@ >6:WR 外部数据寄存器写选择通讯信号输出,低电平有效

P3.7:RD 外部数据寄存器读取选择通讯信号输出,低电平有效

2-551系列单片机的程序状态字PSW中存储了哪些信息?在什么情况下设置OV标志?设置是什么意思?

●PSW为8位标志寄存器,保存指令执行结果的特征信息,用于程序查询判断。

●1)加法时,最高位和次高位之一如果有进位,设置OV。

2)减法时,借用最高位和次高位之一,置位OV。

3)执行乘法指令MUL AB,乘积大于255,OV=1

4)执行除法指令DIV AB,如果放在B中的除数为0,OV=1

● 0V=1,该设置反映运算结果超出累加器的取值范围。

2-9 片上RAM的低128单元分为哪些区域?如何在应用中合理有效地使用?

p>

●工作寄存器区、位寻址区、数据缓冲区

①工作寄存器区用于暂存8位信息,分为4组,每组8个寄存器,每次只使用1组,其他组不工作

②位寻址区域(20H~2FH),这16个单元的每一位都分配了一个位地址,位地址范围为00H~7FH,每个可位寻址的位都可以作为软件触发,由程序直接处理。

③由于工作寄存器区、位寻址区和数据缓冲区是统一寻址和使用同一条指令访问的,这三个区域各有独特的功能,可以进行统一调度。两个未使用的单元也可以用作一般用户 RAM 单元。

2-10 2-10 51系列单片机堆栈与通用微机堆栈有什么异同?编程时为什么要重新分配栈指针SP?

●堆栈是一个特殊的RAM区域,用于根据FIFO或LIFO远端进行读/写

51单片机的堆栈区域不固定,可以设置在内部RAM的任意区域中

当数据入栈时,SP的内容自动加1,作为本次入栈的指针,然后访问数据。 SP的值随着数据的存储而变化。增加,当数据从栈中弹出时,SP的值相应减少。复位时SP的初始值为07H,而栈实际上是从08H开始入栈信息的,即栈的初始位置位于工作寄存器区两个模拟信号如何同时输入到单片机,所以需要重新赋值

2-13 什么是时钟周期、机器周期和指令周期?当振荡频率为6MHZ时,一条两周期指令的执行时间是多少?

●时钟周期:CPU振荡脉冲信号2个周期

机器周期:一个机器周期包含6个状态周期

指令周期:执行一条指令总占用时间

12MHZ时,一条二周期指令的周期时间为2us

在 6MHZ 时,一条两周期指令的周期时间为 4us

2-14 定时器/计数器计时和计数的内部工作原理有什么异同?

●计时工作模式和技术工作模式的工作原理相同,只是计数脉冲的来源不同:

在计数器工作模式下,加法计数器连接到芯片端子T0(P< Input pulse count on @3.4) or T1(P3.5) ; 在定时器操作模式下,递增计数器对内部机器周期脉冲进行计数。

2-15 定时器/计数器有四种工作模式,它们的定时和计数范围是多少?使用中如何选择工作模式

●工作模式0:定时范围:1~8192us;计数值范围:1~8192

工作模式一:定时范围:1~65536us;计数值范围:1~65536

工作模式二:定时范围:1~256us;计数值范围:1~256

工作模式3:定时范围:1~256us;计数值范围:1~256

由TMOD选择,低4位用于定时定时器/计数器0,高4位用于定时器/计数器1

M1、M0:定时器计数器工作模式选择位

2-16 定时器/计数器的门控方式和非门控方式有什么区别?如何选择使用哪种工作模式?初始值应该设置成什么(十六进制)?

●GATE:门控位,用于控制定时器/计数器的启动是否受到外部中断请求信号的影响。

GA TE=1,则定时器/计数器 0 的启动受芯片启动影响 由引脚 INT0 控制(P3.2),定时器/计数器 1 的启动受芯片引脚控制INT1(P3.3)

GA TE = 0,则定时器/计数器启动与引脚INT无关0、INT1,一般情况下,GA TE=0

2-1851单片机中断的五个中断源中,哪一个源可以在CPU响应中断后自动取消中断请求。哪一个不能取消中断请求?当CPU无法取消中断请求的中断源时,用户应该采取什么措施?

● 可自动取消:计数器T0`T1溢出中断

不能自动取消:电平触发的外部中断;发送和接收中断

●1)电平触发的外部中断:由于CPU对INTx的响应管脚没有控制功能两个模拟信号如何同时输入到单片机,也没有对应的中断请求标志位,所以需要外部电路去除中断请求信号。

2)串口发送/接收中断:当串口完成发送或接收一帧信息后,SCON的TI和RI向CPU申请中断,响应中断后,接口电路无法自动清 TI 或 RT 为 0,用户需要使用软件方法清 TI 或 RT 为 0 以取消中断请求信号

2-21 有几种复位微控制器的方法?单片机复位后的初始状态是什么?

上电复位、按键复位

●(PC)=0000H:程序的起始入口地址为0000H

(PSW) =00H:由于RS1(PSW.4)=0,RS0(PSW.3)=0,复位后单片机选择工作寄存器0组

(SP)=07H:片内复位后堆栈提早唤醒RAM的08H单元建立

TH3)4@>TL0、TH0、TL0:它们的内容为00H,定时器/计数器的初始值为0

p>

(TMOD)=00H:定时器/计数器复位后T0、T1定时器模式0,非门控模式

(TCON)=00H:复位后定时器/计数器T0、T1停止工作,外部中断0、1电平触发

(T2CON) =00H: 定时器/计数器 T2 复位后停止工作

(SCON)=00H:复位后串口工作在移位寄存器模式,串口接收被禁止

图片[1]-单片机与通用微机相比,两者在结构上的异同?(一)-老王博客

(IE)=00H:复位后屏蔽所有中断

(IP)=00H:所有中断源复位后直接指向低优先级

P0~P3:锁存器全为1,表示4个并行接口设置为Input口

2-23 51 MCU串口有几种工作模式?有哪些不同的工作模式?它们用于什么场合?

●有4种工作模式:模式0、模式3)4@>模式2、模式3

工作模式:Mode0移位寄存器模式; Mode3)4@>Mode2、@ >Mode 3为异步通讯模式

使用场合:Mode 0不用于通信,但通过外接移位寄存器芯片实现扩展I/O口功能;模式1用于双机通讯;模式2、3主要用于多机通讯,也可用于双机通讯

第 3 章参考答案

3-1 什么是寻址方式? 51单片机是什么?有哪些寻址方式?这些模式是如何解决的?

●所谓寻址方式,就是CPU在执行一条指令时,如何找到指令所需要的操作数。

●1)立即寻址:操作数直接出现在指令中,紧跟在操作码之后,与操作码一起作为指令的一部分存储在程序内存中,可以立即获取并执行,对于例如: MOV A, 30H 是#30H 指令中的立即数。该指令的作用是将立即数 30H 传送到累加器 A。

2)寄存器寻址:操作数放在一个寄存器中,操作数的地址直接用指令中的寄存器名来表示。例如MOV A,R0,即R0寄存器的内容送入累加器A。

3)寄存器间接寻址方式:指令指向某个寄存器的内容作为操作数地址的寻址方式,例如:MOV A,@R1,将使用寄存器中的地址工作寄存器 R1。以地址为内容的片内RAM单元的数据被传送到A。

4)直接寻址:指令中直接给出操作数的内存地址,取数或存数的寻址方式称为直接寻址。例如:MOV A,40H指令中的源操作数为直接寻址,40H为操作数的地址。该指令的作用是将片内RAM地址40H的内容发送给A。

5)变址寻址:基址寄存器加变址寄存器间接寻址

6)相对寻址:相对寻址是通过将当前程序计数器PC值加上指令中给出的偏移量rel来构成实际操作数地址的寻址方式。用于访问程序存储器,常用于相关分支指令中。 7)位寻址:位寻址就是在位操作指令中直接给出位操作数的地址,可以寻址片内RAM中的128位,特殊功能寄存器SFR中的93位。

3-2 访问片内和片外程序存储器有哪些寻址方式?

●使用基址寄存器加索引寄存器的间接寻址方式

MOVC A,@A+DPTR MOVC A,@A+PC

3- 3 访问片内RAM单元和特殊功能寄存器的寻址方式有哪些?

●对片内RAM的访问包括:立即寻址、寄存器寻址、寄存器间接寻址、直接寻址

●特殊功能包括:直接寻址

3-4 完成下面的数据传输,应该如何使用指令51来完成。

(1)R0的内容被发送到R1。

MOV A,R1

MOV R0,A

(2)外部RAM的20H单元的内容发送到R0和内部RAM的20H单元。

MOV DPTR,#0020H

MOVX A,@DPTR

MOV R0,A

3-5尝试比较每组下面两条指令的区别

1)MOV A,#24 和 MOV A,24H

2)MOV A,R0 和 MOV A,@R0

3)MOV A,@R0 和 MOVX A,@R0

4)MOV A,@R1 和 MOVX A,@DPTR

●1)前者为立即寻址,将立即24H单元的内容发送给A;后者为直接寻址,将单元24H的片内RAM内容发送给A。

2)前者是直接寻址,R0单元的内容发送给A,后者是寄存器间接寻址,发送R0内容为地址的片内RAM单元的数据到A。

3)前者为寄存器间接寻址,R0中的内容为该地址的地址,将片内RAM单元的数据发送给A;后者是寄存器间接寻址,将内容为R0中地址的片外RAM单元的数据发送给A。4)用R1作为地址指针,指向片内256个RAM单元,但可以访问SFR块,8位地址也可以访问片外RAM的低256个地址单元(00~ffH);使用DPTR作为地址指针访问64KB范围的片外RAM(0000~ffffH)(16位)。

3-6已知(A)=7AH,(B)=02H,(R0)=30H,(30H)=A5H,(PSW)=80H,写出A和PSW后的内容执行以下指令。

(1)XCH A, R0 (A)=30H,(PSW)=00H,( R0)= 7AH,

(2)XCH A, 30H (A)=A5H,(PSW)=00H

(3) XCH A, @R0 (A)=A5H,(PSW)=00H

(4)XCHD A,@R0 (A)=75H,(PSW)=01H

(5)SWAP A (A)=A7H,(PSW)=01H

(6)ADD A, R0 (A)=AAH,(PSW)=00H

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

(8)添加 A,#30H (A)=AAH,(PSW)=00H

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

(10)SUBB A,30H(A)=D5H,(PSW)=85H

(11)SUBB A,#30H(A)=4AH, (PSW)=01H

(12)INC @R0 (A)=7AH,(PSW)=80H;

(13)MUL AB

(14)DIV AB

3-7 已知 (A)=02H, (R1)=7FH, (DPTR)=2FFCH, (SP)=30H,

片内RAM(7FH)=70H,片外RAM(2FFEH)=11H,ROM(2FFEH)=64H,分别在执行以下指令后尝试写入目标单元的结果。

1)MOVX @DPTR,A

2)MOVX A,@R1

3)MOVC A,@A+DPTR

4)推加速

●1)(2FFEH)=02H

2)(A) =70H

3)(A)=(02H+2FFCH)=(2FFEH)=64H

4)(31H)=02H

3-9 DA A 命令有什么作用?怎么用?

●该指令是在ADD或ADDC指令之后进行BCD码运算,并修改加法后存储在累加器中的结果

.

修正的条件和方法是:

如果 (A0~3)>9 或 (AC)=1,则 (A0~3)+06H →(A0~3);

如果 (A4~7)>9 或 (CY)=1,则 (A4~7)+06H→(A4~ 7).

如果以上两项同时出现,或者高4位等于9,但低4位校正后有进位,则需加66H校正。

3 -9 设置(A)=83H,(R0)=17H,(17H)=34H,下面每条指令执行后分析目标单元的内容,A执行完后程序段由4条指令组成,内容是什么?

ANL A,#17H;和

ORL 17H,A;或

XRL A,@R0;异或

CPL A;否定的

ANL A,#17H 10000011 和 00010111 = 0000 0011

ORL 17H,A 00110100 或 00000011 = 0011 0111

XRL A,@R0 00110111 XOR 0000 0011 = 0011 0100

CPL A ~A 1100 1000 CBH

3-10 请编写符合以下要求的逻辑运算指令,要求不改变未涉及位的内容

1)将累加器A的低位设为’1′

2)清空累加器A的高4位

3)将 A.2 和 A.3 设置为“1”

4)清除 A.3、A.4、@ >A.5、A.6

SETB ACC.1;

ANL A,#0FH;

ORL A,#00001100B

p>

ANL A,#10000111B

3-11指令LJIMP addr16和AJMP addr11有什么区别?

●LJIMP addr16是长传,LCALL的作用是传addr16直接赋值给PC

AJMP addr11,在当前PC的2KB范围内跳转(因为addr11是2KB),即PC的高五位不变,低十一位等于addr11。

3-12 尝试解释指令CJNE @R1,#7AH,10H 的作用。如果这条指令的地址是2500H,它的传输地址是多少?

当前地址为 2500H。执行该指令后PC为2503H,加10H后目标地址为2513H。

在(SP)=42H,(A)=40H,(B)=40H下面执行3-13后,说明每条指令的作用。

ORG 2000H ;起始地址为2000H

MOV SP,#40H ;(SP)=40H

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

LCALL 2500H;调用2500H子程序

添加 A,#10H; (一)

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论