单片机习题及答案 联系客服

发布时间 : 星期一 文章单片机习题及答案更新完毕开始阅读7f7961ec998fcc22bcd10d64

MOV R0,#40H MOV R7,#8 SETB EX0 SETB EA

MOVX A,@DPTR SJMP $

INTO_INT:MOVX A,@DPTR MOV @R0,A INC DPTR INC R0

MOVX @DPTR,A DJNZ R7,LOOP MOV DPTR,#7F00H MOV R0,#40H MOV R7,8 LOOP: RETI

单片机习题及答案(二)2009-08-05 16:03:16| 分类: 学习 阅读1039 评论0 字号:大中小 订阅 .

一、填空题(30分)(每空1分)

1)8051系列单片机中,片内数据存储区一共分为3个区,这3个区分别为: ; ; 。

2)8K╳8位的存储器共有地址线 根。

3)3 — 8译码器74LS138在全译码寻址方式中,译码器的输出端通常与单片机接口芯片的 端连接。

4)当单片机接到外设的中断申请时,单片机响应中断,单片机将暂停 的执行,转去执行 程序,执行完 ,再执行 程序。

5)8051单片机的中断源有: , , , , 。

6) 单片机P0口为 总线和 总线的复用端口,74LS373与P0口连接,其输出线作为系统的 ,74LS373的G端与单片机 连接。

7) 当单片机接到外设的中断申请时,单片机响应中断,单片机将暂停 执行,转去执行 程序,执行完 ,再执行 程序。

8) 已知程序执行前有A=01H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后: POP DPH POP DPL

MOV DPTR,#3000H RL A MOV B,A

MOVC A,@A+DPTR PUSH A MOV A,B

INC A

MOVC A,@A+DPTR PUSH A RET

ORG 3000H

DB 10H,80H,30H,80H,50H,80H 请问:A=( ),SP=( ),(51H)=( ),(52H)=( ),PC=( )。 9) 如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:

POP DPH POP DPL POP SP 则:DPH=( ),DPL=( ),SP=( ) 10) 假定A=83H,(R0)=17H,(17H)=34H,执行以下指令: ANL A,#17H ORL 17H,A XRL A,@R0 CPL A

后,A的内容为( )。 二、简答题(20分)

1) 单片机的复位(RST)操作有几种方法,复位功能的主要作用。(5分)

2) 编制中断服务程序时,为什么在主程序的初始化程序中,必须设置 SETB EA 这条指令,以及在中断服务程序中为什么通常需要保护现场和恢复现场?(10分)

3) 中断服务子程序返回指令RETI和普通子程序返回指令RET有什么区别?(5分) 三、判断下列指令的正误:(10分) 1)MOV 28H,@R2 ( ) 2)DEC DPTR ( ) 3)INC DPTR ( ) 4)MOV C,30H ( ) 5)CPL R5 ( ) 6)MOV R0,R1 ( ) 7)PUSH DPTR ( ) 8)MOV F0,C ( ) 9)MOV F0,ACC.3 ( ) 10)RLC R0 ( ) 四、编程题(40分)

1、编制中断初始化程序,外部中断0(边沿触发)、定时器0开中断(中断允许);外部中断1、定时器1关中断(不允许中断)。(5分)

2、编程将片内RAM 40H 单元开始的16个数传送到片外RAM 2000H 开始的单元中。(5分)

3、使用定时器中断方式编程实现从P1.0引脚上输出一个周期为1s的方波。(系统时钟为6MHz)(15分)

4. 根据硬件图计算ADC0809的8个模拟量输入通道的地址,并编写程序实现8个通道的模拟量循环采集,采集结构存放至片内RAM 40H~47H中。(15分)

一、填空题(每空1分)

1、寄存器区、位寻址区、数据缓冲区 2、13

3、片选端4、中断服务程序,中断服务程序,主程序

4、外部0中断,定时器T0中断,外部1中断,定时器T1中断,串行口通讯中断 5、数据,地址,地址,ALE 6、中断服务,中断服务,主

7、30H,50H,80H,30H,3080H 8、3CH,5FH,4FH 9、0CBH 二、简答题

1、单片机的复位操作方式有:1、上电复位;2、手动复位。 (2分)

复位功能的主要作用是:复位时,PC初始化为0000H,使MCS-51单片机从0000H开始执行程序。 (3分)

2、中断允许寄存器IE中有1个总的开关中断控制位EA,当EA=0时,所有的中断请求被屏蔽,CPU不接受任何中断;只有当EA=1时,CPU才开放中断。所以主程序的初始化程序中,必须设置 SETB EA 这条指令。 (5分)

现场是指中断时刻单片机中某些寄存器和储存器单元中的数据或状态,为了使中断服务程序的执行不破坏这些数据和状态,以免在中断返回后影响主程序的运行,因此要这些数据和状态送入堆栈保存,这就是现场保护。中断结束后,在返回主程序谦,则需要把保存的现场数据和状态从堆栈中弹出,以恢复那些寄存器和存储器单元中的原有内容,这就是现场恢复。 (5分)

3、中断服务子程序返回指令RETI和普通子程序返回指令RET的区别在于:

RETI指令在返回的同时清除相应的优先级触发器,以允许下次中断。 (5分) 三、判断下列指令的正误:(10分) 1× 2× 3√ 4√ 5× 6× 7× 8√ 9× 10× 四、编程题

1、编制中断初始化程序,外部中断0(边沿触发)、定时器0开中断(中断允许);外部中断1、定时器1关中断(不允许中断)。 (5分) 解: SETB EX0 SETB IT0 SETB ET0 CLR ET1 CLR EX1 SETB EA

2、编程将片内RAM 40H 单元开始的16个数传送到片外RAM 2000H 开始的单元中。 解: MOV R0,#40H MOV R7,#16

MOV DPTR,#2000H LOOP: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR

DJNZ R7,LOOP

NOP END

3、使用定时器中断方式编程实现从P1.0引脚上输出一个周期为1s的方波。(系统时钟为6MHz)

解:使用定时器T0产生50ms的定时,然后在计数10次,从而500ms的定时。 ORG 0000H AJMP MAIN ORG 000BH

LJMP TMR0_INT ORG 0030H

MAIN: MOV TMOD,#01H MOV TH0,#9EH MOV TL0,#58H MOV R7,#10 SETB ET0 SETB EA SETB TR0 SJMP $

TMR0_INT: CLR TR0 DJNZ R7,LOOP MOV R7,#10 CPL P1.0

LOOP: MOV TH0,#9EH

MOV TL0,#58H SETB TR0 SETB TR0

3、根据如下电路连接图计算ADC0809的8个模拟量输入通道的地址,并编写程序实现8个通道的模拟量循环采集,采集结构存放至片内RAM 40H~47H中。

解:根据电路连接图可计算出ADC0809的8个模拟量输入通道的地址为: 7F00H~7F07H (5分) 循环采集的程序设计如下: ORG 0000H AJMP MAIN ORG 0030H

MAIN: MOV DPTR,#7F00H MOV R0,#40H MOV R7,#8

LOOP: MOVX @DPTR, A JNB P3.2,$

MOVX A,@DPTR MOV @R0,A INC DPTR INC R0

DJNZ R7,LOOP MOV DPTR,#7F00H