单片机复习题 带答案

更新时间:2023-12-28 12:13:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机复习题

(试题答案仅供参考,有错误请指出)

一、选择

1、单片机复位后,堆栈指针SP的值为( A )

A、07H B、00H C、0FFH

2、已知机器数X的补码1111 1110,则其原码为( C ) A、2 B、-1 C、-2

3、如果51单片机的晶振频率为6MHZ,则一个机器周期的时间为( A 2 B、1微秒 C、0.5微秒

4、对51单片机来说,以下既可以位寻址又可以字节寻址的是( A ) A、30H B、22H C、07H

5、如果将TMOD中的M1清0,M0置1,则T0的工作方式( B ) A、13位定时器/计数器 B、16位定时器/计数器 C、8位定时器/计数器

6、指令中常用的符号#data表示( A )

A、8位立即数 B、16位立即数 C、8位直接地址 7、MOVC A, @A+PC指令中原操作数的寻址方式是( A ) A、基址加变址寻址 B、寄存器间接寻址 C、相对寻址

8、下列那条指令是正确的( C )

A、DEC DPTR B、ADD R0, A C、PUSH ACC 9、MOV DPTR,#1000H

) MOVX A,@DPTR MOV DPTR,#2000H MOVX @DPTR 程序段实现的功能是( B ) A、 B、 C、

将ROM的1000H单元中的内容送至外部RAM的2000H单元中 将外部RAM的1000H单元内容送至外部ROM的2000H单元中 将A的内容送至外部RAM的1000H单元中

10、PSW的OV位为( C )

A、辅助进位标志位 B、进位标志 C、溢出标志位 11、十进制数197.6875转换成二进制数是( A )

A、11000101.1011B B、11010101.1011B C、11000101.0011B 12、-2的补码为( C )

A、0000 0001 B、1000 0001 C、1111 1110

13、如果51单片机的晶振频率为12MHZ,则一个机器周期的时间为( B ) A、2微秒 B、1微秒 C、0.5微秒

14、对51单片机来说,以下既可以位寻址又可以字节寻址的是( B ) A、30H B、22H C、07H

15、如果将PSW种的RS1置1,RS0清0,则选定的工作寄存器为( B ) A、1区 B、2区 C、3区 16、指令中的常用的符号@Ri表示( C ) A、以R0为指针间接寻址的ROM单元 B、以R0为指针间接寻址RAM的单元 C、以R0或R1为指针间接寻址的RAM单元 17、MOV A, R0指令中源操作数的寻址方式是( A ) A、直接寻址 B、寄存器间接寻址 C 、相对寻址

18.下列指令是正确的是(C)

A、DEC DPTR B、ADD R0,A C、PUSH ACC 19、MOV DPTR, #1000H CLR A

MOVC A, @A+DPTR MOV DPTR, #2000H MOVX @DPTR,A 程序段实现的功能( A ) A、 B、 C、

将ROM的1000H单元内容送至外部RAM的2000H单元内容中 将RAM的1000H单元内容送至外部ROM 的2000H单元内容中 将ROM的2000H单元内容送至外部RAM的1000H单元内容中

20、已知(A)=85H,(R0)=20H,(20H)=0AFH,执行指令ADD A, @R0,则A和CY的值为( A )

A、(A)=34H,(CY)=1 B、(A)=34H,(CY)=0 C、(A)=3H,(CY)=1 二、填空

1、二进制数1011110011.101转换成八进制数是( 1363.5 )

2、已知(A)=80H,(R0)=20H,(20H)=12H,执行指令XCHD A, @R0,则(A)=( 82H )

3、设(30H)=0FFH,执行指令INC 30H, 则(30H)=( 100H )

4、已知(A)=30H,(1030H)=03H,(1031H)=04H,执行指令1000H: MOVC A, @A+PC(此条指令为单字节指令)(A)=(04H)

5、若(SP)=3EH,(DPTR)=6030H,执行指令PUSH DPL,PUSH DPH,则(3FH)=( 30H ),(40H)=( 60H ),(SP)=( 40H )

6、设(A)=0101 0101,(R5)=1010 1010,执行指令ORL A, RS,则(A)=(0FFH))

7、已知(A)=1111 1111,(CY)=0,执行指令RLC A,则(A)=( 0FEH)

8、已知(A)=10H,(DPTR)=2000H,执行指令JMP @A+DPTR,则(PC)=( 2010H )

9、51单片机的外部中断1的中断请求标志位是(IE1) 10、51单片机共有( 5 )个中断源,( 2 )个中断优先级

11、51单片机共有( 4)8位I/O接口,其中(P1和P2)口具有第二功能,( P0)作为通用输出口时,必须外接上拉电阻

12、二进制数10 1111 0011.101转换成16进制数是( 2F3.AH )

14、若(SP)=40H,(3FH)=30H,(40H)=60H,执行指令POP DPH,POP DPL,则(DPTR)=( 6030H ),(SP)=( 3EH )

15、设(A)=0101 0101,(R5)=1010 1010,执行指令XRL A, R5,则(A)=(0FFH)

16、51单片机共有( 4)8位I/O接口,其中(P1和P2)口具有第二功能,( P0)作为通用输出口时,必须外接上拉电阻

17、51单片机共有( 5 )个中断源,( 2 )个中断优先级 18、51单片机中断服务子程序的最后一条指令是( 返回指令RETI )

19、51单片机定时/计数器T0的溢出标志位和运行控制位分别是(TF0)和(TR0) 20、51单片机外部中断1的中断允许位是( EX1 ) 21、 51单片机定时/计数器工作方式2的最大值是(256)

三、分析程序回答问题 CLR A MOV R3,A MOV DPTR, #TAB MOV R1,#50H MOV R2,#03H

LOOP: MOVC A, @A+DPTR MOV @R1,A MOV A,R3 INC A MOV R3,A INC R1

DJNZ R2,LOOP RET

ORG 0070H

TAB:DB 12H,32H,56H,84H,02H,56H,63H,89H DB 0EFH,87H,02H,33H,64H,0DFH,14H,88H

该程序执行后,DPTR中的数值是(0070H ),退出时A的数值是( 03H ),R1中的数值是( 53 H ),R2中的数值是( 00 H ),当A的值是1时,查表所得的值是(32H ) 四、简答

1、1个中断源的中断请求要被响应,必须满足得到条件是什么?

答:1.开放CPU中断,即中断允许控制位EA=1;2.中断源有中断请求,即中断标志位被置位;3.相应的中断允许位被置位,即某个中断源允许中断;4.无同级或高级中断正在被服务。

2、写出51单片机的中断源自然优先级的顺序(由高到低),和响应中断入口地址 答:51单片机的中断自然优先级的顺序(由高到低):外部中断0,T0溢出中断,外部中断1,T1溢出中断,串行口中断;

响应中断入口地址:外部中断0的地址0003H,定时计数器0的地址000BH,外部中断1的地址0013H,定时计数器1的地址001BH,串行口中断0023H。

3、程序状态寄存器PSW各位的含义

答:程序状态寄存器PSW各位的含义:进位标志CY,辅助进位标志AC,用户标志位F0,溢出标志OV,奇偶标志P,工作寄存器组选择位RS1、RS0。 五、编程 1、

已知原码,求补码P64(4-5)

例:设在内部RAM30H单元存放着一个有符号数,试编程求其补码,并存放回原单元。 ORG 0100H MOV A,30H JNB ACC.7,L1 CPL A ADD A,#1 ORL A,#80H MOV 30H,A L1:SJMP $ END 2、

将外部RAM地址送到片内RAM中P66(4-9)

例:将外部RAM1000H单元开始的20个字节数据传送到片内30H开始的单元。 ORG 0100H MOV R7,#20 MOV DPTR,#1000H MOV R0,#30H L1:MOVX A,@DPTR MOV @R0,A INC DPTR

INC R0 DJNZ R7,L1 SJMP $ END 3、

定时器P91(6-1)

例:选定定时计数器1方式0产生500定时,在引脚上输出周期为1的方波,设晶振频率=6MHz。

答:(1)计算定时计数器的初值

机器周期为2,设需要装入T1的初值为X,则有:

(2^13-X)×2=500,可得X=7942D=1111100000110B,低5位送入TH1的低5位,高8位送入TH1,即(TL 1)=00110=06H,(TH1)=11111000=F8H。 (2)初始化程序设计

根据题意对TMOD进行初始化。GATE=0,用1控制定时器的启动和停止,C T=0,设为定时工作模式,M1M0=00,设为方式0,定时计数器0不用,TMOD低4位置0即可,则(TMOD)=00H。 (3)程序设计

程序的实现可以采用查询方式或中断方式。 采用查询方式,参考程序如下: ORG 0000H LJMP MAIN ORG 0300H MAIN:MOV THOD,#00H MOV TH1,#0F8H MOV TL1,#06H MOV IE,#00H SETB TR1

LOOP:JBC TF1,ZCZ AJMP LOOP ZCZ:CLR TR1 MOV TL1,#06H MOV TH1,#0F8H CLP P1.1 SETB TR1 AJMP LOOP

采用中断方式,参考程序如下: ORG 0000H LJMP MAIN ORG 001BH AJMP ZPZ ORG 0300H MAIN:MOV TMOD,#00H MOV TH1,#0F8H MOV TL1,#06H SETB ET1 SETB EA SETB TR1 $:SJMP $ ZCZ:CLR TR1 MOV TL1,#06H MOV TH1,#0F8H CLP P1.1

SETB TR1 RETI

例:假设系统时钟频率为12MHz,使用定时计数器0工作在方式1,在P1.0端输出周期为20ms的方波。

答:(1)计算定时计数器的初值

要输出周期20ms的方波,只需在P1.0引脚每隔10ms交替输出高、低电平即可,因此定时时间为10ms。机器周期为1。设计数初值为X,则有 (2^16-X)×1=10000,X=55536D=0D8F0H。

低8位送TL0,高8位送TH0,即(TL0)=0F0H,(TH0)=0D8H。 (2)对初始化

由题意可知,GSTE=0,C T=0,M1M0=01,定时计数器1不用,TMOD高4位置0,则()=01。 (3)程序设计

采用查询方式,参考程序如下: ORG 0000H LJMP MAIN ORG 0300H MAIN:MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H MOV IE,#01H SETB TR0 LOOP:JBC TF0,ZCZ AJMP LOOP ZCZ:CLR TR0

MOV TL0,#0D8H

MOV TH0,#0F0H CLP P1.0 SETB TR0 AJMP LOOP

采用中断方式,参考程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP ZCZ ORG 0300H

MAIN:MOV THOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H SETB ET0 SETB EA SETB TR0 HERE:AJMP HERE ZCZ:CLR TR0

MOV TL0,#0D8H MOV TH0,#0F0H CLP P1.0 SETB TR0 RET1

本文来源:https://www.bwwdw.com/article/gxnx.html

Top