单片机原理与应用习题.docx
- 文档编号:4937216
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:9
- 大小:31.14KB
单片机原理与应用习题.docx
《单片机原理与应用习题.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用习题.docx(9页珍藏版)》请在冰豆网上搜索。
单片机原理与应用习题
单片机原理与应用习题
单片机原理与应用习题集 习题1 1.填空:
⑴20D=10100B=14H;⑵1100101B=101D=65H;⑶1F8H=111111000B=504D; ⑷1个字节8个二进制位组成,每个二进制位只有2种状态,可表示为0或1;⑸1K字节就是2的10次方字节,即1024个字节;1M字节就是2的20次方字节,约为1048567个字节。
2.在8位二进制中,+26、-26、-127、-1的补码是多少?
解:
正数的补码等于原码,负数的补码等于它的原码除符号位不变,其余的各位求反加1。
[+26]原=000110101B=1AH,[+26]补=1AH [-26]原=100110101B,[-26]补=11100101B+1=11100110B=0E6H[-127]原=11111111B,[-127]补=10000000B+1=10000001B=81H[-1]原=10000001B,[-1]补=11111110B+1=11111111B=0FFH 3.用十进制写出下列补码表示的数的真值:
FEH、FBH、80H、11H、70H、7FH。
解:
真值是指日常用“+”或“-”号表示的数。
机器数是指计算机中用编码表示的数,正数的符号以最高位为0表示,负数的符号以最高位为1表示。
根据补码求真值的一个通俗口诀是“正码不变,负码求补,补后勿忘添负号”。
①FEH=11111110B,其符号位为“1”,属负数,故其原码为10000001B+1=10000010B,即FEH真值为-2; ②同理FBH属负数,其真值为-5;③80H的真值为-128;④11H的真值为+17;⑤70H的真值为+112;⑥7FH的真值为+127。
4.微型计算机主要哪几部分组成?
各部分有何功能?
答:
一台微型计算机中央处理单元、存储器、I/O接口及I/O设备等组成,相互之间通过三组总线:
即地址总线AB、数据总线DB和控制总线CB来连接。
CPU运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。
存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。
按其功能可分为RAM和ROM。
输入/输出接口是CPU与外部设备进行信息交换的部件。
总线是将CPU、存储器和I/O接口等相对独立的功能部件连接起来,并传送信息的公共通道。
5.何为存储器单元的地址?
答:
存储器中存放二进制数的单元称为存储单元。
存储器中包含许多存储单元,为了便于信息的存入和取出,每一个存储单元必须有一个固定的编号来标识,称这个编号为存储器单元地址。
6.何谓单片机?
单片机有何特点?
答:
单片机是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。
单片机在控制应用领域中的特点:
⑴面向控制,能针对性地解决从简决从简单到复杂的各类控制任务,因而获得最佳的性能价格比;⑵抗干扰能力强、适应温度范围宽,能在各种恶劣的环境下都能可靠性地工作;⑶能方便地实现多机和分布式控制,从而使整个控制系统的效率和可靠性大大提高; ⑷体积小、功耗低、低成本、控制功能强、易于产品化,能方便地组成各种智能化的控制设备和仪器,做到机、电、仪一体化。
7.单片机内部ROM的配置有几种形式?
答:
单片机片内ROM的配置状态可分四种:
片内掩膜ROM型单片机,适合于定型大批量应用产品的生产;片内EPROM型单片机,适合于研制产品样机;片内无ROM型单片机,需外接EPROM,单片机扩展灵活,适用于研制新产品;EEPROM型单片机,内部程序存储器电可擦除,使用更方便。
习题2 单片机内包含哪些主要逻辑功能部件?
答:
8051单片机是一个完整的单片微型计算机。
它包括以下功能部件:
一个芯片上,集成了一个微型计算机的基本组成部分。
它包括以下功能部件:
·1个8位CPU; ·片内4KB的程序存储器ROM;·片内128B的数据存储器RAM; ·可寻址外部程序存储器和数据存储器空间各64KB的控制电路;·21个特殊功能寄存器SFR; ·4个8位并行I/O口P0~P3,共32根I/O线;·1个全双工的串行口;·2个16位定时器/计数器; ·5个中断源,有2个优先级嵌套中断结构;·片内振荡器及时钟电路。
单片机的EA信号有何功能?
8031的EA引脚应如何处理,为什么?
答:
(1)EA是访问外部程序存储器ROM的控制信号。
当EA为低电平时,CPU只执行外部程序存储器中的程序。
当EA为高电平且PC值小于0FFFH时,CPU执行内部程序存储器的程序,但当PC的值超出4K时将自动转去执行片外程序存储器内的程序。
8031单片机无片内ROM的,必须外接程序存储器,因此,8031的EA必须接地。
3.8051单片机的P0~P3口各有什么特点?
8051单片机有P0、P1、P2、P3四个双向的8位并行I/O口,每个端口可以按字节输入或输出,每一条I/O线也可以单独用作输入或输出。
每个端口都是一个锁存器,一个输出驱动器和两个输入缓冲器组成。
并行I/O口作输出时数据可以锁存,作输入时数据可以缓冲,但它们又各具特点。
⑴P0口和P2口构成MCS—51单片机的16位地址总线,P0口还是8位的数据总线。
P3口多用于第二功能输入或输出,。
通常只有P1口用于一般输入/输出。
P3口各位的第二功能 P3口引脚第二功能RXDP3口引脚第二功能T0 TXD T1INT0WRRDINT1⑵系统复位后,P0~P3口的32个管脚均输出高电平,因此在系统的设计过程中,应保证这些管脚控制的外设不会因为系统复位而发生误动作。
⑶P0~P3口输出级的电路结构有所不同。
P0口是三态输出,其每个管脚均可以驱动8个LSTTL输入,而P1~P3口的输出级均有上拉电阻,每个管脚可驱动4个LSTTL输入。
⑷每个并行口,可定义一部分管脚为输入脚,另一部分管脚为输出脚,没有使用的管脚可以悬空。
4.简述8051单片机存储器的组织结构和片内RAM的空间分配。
答:
8051单片机的存储器包括程序存储器和数据存储器,从用户使用的角度可分为三个逻辑地址空间:
⑴片内、片外统一编址的64KB程序存储器地址空间0000H~FFFFH;⑵64KB的外部数据存储器或扩展I/O口地址空间0000H~FFFFH; ⑶256B的片内数据存储器地址空间00H~FFH。
内部RAM共有128个单元,根据用途可划分为工作寄存器区、位寻址区和通用RAM区,各区域的特性如下:
⑴工作寄存器区寄存器区32个单元共分4个组,每个组有8个8位的寄存器R0~R7。
在任何时刻,四个组中只能有一组可以成为当前工作寄存器组使用,其他三组作为一般的内部RAM使用。
当前工作寄存器组程序状态字寄存器PSW的RS0和RS1两位的状态来决定。
⑵位寻址区共16个单元,每个单元有8个位,每个位都有一个位地址,编号为00H~7FH,位寻址区的16个单元也可以按字节寻址,作为一般的内部RAM使用。
⑶通用RAM区这部分存储空间作为一般的内部RAM区或堆栈区,CPU只能按字节方式寻址。
5.8051单片机有哪些特殊功能寄存器?
各在单片机中的哪些功能部件中?
答:
8051单片机有21个8位的特殊功能寄存器,它们的地址离散地分部在内部数据存储器的80H~FFH地址空间。
在8051单片机结构中,21个SFR在物理上是分散在片内各功能部件中:
⑴CPU的中SFR:
Acc、B、PSW、SP和DPTR; ⑵定时/计数器单元中的寄存器:
TMOD、TCON、T0和T1; ⑶并行I/O口寄存器:
P0、P1、P2和P3;⑷中断系统内的寄存器:
IE和IP; ⑸串行端口中的寄存器:
SCON、SBUF和PCON。
6.程序计数器PC有何作用?
是否属于SFR,为什么?
答:
程序计数器PC是一个16位的专用寄存器,用来存放即将要执行的指令地址,可对64KB的程序存储器直接寻址。
它具有自动加1功能,当CPU要取指令时,PC的内容送地址总线上,从存储器中取出指令后,PC内容则自动加1,指向下一条指令,从而保证程序按顺序执行。
PC虽然也是CPU内部的一个寄存器,但它在物理结构上是独立的,没有地址,是不可寻址的,用户无法对它进行直接读写,不属特殊功能寄存器。
7.什么叫堆栈?
堆栈指针SP的作用是什么?
8051单片机堆栈的最大容量是多少字节?
答:
堆栈是按照“先进后出,后进先出”的原则来存取数据的一个内部RAM区域,这个存储器区域的一端是固定的,另一端是活动的,每个存储单元是不能按字节任意访问的。
堆栈指针SP始终指向栈顶单元,栈顶随着数据入栈和出栈上下浮动。
8051单片机堆栈的最大容量是128字节 8.8051单片机的程序存储器和数据存储器可以有相同的地址,而单片机在对这两个存储区的数据进行操作时,不会发生错误,为什么?
答:
对于不同的存储地址空间,8051单片机采用不同的存取指令和控制信号:
CPU访问片内、外ROM时,采用“MOVC”指令,外部ROM用PSEN选通;访问外部RAM或扩展I/O口时,采用“MOVX”指令,RD信号和WR信号选通;访问片内RAM和特殊功能寄存器时,采用“MOV”指令。
因此,尽管程序存储器地址和数据存储器地址空间重叠,但不会发生混乱。
9.8051单片机是如何确定和改变当前工作寄存器组?
答:
在任何时刻,8051单片机的四个工作寄存器组中只能有一组可以成为当前工作寄存器组使用,其他三组作为一般的内部RAM使用。
当前工作寄存器组程序状态字寄存器PSW的RS0和RS1两位的状态来决定,如表所示。
当前工作寄存器组的选择 RS10011RS00101被选寄存器组0组1组2组3组寄存器R0~R7的地址00H~07H08H~0FH10H~17H18H~1FH根据需要,用户可以利用传送指令或位操作指令改变RS1和RS0的内容来选择不同的工作寄存器组。
10.单片机复位后,CPU使用了哪一组工作寄存器?
工作寄存器R0~R7对应的单元地址是什么?
答:
单片机复位后,RS1和RS0都为0,CPU选中第0组作为当前工作寄存器组,工作寄存器R0~R7对应的单元地址是00H~07H。
11.程序状态字寄存器PSW的作用是什么?
常用标志位有哪些位?
作用是什么?
答:
PSW是一个8位的特殊功能寄存器,一些标志位组成,用于存放程序运行中的各种状态信息。
它可以进行位寻址,各位的定义如下:
位位名称 D7CyD6ACD5F0D4RS1D3RS0D2OVD1—D0PCy:
进位标志位。
在进行加法运算时,若操作结果的最高位有进位时,Cy硬件置1,否则Cy清0。
在进行位操作时,Cy又是位累加器,指令助记符用C表示。
AC:
辅助进位标志位。
在进行加运算时,若操作结果的低半字节向高半字节产生进位时,AC位将硬件自动置1,否则AC位清0。
F0:
用户标志位。
用户根据需要对F0置位或复位,作为软件标志。
RS1和RS0:
工作寄存器组选择控制位。
用户用软件改变RS1和RS0的状态,以选择内RAM中的哪组工作寄存器为当前工作寄存器组。
OV:
溢出标志位。
当进行补码运算时,运算结果超出-128~+127范围时,产生溢出,则OV自动置1,否则OV清0。
:
保留位。
8051中未定义。
P:
奇偶校验标志位。
每条指令执行完后,该位始终跟踪累加器A中1的数目的奇偶性。
如果A中有奇数个1,则P=1;否则P=0。
12.8051单片机的晶体振荡器频率为6MHz,则它一个机器周期为多少微秒?
答:
机器周期是指CPU完成某一个规定操作所需的时间,8051单片机的一个机器周期包含6个状态,并依次表示为S1~S6,每个状态分为2个节拍。
因此一个机器周期包含12个时钟周期,依次表示为:
S1P1、S1P2、S2P1、?
、S6P1、S6P2。
当fosc=6MHz时,机器周期T=12×=2μs 13.8051单片机复位后寄存器PC、A、PSW、SP、P0~P3的状态各是什么?
复位后内部RAM中的数据有何影响?
答:
8051单片机复位后PC、A、PSW、SP、P0~P3的状态如下:
PC:
0000H;A、PSW:
00HSP:
07H;P0~P3:
FFH 单片机的复位不影响内部RAM的状态。
习题3 1.若访问工作寄存器、特殊功能寄存器、片外数据存储器、程序存储器分别可使用哪些寻址方式?
答:
访问工作寄存器采用寄存器寻址,特殊功能寄存器采用直接寻址,片外数据存储器采用寄存器间接寻址,程序存储器的寻址方式有立即寻、变址寻址、相对寻址。
2.写出下列源操作数的寻址方式。
JZ20HMOVA,R2MOVA,B MOVDPTR,#4012HMOVXA,@DPTRMOVCA,@A+PCPUSHBPOPACCMOVC,20HMOVA,20H 答:
各指令的源操作数的寻址方式是 ⑴相对寻址;⑵寄存器寻址;⑶寄存器寻址;⑷立即寻址;⑸寄存器间接寻址;⑹变址寻址;⑺直接寻址;⑻直接寻址;⑼位寻址;⑽直接寻址 3.设片内RAM的30H单元的内容为40H,即=40H,=10H,=00H,端口P1=CAH,执行下列程序段填结果。
MOVR0,#30HMOVA,@R0MOVR1,AMOVB,@R1MOV@R1,P1MOVA,P1MOV30H,10H ;R0=30H ;A===40H;R1=40H;B==10H;=0CAH;A=0CAH;=20H;=20H MOV10H,#20H 结果:
R0=,R1=,A=,B=,P1=,=,=,=。
解:
每一条指令执行后的结果如注释字段所标。
最后的结果为R0=30H,R1=40H,A=0CAH,B=10H,P1=0CAH,=0CAH,=20H,=20H。
4.设A=94H,R2=37H,=6EH,R1=40H,RS1RS0=00执行程序段填结果。
MOVP2,AMOVA0H,R2MOVD0H,@R1MOV02H,#98H
结果:
A= ,(02H)= ,(40H)=,(01H)= ,P2= ,PSW= 。
解:
结果:
A=94H,(02H)=98H,(40H)=6EH,(01H)=40H,P2=37H,PSW=6EH。
5.A=83H,R0=17H,=34H,执行以下指令后A=?
ANLA,#17HORL17H,AXRLA,@R0CPLA ;A=03H;(17H)=37H;A=34H;A=0CBH 解:
每一条指令执行后的结果如注释字段所标。
所以执行以下指令后A=0CBH。
6.若要完成下列数据传送,应如何用MCS-51的指令来实现。
⑴A的内容送到P1。
解:
MOVA,P1⑵R1的内容传送到R0。
解:
MOVA,R1MOVR0,A ⑶片内RAM20H单元的内容送片内RAM30H单元。
解:
MOV31H,20H ⑷片外RAM20H单元的内容送片内RAM30H单元。
解:
MOVR0,#20HMOVXA,@R0MOV30H,A ⑸片外RAM20H单元的内容送片外RAM30H单元。
解:
MOVMOVXMOVMOVXR0,#20HA,@R0R1,#30H@R1,A ⑹用两种方法将程序存储器ROM3040H中的常数送到A中,已知PC当前值为3000H。
解:
①MOVA,#00HMOVDPTR,#3040HMOVCA,@A+DPTR②MOVA,#40HMOVCA,@A+PC3000H:
?
┇3040H:
?
⑺ROM2000H单元的内容送到片外RAM1000H单元中。
解:
CLR MOV MOVMOVMOV解:
XCH解:
MOV A DPTR,#2000HA,@A+DPTRDPTR,#1000H@DPTR,AA,BR0,#40H ⑻将A中的内容与寄存器B中的内容交换。
⑼将片内RAM30H单元内容与片外40H单元的内容交换。
解:
MOVXA,@R0XCHA,30HMOVX@R0,AMOVMOVXMOVMOVMOVXMOVX MOVMOVX ⑽将片外RAM30H单元内容与片外40H单元的内容交换。
R0,#30HA,@R0R7,AR1,#40HA,@R1@R0,A A,R7 ;暂存外部RAM30H单元的内容 ;外部RAM40H单元的内容送外部RAM30H单元;外部RAM30H单元的内容送外部RAM40H单元 @R1,A 7.设位单元00H、01H中的内容为0,下列程序段执行后P1口的8条I/O线为何状态?
位单元00H、01H的值。
START:
CLRC JCLP1 CPLC ;Cy=0 ;A=56H=01010110B;Cy=1;(01H)=1 ;因=1,转向LP2;该指令不执行;P1=A=01010111B MOVA,#56H SETB01H JB, SETB00H LP2:
MOVP1,A RET LP1:
MOV,C;=1 解:
每一条指令执行后的结果如注释字段所标。
P1=01010111B,即P1口的8条I/O线中、、、、为高电平状态,、、为低电平状态, 8.下列指令哪些是非法指令?
(1)CPLB
(2)ADDCB,#20H(4)MOVR1,R2 (6)CJNE@R0,#64H,LABEL(8)DJNZ@R0,LABEL(10)POP@R1(12)MOVR7,@R0(14)MOVR1,#1234H (16)ORLC,/(18)DECDPTR(20)SWAPB (22)MOVCA,@A+DPTR(24)SUBA,#12H(26)DIVAB(28)JMPLABEL(30)RETI(5)×; (6)√; (7)×; (8)×; (9)√; (3)SETB30H,0 (5)SUBBA,@R2(7)MOVX@R0,20H(9)PUSHB(11)RLB(13)RLCA(15)ANLR0,A(17)XRLC,(19)XCHDA,R1(23)XCHA,R1(25)MULA,B(27)DAA (29)LJMPLABEL解:
(1)×;
(2)×; (21)MOVXA,@A+DPTR (3)×;(4)×; (10)×;(11)×;(12)×;(13)√;(14)×;(15)×;(16)√;(17)×;(18)×; (19)×;(20);×(21)×;(22)√;(23)√;(24)×;(25)×;(28)×;(29)√;(30)√。
9.执行下列程序填结果。
MOVSP,#2FHMOVA,#50HMOVB,#51HPUSHACCPUSHBPOPACCPOPB ;SP=2FH;A=50H;B=51H ;SP=30H,(30H)=50H;SP=31H,(31H)=51H;A=51H,SP=30H;B==2FH (26)√;(27)√; 结果:
SP= ,A= ,B= ,= ,= 。
解:
结果:
SP=2FH,A=51H,B=50H,=50H,=51H。
10.SP=70H,MA=1000H,SUBPR=4060H。
试问下列程序中哪些是正确的?
为什么?
哪些程序 最好,为什么?
若SUBPR=1060H,则哪个程序最好,为什么?
MA:
ACALLSUBPRMA:
LCALLSUBPRMA:
LJMP4000H ┋4000H:
ACALLSUBPR LJMP1003H 解:
因为ACALL指令转去子程序的入口地址与ACALL的下一条指令必须在同一个2k范围,而LCALL指令转去子程序的入口地址与LCALL的下一条指令范围为64k。
所以当SUBPR=4060H时,程序和是正确的,的程序是错误的,程序较快捷;当SUBPR=1060H时,程序和是正确的,程序是错误的,程序较程序节省一个存储单元。
11.设A=53H,PSW=81H,转移指令所在地址为3090H,执行下列各条指令后,PC=?
JNZ12HJNC34HJNBP,56HJBCAC,78HCJNEA,#50H,9AHDJNZPSW,0BCHSJMP0B4H 解:
因A≠0,所以转移,故PC=(3090H+2)+12H=30A4H;因Cy=1,所以不转移,故PC=3090H+2=3092H;因P=1,所以不转移,故PC=3090H+3=3093H;因AC=0,所以不转移,故PC=3090H+3=3093H; 因A≠50H,所以转移,故PC=(3090H+3)+9AH=3093H-66H=302DH(注意:
补码数9AH的 最高位为1属负数,故应先求得其真值为-66H) 因PSW=PSW-1=80H≠0,所以转移,故PC=(3090H+3)+0BCH=3093H-44H=304FH无条件转移,PC=(3090H+2)+0B4H=3092H-4CH=3046H。
12.阅读下列程序,说明其功能。
MOVR1,#40HMOVA,@R1RLA ;设=x;A=x;A=2x MOVR0,ARLARLA ;R0=2x ADDA,R0MOV@R1,A 13.执行程序填结果MOVA,#19H ADDA,#72HDAA结果:
A=解:
A=91HCLRC x ;A=4x*2=8x;A=8x+2x=10x ;A=2x*2=4;=10x 解:
各指令的注释如程序所标,程序的功能为40H单元的内容乘10。
;A=19H;A=8BH;A=91H ;Cy=0;A=9AH;A=81H;A=0F3H;A=53H,Cy=1 MOVA,#9AHSUBBA,#19HADDA,#72HDAA 解:
A=53H 结果:
A= 14.设=50H,MA=0123H,SUB=0345H。
执行指令“MA:
ACALLSUB”后PC=?
, SP=?
,=?
,=?
。
解:
PC=0345H,SP=52H,=25H,=01H 15.=4BH,=12H,=5AH,=68H。
执行指令“RET”后PC=?
, SP=?
。
解:
PC=685AH,SP=48H 习题4 1.按下面要求编程。
=0;若为奇数 1解:
MOV MOVDIVMOVJNZMOVSJMP ;若为偶数A,50HB,#2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 习题
![提示](https://static.bdocx.com/images/bang_tan.gif)