单片机练习题(总) 下载本文

一、选择题

1、PSW=18H时,则当前工作寄存器是( ) A、0组 B、1组 C、2组 D、3组 2、MOVX A,@DPTR指令中源操作数的寻址方式是( )

A、寄存器寻址 B、寄存器间接寻址 C、直接寻址 D、立即寻址 3、执行PUSH ACC指令,MCS-51完成的操作是( )

A、SP+1 SP (ACC) (SP) B、(ACC) (SP) SP-1 SP C、SP-1 SP (ACC) (SP) D、(ACC) (SP) SP+1 SP 4、单片机8051的XTAL1和XTAL2引脚是( )引脚

A、外接定时器 B、外接串行口 C、外接中断 D、外接晶振 5、单片机的堆栈指针SP始终是( )

A、指示堆栈底 B、指示堆栈顶 C、指示堆栈地址 D、指示堆栈长度 6、8051单片机中片内RAM共有( )字节

A、128 B、256 C、4K D、64K 7、8051的P0口,当使用外部存储器时它是一个( ) A、传输高8位地址 B、传输低8位地址

C、传输低8位数据 D、传输低8位地址/数据总线 8、LJMP跳转空间最大可达到( )

A、2KB B、256B C 、128B D、64KB 9、计算机内部数据之所以用二进制形式表示,主要是( ) A、为了编程方便 B、由于受器件的物理性能限制 C 、为了通用性 D、为了提高运算速度 10、8051单片机共有( )中断源 A、4 B、5 C 、6 D、7

11、8051的内部RAM中,可以进行位寻址的地址空间为( )

A、00H∽2FH B、20H∽2FH C、00H∽FFH D、20H∽FFH 12、提高单片机的晶振频率,则机器周期( )

A、不变 B、变长 C 、变短 D、不定 13、在堆栈操作中,当进栈数据全部弹出后,这时S P应指向( )

A、栈底单元 B、7FH单元 C、栈底单元地址加1 D、栈底单元地址减1

14、8051单片机中,唯一一个用户不能直接使用的寄存器是( ) A、P S W B、D P T R C 、P C D、B 15、8051单片机中,唯一一个用户可使用的16位寄存器是( ) A、P S W B、D P T R C 、A C C D、P C 16、执行M O V I E,#81H指令的意义是:( ) A、屏蔽中断源 B、开放外部中断源0

C、开放外部中断源1 D、开放外部中断源0和1 17、定时器/计数器工作方式1是( )。

A.8位计数器结构 B.2个8位计数器结构 C.13位计数结构 D.16位计数结构 18、指令和程序是以( )形式存放在程序存储器中

A、源程序 B、汇编程序 C、二进制编码 D、BCD码 19.使用定时器T1时,有几种工作模式( ) A、1种 B、2种 C、3种 D、4种

20、在80C51的4个并行口中,能作为通用I/O口和高8位地址总线的是( )。 A、P0 B、P1 C、P2 D、P3

21、80C51基本型单片机内部程序存储器容量为( )。 A、16K B、8K C、4K D、2K

22、在80C51中,要访问SFR使用的寻址方式为( )。

A、直接寻址 B、寄存器寻址 C、变址寻址 D、寄存器间接寻址 23、80C51单片机要进行10位帧格式的串行通讯时,串行口应工作在( )。 A、方式0 B、方式1 C、方式2 D、方式3

24、80C51复位初始化时未改变SP的内容,第一个入栈的单元地址为( )。 A、08H B、80H C、00H D、07H

25、若系统晶振频率是12MHz,利用定时器/计数器1定时1ms,在方式0下的定时初值为( )。

A.TH1=0E0H,TL1=18H B.TH1=18H,TL1=0E0H

C.TH1=1CH,TL1=18H D.TH1=18H,TL1=1CH 26、执行以下程序段 MOV SP,#40H MOV B,#30H MOV A,#20H PUSH B PUSH ACC POP B POP ACC

后,B和A的内容分别为( )、( )。 A.20H,30H B.30H,20H C.40H,30H D.40H,20H 27、执行以下程序段 MOV R0,#10H MOV A,R0 RL A MOV R1,A RL A RL A ADD A,R1 MOV @R0,A

后,实现的功能是( )

A.把立即数10H循环左移3次 B.把立即数10H×10

C.把10H单元的内容循环左移3次 D.把10H单元的内容×10

二、填空题

1、要MCS-51系统中,若晶振频频率8MHz,一个机器周期等于1.5μs 2、十进制29的二进制表示为00011101

3、MCS-51有4组工作寄存器,它们的地址范围分别是 、 、 、 。 4、MCS-51片内20H~2FH范围内的数据存储器,既可以字节寻址又可以位寻址.

5、若由程序设定RS1、RS0=11,则工作寄存器R0~R7的直接地址为_________。 6、80C51的INT1的中断向量为 。

7、5l单片机在复位状态下,PC指针为 ,堆栈指示器SP为 。 5、单片机应用程序一般存放在 中。 6、8051的程序计数器PC,其寻址范围是 。 7、8051单片机的VSS(20)引脚是 引脚。 8、8051单片机的VCC(40)引脚是 引脚。

9、8051单片机中,输入/输出引脚中用于专门的第二功能的引脚是 。 10、MCS—51的串行数据缓冲器SBUF用于 。

11、置8051的定时器/计数器T1于计数模式,工作于方式1,则工作方式字为 。

12、80C51单片机基本型内部RAM有 个字节单元,这些单元可以分为三个用途不同的区域,一是 区,二是 区,三是 区。 13、某程序初始化时使(SP)=40H,则此堆栈地址范围为41H---7FH ,若使(SP)=50H,则此堆栈深度为 47字节(51H---7FH共47个字节) 。

14、在定时器工作方式0下,计数器的宽度为 位,其记数范围为 ,如果系统晶振频率为6MHZ,则最大定时时间为 。

15、A/D转换器的三个重要指标分别是 、 、 。一个10V的8位D/A转换器的分辨率约为 。

16、89C51片内RAM中,可位寻址的单元字节地址从 H到 H, 位地址从 H到 H。

17、关于堆栈类操作的两条指令分别是______________ 、____________。 18、89C51系列单片机中断系统中规定:同级中断不能相互中断.如果几个同级的中断源同时向CPU申请中断,CPU则按硬件排定如下优先次序: 、 、 、 , 。 19、中断响应是一个自主的操作过程,当CPU查询到某个中断标志为1时,中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。对于外部中断1,其中断矢量地址为 ,对于串行口中断,其中断矢

量地址为 。

20、89C51单片机的定时/计数器是 位(减1/加1)定时/计数器。作为定时器工作时,共有 种工作模式,采用方式1工作时,构成 位计数器。

21、若(PSW)=18H,则选取的是第 组通用寄存器。这一组通用寄存器的地址范围从 H~ H。

22、把(1110110)2转换为十进制数为 ,将(145A)16转换为二进制数为 。

三、简答题

1、8051单片机内部寄存器低128单元可以分为几部分?各部分作用是什么? 2、MCS-51指令系统主要有哪几种寻址方式? 3、简述单片机I/O口中P0~P3的功能。 4、什么叫堆栈?堆栈指针SP的作用是什么?

5、51系列单片机共有几个中断源,入口地址分别是什么? 6、静态显示和动态显示的区别是什么?

7、片内数据存储器分为哪几个性质和用途不同的区域? 8、对访问内部RAM和外部RAM,各应采用哪些寻址方式?

9、MCS-51有5个中断源,分别为哪5个,它们的入口地址分别为什么? 10、如果采用晶振的频率为3MHz,定时器/计数器工作方式0、1、2下,其最大的定时时间为多少?(要求计算过程)

11、80C51单片机指令系统有几种寻址方式?分别是什么?

12、内部RAM低128单元划分为哪3个主要部分?说明各部分的使用特点。 13、单片机的fosc=12MHZ,要求用T0定时150μs,分别计算采用定时方式0、定时方式1和定时方式2时的定时初值。

14、单片机的fosc=6MHZ,问定时器处于不同工作方式时,最大定时范围分别是多少?

四、综合分析题

1、绘制单片机最小系统接线图,要求程序存储器访问范围为从内部开始并可扩展至外部程序存储器,并标明相关各引脚。

2、已知51系列单片机PSW字节内容为15H,首先请确定此时单片机工作寄存器R0-R7的具体地址(包含分析过程),此外分析PSW字节内容还包含什么信息,并予以解释。

3、已知某单片机系统采用6MHz的晶振,并有如下初始设置,试分析系统定时/计数器的工作状态,以及定时/计数的时间或者次数。

MOV

MOV

TMOD,#10H TH1,#15H TL1,#0A0H

MOV

4、51系列单片机内部RAM中低128字节共分为哪几个部分,各部分地址范围分别是多少?

5、下列程序段的功能是________________

PUSH PUSH POP A POP B

A B

6、假定A=83H,(R0)=17H,(17H)=34H,执行以下指令:

ANL A,#17H ORL 17H,A XRL A,@R0 CPL

A

后,A的内容为________________。

7、已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。

POP POP

DPH DPL

MOV DPTR,#4000H RL

A

MOV B,A MOVC PUSH

A,@A+DPTR A

MOV A,B INC MOVC PUSH RET ORG 4000H DB

10H,80H,30H,50H,30H,50H A A,@A+DPTR A

请问上述述程序执行后:A=( ),SP=( ),(51H)=( ),(52H)=( ),B=( )。 8、(SP)=61H,(61H)=32H。执行“POP ACC”指令后,(SP)= , A= 。

9、分析并完成以下程序实现以下功能:查表计算0——9的平方值(设数已置于R0),将结果保存至累加器A中,若数大于9则将A的内容置为全1。 ORG 0030H

MOV DPTR,#TAB ;TAB为表首地址 MOV A,R0

A,#10,NEXT NEXT: NEXT1 A,@A+DPTR SJMP NEXT2 NEXT1:MOV A, NEXT2:SJMP NEXT2

: 0,1,4,9,16,25,36,49,64,81

10、已知某外部中断应用要求使用下降沿触发,初始化编程如下,请分析题中信息,补充完整空缺部分。

ORG 0000H

AJMP ORG AJMP SUBG MAIN: MOV A , #OOH MOV 30H , A

MOV 31H , A MOV SP , #70H

INT0 SETB SETB AJMP $

SUBG:?? /*中断子程序*/

11、阅读下面程序,分别说出下列指令源操作数是什么寻址方式?

MOV A,#16 MOV 20H,P1 MOV A,R0 MOVX A, @DPTR

MOVC A, @A+DPRT SJMP LOOP ANL C,70H

12、试阅读下面的程序,指出该程序结束后累加器ACC和寄存器TH0的值,并说明该程序完成了怎样的功能。 ORG 0000H MOV SP,#60H MOV A,#10H MOV TH0,#20H PUSH ACC PUSH TH0 POP ACC POP TH0 END

答:利用堆栈交换了ACC和TH0的内容,(A)=20H,(TH0)=10H 13、程序段如下,试说明其功能。 MOV R0,#50H

MOV R1,#60H MOV A,@R0 ADD A,@R1 MOV @R0,A INC R0 INC R1 MOV A,@R0 ADDC A,@R1 MOV @R0,A MOV 00H,C

答:双字节无符号数加法。被加数存放在内部RAM的51H、50H单元,加数存放在内部RAM的61H、60H单元,相加的结果存放在内部RAM的51H、50H单元,进位存放在位寻址区的00H位中。

14、设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何?

MOV R0,#30H MOV A,@R0 MOV R1,A MOV B,R1 MOV @R1,P1 MOV A,P1 MOV 40H,#20H MOV 30H,40H

15、若(DPTR)=5306H,(A)=49H,执行下列指令: MOVC A,@A+DPTR

后,送入A的是程序存储器 单元的内容。 16、假定(SP)=45H,(ACC)=46H,B、=47H,执行下列指令: PUSH ACC

PUSH B

后,(SP)= ,(46H)= ,(47H)= 。

17、设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即A,B,P1,30H,40H及5AH单元)的内容如何?

MOV R0,#30H MOV A,@R0 MOV R1,A MOV B,R1 MOV @R1,P1 MOV A,P1 MOV 40H,#20H MOV 30H,40H

A= ,B= ,P1= ,(30H)= ,(40H)= ,(5AH)= 。

18、补充完成1个程序,将内部RAM中45H单元的高4位清0,低4位置1。

MOV A, 45H

ANL A, A, #0FH MOV 45H, A

19、假定(A)=0FCH,(B)=35H。执行指令:

DIV AB

后,累加器(A)= ,寄存器(B)= ,(CY)= ,(OV)= 。

20、若(A)=56H,(R0)=56H,(56H)=56H。执行指令: ADD A,@R0

后,(A)= ,(CY)= ,(AC)= ,(OV)= 。 21、指出寻址方式 (1)MOV 40H,#20H ( ) (2)MOVX @DPTR,A ( ) (3)MOV 20H,C ( )

(4)MOVC A,@A+DPTR( )

22、 若(A)=80H,R0=17H,(17H)=34H,执行下段程序后,(A)=? ANL A,#17H ORL 17H,A XRL A,@R0 CPL A

23、 写出程序执行后有关寄存器和RAM中有关单元的内容:请在每一行程序后注释。 MOV 30H,#A4H MOV A,#0D6H MOV R0,#30H MOV R2,#47H ANL A,R2 ORL A,R0 SWAP A CPL A XRL A,#0FFH ORL 30H,A

24、在程序存储器中,数据表格为: 7010H:02H 7011H:04H 7012H:06H 7013H:08H 执行程序 MOV A,#10H MOV DPTR,#7000H MOVC A,@A+DPTR 问结果:(A)=?

25、 程序如下:(设数已置于R0)

ORG 0030H

MOV DPTR,#TAB ;TAB为表首地址 MOV A,R0 CJNE A,#10,NEXT NEXT:JNC NEXT1 MOVC A,@A+DPTR SJMP NEXT2

NEXT1:MOV A,#0FFH NEXT2:SJMP NEXT2

TAB: 0,1,4,9,16,25,36,49,64,81 请说明上述程序执行后的功能。

26.若(DPTR)=5306H,(A)=49H,执行下列指令: MOVC A,@A+DPTR

后,送入A的是程序存储器 单元的内容。

27、假定(SP)=45H,(ACC)=46H,B、=47H,执行下列指令: PUSH ACC PUSH B

后,(SP)= ,(46H)= ,(47H)= 。

五、编程题

1、 程序实现c=a2?b2。设a、b均小于10,a存在31H单元,b存在32H单元,把c存入33H单元。

2、编写程序,将外部数据存储器中的4000H—40FFH单元全部清零。

3、编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。

4、片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和<256 ). 5、编写程序,将内部存储器中的40H—4FH单元全部清零。

6、编制一个循环闪烁的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。

7、应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉

冲信号,已知单片机的晶振频率为6MHZ。

8、 若80C51单片机的fosc=6MHZ,请利用定时器T0定时中断的方法,使P1.0输出如图所示的矩形脉冲。

9、编程,查表计算0——9的平方值(设数已置于R0),将结果保存至累加器A中,若数大于9则将A的内容置为全1。

10、设晶振频率=6MHz,利用定时器0的方式1在P1.0产生一串50Hz的方波。定时器溢出时采用中断方式处理。

11、以定时器/计数器1进行外部事件计数,没计数1000个脉冲之后,定时器/计数器1转为定时工作方式。定时10ms后,又转为计数方式,周而复始循环。假定单片机晶振频率为6MHz,使用模式1编程。

12、以中断方法涉及单片机秒,分钟脉冲发生器。假定P1.0每秒产生一个机器周期的正脉冲,P1.1每分钟产生一个机器周期的正脉冲。

13、若fosc = 6MHz,波特率为2400波特,设SMOD = 1,则定时/计数器T1的计数初值为多少?并进行初始化编程。