MCS51单片机复习题参考题库.docx
《MCS51单片机复习题参考题库.docx》由会员分享,可在线阅读,更多相关《MCS51单片机复习题参考题库.docx(10页珍藏版)》请在冰豆网上搜索。
MCS51单片机复习题参考题库
MCS-51单片机复习题参考题库
测控2011-1、2班2014-4-19
一、填空题
1、167D=1010111B=C7H。
2、8051内部有四个并行口,P0口直接作输出口时,必须外接上拉电阻;并
行口作输入口时,必须先向锁存器置1,才能读入外设的状态。
3、若单片机的主振频率为6MHz,则一个时钟周期为1/6微秒,一个机器周期为2
微秒。
4、当MCS-51执行MOVX@DPT,RA指令时,伴随着WR*控制信号有效。
5、若累加器A中的数据为110110010B,则PSW中的P=___1。
6、内部RAM中,位地址为50H的位,该位所在字节的字节地址为2AH。
7、MCS-51单片机串行口以方式2工作时,若系统晶振频率fosc为12MHz,PCON中的SMOD设置为1,则波特率为375KB/Sbps。
8、若LED为共阴极接法,则“9”的七段代码值应当为___7FH。
9、MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS-51
的PC是16位的,因此其寻址的范围为64K字节。
10、如果(A)=7AH,(30H)=A5H,PSW=80H,执行ADDCA,30H;INC30H两条指令后,(A)=20H,(30H)=A6H。
11、已知(20H)=X,(21H)=Y,指令
MOVSP,#70H,
PUSH20H;
PUSH21H;
POP30H;
POP40H;
执行完后,(71H)=,(72H)=,(30H)=,(40H)=,SP=
12、帧格式为1个起始位,8个数据位和1个停止位的异步串行通讯方式是方式1。
13、在异步通信中每个字符由10位组成,串行口每分钟传25000个字符,则对应的波特率
为4167bps。
14、起止范围为0000H~3FFFH的存储器的容量是16KB。
15、11根地址线可选2KB个存储单元,16KB存储单元需要14根地址线。
16、若MCS-51单片机使用晶振频率为6MHz时,其复位持续时间应该超过4微妙。
17、指令MOVCA,@A+P的C源操作数的寻址方式为把地址为A+PC的内存单元的内容给
A。
18、甲乙双方采用串行口模式1进行通信,采用定时器T1工作在模式2做波特率发生器,
波特率为2400bit/s,当系统晶振为6MHz时,SMOD=,1计数初值为F3H。
、选择题
1、若将字库放在程序存储器中,则存储类型是(B)
A.xdata
B.code
C.pdata
D.bdata
2、单片机的汇编语言的指令中,有循环左移和循环右移,而用()来完成。
A.内部函数
B.外部函数
C.取样函数
D.本征函数
3、数组声明为intdisplay[3],
A.display[0]B.display[1]C.display[2]D.display[3]
4、设intnum[5],*p;,数组num共有5个数组元素,如果(p=a),则以下哪个不能表达第四个数组元素()
A.num[3]B.*(p+3)C.*(num+3)D.*p+3
5、下列类型中,(C)是51单片机特有的类型
A.charB.intC.bitD.float6、0023H是51单片机的(C)中断入口地址
A.外部中断0B.外部中断1C.定时器中断1D.定时器中断0
7、串行口发送中断标志位为(A)
A.TIB.RIC.IE0D.IE1
8、T1中断允许控制位为(B)
A.ET0B.ET1C.ESD.EX1
9、串行口控制寄存器SCON为40H时,工作于()A方式0B.方式1C.方式2D.方式3
10、LCD1602属于那一种液晶显示器(B)
A.笔段式液晶显示器
B.点阵字符式显示器
C.点阵图形式液晶显示器
D.
11、对5V电压进行A/D采样,若要求对电压的最小分辩率为5mv,则A/D的转换位数为(B)
A.8位二进制B.10位二进制C.12位二进制D.14位二进制
三、阅读并分析程序
1、设(30H)=03H,(31H)=50H,(32H)=7BH,(33H)=7CH,给下面程序加上注释,写出每条语句运行结果,并填写程序执行后的结果。
(34H)=H,R1=,(00H)
CLRA
CLRC
MOV
MOV
R2,
R1,
30H
#31H
LOOP:
ADDCA,
@R1
INC
R1
DJNZ
R2,
LOOP
MOV
34H,
A
MOV
00H,
C
RET
2、已知A=7AH,Cy=1,试写出下面指令执行的最终结果。
MOVA,#0FH
CPLA
MOV30H,#00H
ORL30H,#0ABH
RLA
四、简答题
1、MCS51系列单片机的内部资源有哪些?
简述8031、8051、8751三种单片机有何异同?
内部资源有:
1、2个定时器2、一个串口
3、128B的RAM4、4个并行口
5、8位数据总线6、16位地址总线7、2个外部中断
(版本2:
MCS51系列单片机上有1个8位CPU、128的RAM、21个SFR、4个并行口、1个串行口、2个定时计数器和中断系统等资:
)
8031,没有ROM,只能扩展ROM才能写程序
8051,有4K的ROM
8751,有4K的EPROM
2、为什么把51单片机的I/O口称为“准双向”口?
因为P1、2、3有固定的内部上拉电阻,所以有时称它们为准双向口。
当用做输入时被拉高,低则要靠外部电路拉低。
而P0则是真双向口,因为作为输入时它是悬浮的。
3、MCS51的中断系统有几个中断源?
几个中断优先级?
中断优先级是如何控制的?
5个中断源,2个中断优先级,中断优先级由特殊功能寄存器IP控制(拓展:
在出现同
级中断申请时,
断源入口地址:
CPU按以下顺序响应各中断源请求:
INT0,T0,INT1,T1。
串口.各中
0003H,0013H,001BH,0023H)
4、中断允许寄存器IE各位定义是什么?
请写出允许T1定时器溢出中断的指令。
见书P28允许T1定时器溢出中断的指令:
MOVIE,#88H或改用位寻址指令:
SETBEA
SETBET1
5、8051的定时器/计数器有几个?
是多少位的?
有几种工作方式?
其工作原理如何?
8051有2个16位的定时器/计数器,有4种工作方式。
定时器与计数器的工作原理是相同的,8051的定时器/计数器是根据输入的脉冲进行加1计数,当计数器溢出时,将溢出标志位置1,表示计数到预定值
6、为什么定时器/计数器T1用做串行口波特率发生器时,常采用方式2?
若已知时钟频率、通讯波特率,如何计算其初值?
T1的方式2模式不需要重装时间常数(计数初值),不影响CPU执行通信程序。
设波特率为fbaud计数初值为X,依据公式
fbaud=(2SMOD/32)*(fosc/(12(256-X))
求得X=256-((2SMOD/32)*(fosc/2SMOD)
7、简述MCS-51的串行口在4种工作方式下的字符格式。
8、简述MCS-51的串行口在4种工作方式下的波特率产生方法。
方式0和方式2的波特率是固定的,都是由单片机时钟脉冲经相关控制电路处理后得到。
方式0完全取决于系统时钟频率fosc的高低,等于fosc/12,方式2还受SMOD影响,SMOD=1时,为fosc/32,SMOD=0时,为fosc/64.。
方式1和方式3的波特率可变,通常使用单片机中的定时器T1工作在方式2(自动重装初值方式)作为波特率产生器使用,以产生所需波特率信号。
方式1,3的波特率=(2^SMOD/32)x(fosc/12)x(1/(2^m-T1初值))
9、异步通信和同步通信的主要区别是什么?
MCS-51的串行口有没有同步通信功能?
10、所谓同步通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相信始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。
异步通信是指通信中两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。
mcs-51中使用的都是异步通信,没有同步通信
10、C51特有的数据结构类型有哪些?
C51的存储类型有几种,它们分别表示的存储器区域
是什么?
特殊功能寄存器,位类型
11、在C51中,中断函数与一般函数有什么不同?
中断无参无返回。
函数可以有。
中断的执行时间尽可能的短,防止耽误主程序的运行。
中断写好以后,放到特定的位置(或者必须的初始化一下),有条件触发执行。
函数得自己调用
版本2:
中断函数要中关键字Interrupt,中断函数执行时,系统会进行状态的压栈保存,就是进行当前运行状态的保护,函数结束后恢复。
12、键抖动对单片机系统有何影响?
有哪些消除抖动的方法?
由于按键是机械开关结构,所以当用手按下其中一个键时,往往会出现所按键在闭合位
置和断开位置之间发生跳几下后才会稳定到闭合状态的情况。
在释放一个键时,也会出现类似的情况,这就是键的抖动,抖动的持续时间不一,但通常不会大于10ms。
若抖动
问题不解决,就会引起对闭合键的多次读入。
对于键抖动最方便的解决方法就是当发现有键按下后,不是立即进行扫描,而是延时大约10ms后再进行。
由于一个键按下的时间
一般会持续上百毫秒,所以延迟10ms后再扫描处理并不迟。
另外一种办法就是使用硬件电路(如触发器)进行消抖。
13、解释ORG3000H指令的含义。
3000H(自己写
ORG伪指令说明其后面源程序的目标代码在存储器中存放的起始地址是
的,正确率较低)
14、1602液晶显示器模块的RS,RW,E引脚是什么功能,当对1602写指令操作时,这三个引脚应为什么状态?
RS为寄存器选择,高电平1时选择数据寄存器,低电平0时选择指令寄存器。
RW为读写信号线,高电平进行读操作,低电平进行写操作。
E为使能端,写操作时(RW=)0,下降沿使能,读操作时(RW=1),E高电平有效。
(当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据)
15、若要定义1602为8位总线两行5*7点阵显示,控制代码为多少?
16、决定ADC0809模拟电压输入路数的引脚有几条?
ADDC,ADDB,ADDA
五、编程题(C或汇编完成)
1、用单片机的内部定时器来产生方波,要求P1.0输出频率为100Hz,设单片机的时钟频率
为12MHZ,写出有关程序。
解:
#include//定义头文件
sbitP1_1=P1^1;
voiddingshiqi0(void)interrupt1//定时器0中断服务程序
{
TH0=(65536-4999)/256;//装入时间100hz初值
TL0=(65536-4999)%256;
P1_1=!
P1_1;//P1.1取反
}
voidmain(void)
{
TMOD=0x01;//定时器0方式0TH0=(65536-4999)/256;
TL0=(65536-4999)%256;
TR0=1;
TF0=0;
EA=1;
ET0=1;
while
(1)
2、试写出/INT0为下降沿触发方式的中断初始化程序
六、综合应用题(C或汇编完成)
1、设计一个硬件电路,某单片机控制系统有8个发光二极管。
试画出89C51与外设的连接
图并编程使它们由右向左轮流点亮。
MOVA,#01H;初值
SHIFT:
MOVP1,A;点亮
LCALLDELAY;延时
MOVP1,#00H;熄灭RLA;左移LCALLSHIFT;循环
DELAY:
LOOP0:
LOOP1:
MOVR1,#0FAH;延时子程序
MOVR0,#0C7H;
DJNZR0,LOOP1
DJNZR1,LOOP0RET
第二种MOVA,#80H(1分)UP:
MOVP1,A(1分)RRA(2分)
SJMPUP2、某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。
试画出8051与外设的连接图并编程实现上述要求。
ORG0000H
LJMPMAIN
ORG0003H
LJMPAINT0
ORG0013H
LJMPBINT1
MAIN:
MOVIE,#83H
SETBIT0
SETBIT1
MOVR0,#00H
MOVDPTR,#TAB
UP:
MOVA,R0
MOVCA,@A+DPTR
MOVP1,A
SJMPUP
AINT0:
INCR0
CJNER0,#10,AINT01
MOVR0,#0
AINT01:
RETI
BINT1:
DECR0
CJNER0,#0FFH,BINT11
MOVR0,#9
BINT11:
RETI
3、下图所示为8031和ADC0809的接口,请写出对8路模拟电压连续采集并存入单片机内部RAM的程序。
时序图如下:
(更正说明:
EOC为转换结束信号,转换开始时变低,转换结束时变高,变高
时将转换结果打入三态输出锁存器。
)
AJMP
ORG
AJMP
ORG
START:
MOV
MOV
SETB
SETB
SETB
SJMP
INT_0:
MOVX
MOV
START
0003H
INT_0
1100H
R0,#20HMOV
R6,#8H
EA
EX0
IT0
MOVX
$
A,@DPTR@R0,A
DPTR,#0F0FFH
@DPTR,A
INCDPH
INCR0
DJNZR6,LOP
MOVR6,#8H
MOVDPTR,#0F0FFH
LOP:
MOVR0,#20H
MOVX@DPTR,A
RET