单片机复习题带答案版Word文件下载.docx

上传人:b****5 文档编号:20667681 上传时间:2023-01-24 格式:DOCX 页数:27 大小:235.70KB
下载 相关 举报
单片机复习题带答案版Word文件下载.docx_第1页
第1页 / 共27页
单片机复习题带答案版Word文件下载.docx_第2页
第2页 / 共27页
单片机复习题带答案版Word文件下载.docx_第3页
第3页 / 共27页
单片机复习题带答案版Word文件下载.docx_第4页
第4页 / 共27页
单片机复习题带答案版Word文件下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

单片机复习题带答案版Word文件下载.docx

《单片机复习题带答案版Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机复习题带答案版Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。

单片机复习题带答案版Word文件下载.docx

方法二、MOVR0,B

MOVB,A

MOVA,R0

方法三、PUSHACC

PUSHB

POPACC

POPB

28、何谓堆栈?

为什么要设置堆栈?

栈区是怎么样确定的?

数据进栈、出栈有何种规律?

出栈用什么指令?

进栈用什么指令?

进栈、出栈时堆栈指针将怎样变化?

29、基址寄存器加变址寄存器间接寻址指令中使用PC与DPTR有何区别?

30、区分下列指令的不同功能:

MOVA,#24H与MOVA,24H

31、分析8051单片机数据传送指令中MOV、MOVC、MOVX的作用。

32、JMP、AJMP、SJMP指令有何区别?

33、用于外部数据传送的指令有哪几条?

有何区别?

34、MCS-51单片机扩展系统中,为什么P0口要接一个8位的锁存器,而P2口却不接?

35、单片机系统中的定时和计数功能有何区别?

分别适用于什么场合?

简述其工作原理。

36、说明MCS-51汇编语言源程序的基本格式。

37、请举例说明MCS-51汇编语言中伪指令的作用。

38、简述/PSEN控制信号线的作用。

39、基址寄存器加变址寄存器间接寻址指令包括哪两种?

请列举说明。

40、A/D转换接口中采样保持电路的作用是什么?

省略采样保持电路的前提条件是什么?

41、单片机用于外界过程控制中,为何要进行A/D、D/A转换?

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

43、在既有片内程序存储器、又扩展片外程序存储器的情况下,两部分存储器的编址如何进行?

44、用线选法和译码扩展存储器各有什么特点?

45、简述MCS-51单片机扩展时/WE、/RD控制信号线的作用。

46、请说明动态扫描和静态扫描显示方式的特点。

47、区分下列指令的不同功能:

MOVA,R0与MOVA,@R0。

48、访问位地址2BH和字节地址2BH的区别是什么?

49、简述中断系统初始化步骤

1、置位相应中断源的中断允许

2、设定所有终端源的中断优先级

3、若为外部中断,则应规定低电平还是负边沿的中断触发方式

50、简述键盘的工作原理。

二、程序题

1、设被加数和加数分别在以ADR1和ADR2为初址的片内数据存储器中,自低字节起,由低字节依次存放;

他们的字节数为L;

请编程将他们加得的和放在原存放被加数的单元中。

MOVR0,#ADR1

MOVR1,#ADR2

MOVR2,L

LOOP:

MOVA,@R0

ADDCA,@R1

MOV@R0,A

INCR0

INCR1

DJNZR2,LOOP

DONE:

2、设被减数和减数分别在以ADR1和ADR2为初址的片内数据存储器中,自低字节起,由低字节依次存放;

被减数够减,即最稿高字节想减时不至借位;

请编程将他们减得的差放在原存放被减数的单元中

MOVR0,#ADR1

MOVR1,#ADR2

MOVR2,#L

CLRC

LOOP:

MOVA,@R0

SUBBA,@R1

MOV@R0,A

INCR0

INCR1

DJNZLOOP

3、将ROM中自2000H单元起的100个数,按序移至片外RAM自2080H单元起的内存区间去MOVDPTR,#2000H

MOVR1,#64H

MOVR2,#0

MOVA,R2

MOVCA,@A+DPTR

MOVR3,A

MOVA,#8OH

ADDA,R2

MOVDPL,A

MOVA,R3

MOVX@DPTR,A

INCR2

MOVDPL,#0

DJNZR1,LOOP

DONE:

4、编写程序将片外数据存储器地址为1000H~102FH的数据块,全部搬迁到片内RAM30H~5FH中,并将原数据块区域全部清零。

MOVDPTR,#1000H

MOVR0,#30H

MOVR1,#30H

LOOP:

MOVXA,@DPTR

MOV@R1,A

CLRA

MOVX@DPTR,A

INCDPTR

INCR1

DJNZR0,LOOP

5、设有100个有符号数,连续存放在以2000H为首址的片外数据存储器中,试编程统计其中正数、负数和零的个数,统计的个数分别放在R0、R1、R2中。

CLRA

MOVR0,A

MOVR1,A

MOVR2,A

MOVDPTR,#2000H

MOVR3,#100

JZZERO

JBA.7,NEG

INCR0

SJMPLL

ZERO:

INCR2

SJMPLL

NEG:

LL:

INCDPTR

DJNZR3,LOOP

6、将片内RAM60H~69H单元中的10个数相加,和的低8位存入7EH,高8位存入7FH。

MOV7FH,#00H

MOVR1,#09H

MOVR0,#60H

MOVA,@R0

ADDA,@R0

JNCLP1

INC7FH

LP1:

DJNZR1,LOOP

MOV7EH,A

7、将寄存器A中的十六进制数(该数为0—F)转换为ASCII码,转换后的数仍然放在寄存器A中。

MOVR2,A

ADDA,#0F6H

MOVA,R2

JNCAD30

ADDA,#07H

AD30:

ADDA,#30H

8、编写程序,统计自P1口输入的数字串中的正数、负数及零的个数,统计的个数分别存放在R0、R1、R2三个工作寄存器中。

ENTER:

MOVA,P1

JBP1.7,NEG

SJMPENTER

SJMPENTER

9、编写程序,将外部数据存储器中的5000H—50FFH单元全部清零

MOVDPTR#5000H

MOVR0,#00H

CLRA

MOVX@DPTR,A

INCDPTR

DJNZR0,LOOP

HERE:

SJMPHERE(RET,SJMP$等)

10、分析下列程序的功能

PUSHACC

PUSHB

POPACC

POPB

是通过累加器ACC与寄存器B数据交换

11、如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:

POPDPH;

POPDPL;

POPSP;

则:

(DPH)=___3CH___;

(DPL)=_____5FH_____;

(SP)=_____50H_____;

12、如果(DPTR)=5678H,(SP)=42H,(3FH)=12H,(40H)=34H,(41H)=50H,(42H)=80H,则执行下列指令后:

POPDPH

POPDPL

RET

(PCH)=__34H__;

(PCL)=___12H____;

(DPH)=__80H__;

(DPL)=___50H__;

13、分析以下程序的功能。

程序执行后片内RAM42H、43H单元和进位标志位C

中内容为多少?

MOVR0,#40H

MOVA,@R0

INCR0

ADDA,@R0

MOV@R0,A

CLRA

ADDCA,#0

MOV@R0,A

14、阅读并分析以下程序片段的功能。

MOVR0,#40H

MOVR1,#10H

CLRC

MOVA,@R0

INCR0

SUBBA,@R0

JNCNEXT

DECR0

XCHA,@R0

INCR0

MOV@R0,A

NEXT:

DJNZR1,LOOP

15、试编写程序段,将片内RAM的20H-2FH共16个连续单元清零。

16、分析下列程序段的功能。

MOV30H,#0

MOV31H,#0

MOV32H,#0

MOVDPTR,2000H

MOVR1,#100

L4:

MOVXA,@DPTR

INCDPTR

CJNEA,#0,L1

INC32H

SJMPL2

L1:

JCL3

INC30H

L3:

INC31H

L2:

DJNZR1,L4

SJMP$

17、读程序:

已知:

在8051单片机的片内RAM中,(30H)=25H,(31H)=1DH

MOVR0,#30H

MOVA,@R0

SWAPA

INCR0

XCHDA,@R0;

交换低半字节

MOV30H,A

执行该程序后,片内RAM30H单元内的数据是___,31H单元内的数据是___。

(30H)=5DH,(31H)=12H

18、已知:

片内RAM(30H)=98H,(31H)=AFH

MOVR0,#31H

MOVA,@R0

DECR0

SUBBA,@R0

MOVB,#10

DIVAB

MOV@R0,A

INCR0

MOV@R0,B

执行该程序后,片内RAM30H内的数据是(),31H内的数据是()

01H07H

19、已知:

片内RAM(30H)=12H(31H)=34H,片外RAM(30H)=56H,(31H)=78H

MOVR1,#30H

MOVX,A,@R1

MOV@R1,A

INCR1

MOVXA,@R1

56H78H

20、设MCS-51晶振为12Mz,设计一个软件延时程序,延时时间为10ms。

21、已知:

MOVA,@R1

MOVX@R1,A

执行该程序后,片内RAM30H内的数据是(),片外31H内的数据是()

56H34H

22、编写程序将片外数据存储器地址为1000H~102FH的数据块,全部搬迁到片内RAM30H~5FH中,并将原数据块区域全部清零。

START:

23、设ROM、片内RAM、片外RAM各有关单元的内容示如下图,问复位执行下列程序段后(A)=?

0000AJMP030H

ORG0030H

0030MOVR0,#32H

MOVR1,A

MOVXA,@R1

MOVCA,@A+DPTR

 

24、在外部ROM/EPROM中,从2000H单元开始依次存放0~5的平方值:

0、1、4、9、…25,要求依据累加器中的值(0~5)来查找所对应的平方值,分析下述程序的结果

MOVDPTR,#2000H

MOVA,#05H

MOVCA,@A+DPTR

执行结果:

(DPTR)=2000H,(A)=25

25、把外部RAM单元中从8000H开始的30个字节数据传送到8100H开始的单元中,编程实现

MOVA,R4

JZA,EXIT

MOVXA,@DPTR

INCDPTR

PUSHDPH

PUSHDPL

MOVDPH,R3

MOVDPL,R2

MOV@DPTR,A

INCDPTR

MOVR2,DPL

MOVR3,DPH

POPDPL

POPDPH

DJNZR4,#00H,LOOP

EXIT:

RET

26、编写程序,把外部RAMl000H-10FFH区域内的数据逐个搬到从2000H开始的区域。

MOVDPL,#00H

MOVDPH,#10H

MOVXA,@DPTR

MOVDPH,#20H

INCDPL

MOVA,DPL

CJNEA,#0FFH,LOOP

END

27、阅读下列程序,并要求:

(l)说明程序的功能。

(2)写出涉及的寄存器及片内RAM单元的最后结果

MOVR0,#40H

ADDA,@R0

MOV@R0,A

CLRA

ADDCA,#0

说明:

片内RAM(40H)=98H,(41H)=AFH。

R032H;

A31H;

R131H;

A33H;

A30H

28、编写程序生成1000us的等宽脉冲方波。

机器晶振为6Mhz,使用T1以方式1工作,由P1.0输出。

MOVTH1,#0FFH

MOVTL1,#06H

MOVTMOD,#10H

SETBEA

SETBET1

SETBTR1

HERE:

SJMPHERE

INIT:

CPLP1.0

RETI

29、分析下面程序的执行结果

MOVSP,#2FH

MOVA,#30H

MOVB,#31H

PUSHA

POPA

POPB

30、将片外3500H单元中的内容压入堆栈,弹出到片内40H单元。

MOVDPTR,#3500H;

MOVA,@DPTR

MOV20H,A

MOVSP,#30H

PUSH20H

POP40H

31、已知当前PC值是2010H,请用两种方法将程序存储器20F0H中的常数送入累加器A中,写出各自程序段。

方法

(1):

MOVA,#0E0H

MOVCA,@A+PC

方法

(2):

MOVDPTR,#20F0H

MOVA,#0

MOVCA,@A+DPTR

三、综合题

1、在8031芯片外扩展32KBEPROM(27256)和32KBRAM(62256)个一片来组成较完整的单片机系统

(1)画出8031与存储器直接完整的连接图(请标明个连线的信号名称)

(2)指出连接后个存储芯片的地址范围

(3)将外面数据存储器单元8000H-9FFFH中的数据拷贝到同一芯片内的C000H-DFFFH,编写程序并加以注释(特别要说明程序中所用个寄存器的用途)。

27256的地址范围是0000H-7FFFH,62256的地址范围是8000H-FFFFH,程序入下:

MOVDPTR,#8000H

LOOP:

MOVXA,@DPTR

ORLDPH,#40H

MOVX@DPRT,A

POPDPH

INCDPRT

MOVA,DPH

CJNEA,#0A0H,LOOP

SJMP$

2、试将8031单片机外接一片EPROM2764和一片8255组成一个应用系统。

要求画出扩展系统的电路连接图,比国内指出程序存储器和8255端口的地址范围。

2764是8KB的EPROM,8255是有三个8位并行I/O口的可编程接口芯片。

一种简单的扩展系统硬件连接图如图所示。

2764程序存储器地址范围为:

0000H-1FFFH。

8255的A口地址为7CH,B口地址为7DH,C口地址为7EH,控制寄存器地址为7FH。

3、请设计一个由单片机控制的大会发言限时器,例如限时15分钟。

具体要求是:

当发言者开始讲话时,主持人手动按下“开始”键,15分钟后由微机控制系统发出提示信号(提示信号可以自行设定),假定单片机晶振频率选用6MHz,另可提供1Hz稳频脉冲源。

请画出电路示意图,并用中断方式完成本题的程序设计。

可利用内部定时器对片外的1s脉冲源计数900次,从而达到15分钟定时。

用查询方式等待手动“开始”信号,有信号来,则计数器开始工作。

当计数900次满时,发出中断请求信号,此时让指示灯亮(可安排P1.0引角控制灯的亮/灭)。

硬件电路示意图如图所示:

控制程序如下:

AJMPSTART

ORG0BH

CLRTR0;

停止计数/计时

CLREA;

关中断

SETBP1.0;

指示灯亮

RETI

START:

CLRP1.0;

指示灯灭

MOVTMOD,#05H;

选用T0计数,方式1

MOVTH0,#0FCH;

计数900次

MOVTL0,#7CH

SETBP1.0;

为输入先预置“1”

JNBP1.7,$;

等待“开始”按钮的下降烟到来

JBP1.7,$

SETBTR0;

开始计数

SETBEA;

T0开中断

SETBET0

SJMP$

4、某微机系统用2片2764芯片组成的R0M存储器系统如下图,请回答:

(1)图中采用的译码法与线选法相比有什么特点?

(2)写出芯片2764

(1)、2764

(2)的地址范围。

(3)与2764

端相连的是8031的哪一个控制信号。

(4)图中存储器的总容量(以K为单位)。

(5)系统中74LS373与74LS138芯片各自的功能是什么?

(1)译码法占用I/O引脚少,可扩展更多的片外存储器,但要多用硬件;

线选法少用硬件,接线简单,但是I/O口可能不够用。

随着单片机容量的增大,线选法优点更趋突出,缺点已不明显。

(2)2764

(1):

4000H~5FFFH,2764

(2):

6000H~7FFFH。

(3)与2764

端相连的是8031的信号

(4)16K

(5)74LS373,地址锁存器,用以将P0口复用的地址/数据信号分离;

74LS138,3-8译码器,提供扩展存储器片选信号。

5、根据下图所示的单缓冲方式D/A转换接口电路,试编写两个程序,分别使用DAC0832输出负向锯齿波和15个正向阶梯波。

(1)DAC0832的片选信号只用到地址线A0,且两级缓冲同时有效,都由单片机的WR信号控制。

这时控制动作就变的十分简单,任何时候,只要将A0置0并附加片外的xie动作即可启动DAC工作。

(2)由于DAC转换速度快于一条指令的执行速度,所以不必考虑等待转换完毕的时间。

输入负向锯齿波的程序为:

MOVR0,#FE;

设定能让A0=0的DAC地址

MOVA,#FFH;

从最高数字量开始转换

MOVX@R0,A;

让A0=0,且WR有效,送出数字量,启动DAC工作

DECA;

让数字量递减,形成负向波形

LCALLDELAY

SJMPLOOP;

循环徍复,产生一系列的负向锯齿波

DELAY:

……

RET

15个正向阶梯形波,即将00H-FFH分16等级,以形成15个台阶。

此时数字递增幅度要加大为每次16,对应程序为:

MO

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

当前位置:首页 > 总结汇报 > 学习总结

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

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