单片机原理与应用及C51程序设计答案.docx
- 文档编号:10969772
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:24
- 大小:47.97KB
单片机原理与应用及C51程序设计答案.docx
《单片机原理与应用及C51程序设计答案.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用及C51程序设计答案.docx(24页珍藏版)》请在冰豆网上搜索。
单片机原理与应用及C51程序设计答案
第一章:
1.给出下列有符号数的原码、反码和补码(假设计算机字长为8位)。
+45-89-6+112
答:
【+45】原=00101101,【+45】反=00101101,【+45】补=00101101
【-89】原=11011001,【-89】反=10100110,【-89】补=10100111
【-6】原=10000110,【-6】反=11111001,【-6】补=11111010
【+112】原=01110000,【+112】反=01110000,【+112】补=01110000
2.指明下列字符在计算机内部的表示形式。
AsENdfJFmdsv120
答:
41H73H45H4EH64H66H4AH46H6DH64H73H76H31H32H30H
3.何谓微型计算机硬件?
它由哪几部分组成?
并简述各部分的作用。
答:
微型计算机硬件由中央处理器、存储器、输入/输出设备和系统总线等组成,中央处理器由运算器和控制器组成,是微型计算机运算和控制中心。
存储器是用来存放程序和数据的记忆装置。
输人设备是向计算机输人原始数据和程序的装置。
输出设备是计算机向外界输出信息的装置。
I/O接口电路是外部设备和微型机之间传送信息的部件。
总线是连接多个设备或功能部件的一簇公共信号线,它是计算机各组成部件之间信息交换的通道。
微型计算机的各大功能部件通过总线相连。
4.简述8086CPU的内部结构。
答:
8086微处理器的内部分为两个部分:
执行单元(EU)和总线接口单元(BIU)。
执行部件由运算器(ALU)、通用寄存器、标志寄存器和EU控制系统等组成。
EU从BIU的指令队列中获得指令,然后执行该指令,完成指今所规定的操作。
总线接口部件BIU由段寄存器、指令指针寄存器、地址形成逻辑、总线控制逻辑和指令队列等组成。
总线接口部件负责从内部存储器的指定区域中取出指令送到指令队列中去排队。
5.何谓总线?
总线按功能可分为哪几种?
答:
总线是连接多个设备或功能部件的一簇公共信号线,它是计算机各组成部件之间信息交换的通道。
总线功能来划分又可分为地址总线(AddressBus)、数据总线(DateBus)和控制总线(ControlBus)三类。
6.内部存储器由哪几部分组成?
答:
包括随机存储器(RAM)和只读存储器(ROM)。
7.简述8086中的存储器管理?
答:
8086把1M空间分成若干块(称为“逻辑段”),各个逻辑段之间可在实际存储空间中完全分开,也可以部分重叠,甚至可以完全重叠。
每个逻辑段容量不超过64K字节,这样就可用16位寄存器提供地址访问。
一个存储单元的地址可由段基址和偏移地址组成,这个地址我们称为逻辑地址,一般表示为“段基址:
偏移地址”。
而1M存储空间中的20位地址称为物理地址。
逻辑地址是程序中使用的地址,物理地址是访问存储器的实际地址。
物理地址=段基址×16+段内偏移地址
8.什么是接口电路?
接口电路有何功能?
答:
I/O接口电路是外部设备和微型机之间传送信息的部件。
接口电路主要功能。
(1)数据的寄存和缓冲功能。
(2)信号转换功能。
(3)设备选择功能。
(4)外设的控制和监测功能。
(5)中断或DMA管理功能。
(6)可编程功能。
9.外部设备与CPU之间的数据传送方式常见有几种?
各有什么特点?
答:
外部设备与微机之间的信息传送传送方式一般有无条件传送方式、查询传送方式、中断控制方式等。
无条件传送方式是指CPU直接和外部设备之间进行数据传送。
查询传送方式又称为条件传送方式,是指CPU通过查询I/O设备的状态决定是否进行数据传输的方式。
中断是一种使CPU暂停正在执行的程序而转去处理特殊事件的操作。
即当外设的输入数据准备好,或输出设备可以接收数据时,便主动向CPU发出中断请求,CPU可中断正在执行的程序,转去执行为外设服务的操作,服务完毕,CPU再继续执行原来的程序。
10.什么是单片机?
答:
单片机是把微型计算机中的微处理器、存储器、I/O接口、定时器/计数器、串行接口、中断系统等电路集成到一个集成电路芯片上形成的微型计算机。
因而被称为单片微型计算机,简称为单片机。
11.和一般微型计算机相比,单片机有何特点?
答:
主要特点如下:
1)在存储器结构上,单片机的存储器采用哈佛(Harvard)结构
2)在芯片引脚上,大部分采用分时复用技术
3)在内部资源访问上,采用特殊功能寄存器(SFR)的形式
4)在指令系统上,采用面向控制的指令系统
5)内部一般都集成一个全双工的串行接口
6)单片机有很强的外部扩展能力
12.指明单片机的主要应用领域。
答:
单机应用:
1)工业自动化控制;2)智能仪器仪表;3)计算机外部设备和智能接口;4)家用电器多机应用:
功能弥散系统、并行多机处理系统和局部网络系统。
第二章:
1.MCS-51单片机由哪几个部分组成?
答:
MCS-51单片机主要由以下部分组成的:
时钟电路、中央处理器(CPU)、存储器系统(RAM和ROM)、定时/计数器、并行接口、串行接口、中断系统及一些特殊功能寄存器(SFR)。
2.MCS-51的标志寄存器有多少位,各位的含义是什么?
答:
MCS-51的标志寄存器PSW有8位;
含义如下:
C(PSW.7):
进位或借位标志位。
AC(PSW.6):
辅助进位或借位可标志位。
F0(PSW.5):
用户标志位。
是系统预留给用户自己定义的标志位。
RS1、RS0(PSW.4、PSW.3):
寄存器组选择位。
可用软件置位或清零,用于从四组工作寄存器中选定当前的工作寄存器组。
OV(PSW.2):
溢出标志位。
在加法或减法运算时,如运算的结果超出8位二进制数的范围,则OV置1,标志溢出,否则OV清零。
P(PSW.0):
奇偶标志位。
用于记录指令执行后累加器A中1的个数的奇偶性。
若累加器A中1的个数为奇数,则P
置位,若累加器A中1的个数为偶数,则P清零。
其中PSW.1未定义,可供用户使用。
3.在8051的存储器结构中,内部数据存储器可分为几个区域?
各有什么特点?
答:
片内数据存储器按功能可以分成以下几个部分:
工作寄存器组区、位寻址区、一般RAM区和特殊功能寄存器区,其中还包含堆栈区。
工作寄存器组区,00H~1FH单元,可用R0~R7等8个寄存器访问;位寻址区,20H~2FH单元,可按位方式访问;一般RAM区,30H~7FH单元;堆栈区,可从08到7F单元;特殊功能寄存器区位于80H~FFH单元。
4.什么是堆栈?
说明MCS-51单片机的堆栈处理过程。
答:
堆栈是按先入后出、后入先出的原则进行管理的一段存储区域。
CS-51单片机的堆栈是向上生长型的,存入数据是从地址低端向高端延伸,取出数据是从地址高端向低端延伸。
入栈和出栈数据是以字节为单位的。
入栈时,SP指针的内容先自动加1,然后再把数据存入到SP指针指向的单元;出栈时,先把SP指针指向单元的数据取出,然后再把SP指针的内容自动减1。
5.简述内部ROM的工作寄存器组情况,系统默认是第几组?
答:
51单片机有4组工作寄存器,每组8个,用寄存器R0~R7表示,标志寄存器
PSW的RS1、RS03两位用于从四组工作寄存器中选定当前的工作寄存器组,默认是第0组。
6.51单片机的程序存储器64KB空间在使用时有那几个特殊地址?
答:
51单片机程序存储器的64KB存储空间使用时有7个特殊的地址,第一个是0000H,它是系统的复位地址,51单片机复位后PC的值为0000H,复位后从0000H单元开始执行程序,由于后面几个地址的原因,用户程序一般不直接从0000H单元开始存放,而是放于后面,通过在0000H单元放一条绝对转移指令转到后面的用户程序。
后面6个为6个中断源的入口地址,51单片机中断响应后,系统会自动的转移到相应中断入口地址去执行程序。
7.简述什么是51单片机的特殊功能寄存器?
答:
特殊功能寄存器(SFR)也称为专用寄存器,专门用于控制、管理片内算术逻辑
部件、并行I/O接口、串行口、定时/计数器、中断系统等功能模块的工作。
用户在编程时可以给其设定值,但不能移作他用。
SFR分布在80H~0FFH的地址空间,与片内随机存储块统一编址。
除PC外,51子系列有18个特殊功能寄存器,其中3个为双字节,共占用21个字节;52子系列有21个特殊寄存器,其中5个为双字
节,共占用26个字节。
8.MCS-51单片机有多少根I/O线?
它们和单片机的外部总线有什么关系?
答:
MCS-51单片机有32根I/O线,由P0口经地址锁存器提供低8位(A7~A0),P2口提供高8位(A15~A8)而形成。
数据总线宽度为8位,由P0口直接提供。
控制总线由第二功能状态下的P3口和4根独立的控制线RST、EA、ALE和
PSEN组成。
9.简述PSEN、EA、RST和ALE引脚的功能。
答:
ALE:
地址锁存信号输出端。
ALE在每个机器周期内输出两个脉冲。
下降沿用于控制锁存P0输出的低8位地址。
PSEN:
片外程序存储器读选通信号输出端,低电平有效。
在从外部程序存储器
读取指令或常数期间,该信号有效。
RST:
复位信号。
当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。
EA:
片外程序存储器选用端。
该引脚为低电平时,选用片外程序存储器,高电平或悬空时选用片内程序存储器。
10.什么是机器周期?
什么是指令周期?
MCS有效。
-51单片机的一个机器周期包括多少个时钟周期?
答:
机器周期:
机器周期是单片机的基本操作周期,每个机器周期包含S1、S2、、S66个状态,每个状态包含两拍P1和P2,每一拍为一个时钟周期(振荡周期)。
因此,一个机器周期包含12个时钟周期。
11.复位的作用是什么?
51单片机复位有几种方式?
答:
复位使单片机回复到初始状态。
在时钟电路工作以后,当外部电路使得RST
端出现两个机器周期(24个时钟周期)以上的高电平,系统内部复位。
复位有两种方式:
上电复位和按钮复位,
12.时钟周期的频率为6MHz,机器周期和ALE信号的频率为多少?
答:
2MHZ
第三章:
1.在MCS-51单片机中,寻址方式有几种?
其中对片内RAM可以用哪几种寻址方式?
对片外RAM可以用哪几种寻址方式?
答:
寻址方式可分为数的寻址和指令寻址,数的寻址有:
常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。
片内RAM寻址有:
寄存器寻址、直接寻址方式和寄存器间接寻址方式。
片外RAM寻址有:
寄存器间接寻址方式。
2.在对片外RAM单元寻址中,用Ri间接寻址与用DPTR间接寻址有什么区别?
答:
片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR作指针间接访问可访问整个
64K字节。
3.在位处理中,位地址的表示方式有哪几种?
答:
1.直接位地址(00H~0FFH)。
例如:
20H
2.字节地址带位号。
例如:
20H.3表示20H单元的3位。
3.特殊功能寄存器名带位号。
例如:
P0.1表示P0口的1位。
4.位符号地址。
例如:
TR0是定时/计数器T0的启动位。
4.写出完成下列操作的指令。
(1)R0的内容送到R1中。
MOVA,R0MOVR1,A
(2)片内RAM的20H单元内容送到片内RAM的40H单元中。
MOV40H,20H
(3)片内RAM的30H单元内容送到片外RAM的50H单元中。
MOVA,30HMOVR0,#50HMOVX@R0,A
(4)片内RAM的50H单元内容送到片外RAM的3000H单元中。
MOVA,50H
MOVDPTR,#3000HMOVX@DPTR,A
(5)片外RAM的2000H单元内容送到片内RAM的20H单元中。
MOVDPTR,#2000HMOVXA,@DPTRMOV20H,A
(6)片外RAM的1000H单元内容送到片外RAM的4000H单元中。
MOVDPTR,#1000HMOVXA,@DPTRMOVDPTR,#4000HMOV@DPTR,A
(7)ROM的1000H单元内容送到片内RAM的50H单元中。
MOVA,#0
MOVDPTR,#1000HMOVCA,@A+DPTRMOV50H,A
(8)ROM的1000H单元内容送到片外RAM的1000H单元中。
MOVA,#0
MOVDPTR,#1000HMOVCA,@A+DPTRMOVX@DPTR,A
5.区分下列指令有什么不同?
(1)MOVA,20H和MOVA,#20H
答:
前者源操作数是直接寻址,后者源操作数立即寻址。
(2)MOVA,@R1和MOVXA,@R1
答:
前者源操作数是访问片内数据存储器,后者源操作数访问片外数据存储器低256字节。
(3)MOVA,R1和MOVA,@R1
答:
前者源操作数是寄存器寻址,后者源操作数寄存器间接寻址。
(4)MOVXA,@R1和MOVXA,@DPTR
答:
前者源操作数是访问片外数据存储器低256字节,后者源操作数访问片外数据存储器整个64K字节。
(5)MOVXA,@DPTR和MOVCA,@A+DPTR
答:
前者源操作数是访问片外数据存储器,后者源操作数访问程序数据存储器。
6.设片内RAM的(20H)=40H,(40H)=10H,(10H)=50H,(P1)=0CAH。
分析下列指令执行后片内RAM的20H、
40H、10H单元以及P1、P2中的内容。
MOVR0,#20H;R0=20HMOVA,@R0;A=40HMOVR1,A;R1=40HMOVA,@R1;A=10H
MOV@R0,P1;(40H)=0CAHMOVP2,P1;P2=0CAHMOV10H,A;(10H)=10HMOV20H,10H;(20H)
=10H
结果:
(20H)=10H、(10H)=10H、(40H)=0CAH、P2=0CAH和P1=0CAH
7.已知(A)=02H,(R1)=7FH,(DPTR)=2FFCH,片内RAM(7FH)=70H,片外RAM(2FFEH)=11H,ROM(2FFEH)
=64H,试分别写出以下各条指令执行后目标单元的内容。
(1)MOVA,@R1结果:
累加器A等于70H
(2)MOVX@DPTR,A结果:
片外RAM(2FFCH)单元等于02H
(3)MOVCA,@A+DPTR结果:
累加器A等于64H
(4)XCHDA,@R1结果:
累加器A等于00H,片内RAM(7FH)单元等于72H
8.已知:
(A)=78H,(R1)=78H,(B)=04H,CY=1,片内RAM(78H)=0DDH,(80H)=6CH,试分别写出下列指令执行后目标单元的结果和相应标志位的值。
(1)ADDA,@R1;累加器A等于55H,CY等于1
(2)SUBBA,#77H;累加器A等于00H,CY等于0(3)MULAB;累加器A等于E0H,B寄存器等于01H,CY等于1,OV等于0
(4)DIVAB;累加器A等于1EH,B寄存器等于00H,CY、OV等于0(5)ANL78H,#78H;片内RAM(78H)单元等于58H(6)ORLA,#0FH;累加器A等于7FH(7)XRL80H,A;片内RAM(80H)等于14H9.设(A)=83H,(R0)=17H,(17H)=34H,分析当执行完下面指令段后累加器A、R0、17H单元的内容。
ANLA,#17H;A=03HORL17H,A;(17H)=37HXRLA,@R0;A=34HCPLA;A=CBH
结果:
A=CBH,(R0)=17H,(17H)=37H10.写出完成下列要求的指令。
(1)累加器A的低2位清零,其余位不变。
ANLA,#11111100B
(2)累加器A的高2位置“1”,其余位不变。
ORLA,#11000000B
(3)累加器的高4位取反,其余位不变。
XRLA,#11110000B
(4)累加器第0位、2位、4位、6位取反,其余位不变。
XRLA,#01010101B
11.说明LJMP指令与AJMP指令的区别?
答:
LJMP指令后面提供的是16位目标地址,所以可以转移到64KB程序存储器的任意位置,缺点是:
执行时间长,字节数多。
AJMP指令后带的是11位直接地址,执行时,先将程序指针PC的值加2(该指令长度为2字节),然后把指令中的11位地址addr11送给程序指针PC的低11位,而程序指针的高5位不变,只能在当前2K范围内转移。
12.设当前指令CJNEA,#12H,10H的地址是0FFEH,若累加器A的值为10H,则该指令执行后的PC值为多少?
若累加器A的值为12H呢?
答:
指令执行后的PC值为1011H,若累加器A的值为12H,则指令执行后的PC值为1001H。
13.用位处理指令实现
P1.0ORLC,/P1.3MOVP1.4,C
的逻辑功能。
程序:
MOVC,P1.1ORLC,P1.2ANLC,
14.下列程序段汇编后,从1000H单元开始的单元内容是什么?
ORG1000H
TAB:
DB12H,34HDS3
DW5567H,87H
答:
(1000H)=12H,(1001H)=34H,(1002H)=00H,(1003H)=00,(1004H)=00,(1005H)=67H,(1006H)=55H,
(1007H)=87H,(1008H)=00H
15.试编一段程序,将片内RAM的20H、21H、22H单元的内容依次存入片外RAM的20H、21H、22H中。
程序:
MOVR0,#20HMOVR2,#03H
LOOP:
MOVA,@R0MOVX@R0,A
INCR0
DJNZR2,LOOPSJMP$
16.编程实现将片外RAM的2000H~2030H单元的内容,全部搬到片内RAM的20H单元开始位置,并将源位置清零。
程序:
MOVR0,#20H
MOVDPTR,#2000HMOVR2,#31H
LOOP:
MOVXA,@DPTRMOV@R0,AMOVA,#00MOVX@DPTR,AINCDPTRINCR0
DJNZR2,LOOPSJMP$
17.编程将片外RAM的1000H单元开始的100个字节数据相加,结果放于R7R6中。
程序:
MOVDPTR,#1000HMOVR2,#100MOVR7,#00
MOVR6,#00
LOOP:
MOVXA,@DPTRADDA,R6
MOVR6,AMOVA,R7ADDCA,#0MOVR7,AINCDPTR
DJNZR2,LOOPSJMP$
18.编程实现,结果放于R7R6R5中。
程序:
ORG0100HMUL1:
MOVA,R2MOVB,R3
MULAB;,结果的低字节直接存入积的R5MOVR5,A;结果的高字节存入R6中暂存起来MOVR6,B
MUL2:
MOVA,R2MOVB,R4
MULAB;,结果的低字节与R6相加后,再存入R6中ADDA,R6MOVR6,AMOVA,B;结果的高字节加上进位位后存入R7中ADDCA,#00MOVR7,ASJMP$
19.编程实现把片内RAM的20H单元的0位、1位,21H单元的2位、3位,22H单元的4位、5位,23H单元的6
位、7位,按原位置关系拼装在一起放于R2中。
程序:
MOVC,20H.0MOVA.0,CMOVC,20H.1MOVA.1,CMOVC,21H.2MOVA.2,CMOVC,21H.3MOVA.3,CMOVC,22H.4MOVA.4,CMOVC,22H.5MOVA.5,CMOVC,23H.6MOVA.6,CMOVC,23H.7MOVA.7,CMOVR2,A
20.用查表的方法实现一位十六进制数转换成ASCII。
程序:
(设一位十六进制数放在R2中,轮换的ASCII也放于R2中)
C16STASC:
MOVDPTR,#TABMOVA,R2
MOVCA,@A+DPTR
MOVR2,ARET
TAB:
DB30H,31H,32H,33H,34H,35H,36H,37HDB38H,391H,41H,42H,43H,44H,45H,46H
21.编程统计从片外RAM2000H开始的100个单元中“0”的个数放于R2中。
程序:
MOVDPTR,#2000HMOVR3,#100MOVR2,#00LOOP:
MOVXA,@DPTRJNZNEXTINCR2NEXT:
INCDPTRDJNZR3,LOOPSJMP
$
第四章:
1.C51特有的数据类型有哪些?
答:
C51特有的数据类型有特殊功能寄存器型和位类型。
2.C51中的存储器类型有几种,它们分别表示的存储器区域是什么?
答:
C51中的存储器类型有6种,分别如下:
data:
直接寻址的片内RAM低128B,访问速度快
bdata:
片内RAM的可位寻址区(20H~2FH),允许字节和位混合访问idata:
间接寻址访问的片内RAM,允许访问全部片内RAMpdata:
用Ri间接访问的片外RAM低256B
xdata:
用DPTR间接访问的片外RAM,允许访问全部64KB片外RAMcode:
程序存储器ROM64KB空间
3.在C51中,bit位与sbit位有什么区别?
答:
bit位类型符用于定义一般的位变量。
存储器类型只能是bdata、data、idata,只能是片内RAM的可位寻址区,严格来说只能是bdata。
sbit位类型符用于定义在可位寻址字节或特殊功能寄存器中的位,定义时需指明其位地址,可以是位直接地址,可
以是可位寻址变量带位号,也可以是特殊功能寄存器名带位号。
4.位变量和特殊功能寄存器变量有什么作用?
答:
特殊功能寄存器变量是C51中特有的一种变量。
通过特殊功能寄存器变量可访问
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 C51 程序设计 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)