《单片机》期末考试复习题及答案 下载本文

3.下列程序段执行后,(R0)=_7FH_,(7EH)=_00H ,(7FH)=__41H__。 MOV R0,#7EH MOV 7EH,#0FFH MOV 7FH,#40H 1NC @R0 1NC R0 1NC @R0

4.已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALL SUBTRN双字节指令后,(PC)=0345H,(61H)=__25H__,(62H)= _01H_。

5.阅读下列程序,说明其功能。 MOV R0,#data MOV A,@R0 RL A

MOV R1,A RL A RL A

ADD A,R1 MOV @R0,A RET

(data)×10操作

五、编程题(每小题4分,共20分)

1.已知在累加器A中存放一个BCD数(0~9),请编程实现一个查平方表的子程序。

SQR:1NC A

MOVC A,@A+PC RET

TAB:DB 0,1,4,9,16 DB 25,36,49,64,81

2.请使用位操作指令实现下列逻辑操作: BIT=(10H∨P1.0)∧(11H∨CY) ORL C,11H MOV 12H,C MOV C,P1.0 ORL C,/10H

ANL C,12H MOV BIT,C RET

3.已知变量X存于VAR单元,函数值Y存于FUNC单元,按下式编程求Y值。 ?1x?0?0x?0???1x?0Y=?

MOV A,VAR

CJNE A,#0,COMP SJMP RES ;x=0,Y=0

COMP:JNC POSI ;x>0,Y=1 MOV A,#0FFH ;x<0,Y=-1 SJMP RES

POSI:MOV A,#01H RES:MOV FUNC,A RET

4.已知在R2中存放一个压缩的BCD码,请将它拆成二个BCD字节,结果存于SUM开始的单元中(低位在前)。

MOV R0,#SUM MOV A,R2 ANL A,#OFH

MOV @R0,A ;存低字节BCD MOV A,R2 ANL A,#0F0H SWAP A 1NC R0

MOV @R0,A ;存高字节BCD RET

5.将存于外部RAM 8000H开始的50H数据传送0010H的区域,请编程实现。

MOV DPTR,#8000H

MOV R0,#10H MOV R2,#50H

LOOP:MOVX A,@DPTR ;取数 MOVX @R0,A ;存数 1NC DPTR 1NC R0

DJNZ R2,LOOP RET

六、综合应用题(每小题10分,共20分)

1.已知如图,8155的PA口用于输出,PB口用于输入,PC口用于输出,请: (1)写出8155的各I/O口的口地址和存储器的地址范围。 (2)编写出8155初始化程序。B155命令字格式:

(1)

(2)初始化程序:

MOV DPTR,#0100H MOV A,#0DH

MOVX @DPTR,A

2.已知如图并给出下列程序,请在读图并理解程序后回答下列问题: (1)程序功能为巡回采集8个通道的数据。 (2)ADC0809的口地址为7FF0H~7FF7H。

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

(4)程序运行结果存于外部RAM的A0H~A7H。 ADC:MOV DPTR,#7FFOH MOV R0,#0A0H MOV R2,#8 MOV A,#0

LOOP:MOVX @DPTR,A JB P3.3,$

MOVX A,@DPTR MOVX @R0,A 1NC DPTR 1NC R0

DJNZ R2,LOOP AJMP ADC

一、填空题(15分,每空1分)

1.MCS—51单片机的P0—P4口均是并行I/O口,其中的P0口和P2口除了可以进行

数据的输入、输出外,通常还用来构建系统的数据总线和地址总线,在P0—P4口中, P0为真正的双向口,P1—P3为准双向口。

2.MCS—5l单片机的堆栈区只可设置在片内数据存储区,堆栈寄存器5P是位寄存器。 3.MCS—51单片机外部中断请求信号有电平方式和脉冲方式,在电平方式下,当采集到INT0、INT1的有效信号为低电平时,激活外部中断。

4.定时器/计数器的工作方式3是指的将定时器/计数器0拆成两个独立的8位计数器。而另一个定时器/计数器此时通常只可作为串行口的波特率发生器使用。

5.MCS—96单片机的最大寻址空间是64K,该空间的地址范围为0000H—FFFFH,系统上电及复位的程序入口地址为2080H,芯片配置字节CCB的地址为2018H。

二、简答题(15分,每小题5分)

1.51系列单片机具有几个中断源,分别是如何定义的?其中哪些中断源可以被定义为高优先级中断,如何定义?

具有5个中断源,分别是外部中断INT0和外部中断INT1、定时器溢出中断0和定时器溢出中断1以及串行中断。通过对中断优先级寄存器IP的设置,每个中断源都可以被定义为高优先级中断

2.各中断源对应的中断服务程序的入口地址是否能任意设定? 各中断源的入口地址已经在中断地址区中被定义了,不能任意设定

3.如果想将中断服务程序放置在程序存储区的任意区域,在程序中应该作何种设置?请举例加以说明。

如果要将中断服务程序放置在程序存储区的任意区域,在程序中要通过在中断地址区的对应地址上设置跳转指令才可实现对中断服务程序的执行

例如:外部中断O的中断服务程序INTOP放置在程序存储区的任意区域,此时,通过以下方式,可实现对中断服务程序的执行: ORGO003H JMP INTOP

三、参数计算题(16分)

已知一单片机系统的外接晶体振荡器的振荡频率为11.059MHz,请计算该单片机系统的拍节P、状态S、机器周期所对应的时间是多少?指令周期中的单字节双周期指令的执行时间是多少?

P=1/f=(1/11.059×106)=0.09×10-6s =90ns S=2P=2×90ns=180ns 机器周期=12P=12×90ns=1.08μs

双指令周期=2×机器周期=2.16μs

四、改错题(共5分,每小题1分)