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

以给出的指令操作码为依据,请判断MCS—5l单片机的下列各条指令的书写格式是否有错误,如有请说明错误原因。

1.MUL R0R1 乘法指令应使用A、B寄存器操作

2.MOV A,@R7间接寄存器使用R7有误,间址寄存器只能使用R0、R1 3.MOV A,#3000H 8位累加器A不能接受16位数据

4.MOVC @A+DPTR,A MOVC指令为对程序存储区操作指令,累加器的内容不可通过变址方式送入程序存储器,两操作数写反了

5.LJMP #1000H 长转移指令中的操作数为16位转移地址,不能用立即数的形式来表达。

五、寻址方式(5分,每问1分)

说明MCS—51单片机的下列各条指令中源操作数的寻址方式(可直接在每条指令后面书写) 1.ANL A,20H 直接寻址

2.ADDC A,#20H 立即寻址 3.JZ rel 相对寻址 4.CLR C 位寻址

5.RRA 寄存器寻址

六、使用简单指令序列完成以下操作(12分)

1.请将片外RAM20H—25H单元清零

MoV R0,#20H

MOV R7,#06H CLR A

LOOP:MOVX @R0,A INC R0

DJNZ R7,LOOP

2.请将ROM3000H单元内容送R7

MOV DPTR, #3000H

CLR A

MOVC A,@A+DPTR

MOV R7,A

七、编程题(18分)

已知一MCS—51单片机系统的片内RAM 20H单元存放了一个8位无符号数7AH,片外扩展RAM

的8000H存放了一个8位无符号数86H,试编程完成以上两个单元中的无符号数相加,并将和值送往片外RAM的01H、00H单元中,同时将所编写程序运行完成后的数据和状态添入下表中给出的PSW的有关位以及寄存器A、DPTR和RAM单元中。

CY 0 A 01H DPTR 8000H 片外01H 0lH 片外00H 00H 片外8000H 86H MOV DPTR,#8000H ;加数单元地址送DPTR MOVX A,@DPTR ;取加数之一 ADD A,20H ;两数相加

MOV R0,#00H ;和值的低位送片外00H单元 MOVx @R0,A INC R0

CLR A ;计算和值的高位 ADDC A,#00H

MOVx @R0,A ;高位送片外01H单元 RET

八、判读电路题(14分)

下图为MCS—51单片机系统中混合扩展多片存储器2764、6264芯片部分连线电路图。 试分析电路并回答下列问题:

1.请简单叙述2764芯片的功能、容量,在电路中起什么作用?

2764为EPROM型存储器,其容量为8K,在电路中通常是作为程序存储器使用

2.请简单叙述6264芯片的功能、容量,在电路中起什么作用?

6264为随机存储器,其容量为8K,在电路中通常是作为数据存储器使用

3.请分析各片2764、6264所占用的单片机数据存储空间的地址范围是多少? U3:0000H—1FFFH U4:2000H—3FFFFH U5:Co00H—DFFFH U6:E000H—FFFFH

一、填空题(每空1分,共10分)

1.单片机内有组成微机的主要功能部件CPU、存储器 和I/O接口。

2.堆栈的特性是 先进后出,8051的堆栈一般开辟在内部RAM30H~7FH的范围内,其堆栈指针是SP。

3.RS232C是串行通信总线标准。 4.8255是通用的可编程并行接口。

5.MCS-51有一个全双工的 异 步串行口,有 4 种工作方式。

二、简述题(每题5分,共25分) 1.单片机的特性主要有哪些?

单片机具有体积小、可靠性高、控制功能强、使用方便、性能价格比高、容易产品化等特点

2.8031、8051、8751有何异同?

8051、8751和8031均为8位单片机,其内部结构是基本相同的

不同点为:8051内部有4KBROM,8751内部有4KBEPROM,而8031内部无程序存储器

3.MCS-51的位存储区在哪里?寻址范围是多少?

内部RAM的20~2FH为位寻址区域,位地址范围00~7FH;特殊功能寄存器中地址能被8整除的字节地址单元也可以位寻址,位地址范围80~FFH;位存储区共256个位

4.8051的定时器/计数器有几个?是多少位的?有几种工作方式?其工作原理如何? 8051有2个16位的定时器/计数器,有4种工作方式。

定时器与计数器的工作原理是相同的,8051的定时器/计数器是根据输入的脉冲进行加1计数,当计数器溢出时,将溢出标志位置1,表示计数到预定值。

5.8051有哪几个中断源?哪些是内部中断源?哪些是外部中断源?

8051有5个中断源,分别是定时器/计数器T0、T1的溢出中断TF0、TF1,串行口的收/发中断RI/TI,外部中断 、 ;其中定时器/计数器T0、T1的溢出中断TF0、TF1、串行口的收/发中断RI/TI是内部中断源,外部中断 、 是外部中断源。

三、判断题(20分)

1.判断以下各条指令是否正确(LL1和PROC为标号)(10分) (1)MOVX @R0,B X (2)MOV A,30H O (3)MOVX A,30H X (4)ADDC A,R7 O (5)SUB A,R2 X (6)ANL #99H ,36H X (7)MOV C,ACC.0 O (8)ORL P1.0,P3.1 X (9)JBC P0,LL1 X (10)ACALL PROC O

2.判断以下说法是否正确,不正确予以改正。(10分)

(1)单片机是面向数据处理的。×单片机是面向控制的

(2)定时器与计数器的工作原理均是对输入脉冲进行计数。O

(3)由于MCS-51的串行口的数据发送和接收缓冲器都是SBUF,所以其串行口不能同时发送和接收数据,即不是全双工的串行口。

×由于MCS-51的串行口的数据发送和接收缓冲器都是SBUF,但在物理上,实际上是两个缓冲器,其串行口可以同时发送和接收数据,是全双工的串行口。

(4)END表示指令执行到此结束。× END表示指令汇编到此结束

(5)ADC0809是8位逐次逼近式模/数转换接口。O

四、阅读程序(20分)

1.下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后,A中的结果是什么?(5分)设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH。 (1)MOV A,#48H ;寻址方式:立即寻址 (A)=48H (2)ADD A,60H ;寻址方式:直接寻址 (A)=4EH (3)ANL A,@R0 ;寻址方式:寄存器间接寻址 (A)=09H

2.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?(15分) MOV R1,#30H ;(R1)= 30H MOV A,#64H ;(A)= 64H ADD A,#47H ;(A)= ABH ,(CY)= 0, (AC)= 0 DA A ;(A)= 11H ,(CY)= 1 , (AC)= 1 MOV @R1,A ;(R1)= 30H ,(30H)= 11H

此程序段完成的功能:求两个BCD码数(64H和47H)的和,并将结果放在内部RAM的30H单元。

五、计算(画图)题(10分)

若8051的晶振频率fosc为6MHz,定时器/计数器T0工作在工作方式1,要求产生10ms定时,写出定时器的方式控制字和计数初值(分别写出TH0与TL0值)。 (1)T0:定时方式,工作在方式1。 方式字TMOD=01H

(2)fosc=6MHz,16位计数器,10ms定时,设计数初值为a, t=12/ fosc*(216 - a) 10*103=12/6 *(216 - a) a=60536=EC78H 即TH0=ECH TL0=78H 所以:TMOD=01H TH0=ECH TL0=78H 六、编程题(15分)

1.阅读程序并填空,形成完整的程序以实现如下功能。(5分)

有一长度为10字节的字符串存放在8031单片机内部RAM中,其首地址为40H。要求将该字符串中每一个字符加偶校验位。(以调用子程序的方法来实现。) 源程序如下: ORG 1000H MOV R0,#40H MOV R7,#10 NEXT: MOV A,① ACALL SEPA MOV @R0,A INC R0 DJNZ ②,NEXT SJMP $ SEPA: ADD A,#00H ③ PSW.0,SRET ORL A,④ SRET: ⑤

① @R0 ② R7 ③ JNB ④ #80H ⑤ RET

2.从内部RAM30H单元开始,有10个单字节数据。试编一个程序,把其中的正数、负数分别送40H和50H开始的内部RAM单元。(10分) MOV R0,#30H MOV R1,#40H MOV A,#50H MOV R7,#10 LOOP: MOV 20H,@R0 JB 20H.7,FSHU ZSHU: MOV @ R1,20H INC R1 SJMP NEXT FSHU: XCH A,R1 MOV @R1,A XCH A,R1 INC A

NEXT: DJNZ R7,LOOP SJMP $

一、填空(每题2分,共10分)