单片机 试题库5.docx

上传人:b****5 文档编号:8162829 上传时间:2023-01-29 格式:DOCX 页数:26 大小:453.42KB
下载 相关 举报
单片机 试题库5.docx_第1页
第1页 / 共26页
单片机 试题库5.docx_第2页
第2页 / 共26页
单片机 试题库5.docx_第3页
第3页 / 共26页
单片机 试题库5.docx_第4页
第4页 / 共26页
单片机 试题库5.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

单片机 试题库5.docx

《单片机 试题库5.docx》由会员分享,可在线阅读,更多相关《单片机 试题库5.docx(26页珍藏版)》请在冰豆网上搜索。

单片机 试题库5.docx

单片机试题库5

(简答题A4,K4,D1)

1.C51的data、bdata、idata表明数据的什么特征?

有什么区别?

(4分)

答:

data、bdata、idata是表明数据的存储类型,

data是指片内RAM的低128字节,可在一个周期内直接寻址;

bdata是指片内RAM的位寻址区,16字节;

idata是指片内RAM的256字节,必须采用间接寻址。

2.简述行列式扫描键盘的工作原理。

(6分)(简答题A4,K9,D2)

答:

扫描键盘工作原理

(1)首先X0~X3,始终接高电平,Y0~Y3给低电平,扫描P1.0~P1.3若全为高电平,则没有键按下,若有低电平,则有键按下。

(2)接着Y0输出低电平,Y1~Y3输出高平,扫描P1.0~P1.3,若全为高电平,则没有键按下,若有低电平,则找出相位,得到所按的键。

(3)再Y1输出低电平,Y0,Y2,Y3输出高电平,重复第2步骤作.

(4)再Y2输出低电平,Y0,Y1,Y3输出高电平扫描

(5)再Y3输出低电平,Y0,Y1,Y2输出高电平扫描

简答题:

MCS-51采用6MHz的晶振,定时2ms,如用定时器方式1时的初值(16进制数)应为多少?

(写出计算过程)(6分)(简答题A4,K5,D2)

答案:

12

机器周期6×106=2×10-6s=2uS(2分)

又方式1为16进制定时器.故

(216—X)×2×10-6=2×10-3=>216-X=1000

=>X=65536-1000=64536(3分)即初值=FC18H(1分)

简答题:

设R0的内容为32H,A的内容为48H,片内RAM的32H单元内容为80H,40H单元内容为08H。

请指出执行下列程序后上述各单元内容的变化。

(4分)

(简答题A4,K3,D2)

MOVA,@R0

MOV@R0,40H

MOV40H,A

MOVR0,#35H

答案:

A=80H,(R0)=35H(32H)=08H(40H)=80H

简答题:

什么是中断?

其主要功能是什么?

(4分,各1分)(简答题A4,K6,D1)

答案:

中断就是对外界异步发生的事件作出及时的处理。

功能:

分时操作;实时处理;故障处理。

简答题:

片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和<256)。

(6分)(简答题A4,K3,D2)

答案:

ADDIO:

MOVR0,30H

MOVR7,#9

MOVA,@R0

LOOP:

INCR0

ADDA,@R0

DJNZR7,LOOP

MOV30H,A

RET

简答题:

MCS-51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么?

(4分)(简答题A4,K2,D2)

答案:

因为访问外扩的程序存储器和数据存储器执行的指令不同,所发出的控制信号也就不同。

(2分)

读外部数据存储器时,RD*信号有效。

写外部数据存储器时,WR*信号有效。

而读外部程序存储器时,PSEN*信号有效。

由于发出的控制信号不同,且只能有一种信号有效,因此,即使MCS-51外扩的程序存储器和数据存储器有相同的地址空间,也不会发生数据冲突。

(2分)

简答题:

编写一程序将片外数据存储器中7000H~70FFH单元全部清零。

(6分)

(简答题A4,K3,D2)

答案:

ORG1000H

MOVDPTR,#7000H

CLRA

MOVR0,A

LOOP:

MOVX@DPTR,A

DJNZR0,LOOP

SJMP$

简答题:

试比较中断与子程序调用有什么异同。

(4分)(简答题A4,K6,D2)

答案:

同:

都是中止当前主程序转去执行另一段子程序或中断服务子程序,执行完后都要返回到主程序(2分)

异:

中断是在初始化中断后,自动完成中断的响应和处理

子程序调用是用户在程序中用指令主动调用,断点位置由用户决定(2分)

简答题:

设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何?

(每个0.5分,共4分)(简答题A4,K3,D2)

MOVR0,#30H;R0=30H

MOVA,@R0;A=5AH

MOVR1,A;R1=5AH

MOVB,R1;B=5AH

MOV@R1,P1;(5AH)=7FH

MOVA,P1;A=7FH

MOV40H,#20H;(40H)=20H

MOV30H,40H;(30H)=20H

答案:

每一条指令执行后的结果如注释字段所标。

最后结果为:

R0=30H,R1=5AH,A=7FH,B=5AH,P1=7FH,(30H)=20H,(40H)=20H,(5AH)=7FH。

一.简答题:

(共10分)

1.按照给定的数据类型和存储类型,写出下列变量的说明形式(4分)

(简答题A4,K4,D2)

(1)在xdata区定义无符号字符型数组val3[4]。

unsignedcharxdataval3[4];

(2)在xdata区定义一个指向char类型的指针px。

charxdata*px;

(3)定义可位寻址变量flag。

bitflag;

(4)定义特殊功能寄存器变量P3。

SfrP3=0xB0;

 

2.在有串行通信时,定时器/计数器1的作用是什么,怎样确定串行口的波特率?

(6分)

(简答题A4,K7,D1)

答:

在有串行通信时,定时器/计数器1的作用是串行口发生器。

串行口的波特率根据串行口的工作方式具有不同的计算方式:

方式0的波特率固定为晶体振荡器的十二分之一;

方式1的波特率=2SMOD.(定时器1的溢出率)/32;

方式2波特率=2SMOD.(fosc/64);

方式3波特率同方式1(定时器l作波特率发生器)。

简答题:

简述累加器的ACC的作用。

(3分)(简答题A4,K2,D1)

答:

(1)8位专用寄存器,运算时存放一个操作数。

运算后存放运算结果,所以称它为累加器。

(2)变址寄存器

(3)数据输入输出的中转站

二.分析说明各指令的功能(10分)程序填空和分析题(A5,K5,D2)

设时钟频率为6MHz,下列程序是利用定时器产生1s定时的程序。

用工作模式1定时100ms的初值为3CB0H。

设时钟频率为6MHz,下列程序是利用定时器产生1s定时的程序。

用工作模式1定时100ms的初值为3CB0H。

ORG0000H;

LJMPMAIN;

ORG000BH;T0的中断入口

AJMPSERVE;

ORG2000H;

MAIN:

MOVSP,#60H;设堆栈指针

MOVB,#0AH;设循环次数

MOVTMOD,#01H;设置定时器0工作在方式1,定时方式

MOVTL0,#0B0H;

MOVTH0,#3CH;赋初值

SETBTR0;起动T0

SETBET0;

SETBEA;

SJMP$;中断循环

SERVE:

MOVTL0,#0B0H;

MOVTH0,#3CH;

DJNZB,LOOP;循环结束

CLRTR0;1S到,T0结束

LOOP:

RETI;

程序填空和分析题

三.已知如图并给出下列程序,请在读图并理解程序后回答下列问题:

(4分)

程序填空和分析题(A5,K10,D2)

ADC:

MOVDPTR,#7FFOH

MOVR0,#0A0H

MOVR2,#8

MOVA,#0

LOOP:

MOVX@DPTR,A

JBP3.3,$

MOVXA,@DPTR

MOVX@R0,A

INCDPTR

INCR0

DJNZR2,LOOP

AJMPADC

(1)程序功能为_______。

(2)ADC0809的口地址为_______。

(3)EOC的作用是_______。

(4)程序运行结果存于_______。

答案:

(1)巡回采集8个通道的数据

(2)ADC0809口地址为7FF0H~7FF7H(或7FF8~7FFFH)

(3)EOC为A/D转换结束信号,用来引起中断或查询,以便读取A/D的转换结果。

(4)结果存入外部RAM的A0H~A7H。

程序填空和分析题:

(10分)程序填空和分析题(A5,K5,D2)

以下是利用定时器T1定时,使P1.0输出周期性波形的程序。

填空使程序完整并回答问题:

ORG0000H

(TMOD)89H:

GATE

C/T

M1

M2

GATE

C/T

M1

M2

LJMPMAIN

ORG

AJMPBRT1

控制T0

控制T1

ORG2000H

MAIN:

MOVTMOD,#0

MOVTH1,#0E0H

MOVTL1,#18H

EA

SETB

SETB

SJMP$

BRT1:

MOVTH1,#0E0H

MOVTL1,#18H

P1.0

END

(1)定时器/计数器T1工作在什么方式下?

定时器/计数器的定时时长是多少?

设主频12MHZ。

(2)从P1.0输出是什么波形,周期是多少?

 

答案:

ORG0000H

LJMPMAIN

ORG001BH

AJMPBRT1

ORG2000H

MAIN:

MOVTMOD,#0

MOVTH1,#0E0H

MOVTL1,#18H

SETBEA

SETBET1

SETBTR1

SJMP$

BRT1:

MOVTH1,#0E0H

MOVTL1,#18H

CPLP1.0

RETI

END

(3)定时方式0,定时时长1ms,

(2)方波,2ms

程序填空和分析题:

(10分,每空1分,流程图2分)程序填空和分析题(A5,K3,D2)

设有符号数x存放在内部RAM的30H单元,y存于48H单元,按照下列要求编写程序。

若x>=30,则y=x;若15<x<30,y=2x;若x<=15,y=x

程序段如下,请填空使程序完整:

MOV A,30H

 ACC.7,NEXT3

 A,#30,COMP1

SJMP 

COMP1:

 COMP2

SJMP NEXT1

COMP2:

 A,#15,COMP3

SJMP 

COMP3:

JC NEXT3

 A

SJMP NEXT1

NEXT3:

CPL A

NEXT1:

MOV 48H,

答案:

MOV A,30H

JB ACC.7,NEXT3

CJNE A,#30,COMP1

SJMP NEXT1

COMP1:

JC COMP2

SJMP NEXT1

COMP2:

CJNE A,#15,COMP3

SJMP NEXT3

COMP3:

JC NEXT3

RLC A

SJMP NEXT1

NEXT3:

CPL A

NEXT1:

MOV 48H,A

三.作图分析题。

(10分)(A6,K8+K2,D2)

下图为扩展片外程序存储器和片外数据存储器的电路,请填空(4处)和连线使下图完整,并写出两块芯片的地址范围。

答案:

四.作图分析题:

画出行列式扫描键盘的结构图并阐述其工作原理。

(10分)

(A6,K9,D2)

答案:

做图(4分)

原理(6分)

(1)首先X0~X3,始终接高电平,Y0~Y3给低电平,扫描P1.0~P1.3若全为高电平,则没有键按下,若有低电平,则有键按下。

(2)接着Y0输出低电平,Y1~Y3输出高平,扫描P1.0~P1.3,若全为高电平,则没有键按下,若有低电平,则找出相位,得到所按的键。

(3)再Y1输出低电平,Y0,Y2,Y3输出高电平,重复第2步骤作.

(4)再Y2输出低电平,Y0,Y1,Y3输出高电平扫描

(5)再Y3输出低电平,Y0,Y1,Y2输出高电平扫描

根据据以上扫描,确定以上各键是否按下。

五.编程(12分)

设系统时钟频率为12MHZ,编程实现从P1.1输出周期为1s的方波。

定时器方式控制字(TMOD)89H:

GATE

C/T

M1

M2

GATE

C/T

M1

M2

要求:

1.选择定时器的工作模式,并给定时器方式控制字赋值;

2.计算定时器的初值;

3.用中断处理方式,写出相应的程序。

(A7,K5+K6,D3)

答案:

1.选择T0,定时10ms,用R2对10ms计数50次。

T0选择方式1,方式控制字00000001B

2.初始值X=65536-10000=1101100011110000B,TH0=D8H,TL0=F0H

3.汇编:

ORG0000H

LJMPMAIN

ORG000BH

LJMPINTT0

ORG0100H

MAIN:

MOVTMOD,#01H

MOVTH0,#0DBH

MOVTL0,#0F0H

MOVR2,#00H

SETBEA

SETBET0

SETBTR0

SJMP$

INTT0:

MOVTH0,#0DBH

MOVTL0,#0F0H

INCR2

CJNER2,#32H,NEXT

CPLP1.1

MOVR2,#00H

NEXT:

RETI

END

C语言:

#include

sbitp1_1=P1^1;

chari;

voidmain()

{

TMOD=0x01;

TH0=0xDB;TL0=0xf0;

EA=1;ET0=1;

i=0;

TR0=1;

while

(1);

}

voidtime0_int(void)interrupt1

{

TH0=0xDB;TL0=0xf0;

i++;

if(i==50){P1_1=!

P1_1;i=0;}

}

六.编程(12分)(A7,K10+k8,D3)

已知D/A转换器DAC0832如图所示,口地址为7FFFH,运放电源为+5V,Vref=+5V,

(1)连线(4根),使得DAC0832与单片机之间采用单缓冲接口方式

 

 

线

(2)编程产生正向锯齿波

(3)编程产生三角波

答案:

(2)编程产生正向锯齿波

DASAW:

MOV  DPTR,#7FFFH

  MOV,A,#0

  LOOP:

MOVX  @DPRT,A

  INC  A

  NOP

  AJMP  LOOP

(3)编程产生三角波

MOVDPTR,#7FFFH

MOVA,#00H

LOOP1:

MOVX@DPTR,A

INCA

CJNEA,#0FFH,LOOP1

LOOP2:

MOVX@DPTR,A

DECA

JNZLOOP2

SJMPLOOP1

RET

七.编程:

(12分)(A7,K9,D3)

以下是8031通过8255和微型打印机接口的连接图。

设8255的A口地址70H,B口地址71H,C口地址72H,控制口地址73H。

用C口的PC0模拟负脉冲,提供打印机所需的选通信号,以驱动打印机开始接收数据。

从PC7接收并查询打印机送来的BUSY信号,BUSY=1表示打印机忙。

请编程将内部RAM从20H开始存放的50个数据输出打印。

并对8255工作方式控制字的选择作必要说明。

答案:

说明部分2分,程序初始化部分4分,查询部分3分,循环部分3分,

8255工作方式:

A口方式0输出D6D5=00,D4=0

B口无关,设D2D1=00,C口高4位输入,低4位输出,D3=1,D0=0

控制字:

88H

ORG0000H

MOVR0,#73H

MOVA,#88H

MOVX@R0,A

MOVR1,#20H

MOVR2,#32H

LOOP:

MOVR0,#72H

LOOP1:

MOVXA,@R0

JBACC.7,LOOP1

MOVR0,#70H

MOVA,@R1

MOVX@R0,A

INCR1

MOVR0,#73H

MOVA,#00H

MOVX@R0,A

MOVA,#01H

MOVX@R0,A

DJNZR2,LOOP

END

八.编程(12分)(A7,K5+K6,D3)

用单片机内部定时器和中断方式产生矩形波。

要求:

设单片机晶振频率为6MHZ。

利用定时器,从P1.0输出矩形波,高电平宽度50μs,低电平宽度300μs。

GATE

C/T

M1

M2

GATE

C/T

M1

M2

定时器方式控制字(TMOD)89H:

要求:

1.选择定时器的工作模式,并给定时器方式控制字赋值(2分)

2.

计算定时器的初值(3分)

3.写出相应的程序(7分)

答案:

1.选择T0工作模式2

  MOV TMOD,#02H

2.定时50μs 

  2μs*(256-x)=50μs  x=231  TH0=0E7H  TL0=0E7H

  定时300μs=6*50μs用软件计数器R0

3.ORG 0000H

AJMP MAIN

ORG 000BH

AJMP BRT0

ORG 2000H

MAIN:

MOV TMOD,#02H

MOV TH0,#0E7H

MOV TL0,#0E7H

MOV IE,#82H

SETB P1.0

MOV R0,#0

SETB TR0

LOOP:

SJMP $

BRT0:

CLR TR0

CPL P1.0

INC R0

CJNE R0,#7,NEXT1

SETB P1.0

MOV R0,#0

NEXT1:

SETB TR0

RETI

NOP

NOP

END

九.综合题:

(18分)(A8,K9+K8,D3)

下图为某MCS-51应用系统的3位LED8段共阳极静态显示器的接口电路,

(1)该静态显示器电路与动态扫描的显示器电路相比有哪些优缺点?

(2)写出显示字符“3”、“8”、“5”的段码,注意:

段码的最低位为“a”段,段码的最高位为“dp”段

(3)已知8255A的PA口、PB口和PC口的地址分别为FF7CH、FF7DH、FF7EH,要求8255A的这3个端口为方式0输出,请编写出使3位LED共阳极显示器从左至右显示“3.85”的程序段。

 

8255

(1)优点是:

亮度高,字符不闪烁,占用CPU资源少。

(1分)

缺点是:

占用的I/O口太多,当需要的LED数目较多时,需要外扩展的I/0口。

(1分)

(2)3:

→B0H(1分)

8:

→80H(1分)

5:

→92H(1分)

(3)movDPTR,#0FF7FH

MovA,#80H

Movx@DPTR,A

movDPTR,#0FF7CH

movA,#B0H

movx@DPTR,A

movDPTR,#0FF7DH

movA,#80H

movx@DPTR,A

movDPTR,#0FF7EH

movA,#92H

movx@DPTR,A

RET

十.综合题:

(18分)(A8,K10+K9+K2,D3)

如下图所示,采用51单片机和AD0809数模转换器实现外部电压值的采集,电位器RK的分压值通过AD0809转换成数字量,经单片机做初步的判断,输入值为X,则0≤X<0.5时显示0;0.5≤X<1.5时显示1;1.5≤X<2.5时显示2;2.5≤X<3.5时显示3;3.5≤X<4.5时显示4;4.5≤X≤5时显示5(注意单片机采集值和电压值的对应关系);然后在数码管上显示出来,延时约20ms后再重新采样显示。

要求回答以下问题:

(1)请将单片机正常工作所需的复位电路和晶振电路在上图中补齐,使得单片机可以正常工作。

(2)AD0809的IN0脚的对应单片机的地址是多少?

(要求无效位为1);

(3)数码管为共阴极数码管,写出显示数字0,1,2,3,4,5的段码值;

(4)设计AD转换程序,写出整个电路对应的源程序。

答案:

(1)电路连接如图所示;---------------------------------------------(4分)

(2)地址#7FF8H;----------------------------------------------------------------------(2分)

(4)3FH;06H;5BH;4FH;66H;6DH------------------------------------------------------(3分)

(5)--------------------------------------------------------------------------------------------(9分)

ORG#0100H

LJMPSTART

START:

CLRA

MOVDPTR,#7FF8H

MOVX@DPTR,A

JBP3.2,$

MOVXA,@DPTR

L1:

CLRC

CJNEA,#19H,L2

AJMPShow1

L2:

JCShow0

CLRC

CJNEA,#4CH,L3

AJMPShow2

L3:

JCShow1

CLRC

CJNEA,#7FH,L4

AJMPShow3

L4:

JCShow2

CLRC

CJNEA,#0B2H,L5

AJMPShow4

L5:

JCShow3

CLRC

CJNEA,#0E5,L6

AJMPShow5

L6:

JCShow4

SJMPShow5

Show0:

MOVP0,#3F

CLRP2.0

SJMPDELAY

Show1:

MOVP0,#06H

CLRP2.0

SJMPDELAY

Show2:

MOVP0,#5BH

CLRP2.0

SJMPDELAY

Show3:

MOVP0,#4FH

CLRP2.0

SJMPDELAY

Show4:

MOVP0,#66H

CLRP2.0

SJMPDELAY

Show5:

MOVP0,#6DH

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1