单片机复习题(答案)(2)

2020-02-21 15:56

MOV R2,#47H ANL A,R2 CJNE A, #04H, LOOP CPL A

AC=FB CY=0 AC=0 OV=0 R2=47

5 MOV DPTR, #0FF00H INC DPL MOV R3, DPL DJNZ R3, LOOP MOV DPH #0AH AC=00 CY=0 AC=0 OV=0 DPL=01 DPH=0A R3=00 6 MOV A,#48H

ADD A,#54H DA A JNC LOOP

ADDC A,#30H AC=33 CY=0 AC=0 OV=0

7 MOV DPTR, #55AAH MOV A,DPH MOV C,ACC.7 RLC A MOV DPH, A AC=AA CY=0 AC=0 OV=0 DPH=AA 8 MOV 30H,#3FH MOV R1, 30H CLR A XCH A, R1 CPL A AC=C0 CY=0 AC=0 OV=0 30H=3F R1

1、从BLOCK单元开始存放一组有符号数,长度存放在LEN单元,统计中间小于零(大于零、等于零)的数的个数,存放在NEG单元。编写程序,并且在每条指令后面加上注释。 <0

BLOCK DATA 20H

LEN DATA 30H NEG DATA 40H

START: MOV R0, #BLOCK MOV R1, LEN MOV R2, #00H LOOP: MOV A, @R0 JNB ACC.7, NEG1 INC R2 NEG1: INC R0

DJNZ R1, LOOP MOV NEG, R2 >0

BLOCK DATA 20H

LEN DATA 30H

6

POS DATA 40H

START: MOV R0, #BLOCK MOV R1, LEN MOV R2, #00H LOOP: MOV A, @R0 JZ POS1

JB ACC.7, POS1 INC R2 POS1: INC R0

DJNZ R1, LOOP MOV POS, R2 =0

BLOCK DATA 20H

LEN DATA 30H ZER DATA 40H

START: MOV R0, #BLOCK MOV R1, LEN

MOV R2, #00H ;0计数器清0 LOOP: MOV A, @R0 HERE: JNZ NOTZ

INC R2 ;0计数器+1 NOTZ: INC R0

DJNZ R1, LOOP MOV ZER, R2

2、将30H单元中的二进原码转换为三位BCD码和符号位(正数0000,负数1111),分别存放在FIRST(符号位、百位)SECON(十位、个位),编写程序,并且在每条指令后面加上注释。

FIRST DATA 20H SECON DATA 21H START: MOV A, 30H JB ACC.7, NEG MOV R2, #00H SJMP LOOP

NEG: MOV R2, #0F0H LOOP: ANL A, #7FH MOV B, #64H DIV AB

ORL A, R2 MOV FIRST,A MOV A, B MOV B, #0AH DIV AB SWAP A

ORL A, B MOV SECON, A

3、一个二进制补码存放在X单元,其真值记为(X),函数放在Y单元,其真值记为(Y)。如果(X)<0,(Y)= -128;(X)>0,(Y)=127;(X)=0,(Y)= 0。编写程序,并且在每条指令后面加上注释。 X DATA 30H

Y DATA 31H

START: MOV A, X JZ COMP

JNB ACC.7, POSI MOV A, #80H SJMP COMP POSI: MOV A, #127 COMP: MOV Y, A

4、从BLOCK单元开始存放一组有符号数,长度存放在LEN单元,将中间小于零的数取补,仍然存放在原来单元。编写程序,并且在每条指令后面加上注释。 BLOCK DATA 20H

LEN DATA 30H ORG 0000H LJMP 0030H ORG 0030H

START: MOV R0, #BLOCK MOV R1, LEN LOOP: MOV A, @R0

7

JNB ACC.7, NEG1 CPL A INC A NEG1: INC R0

DJNZ R1, LOOP SJMP $ END

5、从BLOCK单元开始存放一组无符号数,长度存放在LEN单元,16位和的低8位存放在SUM单元,16位和的高8位存放在SUM+1单元。编写程序,并且在每条指令后面加上注释。 LEN DATA 20H

SUM DATA 21H BLOCK DATA 23H START: CLR A

MOV R2, LEN

MOV R3, #00H ;R3放高位 MOV R1, #BLOCK LOOP: ADD A, @R1 JNC LOOP1

INC R3 ;有进位 R3+1 LOOP1: INC R1

DJNZ R2, LOOP MOV SUM, A MOV SUM+1, R3

6、从BLOCK单元开始存放一组无符号数,长度存放在LEN单元,从中间找出最小的数,存放在MIN单元。编写程序,并且在每条指令后面加上注释。 LEN DATA 20H

MIN DATA 21H BLOCK DATA 22H

START: MOV A, #0FFH MOV R2, LEN MOV R1, #BLOCK LOOP: CLR C

SUBB A, @R1 JC NEXT

MOV A, @R1 SJMP NEXT1

NEXT: ADD A, @R1 NEXT1: INC R1

DJNZ R2, LOOP MOV MIN, A 四、中断

1、 在MCS-51单片机中断的固定查询次序中,最先查询的标志位是( B)

(A)TF0 (B)IE0 (C) TF1 (D)IE1 2、 在MCS-51单片机中断的固定查询次序中,最后查询的是(D) (A)TF0 (B)TE0 (C) TF1 (D)RI或TI

3 、 在MCS-51单片机中断查询的固定次序是什么?现在要让串行口得到最先响应,应该采用什么方法? INT0 TO INT1 T1串口 通过中断寄存器IP设定串行口为高优先级,其它中断为低优先级。 4 、 8051单片机INT0的中断入口地址是(C)

(A)0013H (B)000BH (C)0003H (D)001BH 5、 MCS-51单片机串行口中断入口地址为 0023 H。 6 、下列地址中不是中断入口地址的是(A)

(A)0000H (B)0003H (C)000BH (D)0013H 7、 考虑各种可能情况,MCS-51单片机最长响应中断的时间为(D)

(A)3个机器周期 (B)4个机器周期 (C)6个机器周期 (D)8个机器周期 8 、考虑各种可能情况,MCS-51单片机最长响应中断的时间为 8个机器周期 。 9、 MCS-51有 2个专用的外中断源。

8

10、 MCS-51单片机外中断的触发信号有低电平和 负跳变 二种。 11、 8051外部中断的两种触发方式为(C)

(A)低电平触发 (B)高电平触发 (C)低电平或下跳沿触发 (D)高电平或上跳沿触发 12 、使用外部中断源初始化一般要做什么事情?如果外中断采用低电平触发,还应该采取什么措施? 1.设置优先级2.设置触发方式 3.开两级中断。如果外中断采用低电平触发软件或硬件拆除低电平信号 13、 8051单片机五个中断请求标志位中,串行口中断请求标志位,在CPU响应中断后,要用指令来清除。 14 、8051单片机响应中断后,需由用户采用软件来清除中断标志的是(A) (A)TI,RI (B)TF0,TF1 (C)TE0,TE1 (D)TF0,TE0 15 、MCS-51中断优先级共有 2 级。

16、 在CPU响应中断时,保护断点和保护现场各是什么含义?

1.保护断点是中断产生后自动保护当前PC 2. 保护现场是根据程序需要,要用软件实现。

17、 8051单片机中哪些是外部中断源?哪些是内部中断源?8051的五中断源是由硬件产生的,所以在响应后,其中断标

志也都是硬件清除的。这句话是否正确?为什么?

INT0 INT1是外部中断源,TO T1 串行口是内部中断源。不对,串行口是用软件清除的。 18、 8051 CPU在响应中断后,通过执行 CLR EA 指令后,可禁止中断嵌套。 19 、MCS-51单片机中断响应的条件是什么?

1.CPU对中断是开放的 2.CPU执行完一条指令后,才能响应中断。3.若CPU正响应中断申请时,当新检测到优先级更高的中断申请时会停止正在执行中断服务程序,去执行更高的级别的中断服务程序。 20 、当外设有中断请求时,8051CPU响应中断可以(D )

(A)立即响应 (B)在当前周期响应(C)在指令执行过程中响应 (D)在现行指令执行完后响应 21、 CPU与外设间采用中断方式和查询方式传送数据各有什么特点?

答:查询方式是CPU不断地查询外部设备状态,以确定是否可以进行数据传送;中断源查询则是在收到中断请求后,CPU通过查询认定中断源,这种查询只需进行一篇即可完成,不必反复进行。 22 、MCS-51单片机中断响应开始和结束时,是如何使用堆栈的?

1.中断响应开始时,首先将当前PC压栈,先压低8位,再压高8位2.结束时当前PC先出高8位后低8位 3.都是自动进行的。 五、定时

1、 若8051单片机内定时器T0的最大定时时间为65.536ms,则此时单片机的时钟频率、定时初值分别是(C) (A)6MH 0000H (B)6MH 0001H (C)12MH 0000H (D)12MHZ 0001H

2 、在一个MCS-51单片机系统中,时钟信号的频率12M,16位定时器最大可定多少时间?此时定时器初值应设定为多少?

为什么?如果系统要定的时间超过最大定时时间,可以采取哪些措施? 65.536ms,初值设0000H 因为定时器为加计数器,措施:加循环计数器 3、位二进制计数器的最大计数值是 2 。

4 、在MCS-51定时/计数器4种工作方式中,最大的计数值是(A) (A)2 (B)2

16

13

13

(C)2 (D)由人工设定

8

5 、当8051单片机的时钟脉冲为6MHZ时,其定时器T0的最大定时时间可以达到(B) (A)65.536 ms (B)131.072 ms (C)6 ms (D)12ms

6、 MCS-51单片机定时/计数器的13位和16位工作方式的最大计数值是多少?当计数初值是1555H时,在这两种方式

的计数器初值如何设定?

8192、65536 16位:TH0 15H TLO 55H 13位:THO AAH TLO 15H 7 、MCS-51定时/计数器有 4种工作方式。

9

8、 MCS-51单片机定时/计数器T0及T1工作方式有哪几种?其含意是什么?

0:13位计数器 1:16位2:自动装入计数初值8位重装计数器3:T0分为两个8位计数器 T1停止计数 9 、MCS-51内部的定时/计数器是 加计数计数器。 10 、MCS-51内部的定时/计数器是(A)

(A)加计数计数器 (B)可用程序设定为加或减计数的计数器 (C)减计数计数器 (D)可用硬件设定为加或减计数的计数器

11、 MCS-51定时/计数器发出中断申请的时刻是(B)

(A)发出停止计数命令时 (B)计数器数值由全1变成全0时; (C)发出开始计数命令时 (D)计数器数值由全0变成全1时; 12、 当MCS-51定时/计数器的计数值由 全1变为全0时,它发出中断申请。 13、 当定时/计数器用作定时用途时,所输入的计数脉冲必须是具有周期性。 14、 MCS-51定时器用作内部定时时,计数脉冲周期为时钟信号周期的 12倍。 15 、如何使用MCS-51单片机定时/计数器?用作定时器和计数器的主要差别是什么?

1.对TMOD寄存器赋值,为确定定时器工作方式2.置定时/计数器的初值,直接将初值写入寄存器TH0、TL0/TH1、TL13.根据需要对寄存器IE置初值,开放定时器中断4.对TCON寄存中的TR0或TR1置位,启动定时器,置位以后,计数器即按规定的工作方式和初值进行计数或定时。主要差别:是计数脉是否有周期性。 16 、当MCS-51定时器用作内部定时时,计数脉冲频率为晶振频率的 1/2 。 17 、定时器的工作方式控制字应写入的特殊功能寄存器是( B) (A)TL1、TL0 (B)TMOD (C)TCON (D)TL0、TMOD 18 、MCS-51定时/计数器的初始化包含哪几个步骤?

1.对TMOD寄存器赋值,为确定定时器工作方式2.置定时/计数器的初值,直接将初值写入寄存器TH0、TL0/TH1、TL13.根据需要对寄存器IE置初值,开放定时器中断4.对TCON寄存中的TR0或TR1置位,启动定时器,置位以后,计数器即按规定的工作方式和初值进行计数或定时。根据晶体振荡频率确定计数器脉冲的周期、确定计数器值、选择控制方式、确定初值

19 、定时/计数器0 的中断入口地址是(A)

(A)000BH (B)0013H (C)001BH (D)0023H 20、 定时/计数器1 的中断入口地址是(C)

(A)000BH (B)0013H (C)001BH (D)0023H

21、 MCS-51定时/计数器设为8位重装计数方式时可用作串行口的 波特率发生器 。

2#、在一个MCS-51单片机系统中,欲使定时计数器定时到规定时间后产生中断。在对其初始化时,应考虑那些有关问题? 根据晶体振荡频率确定计数器脉冲的周期、确定计数器值、选择控制方式、确定初值

22、 要求从P1.1脚输出下图所示的波形(要求用定时器T0的方式1实现定时)。设fosc=12MHz。定时计数器控制字

TMOD为:

(1)计算T0的初值。(2分)

(2)编写有关的主程序(4分)和T0的中断服务子程序(4分)。

10


单片机复习题(答案)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:对中职英语有效教学的几点思考

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: