搜索
您的当前位置:首页正文

单片机试题及答案

来源:知库网
一、填空题(4*5=20分)

1、程序状态字PSW包含的标志位为CY、AC、FO、RS1、RS0、OV、P。当 2、单片机内部从00H-1FH为寄存器组区、从20H-2FH为位存储区,位存储区的

位地址范围为00H-7FH。

3、确定当前工作寄存器组的寄存器是RS1、RS0。

4、在单片机扩展外部存储器时,利用RD引脚读外部RAM的数据,利用WR引

脚写外部数据存储器,利用PSEN读外部程序存储器。

5、RST引脚持续保持2个机器周期的高电平就可以实现单片机的复位操作。 6、单片机有4个8位的I/O端口,他们是P0、P1、P2、P3,其中P0口无上拉电

阻。

7、在扩展外部存储器时,P0口作为数据线和低8位地址线、P2口作为高8位地

址线,并且用ALE引脚锁存P0 口的地址信号。 8、单片机复位时所有的I/O端口都为高电平。

9、单片机存取外部数据存储器的指令是MOVX,读取外部程序存储器的指令是

MOVC。

10、51单片机的寻址方式有:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。

11、8051单片机有5中断源分别是INT0、T0、INT1、T1、TI/RI,共有2个优先级,对同一优先级下中断源的优先级顺序是INT0、T0、INT1、T1、TI/RI,中断入口分别是0003H、000BH、0013H、001BH、0023H。

12、8051单片机外部中断源有2种触发中断请求的方法,当ITx=0为低点评触发、 当当ITx=1为下降沿触发。

13、51单片机有2个定时器/计数器,共有4种工作模式,可以由软件对特殊功能寄存器TMOD中的控制位M1、M0进行设置。

14、当定时器T0工作于方式3时,定时器T1一般用作串行口波特率发生器使用,用T1的控制位C/T切换其工作方式就可以使T1运行。

15、51单片机在串行接受时,当SBUF接收到数据后置位RI,在串行输出时,当

第 1 页/共 2 页

SBUF的数据串行输出完毕会置位TI。

16、单片机的串行口工作于方式0输出时,数据从RXD引脚输出,串行移位时钟从TXD引脚输出。

17、单片机外部扩展RAM的地址寻址范围是0000H-FFFFH,ROM的地址寻址范围是0000H-FFFFH。

18、51单片机在从0000H地址运行外ROM的程序时,EA引脚必须接低电平。 二、简答题(5*8=40分)

1、MCS-51单片机的存储结构有什么特点?

答:单片机的存储器分为内部RAM、外部RAM、外部ROM。

内部RAM分为寄存器区、位寻址区、通用RAM区。

内部RAM的地址从00H-7FH,外部RAM和ROM地址从0000H-FFFFH。 2、MCS-51的指令系统按系统功能可分为哪几类? 答:数据传送指令类。

算术运算指令类。 逻辑运算指令类。 位操作指令类。 控制转移指令类。

3、8051定时器有哪几种工作模式? 答:方式0,13位工作方式。

方式1,16位工作方式。

方式2,自动8位重装入工作方式。 方式3,两个8位工作方式。

4、8051定时器作定时和计数时、其计数脉冲分别从何处提供?

答:8051定时器作定时时计数脉冲从fosc的12分频的脉冲作为计数脉冲。

用作计数时,从外部Tx引脚输入的脉冲作为计数脉冲。 5、8051定时器的门控信号GATE设置为1时,定时器如何启动?

答:8051定时器的门控信号GATE设置为1时,定时器的启动只能通过外部引脚

第 2 页/共 2 页

INTx启动,当INTx为1时定时器启动,当INTx为0时定时器关闭。 6、使用一个定时器,如何通过软件实现较长时间的定时?

答:可以在定时中断服务程序中设定中断次数计数器,当到达所需的计数次数后处理相应的事件。

7、为什么定时器T1用作串行口波特率发生器时,常选用工作方式2? 答:工作方式2是自动重装入方式。

作为波特率发生器的定时器定时时间都比较短,8位即可以满足需要。 自动重装入方式省去了中断程序装初值,提高了精度且不占用程序执行时间。

8、什么是单片机的时钟周期、机器周期和指令周期? 答:时钟周期就是振荡周期。

一个机器周期由12个振荡周期组成。

CPU执行一条指令所需的时间称为指令周期,指令周期是以机器周期为单位的。

9、么是波特率?什么是传送速率?

答:波特率是指数据传送速率。

数据传送速率表示每秒传送二进制代码的位数。

三、综合题

1、已知8051单片机的fosc=6MHz,请用T0和P1.0输出矩形方波。矩形方波的高

电平为50µs,低电平宽度为300µs。 解:AJMP MAIN

ORG 000BH AJMP T0_INT

MAIN:MOV SP,#30H

CLR F0

MOV TMOD #00000001B MOV TH0,#0FFH MOV TL0,#0E7H SETB TR0

第 3 页/共 2 页

SETB EA SETB ET0 SJMP $ T0_INT:

JB F0,HIGH MOV TH0,#0FFH MOV TL0,#0E7H SETB P1.0 SETB F0 RETI HIGH:

MOV TH0,#0FFH MOV TL0,#06AH CLR P1.0 CLR F0 RETI

2、将存放在30H单元中的压缩BCD码拆分后,分别放在31H和32H单元中。 解:MOV A,30H

ANL A,#0FH MOV 32H,A MOV A,30H ANL A,#0F0H SWAP A MOV 31H,A

3、试将存放在40H单元中的数据0FH乘4,结果仍然存放在40H单元中。

解:MOV A,40H

第 4 页/共 2 页

RL A RL A MOV 40H,A

4、编写一段程序,查找存放在30H-50H单元中是否有数据34H,若有则将F0置1,

否则将F0清零。 解:MOV R0,#30H

MOV R1,#21H CLR F0

LOOP:

CJNE @R0,#34H,NOT_EQU SETB F0 SJMP QUIT

NOT_EQU: INC R0

DJNZ R1,LOOP

QUIT:

5、若单片机的晶体震荡频率为12MHz,编写一输出到P1.0的脉冲,脉冲周期为

100µs。 解:AJMP MAIN

ORG 000BH AJMP T0_INT

MAIN:MOV SP,#30H

MOV TMOD #00000001B MOV TH0,#0FFH MOV TL0,#0ECH SETB TR0 SETB EA

第 5 页/共 2 页

SETB ET0 SJMP $ T0_INT:

MOV TH0,#0FFH MOV TL0,#0ECH CPL P1.0 RETI

6、编写程序,将外部RAM中2000H-2020H单元的内容送入内部RAM的30H-50H单元

中。

解:MOV P2,#20H

MOV R0,#00H MOV R1,#30H MOV R2,#21H

LOOP:

MOVX A,@R0 MOV @R1,A INC R0, INC R1 DJNZ R2,LOOP

第 6 页/共 2 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Top