文档库

最新最全的文档下载
当前位置:文档库 > 单片机试题库(有答案)

单片机试题库(有答案)

《单片机与接口技术》习题库及

答案

一、判断题(判断每小题的对错,对的在小题前的括号中

打“√”,错的在小题前的括号中打“×”。)

MCS-51单片机原理与结构

(×)1.MCS-51单片机是高档16位单片机。

(√)2.MCS-51的产品8051与8031的区别是:8031片内无ROM。(×)3.单片机的CPU从功能上可分为运算器和存储器。

(√)4.8051的累加器ACC是一个8位的寄存器,简称为A,用来存一个操作数或中间结果。

(√)5.8051的程序状态字寄存器PSW是一个8位的专用寄存器,用于存放程序运行中的各种状态信息。

(×)6.MCS-51的程序存储器用于存放运算中间结果。

(√)7.MCS-51的数据存储器在物理上和逻辑上都分为两个地址空间:一个是片内的256字节的RAM,另一个是片外最

大可扩充64K字节的RAM。

(√)8.单片机的复位有上电自动复位和按钮手动复位两种,当单片机运行出错或进入死循环时,可按复位键重新启动。(√)9.CPU的时钟周期为振荡器频率的倒数。

(×)10.单片机的一个机器周期是指完成某一个规定操作所需的时间,一般情况下,一个机器周期等于一个时钟周期。(√)11.单片机的指令周期是执行一条指令所需要的时间。一般由若干个机器周期组成。

(×)12.单片机系统扩展时使用的锁存器,是用于锁存高8位地址。

(×)13.MCS-51单片机上电复位后,片内数据存储器的内容均为00H。

(√)14.当8051单片机的晶振频率为12MHZ时,ALE地址锁存信号端的输出频率为2MHZ的脉冲。

(√)15.8051单片机片内RAM从00H~1FH的32个单元,不仅可以作工作寄存器使用,而且可作为通用RAM来读写。(×)16.MCS-51单片机的片内存储器称为程序存储器。

(×)17.MCS-51单片机的数据存储器是指外部存储器。

(√)18.MCS-51单片机的特殊功能寄存器集中布置在片内数据存储器的一个区域中。

MCS-51单片机指令系统及程序设计

(×)19.MCS-51单片机的指令格式中操作码与操作数之间必须用“,”分隔。

(√)20.MCS-51指令:MOV A,#40H ;表示将立即数40H传送至A中。

(√)21.MCS-51指令:MOV A,@R0 ;表示将R0指示的地址单元中的内容传送至A中。(√)22.MCS-51指令:MOVX A,@DPTR ;表示将DPTR指示的地址单元中的内容传送至A中。

(×)23.MCS-51的数据传送指令是把源操作数传送到目的操作数,指令执行后,源操作数改变,目的操作数修改为源操作数。

(√)24.MCS-51指令中,MOVX为片外RAM传送指令。

(×)25.MCS-51指令中,MOVC为ROM传送指令。

(×)26.将37H单元的内容传送至A的指令是:MOV A,#37H。(√)27.MCS-51指令中,16位立即数传送指令是:MOV DPTR,#data16。

(√)28.MCS-51单片机,CPU对片外RAM的访问只能用寄存器间接寻址的方式,且仅有4 条指令。

(×)29.如JC rel发生跳转时,目标地址为当前指令地址加上偏移量。

(√)30.对于8051单片机,当CPU对内部程序存储器寻址超过4K 时,系统会自动在外部程序存储器中寻址。

(×)31.指令MUL AB执行前(A)=F0H,(B)=05H,执行后(A)=FH5,(B)=00H。

(√)32.已知:DPTR=11FFH 执行INC DPTR后,结果:DPTR=1200H。(√)33.已知:A=11H B=04H,执行指令DIV AB后,其结果:A=04H,B=1 CY=OV=0。

(×)34.已知:A=1FH,(30H)=83H,执行 ANL A,30H 后,结果:A=03H (30H)=83H P=0。

(×)35.无条件转移指令LJMP addr16称长转移指令,允许转移的目标地址在128KB空间范围内。

(×)36.在进行二——十进制运算时,必须用到DA A指令。(×)37.MCS-51指令系统中,执行指令ORG 2000H;

BCD: DB “A,B,C,D”;

表示将A、B、C、D的ASII码值依次存入2000H开始

的连续单元中。

(×)38.MCS-51指令系统中,指令CJNE A,#data, rel的作用相当于SUBB A,#data与JNC rel的作用。

(×)39.MCS-51指令系统中,指令JNB bit,rel是判位转移指令,即表示bit=1时跳转。

(×)40.8051单片机的PC与DPTR都在CPU片内,因此指令MOVC A,@A+PC与指令MOVC A,@A+DPTR执行时只在单片机内

部操作,不涉及片外存储器。

(×)41.MCS-51单片机中PUSH和POP指令只能保护现场,不能保护断点。

(√)42.指令LCALL addr16能在64K字节范围内调用子程序。(×)43.设PC的内容为35H,若要把程序存贮器08FEH单元的数据传送至累加器A,则必须使用指令MOVC A,@A+PC。

(×)44.指令MOV A,00H执行后A的内容一定为00H。

定时、中断、串行口系统及应用

(×)45.在MCS-51单片机内部结构中,TMOD为模式控制寄存器,主要用来控制定时器的启动与停止。

(√)46.在MCS-51单片机内部结构中,TCON为控制寄存器,主要

用来控制定时器的启动与停止。

(√)47.MCS-1单片机的两个定时器均有两种工作方式,即定时和计数工作方式。

(√)48.MCS-51单片机的TMOD模式控制寄存器不能进行位寻址,只能用字节传送指令设置定时器的工作方式及操作模式。

(√)49.MCS-51单片机系统复位时,TMOD模式控制寄存器的低4位均为0。

(×)50.8051单片机5个中断源相应地在芯片上都有中断请求输入引脚。

(√)51.启动定时器工作,可使用SETB TRi启动。

(×)52.8051单片机对最高优先权的中断响应是无条件的。(×)53.中断初始化时,对中断控制器的状态设置,只可使用位操作指令,而不能使用字节操作指令。

(√)54.MCS-51单片机系统复位后,中断请求标志TCON和SCON 中各位均为0。

(√)55.MCS-51单片机的中断允许寄存器的IE的作用是用来对各中断源进行开放或屏蔽的控制。

(√)56.用户在编写中断服务程序时,可在中断入口矢量地址存放一条无条件转移指令,以防止中断服务程序容纳不下。(√)57.若要在执行当前中断程序时禁止更高优先级中断,应用软件关闭CPU中断,或屏蔽更高级中断源的中断,在中

断返回时再开放中断。

(√)58.串行口的中断,CPU响应中断后,必须在中断服务程序中,用软件清除相应的中断标志位,以撤消中断请求。(√)59.串行口数据缓冲器SBUF是可以直接寻址的专用寄存器。(√)60.如要允许外部中断0中断,应置中断允许寄存器IE的EA 位和EX0位为1。

(√)61.指令JNB TF0,LP的含义是:若定时器T0未计满数,就转LP。

(√)62.若置8051的定时器/计数器T1于定时模式,工作于方式2,则工作方式字为20H。

(√)63.若置8051的定时器/计数器T1于计数模式,工作于方式1,则工作方式字为50H。

(×)64.当8051的定时器T0计满数变为0后,溢出标志位(TCON 的TF0)也变为0。

(√)65.外部中断0中断的入口地址是0003H。

(√)66. 8051单片机允许5个中断源请求中断,都可以用软件来屏蔽,即利用中断允许寄存器IE来控制中断的允许和禁止。

单片微机基本系统扩展

(√)67.线选法是把单根的低位地址线直接接到存储器芯片的片选端。

(√)68.对于8051单片机而言,在外部扩展EPROM时,EA引脚应接地。

(×)69.对于8051单片机而言,在外部扩展EPROM时,EA引脚

可接 + 5V或接地。

(√)70.在接口芯片中,通常都有一个片选端CS(或CE),作用是当CS为低电平时该芯片才能进行读写操作。

(×)71.DAC0832是8位D/A转换器,其输出量为数字电流量。

机电接口技术

(√)72.DAC 0832的片选信号输入线CS,低电平有效。(√)73.AGND代表模拟信号和基准电源的参考地,称模拟地。(√)74.DGND表示数字地,为工作电源地和数字逻辑地。

MCS-51单片机原理与结构

1.MCS-51单片机CPU的主要组成部分为运算器、控制器

2.单片机能直接运行的程序叫目标程序

3.单片机中的程序计数器PC用来存放下一条指令地址

4.单片机上电复位后,PC的内容和SP的内容为0000H,07H 5.单片机8051的ALE引脚是输出矩形脉冲,频率为fosc的1/6

6.单片机8051的EA引脚 C.以上两种视需要而定

7.访问外部存储器或其它接口芯片时,作数据线和低8位地址线的是P0口

8.PSW中的RS1和RS0用来选择工作寄存器组号

9.上电复位后,PSW的值为0

10.8051单片机上电复位后,堆栈区的最大允许范围是120 个单元。

11.8051单片机上电复位后,堆栈区的最大允许范围是内部RAM的08H—7FH

12.复位后,堆栈指针SP在内部RAM中的直接地址是81H

13. 8051的P0口,当使用外部存储器时它是一个传输低8位地址/数据口

14.P0口作数据线和低8位地址线时不能作I/O口

15.对于8051单片机,其内部RAM20H-2FH单元既可位寻址又可字节寻址

16.寻址方式就是查找指令操作数

17.8051 单片机若晶振频率为fosc=12MHz,则一个机器周期等于 1 μS。

18.MCS-51单片机的数据指针DPTR是一个16位的专用地址指针寄存器,主要用来存放16位地址,作间址寄存器使用

19.ALU表示算术逻辑部件

20.单片机上电后或复位后,工作寄存器R0是在0区00H单元21.单片机8051的XTAL1和XTAL2引脚是外接晶振

22.8051单片机的V SS(20)引脚是接地引脚。

23.8051单片机的VCC(40)引脚是主电源+5V引脚。24.8051单片机中,输入/输出引脚中有专门的第二功能的引脚是.P3 25.MCS-51复位后,程序计数器PC=0000HB 。即单片机从0000H 开始执行指令。

26.MCS-51的片内外的ROM是统一编址的,如果EA端保持高电平,8051的程序计数器PC在0000H—FFFFH 地址范围内。27.单片机的堆栈指针SP始终是指示 B 堆栈顶。

28.单片机的P0、P1口作输入用途之前必须在相应端口先置1 29.MCS-51的串行数据缓冲器SBUF用于存放待发送或已接收到的数据

30.MCS-51单片机的P1口的功能是可作通用双向I/O口用。

31.MCS-51单片机复位后,专用寄存器ACC的状态是 C 。

A.01H B.07H C.00H D.0FFH 32.当程序状态字寄存器PSW状态字中RS1和RS0分别为0和1 时,系统使用的工作寄存器组为 B 。

A.组0 B.组1 C.组2 D.组3 33.8051单片机中,用户可使用的16位寄存器是 D 。

A.PSW B.ACC C.SP D.DPTR 34.8051的程序计数器PC为16位计数器,其寻址范围是 D 。

A.8K B.16K C.32K D.64K 35.单片机应用程序一般存放在B 中。

A.RAM B.ROM C.寄存器D.CPU MCS-51单片机指令系统及程序设计

36.MCS-51汇编语言指令格式中,唯一不可缺少的部分是 B 。

A.标号 B.操作码 C.操作数 D.注释37.MCS-51的立即寻址方式中,立即数前面 D 。

A.应加前缀“/:”号 B.不加前缀号 C.应加前缀“@”号D.应加前缀“#”号

38.下列完成8051单片机内部数据传送的指令是 D 。

A.MOVX A,@DPTR B.MOVC A, @A+PC D.MOV direct,direct

39.MCS-51的源操作数为立即寻址的指令中,立即数就是B 。

A.放在寄存器R0中的内容 B.放在程序中的常数

C.放在A中的内容 D.放在B中的内容

40.单片机中PUSH和POP指令常用来C 。

A.保护断点 B.保护现场 C.保护现场,恢复现场 D.保护断点,恢复断点

41.MCS-51寻址方式中,操作数Ri加前缀“@”号的寻址方式是A 。

A.寄存器间接寻址 B.寄存器寻址 C.基址加变址寻址 D.立即寻址

42.MCS-51寻址方式中,立即寻址的寻址空间是 C 。

A.工作寄存器R0~R7 B.专用寄存器SFR C.程序存储器ROM

D.片内RAM的20H~2FH安节中的所有位和部分专用寄存器SFR 的位43.MCS-51寻址方式中,直接寻址的寻址空间是 D 。

A.工作寄存器R0~R7 B.专用寄存器SFR C.程序存储器ROM

D.数据存储器256字节范围

44.执行指令MOVX A,@DPTR时,WR、RD脚的电平为 C 。

A.WR高电平,RD高电平 B.WR低电平,RD高电平

C.WR高电平,RD低电平 D.WR低电平,RD 低电平

45.主程序中调用子程序后返回主程序,堆栈指针SP的值 A 。

A.不变 B.加2 C.加4 D.减2 46.单片机中使用MOVX A,@R1指令, C 寻址数据存储器1050H单元。

A.能直接 B.不能 C.与P2口配合能D.与P1口配合能

47.下列指令判断若P1口最低位为高电平就转LP,否则就执行下一句的是 B 。

A.JNB P1.0,LP B.JB P1.0,LP C.JC P1.0,LP D.JNZ P1.0,LP

48.指令JB OEOH,LP中的OEOH是指 C 。

A.累加器A B.累加器A的最高位 C.累加器A的最低位 D.一个单元的地址

49.下列指令中比较转移指令是指B 。

A.DJNZ Rn,rel B.CJNE Rn,#data,rel C.DJNZ direct,rel D.JBC bit,rel

50.指令MOV R0,#20H执行前(R0)=30H,(20H)=38H,执行后(R0)= B 。

A.00H B.20H C.30H D.38H 51.指令MOV R0, 20H执行前(R0)=30H,(20H)=38H,执行后(R0)= D 。

A.20H B.30H C.50H D.38H 52.执行如下三条指令后,30H单元的内容是 B 。

MOV R1,#30H

MOV 40H,#0EH

MOV @R1,40H

A.40H B.0EH C.30H D.FFH

54.MCS-51指令MOV R0,#20H中的20H是指 A 。

A.立即数 B.内部RAM20H C.一个数的初值D.以上三种均有可能,视该指令的在程序中的作用55.MCS-51单片机在执行MOVX A,@DPTR指令时,其寻址单元的地址是由B 。

A.P0口送高8位,P2口送高8位 B.P0口送低8位,P2口送高8位

C.P0口送低8位,P2口送低8位 D.P0口送高8位,P2

口送低8位

56.在MCS-51指令中,下列指令中 C 是无条件转移指令。

A.LCALL addr16 B.DJNZ direct,rel C.SJMP rel D.ACALL addr11

57.下列指令中影响堆栈指针的指令是D 。

A.LJMP B.ADD C.MOVC A,@A+PC D.LCALL 58.已知:A=DBH R4=73H CY=1,指令:SUBB A, R4 执行

后的结果是 C 。

A.A=73H B.A=DBH C.A=67H D.以上都不

59.可实现将内部数据存储单元的内容传送到累加器A中的指令是

C 。

A.MOVX A,@R0 B.MOV A, #data C.MOV A,@R0 D.MOVX A, @DPTR

60.下列指令执行时,不修改PC中内容的指令是 B 。

A.AJMP B.MOVC A,@ A+PC

61.已知:A=D2H,(40H)=77H,执行指令:ORL A,40H后,其结

果是:B 。

A.A=77H B.A=F7H C.A=D2H D.以上

都不对

62.指令MUL AB 执行前(A)=18H ,(B)=05H,执行后,A、B的

内容是 D 。

A.90H,05H B.90H,00H C.78H,05H D.78H,00H

63.MCS-51指令系统中,清零指令是 C 。

A.CPL A B.RLC A C.CLR A D.RRC A 64.MCS-51指令系统中,求反指令是 A 。

A.CPL A B.RLC A C.CLR A D.RRC A 65.MCS-51指令系统中,指令MOV A,@R0,执行前(A)=86H,(R0)=20H,(20H)=18H,执行后 C 。

A.(A)=86H B.(A)=20H C.(A)=18H D.(A)=00H

66.MCS-51指令系统中,指令CLR A ;表示 A 。

A.将A的内容清0 B.将A的内容置1

C.将A的内容各位取反,结果送回A中 D.循环移位指令67.已知A=87H ,(30H)=76H,执行 XRL A,30H 后,其结果为: C 。

A.A=F1H (30H)=76H P=0 B.A=87H (30H)=76H P=1

C.A=F1H (30H)=76H P=1 D.A=76H (30H)=87H P=1

68.MCS-51指令系统中,指令ADD A,R0 执行前(A)=38H,(R0)=54H,(C)=1 执行后,其结果为 D 。

A.(A)=92H (C)=1 B.(A)=92H (C)=0 C.(A)=8CH (C)=1 D.(A)=8CH (C)=0 69.MCS-51指令系统中,指令ADD A,R0 执行前(A)=86H,(R0)

=7AH,(C)=0 执行后,其结果为A 。

A.(A)=00H (C)=1 B.(A)=00H (C)=0 C.(A)=7AH (C)=1 D.(A)=7AH (C)=0 70.MCS-51指令系统中,指令ADDC A,@R0 执行前(A)=38H,(R0)=30H,(30H)=FOH,(C)=1 执行后,其结果为 B 。

A.(A)=28H (C)=1 B.(A)=29H (C)=1 C.(A)=68H (C)=0 D.(A)=29H (C)=0

71.下列指令能使累加器A低4位不变,高4位置F的是 D 。

A.ANL A,#OFH B.ANL A,#OFOH C.ORL A,#OFH D.ORL

A,#OF0H

72.下列指令能使累加器A高4位不变,低4位置F的是C 。

A.ANL A,#OFH B.ANL A,#OFOH C.ORL A,#OFH D.ORL

A,#OF0H

73.下列指令能使R0低4位不变,高4位置F的是 D 。

A.ANL R0,#OF0H B.ORL RO,#OFOH C.ORL 0,#OFH

D.ORL 00H,#OF0H

74.下列指令能使R0高4位不变,低4位置F的是 C 。

A.ANL R0,#OFH B.ANL R0,#OFOH C.ORL 0,#OFH

D.ORL R0,#OFH

75.下列指令能能使累加器A的最高位置1的是 D 。

A.ANL A,#7FH B.ANL A,#80H C.ORL A,#7FH D.ORL

A,#80H

76.下列指令能使R0的最高位置0的是A 。

A.ANL 0,#7FH B.ANL R0,#FH C.ORL R0,#7FH D.ORL

R0,#80H

77.下列指令能使R0的最高位取反的是 B 。

A.CPL R0.7 B.XRL 00H,#80H C.CPL (R0).7 D.ARL

R0,#80H

78.下列指令能使累加器A的最低位置1的是 C 。

A.SETB A,#01H B.SETB A,0 C.ORL A,#01H D.SETB

A,#00H

79.下列指令能使P1口的最低位置1的是 B 。

A.ANL P1,#80H B.SETB 90H C.ORL P1,#0FFH D.ORL

P1,#80H

80.下列指令判断若累加器A的内容不为0就转LP的是 D 。

A.JB A,LP B.JNZ A,LP C.JZ LP D.CJNE A,#0,LP 81.设累加器A中为无符号数,B中数为2,C等于0,下列指令 C

的作用与其它几条不同。

A.ADD A,0E0H B.MUL AB C.RL A D.RLC A 83.MCS-51指令系统中,执行下列程序后,程序计数器PC的内容为

C 。

ORG 000H

MOV DPDR,#1000

MOV A, #00H

MOV 20H,A

LJMP 1500

END

A .100

B .1000

C .1500

D .0 84.MCS-51指令系统中,格式为:ORG 16位地址 的指令功能是 C 。 A .用于定义字节 B .用于定义字 C .用来定义汇编程序的起始地址 D .用于定义某特定位的标识符 86.MCS-51指令系统中,执行下列程序后,堆栈指针SP 的内容为 B 。 MOV SP ,#30H MOV A ,20H LACALL 1000 MOV 20H ,A SJMP $ A .00H B .30H C .32H D .07H 87.MCS-51指令系统中,指令DA A 是 D 。 A .除法指令 B .加1指令 C .加法指令 D .十进制调整指令 88.MCS-51指令系统中,指令DA A 应跟在 B 。 A .加法指令后 B .BCD 码的加法指令后 C .减法指令后 D .BCD 码的减法指令后 89.在单片机算术运算过程中,指令DA A 常用于 C 运算。 A .二进制 B .加法 C .BCD 码加法 D .十六进制 90.MCS-51指令系统中,执行下列指令后,其结果为 B 。 MOV A , #68 ADD A , #53 DA A A .A=21 CY=1 OV=0 B .A=21 CY=1 OV=1 C .A=21 CY=0 OV=0 D .以上都不对 91.执行下列程序后,累加器A 的内容为 B 。 ORG 0000H MOV A , #00H ADD A , #02H MOV DPTR , #0050H MOVC A , @A+DPTR MOV @R0, A SJMP $ ORG 0050H BAO : DB 00H ,08H ,0BH ,6H ,09H ,0CH END

A .00H

B .0BH

C .06H

D .0CH

92.能访问内部数据存储器的传送指令是 B 。 A .MOVC 指令 B .MOV 指令 C .MOVX 指令 D . 93.能访问外部数据存贮器的传送指令是 C 。 A .MOV 指令 B .MOVC 指令 C .MOVX 指令 D . 94.指令ANL A ,R0的功能是 A 。 A .将A 与寄存器R0的内部容按位逻辑与 B .将A 与寄存器R0的内部容按位逻辑异或 C .将A 与寄存器R0的内部容按位逻辑非 D .将A 与寄存器

R0的内部容按位逻辑或 95.能将A 的内容向左循环移一位,第七位进第0位的指令是

D 。 A .RLC A B .RRC A C .RR A D .RL A

96.能将A 按位取反的指令是 A 。 A .CPL A B .CLR A C .RL A D .SWAP A 97.执行下列程序后,内部RAM 30H 单元的内容是 B 。 MOV 30H ,#00H

MOV R0,#30H MOV A , 30H

ADD A , #05H MOVC A , @A+PC MOV @R0, A

SJMP $ TDB :DB 00H ,01H ,02H ,03H ,05H A .00H B .02H C .05H D .30H

98.将A 与立即数按位逻辑异或的指令是 C 。 A .ANL A ,#data B .ORL A,#data C .XRL A,#data D .XRL A,direct

99.比较转移指令是 B 。 A .DJNZ R 0 rel B .CJNE A ,direct ,rel C .DJNZ direct rel D .JBC bit rel

100.将内部数据存储器53H 单元的内容传送至累加器,其指令是 A 。 A .MOV A , 53H B .MOV A , #53H C .MOVC A , 53H

D .MOVX A , #53H 102.LJMP 跳转空间最大可达到 D 。 A .2KB B .256B C .128B D .64KB 103.在编程中使用伪指令的目的是 C 。 A .指示和引导如何进行手工汇编 B .指示和引导编译程序如何汇编 C .指示和引导汇编程序进行汇编 D .指示和引导

程序员进行汇编 单片微机基本系统扩展 104.一个EPROM 的地址有A 0----A 11引脚,它的容量为 B 。

A .2K

B B .4KB

C .11KB

D .12KB 105.在存储器扩展电路中74LS373的主要功能是 D 。 A .存储数据 B .存储地址 C .锁存数据 D .锁存地址

106.下列芯片中其功能为可编程控制的接口芯片是 D 。 A .373 B .2114 C .2716 D .8255

107.在用接口传信息时,如果用一帧来表示一个字符,且每一帧中有一个起始位、一个结束位和若干个数据位,该传送属于 A 。 A .串行传送 B .并行传送 C .同步传送 D .异步传送 108.8051的外部程序存储器常采用的芯片是 A 。 A .2716 B .8255 C .74LS06 D .2114 定时、中断、串行口系统及应用 109.8051单片机的定时器T1用作定时方式时是 B 。 A .由内部时钟频率定时,一个时钟周期加1 B .由内部时钟频率定时,一个机器周期加1 C .由外部时钟频率定时,一个时钟周期加1 D .由外部时钟频率定时,一个机器周期加1 110.8051单片机的定时器T0用作计数方式时是 C 。 A .由内部时钟频率定时,一个时钟周期加1 B .由内部时钟频率定时,一个机器周期加1 C .由外部计数脉冲计数,下降沿加1 D .由外部计数脉冲计数,一个机器周期加1 111.8051单片机的定时器T1用作计数方式时计数脉冲是 A 。 A .由T1(P3.5)输入 B .由内部时钟频率提供 C .由T0(P3.4)输入 D .由外部计数脉冲计数 112.8051单片机的定时器T0用作定时方式时是 D 。 A .由内部时钟频率定时,一个时钟周期加1 B .由外部计数脉冲计数,一个机器周期加1 C .外部定时脉冲由T0(P3.4)输入定时 D .由内部时钟频率计数,一个机器周期加1 113.8051单片机的机器周期为2μs,则其晶振频率fosc 为 C MHz. A .1 B .2 C .6 D .12 114.用8051的定时器T1作定时方式,用模式1,则工作方式控制字为 C 。 A .01H B .05H C .10H D .50H 115.用8051的定时器T1作计数方式,用模式2,则工作方式控制字为 A 。 A .60H B .02H C .06H D .20H 116.用8051的定时器T1作定时方式,用模式1,则初始化编程为 C 。 A .MOV TOMD ,#01H B .MOV TOMD ,#50H C .MOV TOMD ,#10H D .MOV TCON ,#02H 117.用8051的定时器T1作定时方式,用模式2,则工作方式控制字为 D 。 A .60H B .02H C .06H D .20H 118.用8051的定时器T1作定时方式,用模式2,则初始化编程为 B 。

A .MOV TOMD ,#06H

B .MOV TOMD ,#20H

C .MOV TOM

D ,#10H D .MOV TOMD ,#60H 119.用8051的定时器,若用软启动,应使TOMD 中的 C 。

A .GATE 位置1

B .C/T 位置1

C .GATE 位置0

D .C/T 位置0

120.启动定时器0开始计数的指令是使TCON 的 B 。

A .TF0位置1

B .TR0位置1

C .TR0位置0

D .TR1

位置0 121.启动定时器1开始定时的指令是 D 。 A .CLR TR0 B .CLR TR1 C .SETB TR0 D .SETB TR1 122.使8051的定时器T0停止计数的指令是 A 。 A .CLR TR0 B .CLR TR1 C .SETB TR0 D .SETB TR1 123.使8051的定时器T1停止定时的指令是 B 。 A .CLR TR0 B .CLR TR1 C .SETB TR0 D .SETB TR1 124.使8051的定时器T1停止计数的指令是使TCON 的 D 。 A .TF0位置1 B .TR0位置1 C .TR0位置0 D .TR1位置0 125.8051的定时器T0作计数方式,用模式1(16位计数器)则应用指令 C 初始化编程。 A .MOV TMOD ,#01H B .MOV TMOD ,10H C .MOV TMOD ,#05H D .MOV TCON ,#05H

126.下列指令判断若定时器T0计满数就转LP 的是 D 。 A .JB T0,LP B .JNB TF0,LP C .JNB TR0, LP D .JB TF0,LP 127.下列指令判断若定时器T0未计满数就原地等待的是 B 。 A .JB T0,$ B .JNB TF0,$ C .JNB TR0,$ D .JB TF0,$ 128.当CPU 响应定时器T1的中断请求后,程序计数器PC 的内容是

D 。 A .0003H B .000BH C .00013H D .001BH 129.当CPU 响应外部中断0 INT0的中断请求后,程序计数器PC 的内容是 A 。

A .0003H

B .000BH

C .00013H

D .001BH 130.当CPU 响应外部中断1 INT1的中断请求后,程序计数器PC 的内容是 C 。 A .0003H B .000BH C .00013H D .001BH

131.MCS-51单片机在同一级别里除串行口外,级别最低的中断源是 C 。 A .外部中断1 B .定时器T0 C .定时器T1 D .串行口

132.MCS-51单片机在同一级别里除INT0外,级别最高的中断源是 B 。 A .外部中断1 B .定时器T0 C .定时器T1 D .外部中断0

133.当外部中断0发出中断请求后,中断响应的条件是 C 。 A .SETB ET0 B .SETB EX0 C .MOV IE ,#81H D .MOV

IE,#61H

134.当定时器T0发出中断请求后,中断响应的条件是 C 。

A.SETB ET0 B.SETB EX0 C.MOV IE,#82H D.MOV IE,#61H

138.用定时器T1方式1计数,要求每计满10次产生溢出标志,则

TH1、TL1的初始值是A 。

A.FFH、F6H B.F6H、F6H C.F0H 、F0H D.FFH、F0H

140.用8051的定时器T0定时,用模式2,则应 D 。

A.启动T0前向TH0置入计数初值,TL0置0,以后每次重新计数

前要重新置入计数初值

B.启动T0前向TH0、TL0置入计数初值,以后每次重新计数前要

重新置入计数初值 C.启动T0前

向TH0、TL0置入计数初值,以后不再置入

D.启动T0前向TH0、TL0置入相同的计数初值,以后不再置入142.MCS-51单片机CPU开中断的指令是 A 。

A.SETB EA B.SETB ES C.CLR EA D.SETB EX0

143.MCS-51单片机外部中断0开中断的指令是 B 。

A.SETB ETO B.SETB EXO C.CLR ETO D.SETB ET1

144.MCS-51单片机的两个定时器作定时器使用时TMOD的D6或D2

应分别为 A 。

A.D6=0,D2=0 B.D6=1,D2=0 C.D6=0,D2=1 D.D6=1,

D2=1

146.8051单片机晶振频率fosc=12MHz,则一个机器周期为 B μS。

A.12 B.1 C.2 D.

12

1

147.MCS-51单片机定时器溢出标志是 D 。

A.TR1和TR0 B.IE1和IE0 C.IT1和IT0 D.TF1和TF0

148.用定时器T1方式2计数,要求每计满100次,向CPU发出中

断请求,TH1、TL1的初始值是 A 。

A.9CH B.20H C.64H D.A0H

149.MCS-51单片机定时器外部中断1和外部中断0的触发方式选择

位是 C 。

A.TR1和TR0 B.IE1和IE0 C.IT1和IT0 D.TF1和TF0

150.MCS-51单片机定时器T1的溢出标志TF1,若计满数产生溢出时,如不用中断方式而用查询方式,则应 B 。

A.由硬件清零 B.由软件清零 C.由软件置于D.可不处理

151.MCS-51单片机定时器T0的溢出标志TF0,若计满数产生溢出时,其值为 C 。 A.00H B.FFH C.1 D.计数值

152.MCS-51单片机定时器T0的溢出标志TF0,若计满数在CPU响应中断后 A 。

A.由硬件清零 B.由软件清零 C.A和B都可以D.随机状态

153.8051单片机计数初值的计算中,若设最大计数值为M,对于模式1下的M值为D 。

A.M=13

2=8192 B.M=82=256 C.M=42=16 D.M=16

2=65536

154.8051响应中断后,中断的一般处理过程是A 。

A.关中断,保护现场,开中断,中断服务,关中断,恢复现场,

开中断,中断返回

B.关中断,保护现场,保护断点,开中断,中断服务,恢复现

场,中断返回

C.关中断,保护现场,保护中断,中断服务,恢复断点,开中

断,中断返回

D.关中断,保护断点,保护现场,中断服务,关中断,恢复现

场,开中断,中断返回

156.8051单片机共有5 个中断源,在同一级别里,5个中断源同时发出中断请求时,程序计数器PC的内容变为 B 。

A.000BH B.0003H C.0013H D.001BH

157.MCS-51单片机串行口发送/接收中断源的工作过程是:当串行口接收或发送完一帧数据时,将SCON中的 A ,向CPU申

请中断。

A.RI或TI置1 B.RI或TI置0 C.RI置1或TI 置0 D.RI置0或TI置1

158.MCS-51单片机响应中断的过程是 D 。

A.断点PC自动压栈,对应中断矢量地址装入PC B.关中断,

程序转到中断服务程序

C.断点压栈,PC指向中断服务程序地址

D.断点PC自动压栈,对应中断矢量地址装入PC,程序转到该

矢量地址

159.执行中断处理程序最后一句指令RETI后, D 。

A.程序返回到ACALL的下一句 B.程序返回到LCALL的

下一句

C.程序返回到主程序开始处 D.程序返回到响应中断

时一句的下一句

161.MCS-51单片机响应中断矢量地址是 C 。

A.中断服务程序的首句地址 B.中断服务程序

的出口地址

C.中断服务程序的入口地址 D.主程序等待中

断指令的地址

162.当TCON的IT0为1,且CPU响应外部中断0,0

INT的中断

请求后, C 。

A.需用软件将IE0清0 B.需用软件将IE0置1

C.硬件自动将IE0清0 D.0

INT(P3.2管脚)为高电平时自动将IE0清0

163.MCS-51单片机串行口接收数据的次序是下述的顺序 B 。

(1)接收完一帧数据后,硬件自动将SCON的R1置1 (2)用软件将RI清零

(3)接收到的数据由SBUF读出 (4)置SCON的REN为1,外部数据由RXD输入

A.(1)(2)(3)(4) B.(4)(1)(2)(3)

C.(4)(3)(1)(2) D.(3)(4)(1)(2)164.MCS-51单片机串行口发送数据的次序是下述的顺序 A 。

(1)待发送数据送SBUF (2)硬件自动将SCON的TI置1

(3)经TXD(P3.1)串行发送一帧数据完毕(4)用软件将TI清0

A.(1)(3)(2)(4) B.(1)(2)(3)(4)

C.(4)(3)(1)(2) D.(3)(4)(1)(2)165.8051单片机串行口用工作方式0时, C 。

A.数据从RDX串行输入,从TXD串行输出

B.数据从RDX串行输出,从TXD串行输入

C.数据从RDX串行输入或输出,同步信号从TXD输出

D.数据从TXD串行输入或输出,同步信号从RXD输出166.一主程序中有一句LP:SJMP LP,功能指令为等待中断,当发生中断且中断返回后,D 。

A.返回到主程序开始处 B.返回到该句的下一条指令处

C.返回到该句的上一条指令处 D.返回到该句167.一中断子程序的最后一句不是RETI而是RET,中断返回后

B 。

A.返回到主程序中ACALL或LCALL的下一句

B.返回到主程序中响应中断时一句的下一句

C.返回到主程序开始处 D.返回到0000H处169.外部中断源1

INT(外部中断1)的矢量地址为 C 。

A.0003H B.000BH C.0013H D.002BH 170.8051单片机共有 B 中断源。

A.4 B.5 C.6 D.7 171.对定时器控制寄存器TCON中的IT1和IT0位清0后,则外部中断请求信号方式为A 。

A.低电平有效 B.高电平有效 C.脉冲上跳沿有效D.脉冲负跳有效

172.单片机中PUSH和POP指令通常用来 C 。

A.保护断点 B.保护现场 C.保护现场恢复现场D.保护断点恢复断点

机电接口技术

173.共阳极LED数码管加反相器驱动时显示字符“6”的段码是B 。

A.06H B.7DH C.82H D.FAH 174.ADC 0809芯片是m路模拟输入的n位A/D转换器,m、n是 A 。 A.8、8 B.8、9 C.8、16 D.1、8

175.当DAC 0832 D/A转换器的CS接8031的P2.0时,程序中0832的地址指针DPTR寄存器应置为 D 。

A.0832H B.FE00H C.FEF8H D.以上三种都可以

简答题

1.8051的定时/计数器T0的有几种工作模式,对各工作模式作简单的叙述。

答: 定时/计数器T0的模式:

0:13位计数器;

1:16位计数器;

2:8位循环计数器;

3:2个独立的8位计数器串行通信模式

2.8051的串行通信的有几种工作模式,请对各工作模式作简单的叙述。

答: 串行通信共有4种工作模式,分别是:

模式0:同步移位寄存器;

模式1:波特率可变的8位两机异步通信;

模式2:波特率固定的9位可多机的异步通信;

模式3:波特率可变的9位可多机的异步通信

3.CPU响应中断的条件有哪些?

答:1、CPU没有处在一个同级或高级的中断服务中

2、查询中断请求的机器周期是当前指令的最后一个机器周期

3、当前指令不是返回指令(RET,RETI)或访问IE、IP的指令。4. MCS-51系统有几个外部中断和内部中断?分别是什么?系统中有几个中断优先级,若同时有几个同级的中断申请,系统将如何处理?

答:MCS-51系统有2个外部中断和3个内部中断,分别是外部中断0,外部中断1,定时/计数中断0,定时/计数中断1,串行中断。系统中共有两个中断优先级,若同时有几个同级的中断申请,则按外中断0――外中断1――定时/计数中断0――定时/计数中断1――串行中断此顺序响应中断。

5.各中断源对应的中断服务程序的入口地址是否能任意设定? 如果想将中断服务程序放置在程序存储区的任意区域,在程序中应该作

何种设置?请举例加以说明。

答:各中断源的入口地址已经在中断地址区中被定义了,不能任意设定。

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

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

LJMP INTOP

列举其他中断跳转的例子也可,但叙述的中断源要与中断地址相对应才可得分,如外中断0对应0003H地址。

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

答:已知fosc=6MHZ

则:系统的拍节P=1/fosc=1/(6*106)s=1/6μs=0.167μs

系统的状态S=2P=2*1/6μs=0.33μs

机器周期T=6S=12P=12*1/6μs=2μs

单字节双周期指令的执行时间为2T=2*2μs=4μs

7.80C51单片机的片内RAM低128单元分哪3个主要部分?各部分的主要功能是什么?

答:80C51单片机的片内RAM低128单元分为:

寄存器区(00H-1FH),共有四个寄存器组,主要为寄存器访问方式,常用数据存储。

位寻址区(20H-2FH),主要用于位数据存放,也可用于存放字节数据。

普通用户RAM区(30H-7FH),只用于存放字节数据。

8.MCS-51指令系统有哪几种寻址方式?

答:MCS-51指令系统有7种寻址方式,分别为:寄存器寻址,直接寻址,寄存器间接寻址,立即寻址,相对寻址,基址寄存器加变址寄存器间接寻址(变址寻址),位寻址等方式。

9.MCS-51单片机系统中,外接程序存储器和数据存储器公用16位地址线和8位数据线,为什么不会发生冲突?

答:因为MCS-51单片机访问外部程序存储器用的指令是MOVC,控制线为PSEN,而访问外部数据存储器时,使用的指令是MOVX,有效的控制信号是RD,WR。所以不会发生冲突。

10.简述动态显示与静态显示的区别及优缺点

答:静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定的导通或截止。这种显示方式每一位都需要有一个8位输出口控制,亮度大,耗电也大。需要的I/O端口较多,如四个七段数码管需要32根口线,适用于显示位数较少的场合。但编程简单。

动态显示,就是一位一位地轮流点亮显示器各个位(扫描),对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。将各显示器的段码同名端边在一起,用一个I/O端口驱动;位码用另一个I/O端口分别控制。如四个七段数码管只需要11根口线。编程较复杂。

11.简述堆栈。

(1)在程序中断或子程序调用时,为了保护返回地址(断点)和保护现场而设立的RAM区。

(2)用MOV SP,#STK指令建立堆栈。

(3)存放数据按“后进先出”原则进行。

(4)利用PUSH、POP指令即可进行进栈、出栈操作。

12.简述变址寻址方式并举例说明。

(1)变址寻址是以DPTR或PC作基址寄存器,累加器A作变址寄存器以两者内容相加形式的16位地址作为操作数地址。

(2)变址寻址只能对移定存储器寻址,其指令只有三条:

MOVC A,@A+DPTR

MOVC A,@A+PC

JMP @A+DPTR

前二条为查表指令,后一条为无条件转移指令

13.简述中断响应的主要内容。

由硬件自动生成一条调用指令LCALL转去中断服务,具体操作为:

(1)将程序计数器PC的内容(断点)压栈

(2)将中断入口地址装入PC,转去执行中断服务程序

14.简述汇编语言中的标号有什么规定

(1)标号由1—8字符组成,头一个字符必须是字母。

(2)不能使用汇编语言已定义的符号。

(3)标号后必须跟冒号:

(4)同一标号在一个程序中只能定义一次。

15.A/D转换器转换数据的传送有几种方式

(1)定时传送方式:A/D启动后,调用延时时间大于转换时间的延时程序后即可读取。

(2)查询方式:A/D启动后,查询EOC(转换结束信号),转换一完成即可读取转换数据。

(3)中断方式:将EOC作为外中断请求信号,转换一结束,即引起中断,读取转换数据。

16.简述MCS-51指令系统的寻址方式及对应的寻址空间。

MCS-51指令系统有7种寻址方式,分别为:1)寄存器寻址,对工作寄存器R0-R7和A,B,C,DPTR进行寻址。2)直接寻址,对片内RAM低128字节及SFR寻址。3)寄存器间接寻址,对片内RAM低128字节,片外RAM寻址。4)立即寻址,对程序存储器寻址。5)相对寻址,对程序存储器256字节范围寻址。6)基址寄存器加变址寄存器间接寻址(变址寻址),对程序存储器寻址。7)位寻址,对片内RAM的20H-2FH字节地址及部分特殊功能寄存器寻址。

17.简述子程序调用和执行中断服务程序的异同点。

相同点:均能中断主程序执行本程序,然后再返回断点地址继续执行主程序。

不同点:1)中断服务程序入口地址是固定的,子程序调用入口地址是用户自己设定的。

2)中断服务子程序返回指令除具有子程序返回指令所具有的全部功能之外,还有清除中断响应时被置位的优先级状态、开放较低级中断和恢复中断逻辑等功能。

3)中断服务子程序是在满足中断申请的条件下,随机发生的;而子程序调用是用户主程序事先安排好的。

18.MCS-51单片机系统I/O端口编址方式有哪几种?分别对其进行简要描述。

答:I/O端口编址两种方式:独立编址与统一编址。

1)独立编址方式:I/O寄存器地址空间和存储器地址空间分开编址,但需一套专门的读写I/O的指令和控制信号。

2)统一编址方式:I/O寄存器与数据存储器单元同等对待,统一编址。不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强。

MCS-51使用统一编址的方式,每一接口芯片中的一个功能寄存器(端口)的地址就相当于一个RAM单元。

19. 写出8051单片机P3口作第二功能时每个引脚信号的名称。

口线第二功能信号第二功能信号名称

P3.0 RXD 串行数据接收

P3.1 TXD 串行数据发送

P3.2 INT0 外部中断0申请

P3.3 INT1 外部中断1申请

P3.4 T0 定时器/计数器0计数输入

P3.5 T1 定时器/计数器1计数输入

P3.6 /WR 外部RAM写选通

P3.7 /RD 外部RAM读选通

阅读程序题

1 .已知(A)=83H,(R0)=17H,(17H)=34H,执行下列程序段后:

ANL A ,#17H

ORL 17H ,A

XRL A ,@R0

CPL A

问:(A)= CBH ,(R0)= 17H ,(17H)= 37H 。

2 .已知(10H)=5AH ,(2EH)=1FH,(40H)=2EH,(60H)=3DH ,执行下列程序段后:

MOV 20H ,60H

MOV R1 ,20H

MOV A ,40H

XCH A ,R1

XCH A ,60H

XCH A ,@R1 MOV R0 ,#10H

XCHD A ,@R0

问:(A )= 5AH (10H )=1FH (2EH )= 3DH

(40H )= 2EH (60H )= 3DH

3 .执行下列程序段:

MOV A ,#00H

MOV R7 ,#0FFH

MOV PSW, #80H

ADDC A ,R7

问:(CY )= 1 (AC )= 1(P )= 0

(ACC )= 00H (R7 )= 0FFH

4.已知(A )=19H ,(B )=04H

DIV AB

问:执行后,(A )= 6 (B )= 1

5.执行下列程序段中第一条指令后,(P1.7)=_0___,(P1.3)=_0___,(P1.2)=__0___;执行第二条指令后,(P1.5)=_____1___,(P1.4)=____1_____,

(P1.3)=____1____.

ANL P1,#73H

ORL P1,#38H

6.下列程序段执行后,(A)=___13______,(B)=___16______.

MOV A,#0FBH

MOV B,#12H

DIV AB

7.下列程序段执行后,(R0)=__7EH_____,(7EH)=_FFH____,(7FH)=__3FH___.

MOV R0,#7FH

MOV 7EH,#0

MOV 7FH,#40H

DEC @R0

DEC R0

DEC @R0

8.已知(SP)=09H,(DPTR)=4567H,在执行下列指令后,(SP)=__0BH___,内部RAM

(0AH)=__46H___,(0BH)=__45H__

PUSH DPL

PUSH DPH

9.下列程序中注释的数字为执行该指令所需的机器周期数,若单片机的晶振频率为6MHz,问执行下列程序需要多少时间___16us_____ MOV R3,#100;1

LOOP:NOP ;1

NOP

NOP

DJNZ R3,LOOP ;2

RET ; 2

10.执行下面程序后,所实现的逻辑运算式为___p1.7=p1.3^p1.1^/p1.4__。

MOV C,P1.3

ANL C,P1.1

CPL P1.4

ANL C,P1.4

MOV P1.7,C

11.写出下面每条指令顺序执行后,各目的存储单元的值,并说明该条指令中源操作数的寻址方式。

MOV R0 , #20H ;__(R0)=20H____立即寻址__________________ MOV 20H , #29H ;_(20H)=29H 立即寻址_________________ CLR C ;__CY=0_________________________________ MOV A , @R0 ;__(A)=29H ___寄存器间接寻址_____________

12.执行如下三条指令后,30H单元的内容是___0EH

MOV R1,#30H

MOV 40H,#0EH

MOV ﹫R1,40H

13.请分析下面程序执行后的操作结果,(A)=__40H_,(R0)=__60H_。MOV A,#60H

MOV R0,#40H

MOV @R0,A

MOV 41H,R0

XCH A,R0

14.已知片内RAM中ONE和TWO两个单元中存有两个无符号数,将两个数中的小者存入30H单元。请完成以下程序实现上述功能。MOV A, ONE

CJNE A, TWO, BIG

SJMP STO

BIG: J C STO

MOV A, TWO

STO: MOV 30H, A

RET

15.执行下面程序后,(A)=_____ 06H _________。

MOV A, #06H

MOVC A, @A+PC DB 00H , 01H , 02H , 03H , 04H , 05H , 06H

16.设(SP)=60H,片内RAM的(30H)=24H,(31H)=10H,执行程序:

PUSH 30H

PUSH 3lH

POP DPL

POP DPH

MOV A,#00H

MOVX @DPTR,A

最后执行结果是将0送____外部RAM地址为2410H的单元中_________ 。

17.写出下面每条指令顺序执行后,各目的存储单元的值,并说明该条指令中源操作数的寻址方式(已知内部RAM(40H)的值为30H)。MOV R1, #40H ;_(R1)=40H,立即寻址___

CLR C ;_(Cy)=0,位寻址_______

MOV A,@R1 ;_(A)=30H,寄存器间接寻址_____

RLC A ;__(A)=60H,寄存器寻址

18.有如下程序段:

MOV R0,#30H

SETB C

CLR A

ADDC A,R0

MOV ﹫R0,A

执行后(30H)= 31H

19.执行下列程序后,(A)=_40H__,(B)=__1___。

MOV A,#0AH

MOV B,#20H

MUL AB

20.存放于ADDR1和ADDR2中的两个无符号二进制数,求其中的大数并存于ADDR3中,请完成以下程序实现上述功能。

MOV A, ADDR1

CJNE A, ADDR2,LP1

LP1: J C LP2

MOV ADDR3, A

SJMP LP3

LP2: MOV ADDR3,ADDR2

LP3: RET

21.设R0=20H,R1=25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,(26H)=6FH,(27H)=76H,下列程序执行后,结果如何?

CLR C

MOV R2,#3H

LOOP:MOVA,@R0

ADDC A,@R1

MOV @R0, A

INC R0

INC R1

DJNZ R2, LOOP

JNC NEXT

MOV @R0, #01H

SJMP $

NEXT:DEC R0

SJMP $

答:(20)H= 20H , (21H)= 00H , (22H)= 17H,

Cy= 1 , A= 17H , R0= 23H , R1= 28H

22.执行下列程序后,(A)=_40H(B)=_01H

MOV A,#0AH

MOV B,#20H

MUL AB

23.内部RAM从list单元开始存放一单字节正数表,表中之数作无序排列,并以-1作结束标志。编程实现表中找出最小值。

MOV R0,#LIST

MOV A,@R0

MOV MIN,A

LOOP5:INC R0

MOV A,@R0

_JNB ACC.7____,LOOP3

RET

LOOP3:CJNE A,MIN,LOOP1

LOOP1:_JNC____ LOOP2

MOV MIN,A

LOOP2:SJMP LOOP5

24.设两个十进制数分别在内部RAM 40H单元和50H单元开始存放(低位在前),其字节长度存放在内部30H单元中。编程实现两个十进制数求和,并把求和结果存放在40H开始的单元中。

MOV R0,#40H

MOV R1,#50H

MOV R2,#30H

_CLR C________

LOOP:MOV A,@R0

ADDC A,@R1

__DA A_______

MOV @R0,A

INC R0

INC R1

DJNZ R2,LOOP RET

编程题

1.在两个8051间用模式2进行串行通信,A机并行采集外部开关的输入,然后串行传输给B机;B机接收后并行输出控制LED发光。画出连接示意图,写出完整的程序。

A机程序ORG 0000H

AJMP START

ORG 4100H

START:MOV P1,#0FFH

MOV SCON,#80H

AGAIN1:MOV SBUF,P1

JNB TI,$

CLR TI

SJMP AGAIN1

END B机程序ORG 0000H

AJMP START

ORG 4100H

START:MOV SCON,#90H

AGAIN1:JNB RI,$

MOV P1,SBUF

CLR RI

SJMP AGAIN1

END

2.编写一段子程序,将二位压缩的BCD码转换为二进制数,入口、出口均是A。若是非法的BCD码,则A返回值为255。SUBP:MOV R1,A

ANL A,#0F0H

SWAP A

CJNE A, #10, NEXT1

NEXT1:JNC ERROR

MOV B,#10

MUL AB

XCH A,R1

ANL A,#0FH

CJNE A,#10,NEXT2

NEXT2:JNC ERROR

ADD A,R1

RET

ERROR:MOV A,#255

RET

3.用8051输出控制8个LED从LED1到LED8、再到LED1…,每次一个LED发光,并不断循环。一个开关控制引起中断,电平触发,中断后8个LED一起闪5下,然后恢复前面的循环。画出连接示意图,写出完整的程序。(软件延时用循环5*126*200次控制)

ORG 0000H

LJMP START

ORG 3H

LJMP INT00

START:SETB EA

SETB EX0

CLR IT0

MOV A,#1

AGAIN:MOV P1,A

ACALL DELAY

RL A

SJMP AGAIN

DELAY:MOV R1,#5

LOOP1:MOV R2,#200

LOOP2:MOV R3,#126

DJNZ R3,$

DJNZ R2,LOOP2

DJNZ R1,LOOP1

RET

INT00:PUSH ACC

PUSH 1

PUSH 2

PUSH 3

MOV R4,#5

AGAIN:MOV P1,#0FFH

ACALL DELAY

MOV P1,#0

ACALL DELAY

DJNZ R4,AGAIN

POP 3

POP 2

POP 1

POP ACC

RETI

END

4.将外RAM 地址从1000H 开始的100 个单元清零,试编程实现之。

MOV DPTR,#1000H

MOV R1,#100(#64H)

CLR A

LOOP:MOVX @DPTR,A

INC DPTR

DJNZ R1,LOOP

SJMP $

5.编写一个程序,把片内RAM 从30H 开始存放的16 个数据传送到片外RAM 从0000H 开始的单元中。

MOV R0,#30H

MOV DPTR,#0000H

MOV R1,#10H

LOOP:MOV A,@R0

MOVX @DPTR,A

INC R0

INC DPTR

DJNZ R1,LOOP

SJMP $

6.在外RAM 2000H 单元开始建立0 ~99 (BCD 码)的一百个数,试编制此程序。

MOV DPTR,#2000H

MOV R0,#100(#64H)

CLR A

LOOP:MOVX @DPTR,A

INC DPTR

ADD A,#01H

DA A

DJNZ R0,LOOP

SJMP $ (RET)

7.已知被减数存放在内RAM 的51H 、50H 单元中,减数存放在61H 、60H 单元中(高字节在前),相减得到的差放回被减数的单元中(设被减数大于减数)。试编程之。

MOV A,50H

CLR C

SUBB A,60H

MOV 50H,A

MOV A,51H

SUBB A,61H

MOV 51H,A

SJMP $(RET)

8.设晶振为12MHz ,选用T1 的工作方式1 产生1mS 定时,在P1.1 口输出周期为2mS 的方波(用中断法)。

ORG 0000H

SJMP MAIN

ORG 001BH

SJMP ITT1

ORG 0030H

MAIN:MOV TMOD,#10H

MOV TH1,#0FCH

MOV TL1,#18H

SETB TR1

SETB ET1

SETB EA

HERE:SJMP HERE

ITT1:MOV TH1,#0FCH

MOV TL1,#18H

CPL P1.1

RETI

END

9.请使用位操作指令,实现下列逻辑操作:

P1.5=ACC.2∧P2.7∨ACC.1∧P2.0

MOV C,ACC.1

ANL C,P2,0

MOV 12H,C

MOV,C,A CC.2

ANL C,P2.7

ORL C,12H

MOV P1.5,C

RET

10.在外部RAM首地址为TABLE的数据表中有10个字节数据,请编程将每个字节的最高位无条件地置1.

MOV R2,#10

MOV DPRT,#TABLE

LOOP: MOV X A,@DPRT;取一数

ORL A,#80H;最高位置1

MOV X @DPTR,A;写回原地址

1NC DPTR;处理下一单元

DJNZ R2,LOOP

RET

11.已知内部RAM 30H单元开始存放20H个数据,将其传送到外部RAM的0000H单元开始的存储区,请编程实现。

MOV R0,#30H

MOV R1,#00H

MOV R2,#20H

LOOP: MOV A,@R0;取数

MOV X @R1,A;存数

1NC R0

1NC R1

DJNZ R2,LOOP

RET

12.已知8个无符号数之和存于R3R4,求其平均值,结果仍存于R3R4中,请编程实现(R3为高字节)。

利用移位指令作除8操作,程序如下:

MOV R2,#3

LOOP:CLR C

MOV A,R3

RRC A ;高字节除以2,末位移入C,高位补0

MOV R3,A ;暂存高字节

MOV A,R4

RRC A ;低字节除以2,高字节末位移入低字节高位MOV R4,A

DJNZ R2,LOOP

RET

13.两个字符串分别存放在首地址为42H和52H的内部RAM中,字符串长度放在41H单元,请编程比较两个字符串。若相等,则把数字00H送40H单元,否则把0FFH送40H单元。

有一个字节不等,整个字符串不相等,所有字节相等,两字串才相等

MOV R0,#42H

MOV R1,#52H

LOOP:MOV A,@R0

CLR C ;不相等,FFH→40H

SUBB A,@R1

JNZ LOOP1 ;相等时,比较下一字节

INC R0

INC R1

DJNZ 41H,LOOP

MOV 40H,#0 ;所有字符均相等,则两字串相等。

RET

LOOP1:MOV 40H,#0FFH

RET