单片机复习题1文档格式.docx
《单片机复习题1文档格式.docx》由会员分享,可在线阅读,更多相关《单片机复习题1文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
31.指令MOVA,30H的源操作数寻址方式是直接寻址。
32.指令MULAB是把累加器A和寄存器B中的两个无符号8位数相乘,所得结果低8位存放在A中,高8位存放在B中。
33.三态缓冲电路输出除了通常的低电平状态、高电平状态以外,还有一种是高阻。
二.单项选择题(每小题2分,共20分)
1.MCS-51单片机复位操作的主要功能是把PC初始化为(C)。
A.0100HB.2080HC.0000HD.8000H
2.要使AL中的D0位取反,其它位不变,则可采用的指令(D)。
A.SUBBA,0FEHB.ANLA,0FEH
C.ORLA,0FEHD.XRLA,01H
3.定时器1工作在计数方式时,其外加的计数脉冲信号应连接到(D)引脚。
A.P3.2B.P3.3C.P3.4D.P3.5
4.当外部中断请求的信号方式为脉冲方式时,要求中断请求信号的高电平状态和低电平状态都应至少维持(A)。
A.1个机器周期B.2个机器周期
C.4个机器周期D.10个晶振周期
5.MCS-51单片机在同一优先级的中断源同时申请中断时,CPU首先响应(A)。
A.外部中断0B.外部中断1C.定时器0中断D.定时器1中断
6.AT89C51单片机的T0工作在方式1计时,则计数器的最大计数值的初值是(C)。
A.65536B.FF00HC.0000HD.FFFFH
7.MCS-51单片机的外部中断1的中断请求标志是(D)。
A.ET1B.TF1C.IT1D.IE1
8.下列标号中,正确的标号是(D)。
A.1BT:
B.BEGIN:
C.ADD:
D.STAB31:
9.串行口每一次传送(A)字符。
A.1个B.1串C.1帧D.1波特
10.8031单片机内部有两个定时器/计数器,当其初始化为定时工作方式时,(B)。
A.T0,T1引脚线不能再作为I/O口使用B.T0,T1引脚线能再作为I/O口使用
C.定时方式时是外部输入脉冲计时D.定时器T0通常作为串行口的波特率发生器
11.短跳转指令的助记符是(C)
A.LJMPB.AJMPC.SJMPD.JMP
12.MCS-51指令系统中具有三个操作数的指令是(B)
A.累加器判零转移指令B.数值比较转移指令
C.减1条件转移指令D.变址寻址转移指令
13.逻辑“异或”运算的助记符是(D)
A.ANLB.ORLC.CPLD.XRL
14.指令系统中执行时间最长的指令是(B)
A.加减指令B.乘除指令C.逻辑运算指令D.控制转移指令
15.下列指令中正确的是(D)
A.MOVA,@30HB.PUSH#30HC.MOVR1,R2D.XCHA,R1
16.对程序存储器的读操作,只能使用(D)
A.MOV指令B.PUSH指令C.MOVX指令D.MOVC指令
17.三态缓冲器的输出应具有三种状态,其中不包括(B)
A.高阻抗状态B.低阻抗状态C.高电平状态D.低电平状态
18.十进制调整指令的指令格式是(B)
A.INCAB.DAAC.DECAD.RLCA
19.在MCS-51中,以下说法正确的是(C)
A.具有独立的专用的地址线B.由P0口和P1口的口线作地址线
C.由P0口和P2口的口线作地址线D.由P1口和P2口的口线作地址线
20.在MCS-51中,需双向传递信号的是(B)
A.地址线B.数据线C.控制信号线D.电源线
21.通过改造而形成的既可读又可写的程序存储器的最大特点是(B)
A.掉电后所存信息不消失B.既可运行程序又可修改程序
C.既可存储数据又可存储程序D.既可存放开发程序又可存放监控程序
22.下列指令错误的是(D)
A.XCHA,R0B.SUBBA,#30HC.SWAPAD.ADDA,@30H
23.MCS-51单片机采用了引脚复用技术,其具有第二功能信号引脚的是(D)
A.P0口线B.P1口线C.P2口线D.P3口线
24.可使内部RAM50H单元中的高3位变反,其余位不变的指令是(C)
A.ANL50H,#0FFHB.ORL50H,#00H
C.XRL50H,#0E0HD.ORL50H,#0FFH
25.单片机运行的最简单的配置系统是(A)
A.最小应用系统B.最小功耗系统
C.典型系统D.测控增强系统
26.单片机系统扩展时使用的锁存器,是用于锁存(B)
A.高8位地址B.低8位地址C.8位数据D.ALE信号
27.将二进制数10110100101转换成十六进制数为(A)
A.5A5HB.0B4AHC.6B4HD.0C55H
28.假定(A)=0C5H,执行指令SWAPA后,累加器A的内容为(C)
A.3AHB.8BHC.5CHD.0E2H
29.在MCS-51中,为实现P0口线的数据和低位地址复用,应使用(C)
A.地址缓冲器B.地址寄存器C.地址锁存器D.地址译码器
30.在算术运算过程中,(PSW)=01H,则累加器A的内容可以为(B)
A.21HB.31HC.41HD.53H
三.阅读程序填空题(每小题10分,共20分)
1.执行下列程序段后,(P1)=__9BH_____。
MOVP1,#5DH
CPLP1.1
CPLP1.2
CLRP1.6
SETBP1.7
2.执行下列程序段后,(A)=__8BH(或10001011B)_____,(CY)=__不影响__。
MOVA,#0C5H
RLA
3.下列程序段执行后,(R0)=__7FH___,(7EH)=_00H___,(7FH)=__41H___。
MOVR0,#7EH
MOV7EH,#0FFH
MOV7FH,#40H
INC@R0
INCR0
4.已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALLSUBTRN双字节指令后,(PC)=__0345H___,(61H)=__25H_____,(62H)=_01H___。
5.阅读下列程序,说明其功能。
MOVR0,#data
MOVA,@R0
MOVR1,A
ADDA,R1
MOV@R0,A
RET
答:
是(data)×
10操作
6.假定(A)=0FH,(R7)=19H,(30H)=00H,(R1)=40H,(40H)=0FFH。
执行指令:
DECA
DECR7
DEC30H
DEC@R1
后,(A)=0EH,(R7)=18H,(30H)=0FFH,(40H)=0FEH。
7.假定(A)=0FFH,(R3)=0FH,(20H)=0F0H,(R0)=30H,(30H)=00H,执行指令:
INCA
INCR3
INC20H
后,(A)=00H,(R3)=10H,(20H)=0F1H,(30H)=01H
四.程序注释(每空2分共40分)
1.MOVA,#54H;
(A)=54H
MOVR5,#87H;
(R5)=87H
ADDA,R5;
(A)=0DBH
DAA;
(A)=41H
MOV50H,A;
(50H)=41H
2.MOVA,#30H;
(A)=30H
MOVB,#0B0H;
(B)=0B0H
MOVR0,#31H;
(R0)=31H
MOV30H,#78H;
(30H)=78H
XCHA,R0;
(A)=31H;
(R0)=30H
XCHDA,@R0;
(A)=38H
XCHA,B;
(A)=0B0H
SWAPA;
(A)=0BH
3.MOVA,#30H;
(A)=30H
MOVR0,#72H;
(R0)=72H
MOV72H,#45H;
(72H)=45H
ANLA,#72H;
ORL72H,A;
(72H)=75H
XRLA,@R0;
(A)=45H
五.编程题
1.将一位十六进制数转换成ASCII码。
解:
HEXASC:
MOVA,R1
ANLA,#0FH
PUSHA
CLRC
SUBBA,#0AH
POPA
JCJAFA
ADDA,#07H
JAFA:
ADDA,#30H
MOVR3,A
RET
2.设片内RAM单元7CH中的数据是两个BCD码,现在要将它们分开,并将高位BCD码送到R6中,将低位BCD码送到R5中。
MOVR1,#7CH
MOVA,#00H
XCHDA,@R1
MOVR5,A
MOVA,7CH
SWAPA
MOVR6,A
3.把累加器中的8位无符号二进制数转换成3位(2字节)BCD码形式。
百位数字存入片内的21H单元,十位数和个位数存入相邻的22H单元中。
BINBCD:
MOVB,#100
DIRAB
MOV21H,A
MOVA,10
XCHA,B
DIVAB
ADDA,B
MOV22H,A
4.设在片内RAM中,20H和21H单元各存放有一个8位数据,要求拼装一个新的字节并送30H保存,其低5位取自20H单元中的低5位,高3位取自21H单元中的低3位。
MOV30H,20H
ANL30H,#00011111B
MOVA,21H
ANLA,#11100000B
ORL30H,A
5.设在外部的3个连续存储单元ST1、ST2和ST3中,ST1和ST2存放着两个不带符号的二进制,请找出其中的大数并存入ST3单元中。
START:
MOVDPTR,#ST1
MOVXA,@DPTR
MOVR7,A
INCDPTR
MOVXA,@DPTR
SUBBA,R7
JNCBIG1
XCHA,R7
BIG0:
MOVX@DPTR,A
BIG1:
MOVXA,@DPTR
SJMPBIG0
6.编写一段程序,实现逻辑表达式为:
P1.3=P1.1(P2.2+TF0)(IE1+25H)26H的功能。
START:
MOVC,P2.2
ORLC,TF0
ANLC,P1.1
MOVP1.3,C
MOVC,E1
ORLC,/25H
ANLC,P1.3
ANLC,/26H
MOVP1.3,C
SJMP$
六.应用设计题(每小题10分,共40分)
图1
1.图1所示,试写出8255A的端口地址,并对8255A编程,使其各口工作于方式0,A口作输出,B口作输入,C口高4位作输入,C口的低4位作输出。
(10分)
PA口、PB口、PC口和控制寄存器的端口地址分别为FF7CH、FF7DH、FF7EH和FF7FH。
由方式选择控制字的格式与定义可确定出满足要求的方式控制字应为8CH(10001010B)。
对8255A编写程序将8CH写入它的控制寄存器,初始化程序为
MOVDPTR,#0FF7FH
;
DPTR作地址指针,指向控制口
MOVA,#8CH
MOVX@DPTR,A
2.图2所示的是一个8路的输入接口,试写出端口地址,并写出读取端口数据的程序段。
图2
端口地址:
0BFFFH
程序段为:
MOVDPTR,#0BFFFH
MOVXA,@DPTR
3.用用锁存器扩展输出口如图3所示,试写出端口地址,并写出从端口输出数据的程序段。
图3
如此连接的输出口地址是P2.7=0的任何16位地址。
7FFFH可作为该口地址。
对该口的输出操作如下:
MOVDPTR,#7FFFH
使DPTR指向74LS377输出口
MOVA,#data
输出的数据要通过累加器A传送
向74LS377扩展口输出数据
4、某一应用系统使用了一片DAC0832芯片,其端口地址为0xfffeH,如图3下所示,试用C语言编一程序段,使其VOUT输出产生连续的锯齿波,且波形在0V~5V之间。
#include<
absacc.h>
reg51.h>
#defineDA0832XBYTE[0xfffe]
#defineucharunsignedchar
#defineuintunsignedint
voidstair(void)
{uchari;
while
(1)
{for(i=0;
i<
=255;
i=i++)/*形成锯齿波输出值,最大值为255*/
{DA0832=i;
/*D/A转换输出*/
}
}
图4ADC0809与8031的接口连接图
5.设图4接口电路用于一个8路模拟量输入的巡回检测系统,使用中断方式采样数据,把采样转换所得的数字量按序存于片内RAM的30H~37H单元中。
采样完一遍后停止采集。
其数据采集的初始化程序和中断服务程序如下:
初始化程序:
MOVR0,#30H;
设立数据存储区指针
MOVR2,#08H;
设置8路采样计数值
SETBIT0;
设置外部中断0为边沿触发方式
SETBEA;
CPU开放中断
SETBEX0;
允许外部中断0中断
MOVDPTR,#FEF8H;
送入口地址并指向IN0
LOOP:
MOVX@DPTR,A;
启动A/D转换,A的值无意义
HERE:
SJMPHERE;
等待中断
中断服务程序:
MOVXA,@DPTR;
读取转换后的数字量
MOV@R0,A;
存入片内RAM单元
INCDPTR;
指向下一模拟通道
INCR0;
指向下一个数据存储单元
DJNZR2,INT0;
8路未转换完,则继续
CLREA;
已转换完,则关中断
CLREX0;
禁止外部中断0中断
RETI;
中断返回
INT0:
再次启动A/D转换