单片机习题(指令与编程及答案)

单片机习题(指令与编程及答案)
单片机习题(指令与编程及答案)

单片机练习二

一.单项选择题

1. ORG 0003H

LJMP 2000H

ORG 000BH

LJMP 3000H

当CPU响应外部中断0后,PC的值是( B )。

A.0003H

B. 2000H

C. 000BH

D. 3000H

3. MCS-51的相对转移指令的最大负跳距离为( B )。

A.2KB

B. 128B

C.127B

D. 256B

4. 以下运算中对溢出标志0V没有影响或不受影响的运算是( A )。

A.逻辑运算

B. 符号数加减运算

C. 比较数据大小运算

D. 除法运算

5. 产生PSEN信号的指令是( C )。

A . MOVX A ,@DPTR B. MOVX @DPTR, A

C. MOVC A , @A+PC

D. MOVX A, @A+DPTR

6. MOVX A , @DPTR指令中的源操作数的寻址方式是( B )。

A.寄存器寻址

B.寄存器间接寻址

C.直接寻址

D.立即寻址

7. 将MCS-51的工作寄存器置成3区的指令是( B )。

A. MOV PSW , #13H

B.MOV PSW , #18H

C. SETB PSW.4 ,CLR PSW.3

D.SETB PSW.3 ,CLR PSW.4

8. 指令AJMP的跳转范围是( C )。

A .256

B B.1KB C.2KB D.64KB

9. 6264芯片是( B )。

A.E2PROM

B.RAM C .Flash ROM D .EPROM

10. 下面那条指令产生WR信号( D )。

A.MOVX A , @DPTR

B.MOVC A , @A+DPTR

C.MOVC A , @A+PC

D.MOVX @DPTR , A

11. 执行LCALL 4000H指令时,MCS-51所完成的操作是( D )。

A.保护PC

B.保护现场

C.4000H →PC

D.PC+3入栈,4000H → PC

12. 下列指令中可能改变Cy的有(C )。

A.INC A

B.CPL A

C. RLC A

D.MOV A , #data

13.假定设置堆栈指针SP的值为36H,在执行指令PUSH 20H后,SP的值为( B )。

A.36H

B.37H

C. 38H

D.21H

14.PUSH ACC指令,MCS-51完成的操作是( A )。

A.(SP)+1→SP (ACC) → (SP)

B. (ACC) → (SP) (SP)-1→SP

C.(SP)-1→SP (ACC) → (SP)

D. (ACC) → (SP) (SP)+1→SP

15.MOV C, 00H 指令的第二操作数寻址方式是( A )。

A.位寻址

B. 直接寻址

C. 立即寻址

D. 寄存器寻址

16.在算术运算中,与辅助进位AC有关的是( C )。

A.二进制

B. 八进制

C. 十进制

D. 十六进制

17. 把P0口高四位变0,低四位不变,应使用指令( D )。

A. ORL P0,#0FH

B. ORL P0,#0F0H

C.ANL P0,#0F0H D. ANL P0,#0FH

18 ORG 0000H

AJMP 0040H

ORG 0040H

MOV SP,#00H

当执行完上面的程序后,PC的值是( D )。

A.0040H

B. 0041H

C. 0042H

D. 0043H

19. 在相对寻址方式中,“相对”两字是指跳转( A )。

A.地址偏移量rel

B. 当前指令的首地址

C.当前指令的末地址

D. DPTR值

20. 使用8051,且EA=1,则可以外扩ROM( B )。

A. 64KB

B. 60KB

C. 58KB

D. 56KB

21. 已知(31H)=21H,(32H)=04H,执行下列指令后,31H的内容为( B )。

PUSH 31H

PUSH 32H

POP 31H

POP 32H

A.21H

B. 04H

C. 32H

D. 31H

22. 已知(A)=00H,执行DEC A指令后,A 的内容为( B )

A.00H B. FFH C. 01H D. 0FH

23.要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是( B )。

A. MOV

B. MOVX

C. MOVC

D. 以上都行

24.LCALL存于2000H开始的地址单元中,执行完相应子程序中的返回指令,PC=( D )。

A.2000H B. 2001H C. 2002H D. 2003H

25.程序设计的方法一般有( D )

A.1种 B. 2种 C. 3种 D. 4种

26.在寄存器间接寻址方式中,指定寄存器中存放的是( B )

A. 操作数

B. 操作数地址

C. 转移指令

D. 地址偏移量

27. 当8031外扩程序存储器8KB时,常使用EPROM2716( C )

A. 2片

B. 3片

C. 4片

D. 5片

28. 中断服务程序的最后一条指令必须是( C )

A. END

B. RET

C. RETI

D. AJMP

29. ADC0809启动A/D转换的方式是( C )

A. 高电平

B. 低电平

C. 正脉冲

D. 负脉冲

30. MOV C,30H源操作数寻址方式为(D )

A. 立即寻址

B. 寄存器寻址

C. 寄存器间接寻址

D. 位寻址

31. POP A 指令,MCS-51完成的操作是( A )

A. A←((SP)) SP←(SP)-1

B. SP←(SP)-1 A←((SP))

C. A←((SP)) SP←(SP)+1

D. SP←(SP)+1 A←((SP))

32. 当(RS1,RS0)=(1,1)时,工作寄存器R0对应内部RAM的(D )

字节单元。

A. 00H

B. 08H

C. 10H

D. 18H

33. 在R3初值为00H的情况下,DJNZ R3,rel指令将循环执行( B )

A. 0次

B. 256次

C. 128次

D. 10次

34. 执行AJMP addr11指令时,MCS-51完成的操作是( D )

A. 保护PC

B. PC←addr11

C. 保护现场

D. PC+2入栈PC0~10←addr11

https://www.360docs.net/doc/b23828025.html, 2000H

LCALL 3000H

ORG 3000H

RET

上面程序执行完RET指令后,(PC)=( C )。

A. 2000H

B. 3000H

C. 2003H

D. 3003H

36.MCS-51执行完MOV A,#08H后,PSW的( D )位被置位。

A. C

B.F0

C. 0V

D. P

37. MCS-51的并行I/O口信息有两种读取方法,一种是读引脚,还有一种是( A )。

A. 读锁存器

B. 读数据

C. 读A累加器

D. 读CPU

38. 对程序存储器的读操作,只能使用( D )。

A. MOV指令

B. PUSH指令

C. MOVX指令

D. MOVC指令

39.ORG 8000H

DS 08H

DB 30H,8AH

则8008H单元内容为( B )。

A. 08H

B. 30H

C. 8AH

D. 不确定

40. MOV @R0, A指令目标操作数的寻址方式是( A )。

A. 寄存器间接寻址

B. 寄存器寻址

C. 直接寻址

D. 相对寻址

41. 已知(60H)=23H,(61H)=61H,运行下列程序62H内容为( A )。

CLR C

MOV A,#9AH

SUBB A,60H

ADD A,61H

DA A

MOV 62H,A

A. 38H

B. D8H

C. DBH

D. 3EH

42. 设系统的晶振频率为6MHZ,下列子程序DELAY的延时时间约为( B )。

DELAY:MOV R2,#0FAH

L2:DJNZ R2,L2

RET

A. 900μS

B. 1006μS

C. 500us

D. 5.501us

43. MCS-51的LJMP指令跳转空间为( C )。

A. 2K

B. –128~127

C. 64K

D. 32K

44. 关于MCS-51的堆栈操作,正确的说法是( C )。

A. 先入栈,再修改栈指针

B. 先修改栈指针,再出栈

C. 先修改栈指针,再入栈

D. 以上都不对

45. JNZ rel指令的寻址方式是( C )。

A. 立即寻址

B. 寄存器寻址

C. 相对寻址

D. 位寻址

46 . 8051执行ADD A,20H指令时,首先在P0口上出现的信息是( A )。

A. 操作码地址

B. 操作码

C. 操作数

D. 操作数地址

47. 必须进行十进制调整的十进制运算( C )。

A. 有加法和减法

B. 有乘法和除法

C. 只有加法

D. 只有减法

48. 执行MOVX @DPTR, A指令时,MCS-51产生(B )控制信号。

A. PSEN

B. WR

C. ALE

D. RD

49. 已知单片机系统的fosc=6MHZ,执行下列延时程序的时间为(C )。

DY2:MOV R6,#2

DLP1:MOV R7,#250

DLP2:DJNZ R7,DLP2

DJNZ R6,DLP1

RET

A.1ms B. 1.5ms C. 2ms D. 4ms

二.填空题(每小题1 分,共15分

1. 执行ANL A,#0FH指令后,累加器A的高四位= 清零。

2. 设DPTR=(2000)H,(A)=08H,则MOVC A,@A+DPTR的操作数的实际地址为2008H 。

3. 假定addrll=00100000000B,标号JAZ的地址为1030H,执行指令JAZ: AJMP addrll后,程序转移地址1100H 去执行。

4. JZ rel 的操作码的地址为1000H ,rel=20H ,他的转移目标地址为1022H 。

28.执行当前指令后,PC内容为下一条指令的首地址。

5. 在寄存器间接寻址方式中,其“间接”体现在指令寄存器的内容不是操作数,而是操作数的地址。

6. 假定(A)=0FFH,执行指令INC A后,A的内容为00H 。

7. MCS-51系统中,当PSEN信号有意义时,表示CPU要从外部程序存储器读取信息。

8.访问MCS-51程序存储器传送指令的操作码助记符应为___MOVC______。

9.累加器(A)=7EH,(20H)=#04H,MCS-51执行完ADD A,20H指令后,PSW.0为_____________。

10.INC指令_____________ CY位。

11.假定累加器A的内容为30H,执行指令1000H:MOVC A,@A+PC后,把程序存储器____1031H____单元的内

容送累加器A中。

12.在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行__256__次。

13. MOV PSW,#10H是将MCS-51的工作寄存器置为第______2___组。

14. 指令LCALL 37B0H,首地址在2000H,完成此操作后(PC)=___37B0H___。

15. 假定DPTR的内容为8100H,累加器A的内容为4DH,执行指令MOVC A,@A+DPTR后,送入A的是程序存储器____814DH_______单元的内容。

16. 累加器A中存放一个其值小于或等于127的8位无符号数,CY清“0”后执行RLC A指令,则A中数变为原来的_____2______倍。

17. MCS-51的两条查表指令是_MOVC A,@A+PC_,_MOVC A,@A+DPTR___。

18. 指令DJNZ R7,rel的指令操作码所在的地址为3000H,rel=EFH,则它的转移目的地址为_2FF1H___。

19. 通过堆栈操作实现子程序调用,首先要把__PC______的内容入栈,以进行断点保护。

20. 调用返回时再进行出栈操作,把保护的断点弹回____ PC ____。

21. 设(SP)=60H,(ACC)=30H,(B)=70H,执行指令PUSH ACC,PUSH B后,SP的内容为___62H____。

22. 设(SP)=60H,(ACC)=40H,(B)=60H,执行PUSH ACC,PUSH B后61H单元的内容为___40H____。

23. 设(SP)=60H,(ACC)=40H,(B)=80H,执行PUSH ACC,PUSH B,62H 单元的内容为___80H_____。

24. PC中存放的是__下一条指令首地址_ ___。

25. ORL A, #0F0H是将A的高4位置1,而低4位___不变____________。

26. 一台计算机的指令系统就是它所执行的____指令________集合。

27. 累加器(A)=80H,执行完指令ADD A,#83H后,进位位C=______1______。

28. 以助记符表示的计算机指令就是它的_____汇编_______语言。

29. SJMP rel的指令操作码地址为0050H,rel=65H,那么它的转移目的地址为00B7H___。

30. 执行如下指令序列后,所实现的逻辑运算式为__ P3.0=_ P1.0^ P1.1_^/ P1.2___。

MOV C,P1.0

ANL C,P1.1

ANL C,/P1.2

MOV P3.0 ,C

31. 当MCS-51引脚ALE信号有效时,表示从P0口稳定地送出了____低8位地址____地址。

三、读程序回答

1. 试求下列程序依次运行后有关单元的内容。已知(R0)=24H,(Cy)=1, (1FH)=59H, (20H)=24H, (24H)=B6H 。(6分)

MOV A, 1FH ; (A)=______________

ADDC A, 20H ; 20H的寻址方式是

CLR A ; (A)=______________

ORL A, @R0 ; @R0的寻址方式是,

; (A)=______________

CPL A ; (A)=______________

答案:59H、直接寻址、00H、寄存器间接寻址、B6H、49H

SECH: MOV DPTR, #2000H

MOV R2, #0FH

MOVX A, @DPTR

MOV B, A

SLOP : INC DPTR

MOVX A, @DPTR

CJNE A, B, SLP1

SLP1: JNC SLP2

MOV B, A

SLP2: DJNZ R2, SLOP

MOV R2, B

RET

问:(1)此程序完成的是将从 H 单元开始的 H 个数中的最 值找出,放在 单元中。

(2)B 寄存器里暂存最 值。

(3)若要比较100个数,则哪句程序需要修改? (10分)

答案 :(1)2000H 、10H 、小、R2

(2)小

(3)将第二句 MOV R2, #0FH 改为 MOV R2, #99

2. ORG 6000H ; ①

TAB : DB 45H , 10,88H ,’5’ ; ②

DW 12H ,56H ,7800H ; ③

ORG 8000H

MOV DPTR ,#6001H

CLR A

MOVC A ,@A+DPTR

MOV DPTR, #6005H

MOVX @DPTR, A

问:(1)根据①②③行指令内容,画出存储器从6000H —6009H 中数据分布图。

(2)执行上面的程序,完成了什么功能?

(3)最后A 的内容为多少?(10分)

(1)

(2)将从ROM 单元地址为6001H 的内容传送到片外数据RAM6005H 单元中。 (3)(A )=0AH

3. 已知某二进制数(10H )存在内部RAM50H 单元中,阅读下列程序,说明其功能。(6分)

MOV R0,#50H ; (R0)=____

MOV A, @R0H ; (A )= ,寻址方式是 。

CLR C

RLC A ; (A )=____

ADD A, R1 ; 寻址方式是

INC R0

6000H

6001H

6009H 6000H 6001H 6009H 45H 0AH 88H 35H

00H 12H 00H 56H

78H 00H

MOV @R0, A ; @R0的地址是_______________

答案:50H,10H,寄存器间接寻址,20H,寄存器寻址,51H

4. START: MOV R0, #30H

MOV R7,#0FH

MOV DPTR, #3000H

LOOP: MOV A, @R0

MOVX @DPTR, A

INC R0

INC DPTR

DJNZ R7, LOOP

RET

(1)程序完成的什么功能?

(2)R7的作用是什么?

(3)RET指令完成什么功能?(10分)

答案:(1)程序将片内RAM中30H—3FH单元的内容传送到片外RAM地址为3000H—300FH中(2)R7是计数器,初值表示传送数据个数,传送1个减1,当(R7)=0时,表示传送完。

(3)返回到主程序的断点处。

https://www.360docs.net/doc/b23828025.html, 2000H

TAB1:DB 10H,22,‘A’

TAB2:DW 10H,2100H

ORG 3000H

MOV DPTR,#TAB2

MOV A,#2

MOVC A,@A+DPTR

问:(1)ROM2000H单元中的内容___________。

(2) 字符‘A’所在单元的地址为___________。

(3) 2005H单元中的内容为___________。

(4)执行程序后,DPTR的内容为___________。

(5) A的内容为___________。(10分)

答案:

(1)10H

(2)2002H

(3)21H

(4)2003H

(5)21H

6. 若(A)=FFH,(R0)=00H,(00H)=FFH,(CY)=0,位地址(00H)=1,将结果填入横线。(6分)

DEC A ; (A)=_______

INC @R0 ; 此句将地址为___H的单元加1

SETB 00H ; 此句完成______功能

ANL C,00H ; (C)=______

ADD A, R0 ; 寻址方式=__________, (A)=__________

答案:FEH,00H,位地址为00H的单元置1。

0,寄存器寻址,FEH

7. START: MOV A, 40H

MOV DPTR, #TAB

MOVC A, @A+DPTR

MOV 40H, A

RET

TAB DB 30H, 31H, 32H, 33H, 34H

DB 35H, 36H, 37H, 38H, 39H

假设40H单元中的数的范围从0—9,问:

(1)这段程序完成什么功能?

(2)当执行程序前40H中的内容为6,问执行完这段程序后40H中的内容为_________。

(3)MOVC A,@A+DPTR中的寻址方式是。(10分)

答案:(1)这段程序完成了通过查表得到40H单元的数的ASCII码,并将结果返回40H单元。

(2)36H

(3)基址+变址的寻址方式

8. ADD3: MOV A, R5

ADD A, R2

MOV @R0 , A

INC R0

MOV A, R6

ADDC A, R3

MOV @R0, A

INC R0

MOV A, R7

ADDC A, R4

MOV @R0, A

RET

(1)程序完成什么功能?

(2)假设执行程序前R0=30H,程序执行结束后30H,31H,32H中的内容为___________,其中_________H中存放高字节

(3)执行结束后,CY的内容为。(10分)

答案:①程序完成了两个3字节数的求和。

加数(1)在R7 R6 R5中,加数(2)在R4 R3 R2

②三个字节中和,32H。

③三字节和最高位的进位位。

9. 设(A)=5AH,(R1)=30H,(30H)=E0H,(CY)=1,根据程序填空。(6分)

SWAP A ; (A)=_______

ADD A, #30H ; 寻址方式________

ADDC A, 30H ; (A)=______,寻址方式____

RLC A ; (A)=______

ANL A, 30H ; (A)=______

答案:A5H

立即数寻址

B5H,直接寻址

6BH

60H

10. ADDIO: MOV R0, 30H

MOV R7, #9

MOV A, @R0

LOOP: INC R0

ADD A, @R0

DJNZ R7, LOOP

MOV 30H, A

RET

(1)程序完成的是什么功能?

(2)若把MOV R7,#9改成MOV R7,#4,程序功能有何变化?(10分)

答案:(1)将片内RAM从30H—39H十个单元中的内容相加,和存在30H中。

(2)不是10个数相加,是30—34H五个数相加。

11. LOOK:MOV 51H,#0

MOV R0,#30H

MOV R1, #20H

LOP:MOV A,@R0

CPL A

JNZ LP1

INC 51H

LP1: INC R0

DJNZ R1, LOP

RET

(1)R0的作用是什么?

(2)程序结束后51H单元中存放的内容是什么?

(3)若将JNZ LP1这句变成JZ LP1,程序完成什么功能?(10分)

答案:(1)数据单元指针。

(2)片内RAM30H—50H单元中内容为FFH单元的个数。

(3)将片内RAM30H—50H单元中内容为非FFH单元的总个数送给51H。

12. 设内RAM (20H)=11001011B,(24H)=01010111B,求依次执行下列

指令后的结果。(6分)

LOOP:JB 00H,LP1 ;

JB 26H,LP2 ; 程序跳转到LP1还是LP2?答________

Lp1: MOV A, 20H ; (A)=_____ , 寻址方式是______

CPL A (A)= ______

ADD A, 24H (A)= ______

JZ LP3 ; 执行完此句后,程序跳到LP3还是LP2处?

LP2: INC 20H

LP3: ┋

答案:Lp1

11001011B, 直接寻址

00110100B

10001011B

Lp2

13. ORG 2000H

TAB:DB 01, 02

DW 03, 04

DS 03H

ORG 2200H

MOV DPTR, #TAB

MOV A, #02H

MOVC A, @A+DPTR

问:(1)请填入存储器2000H~2008H单元的内容。

(2)执行完程序后A中的内容为________。

(3)DPTR是一个______字节的寄存器。(10分)

答案:

(2)(A)=00H

(3)2

14. START:MOV DPTR, #2010 H

MOV R7, #10H

MOV R0, #30H

LOOP: MOVX A, @DPTR

MOV @R0, A

DEC DPTR

INC R0

DJNZ R7, LOOP

RET

(1)程序完成什么功能?

(2)MOVX A,@DPTR这句指令是什么寻址方式?

(3)DJNZ R7,LOOP 这句指令的含义?(10分)

答案:

(1)程序完成将片外RAM2010H单元—2001H单元的内容,依次传送到片内RAM30H—3FH单元中去。(2)寄存器间接寻址。

(3)判断(R7)-1 是否为0,若为0,结束循环,不为0继续到LOOP那儿循环。

15. 若(A)=78H,(R0)=34H,(34H)=DCH,(56H)=ABH,(cy)=1, 求分别执行下列指令后填空。(6分)

ADDC A,@R0 ; (A)=_______________, 寻址方式是________________

ORL A, #23H ; (A)=_______________,

; 寻址方式是_______________

MOV A, 34H ; (A)=_______________

SW AP A ; (A)=_______________

答案:55H,寄存器间接寻址

77H,立即寻址

DCH,

CDH.

16. MOV A, R0

CPL A

JZ LABEL1

INC A

JZ LABEL2

LABEL1: INC A

SJMP LOOP

LABEL2: DEC A

LOOP: RET

问:(1)分析上面一段程序,何时转向LABEL1?何时转向LABEL2?

(2)若(R0)=FFH,执行完程序后(A)=_______________H。(10分)

答案:(1) 当R0 的值为FFH,转向LABEL1,当R0 为00时,转向LABLE2

(2)01H

17. START: MOV R0, #40H

MOV R7, #09H

MOV A, @R0

LOOP: INC R0

MOV 30H, @R0

CJNE A, 30H, NEXT

NEXT: JNC BIEI

MOV A, 30H

BIEI: DJNZ R7, LOOP

MOV 50H, A

RET

问:(1)A中暂放_________________。

(2)R7寄存器中保存的数是_________________。

(3)最后50H中存放的是___________________。(10分)

(1)最大

(2)比较的次数,共有9个数与A中的数做比较

(3)片内RAM 40H~49H中最大的值

18. 已知外RAM(2040H)=50H,ROM(2090H)=96H,内RAM(20H)=85H,试求下列程序依次运行后有关单元的内容。(6分)

MOV DPTR ,#2040H ; (DPTR)=_______________

MOVX A, @DPTR ; 寻址方式是_____________,(A)=_____________

MOV A, 20H ; (A)=______________

ANL A, #38H ; (A)=_______________,寻址方式是____________

答案:2040H

寄存器间址,50H

85H

00H 立即寻址

19. CLR C

LOOP1: MOV A, @R0

ADDC A, @R1

DA A

MOV @R0, A

INC R0

INC R1

DJNZ R7, LOOP1

CLR A

MOV ACC.0, C

MOV @R0, A

RET

问:(1)DAA指令有何用途?

(2)若执行程序前(R0)=20H,(R1)=30H,(R7)=03H,则程序完成什么功能?程序最后的结果放在哪些单元?(10

分)

答案:(1)DAA是对A中的数进行十进制数的调整。

(2)将存放在(22H)(21H)(20H)中的BCD码与(32)

(31H)(30H)单元中的BCD码相加,结果调整为BCD码后放回(23H)(22H)(21H)(20H)单

元中,其中高地址存放高位字节。

20. MOV R0,#20H

SLOP: MOV A,@R0

JZ LP1

JB ACC.7, LP2

INC 30H

LP0: INC R0

DJNZ 1FH, SLOP

END

LP1: INC 31H

SJMP LP0

LP2: INC 32H

SJMP LP0

问:(1)若执行前(20H)单元中的内容为F1H,则程序能不能走到LP1处?

(2)执行前1FH单元中存放的是什么?

(3)执行后30H,31H,32H单元中各存放的什么数据?(10分)

(1)不能

(2)参加统计的数的个数

(3)30H中放正数的个数

31H中放“0”的个数

32H中放负数的个数

21. 已知(30H)=58H,读程序填空。(6分)

CLR C

MOV A,30H; 寻址方式是______, (A)=______

RLC A

RLC A ; (C)=_______

ADD A, #36H ; 寻址方式是_______,(A)=_______

JZ LOOP2 ; 程序转至LOOP1还是LOOP2?答_______

Loop1: MOV A, 00H

直接寻址,58H

1

立即寻址,96H

LOOP1

22. (30H)=15H,问执行完程序后,A,B,SP,32H,33H ,34H的内容是多少?(10分)

MOV SP, #30H

XCH A, 30H

MOV B, A

ANL A, #0FH

MOV 33H, A

MOV A, B

PUSH A

SW AP A

ANL A, #15H

MOV 34H, A

PUSH A

答案:(A)=11H

(B)=15H

(SP)=32H

(32H)=11H

(33H)=05H

(34H)=11H

23. 内部RAM30H,31H单元中存放两个无符号数,读程序回答问题。(10分)

ORG 1000H

START:CLR C

MOV A,30H

SUBB A,31H

JC NEXT

MOV A,30H

XCH A,31H

MOV 30H, A

NEXT:NOP

SJMP $

END

(1)程序完成什么功能?

(2)若(30H)=89H,(31H)=F5H,执行程序后(30H)=____________, (31H)=_ __________,(Cy)=___________。

答案:(1)比较30H与31H中无符号数的大小,小数存于30H,大数存于31H

(2)(30H)=89H,(31H)=F5H,(Cy)=1

四、编程题

1.编写程序,将外部RAM2000H-201FH数据块数据,传送到片内RAM40H-5FH的对应单元中,并统计其中数据‘0’的个数,将结果放入片内60H单元中。

答案:START: MOV DPTR,#2000H

MOV R0,#40H

MOV R1, #1FH

MOV R2,#00H

LOOP: MOVX A,@DPTR

MOV @R0, A

INC DPTR

INC R0

CJNE A, #00H, LOOP1

INC R2

LOOP1: DJNZ R1, LOOP

MOV 60H, R2

RET

2. 已知8位要显示数字已存放在首地址为30H的片内RAM中,试将其转换为共阴显示字段码,存入首址为40H的内RAM中,已知TABD为0-9共阴字段码表首址。

ORG 1000H

TABD:DB 3FH,06H,5BH,4FH,66H

DB 6DH,7DH,07H,7FH,6FH

答案:MOV DPTR,#TABD

MOV R2,#8

MOV R0,#30H

MOV R1,#40H

LOOP:MOV A,@R0

MOVC A,@A+DPTR

MOV @R1,A

INC DPTR

INC R0

INC R1

DJNZ R7,LOOP

END

3. 试完成程序,求Y值,设m, n存在30H和31H中,Y存在32H中,且m*n积小于256,m/n的商为整数。

m*n (m

Y= 0 (m=n)

m/n (m>n)

答案:MOV A,30H

MOV B,31H

CJNE A,B,LOOP1

MOV 32H,#00H

LJMP BB

LOOP1: JC LOOP2

DIV AB

MOV 32H,A

LJMP BB

LOOP2: MUL AB

MOV 32H,A

BB: END

4. 求出片外RAM3000H——300FH,这16个单元数据的平均数,并将平均值放入片外RAM3010H单元中,余数放入

3011H单元中(设16个数的和小于256)。

答案:

MOV DPTR,#3000H

MOV R0,10H

MOV B,#00H

LOOP: MOVX A,@DPTR

ADD A,B

MOV B, A

INC DPTR

DJNZ R0,LOOP

MOV A,B

MOV B,#16

DIV AB

MOV DPTR,#3010H

MOVX @DPTR,A

INC DPTR

MOV A, B

MOVX @DPTR,A

END

5. 设X由P1口输入,Y存在外部RAM2000H单元,试按下列要求编制程序(设X2<256)

X2 ;当X < 10时

Y= 2X ;当10 ≤ X ≤ 100时

X/2 ;当X > 100时

答案:MOV A, P1

CJNE A, #10, LOOP1

LOOP1: JNC LOOP2

MOV B, A

MUL AB

LJMP LOOP5

LOOP2: CJNE A, #101, LOOP3

LOOP3: JNC LOOP4

MOV B, A

ADD A, B

LJMP LOOP5

LOOP4: MOV B, #2

DIV A, B

LOOP5: MOV DPTR, #2000H

MOV @DPTR, A

END

6. 片内RAM区中,有20个补码表示的数存放在首地址为30H的单元中,请编程把其中的正数送到20H为首址的片外RAM中,负数不传送(0不是正数)。

答案:MOV R0,#30H

MOV R1, #20H

MOV R7,#20

LOOP: MOV A,@R0

JZ NEXT

JB ACC.7,NEXT

MOVX @R1,A

INC R1

NEXT: INC R0

DJNZ R7, LOOP

END

7. 将61H和60H两个单元中的ASCII码转换为16进制数,并合并为一个字节存在70H单元中(60H中放的是低位)。答案:MOV A,60H

ANL A,#0FH

MOV B, A

MOV A,61H

ANL A,#0FH

SWAP A

ADD A, B

MOV 70H,A

END

8. 设在内部数据存储器中存放有20个字节数据,其起始地址为30H,其中可能有一个字节的内容为0AH,编写程序找出数0AH的存放地址,并送入2FH单元,若0AH不存在,则将29H单元置0。

MOV R0,#30

MOV R1,#20

LOOP:MOV A,@R0

CJNZ A, #0AH, LOOP1

AJMP JIESHU

LOOP1:INC R0

DJNZ R1, LOOP

MOV 29H, #00H

AJMP LOOP4

JIESHU: MOV 2FH, R0

LOOP4: END

单片机试题库分章节答案(C语言)

(红色是考试考过的,蓝色是老师给的习题“重点看“) 第1部分单片机概述及数学基础 一、填空题 1、十进制255的二进制是11111111 ,十六进制是FF 。 2、单片机是将CPU、存储器、特殊功能寄存器、定时/计数器和输入/输出接口电路、以及相互连接的总线等集成在一块芯片上。 3、十进制127的二进制是1111111,十六进制是7F。 4、+59的原码是00111011,-59的补码是11000101。 5、十进制数100转换为二进制数是1100100;十六进制数100转换为十进制数是256。 6、十进制数40转换为二进制数是101000;二进制数10.10转换为十进制数是 2. 5。 7、十进制99的二进制是1100 011 ,十六进制是63 。 二、判断题 (×)1、AT89S51是一种高性能的16位单片机。8位机 (×)2、有符号正数的符号位是用1表示的。 三、选择题 ()1、计算机中最常用的字符信息编码是(A) A. ASCII B.BCD码 C. 余3码 D. 循环码 四、简答题 1、何谓单片机?单片机与一般微型计算机相比,具有哪些特点? 第2部分51单片机硬件结构、存储系统及 I/O接口 一、填空题 1、AT89S51单片机共有 4 个8位的并行I/O口,其中既可用作地址/数据口,又可用作一般的I/O口的是P0 。 2、若采用12MHz的晶振,则MCS-51单片机的振荡周期为__ 1/12 μS __ ,

机器周期为____1μS __。 3、AT89S51单片机字长是___8___位,有___40根引脚。 4.89S51单片机是8 位单片机,其PC计数器是16 位。 5.若单片机使用的晶振频率是6MHz,那么一个振荡周期是1/6 μS,一个机器周期是2μS μS。 6.89S51单片机是+5 V供电的。4.0-5.5V 7.堆栈是内部数据RAM区中,数据按先进后出的原则出入栈的。8.MSC-51系列单片机具有 4 个并行输入/输出端口,其中_P0_口是一个两用接口,它可分时输出外部存储器的低八位地址和传送数据,而_P1__口是一个专供用户使用的I/O口,常用于第二功能的是P3 口。 9.当单片机系统进行存储器扩展时,用P2口的作为地址总线的高八位,用P0作为地址总线的低八位。 10.半导体存储器分为___ROM___和__RAM__两大类,其中前者具有非易失性(即掉电后仍能保存信息),因而一般用来存放系统程序,而后者具有易失性,因而一般用来存放经常变动的用户程序.中间结果等。 11.MCS-51系列单片机对外部数据存储器是采用_DPTR___作为指针的,其字长为_16__位,因而可寻址的数据存储器的最大空间为_64K_字节。 12. 51单片机有26个特殊功能寄存器,其中11个具有位寻址功能。 13. 当单片机系统需要外扩展存储器时,P2和P0 作为地址总线。 14.AT89S51单片机上电初始化后,将自动设置一些寄存器的初始值,其中堆栈指针SP的初始值为07H ,P0口复位值是FFH。 15.单片机两种节电模式:空闲模式和掉电模式,节电模式是由特殊功能寄存器PCON中的有关位来控制的。 16. 在单片机硬件设计时,31脚一般要接___高电平___,晶振在PCB设计中应尽量___靠近51芯片___。 17.在AT89S51单片机中,RAM是数据存储器,ROM为程序存储器。 18.单片机的复位方式主要有上电复位和按键复位两种。 19.AT89S51单片机的内部RAM的寻址空间为256B,而内部ROM的寻址空间为4K。

单片机试题及答案

单片机原理与接口技术习题答案 习题与思考题1 1-1 微型计算机通常由哪些部分组成?各有哪些功能? 答:微型计算机通常由控制器、运算器、存储器、输入/输出接口电路、输入设备和输出设备组成。控制器的功能是负责从内部存储器中取出指令并对指令进行分析、判断、并根据指令发出控制信号,使计算机有条不紊的协调工作;运算器主要完成算数运算和逻辑运算;存储器用于存储程序和数据;输入/输出接口电路完成CPU与外设之间相连;输入和输出设备用于和计算机进行信息交流的输入和输出。 1-2 单片微型计算机与一般微型计算机相比较有哪些区别?有哪些特点? 答:与通用微型计算机相比,单片机的硬件上,具有严格分工的存储器ROM和RAM和I/O端口引脚具有复用功能;软件上,采用面向控制的指令系统和硬件功能具有广泛的通用性,以及品种规格的系列化。单片机还具备体积小、价格低、性能强大、速度快、用途广、灵活性强、可靠性高等特点。 1-3 简述计算机的工作过程。 答:计算机的工作是由微处理器以一定的时序来不断的取指令、指令译码和执行指令的过程。 1-4 单片机的几个重要指标的定义。 答:单片机的重要指标包括位数、存储器、I/O口、速度、工作电压、功耗和温度。 1-5 单片微型计算机主要应用在哪些方面? 答:单片机的主要应用领域有智能化产品、智能化仪表、智能化测控系统、智能化接口等方面。 1-6 为什么说单片微型计算机有较高的性能价格比和抗干扰能力? 答:因为单片微型计算机主要面向特定应用而设计,设计者在硬件和软件上都高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,具备较高的性能、价格比;单片机嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中,另外单片机体积小,可以放入屏蔽设备中,从而使其具有较高的抗干扰能力。 1-7 简述单片机嵌入式系统的定义和特点。 答:单片机嵌入式系统是嵌入到对象体系中的专用计算机系统;其特点是面向特定应用、与各个行业的具体应用相结合、硬件和软件高效率、软件固化在存储器芯片或单片机本身和不具备自举开发能力。 习题与思考题2 2-1 MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么? 答:MCS-51单片机在一块芯片中集成了CPU、RAM、ROM、定时/计数器、多功能I/O口和中断控制等基本功能部件。 单片机的核心部分是CPU,CPU是单片机的大脑和心脏。 程序存储器用于存放编好的程序或表格常数。数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。 定时/计数器实质上是加法计数器,当它对具有固定时间间隔的内部机器周期进行计数时,它是定时器;当它对外部事件进行计数时,它是计数器。 I/O接口的主要功能包括:缓冲与锁存数据、地址译码、信息格式转换、传递状态(外设状态)和发布命令等。 中断控制可以解决CPU与外设之间速度匹配的问题,使单片机可以及时处理系统中许多随机的参数和信息,同时,它也提高了其处理故障与应变能力的能力。 2-2 MCS-51单片机的核心器件是什么?它由哪些部分组成?各部分的主要功能是什么? 答:单片机的核心部分是CPU,可以说CPU是单片机的大脑和心脏。它由运算器、控制器和布尔(位)处理器组成。 运算器是用于对数据进行算术运算和逻辑操作的执行部件。

8051单片机常用指令

3.2.1数据传送与交换类指令 共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为目的的操作数的指令;访问外部RAM的指令;读程序存储器的指 9.堆栈操作 3.2 分类指令 在介绍各条分类指令之前,将指令中的操作数及注释中的符号说明如下。Rn:当前指定的工作寄存器组中的Ro-R7(其中n=0,1,2,…,7)。 Ri:当前指定的工作寄存器组中的RO,R1(其中i=0,1)。 (Ri):Ri间址寻址指定的地址单元。 ((Ri)):Ri间址寻址指定地址单元中的内容。 dir:8位直接字节地址(在片内RAM和SFR存储空间中)。 #data8:8位立即数。 #datal6:16位立即数。 addrl6:16位地址值。 addrll:11位地址值。 bit:位地址(在位地址空间中)。 rel:相对偏移量(一字节补码数)。 下面介绍各条分类指令的主要功能和操作,详细的指令操作说明及机器码形式可见附录。 3.2.1数据传送与交换类指令

共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为目的的操作数的指令;访问外部RAM的指令;读程序存储器的指 令;数据交换指令以及准栈操作指令。

9.堆栈操作 PUSH dir ;SP十1-6P,(dir)一(SP) POP dir ;((SP))一dir,SP-1--P , 例1 SP=07H,(35H)=55H,指令PUSH 35H执行后,55H送入08H地址单元,SP= 08H。 例2 SP=13H,(13H)= 1FH,指令POP 25H执行后,1FH压入25H地址单元,SP此时为12H。 综合例把片内RAM中50H地址单元中的内容与40H地址单元中的内容互换。方法一(直接地址传送法): MOV A ,50H

单片机试题库(有答案)

2012《单片机与接口技术》习题库及答案 一、判断题(判断每小题的对错,对的在小题前的括号中打“√”,错的在小题前的括号中打“×”。) 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的数据传送指令是把源操作数传送到目的操作数,

单片机习题集答案解析1~2

习题一 1.什么是单片机,和微机相比较,它有什么优点? 2.请叙述51系列单片机的主要产品及其特点。 3.除51系列单片机外,常用的单片机还有哪些型号,各有什么优点? 4.单片机中常用的数制有哪些,它们之间相互如何转换? 5.计算机中常用的二进制编码有哪些,请分别予以叙述。 6.(1)10和(-1)10的原码、反码和补码分别是多少? 习题二 1.单片机主要应用在什么领域? 2. 89C51单片机包含哪些主要逻辑功能部件? 各有什么主要功能? 3.89C51单片机EA端如何使用? 4.什么是机器周期、指令周期?89C51指令周期、机器周期和时钟周期的关系如 何?当主频为12MHz时,一个机器周期等于多少微秒?执行一条最长的指令需多少微秒? 5. 如何认识89C51存储器空间在物理结构上可划分为四个空间,而在逻辑上又 可划分为三个空间?各空间的寻址围、寻址方式是什么? 6.89C51有哪些主要的特殊功能寄存器,分布在哪里? 7.部RAM低128B从功能和用途方面,可划分为哪三个区域? 8.89C51部RAM有几组工作寄存器?每组工作寄存器有几个工作寄存器?寄存 器组的选择由什么决定? 9.89C51的外部RAM和I/O口是如何编址的,如何寻址? 10.89C51的程序存储器的寻址空间是多少,如何区别片程序存储器和片外程序

存储器的? 11.89C51的位寻址区在哪里,位寻址空间是多少? 12.什么是堆栈,什么是SP,89C51的堆栈位于什么地方,复位后堆栈指针初 值是多少,一般将SP设置为多少?进栈、出栈时堆栈指针将怎样变化?13.单片机包括哪两种复位方式,在单片机应用系统中为何需要系统复位,复位 后主要寄存器的状态如何? 14.89C51的P3口各引脚的第二功能是什么? 15.89C51有几种低功耗方式,如何进入和退出? 习题三 1.什么是指令,什么是指令系统? 2.89C51总共有多少条指令,分为哪几类? 3.89C51有哪些寻址方式,各自的寻址空间如何? 4.说明下列指令中源操作数采用的寻址方式。 MOV A,R7 MOV A,55H MOV A,#55H JMP A+DPTR MOV 30H,C MOV A,R0 MOVX A,R0 5.下列各条指令单独执行后,A中的结果是什么?设(60H)=35H,(A)=19H, (R0)=30H,(30H)=0FH,(DPTR)=2000H,(2000H)=0AAH,(2019H)

51单片机指令表汇总

51单片机指令表 助记符指令说明字节数周期数 (数据传递类指令) MOV A,Rn 寄存器内容传送到累加器 1 1 MOV A,direct 直接地址内容传送到累加器 2 1 MOV A,@Ri 间接RAM内容传送到累加器 1 1 MOV A,#data 立即数传送到累加器 2 1 MOV Rn,A 累加器内容传送到寄存器 1 1 MOV Rn,direct 直接地址内容传送到寄存器 2 2 MOV Rn,#data 立即数传送到寄存器 2 1 MOV direct,Rn 寄存器内容传送到直接地址 2 2 MOV direct,direct 直接地址传内容传送到直接地址 3 2 MOV direct,A 累加器内容传送到直接地址 2 1 MOV direct,@Ri 间接RAM内容传送到直接地址 2 2 MOV direct,#data 立即数传送到直接地址 3 2 MOV @Ri,A 累加器内容传送到间接RAM 1 1 MOV @Ri,direct 直接地址内容传送到间接RAM 2 2 MOV @Ri,#data 立即数传送到间接RAM 2 1 MOV DPTR,#data16 16 位地址传送到数据指针 3 2 MOVC A,@A+DPTR 代码字节传送到累加器 1 2 MOVC A,@A+PC 代码字节传送到累加器 1 2 MOVX A,@Ri 外部RAM(8位地址)内容传送到累加器 1 2 MOVX A,@DPTR 外部RAM(16位地址)内容传送到累加器 1 2 MOVX @Ri,A 累加器内容传送到外部RAM(8位地址) 1 2 MOVX @DPTR,A 累加器内容传送到外部RAM(16 地址) 1 2 PUSH direct 直接地址内容压入堆栈 2 2 POP direct 堆栈内容弹出到直接地址 2 2 XCH A,Rn 寄存器和累加器交换 1 1 XCH A, direct 直接地址和累加器交换 2 1

单片机常用指令

常用单片机汇编指令: 1 MOV A,Rn 寄存器内容送入累加器 2 MOV A,direct 直接地址单元中的数据送入累加器 3 MOV A,@Ri 间接RAM 中的数据送入累加器 4 MOV A,#data 立即数送入累加器 5 MOV Rn,A 累加器内容送入寄存器 6 MOV Rn,direct 直接地址单元中的数据送入寄存器 7 MOV Rn,#data 立即数送入寄存器 8 MOV direct,A 累加器内容送入直接地址单元 9 MOV direct,Rn 寄存器内容送入直接地址单元 10 MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元 11 MOV direct,@Ri 间接RAM 中的数据送入直接地址单元 12 MOV direct,#data 立即数送入直接地址单元 13 MOV @Ri,A 累加器内容送间接RAM 单元 14 MOV @Ri,direct 直接地址单元数据送入间接RAM 单元 15 MOV @RI,#data 立即数送入间接RAM 单元 16 MOV DRTR,#dat16 16 位立即数送入地址寄存器 17 MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器 18 MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器 19 MOVX A,@Ri 外部RAM(8 位地址)送入累加器 20 MOVX A,@DPTR 外部RAM(16 位地址)送入累加器 21 MOVX @Ri,A 累计器送外部RAM(8 位地址) 22 MOVX @DPTR,A 累计器送外部RAM(16 位地址) 23 PUSH direct 直接地址单元中的数据压入堆栈 24 POP direct 弹栈送直接地址单元 25 XCH A,Rn 寄存器与累加器交换 26 XCH A,direct 直接地址单元与累加器交换 27 XCH A,@Ri 间接RAM 与累加器交换 8 XCHD A,@Ri 间接RAM 的低半字节与累加器交换 算术操作类指令: 1 ADD A,Rn 寄存器内容加到累加器 2 ADD A,direct 直接地址单元的内容加到累加器 3 ADD A,@Ri 间接ROM 的内容加到累加器 4 ADD A,#data 立即数加到累加器 5 ADDC A,Rn 寄存器内容带进位加到累加器 6 ADDC A,direct 直接地址单元的内容带进位加到累加器 7 ADDC A,@Ri 间接ROM 的内容带进位加到累加器 8 ADDC A,#data 立即数带进位加到累加器 9 SUBB A,Rn 累加器带借位减寄存器内容

单片机复习题及答案

一、填空题: 1、MCS—5l单片机的最大程序寻址空间是KB,该空间的 地址范围从 至,系统上电及复位后,程序入口地址为。 2、若由程序设定PSW中的RS1、RS0=01,则工作寄存器R0~R7的直 接地址为__ __。 3、MCS-51单片机的I/O端口采用__ __ 编址方式。、 4、一个8位D/A转换器其分辨率为_ __,若该8位D/A转 换器的基准电压为5V,则数字量100对应得模拟量为。 5、单片机系统中经常采用的地址译码技术包括法和 法。 6、INTEL 8051 CPU 是位的单片机,其内部有KB的 ROM。 7、指出下列各指令中源操作数的寻址方式。 (1)MOVC A,@A+DPTR (2)XCH A,@R0; (3)MOV C,P1.0 (4)JC LOOP 8、判断下列各条指令的书写格式是否有错,并指出原因。 (1)MUL R0R1 (2)MOV A, @R7 (3)MOV A, #3000H (4)MOV R1, C 9、单片机与外设进行数据交换通常有__________方式、__________方式和_____ 方式三种。 10、MCS-51单片机串行口的方式0是________ _____方式,方式2是方式。 11、单片机复位后SP中的状态为_________,P0~P3口的状态为_________。 12、串行通信根据数据传送时的编码格式不同可分为

________________和________________两种方式。 13、堆栈按照___________原则工作,使用__________指明栈顶位置。 14、8051单片机片内有___________字节的ROM,____________字节的RAM。 15、使用8031单片机构成的系统时,其EA引脚应______________,因为______________________。 16、ADC0809是_____位的A/D转换器。 17、单片机复位后PC的内容为___________,复位对片内RAM中存放的内容______(有,无)影响。 18、多位LED显示器通常有________显示和_________显示两种接口。。 19. 执行下列两条指令后,PSW中的标志位(CY)= ,(OV)= ,(AC)= ,(P)= 。 MOV A,#80H ADD A,#98H 20.JC LOOP指令中操作数的寻址方式是,MOV A,P1指令中源操作数的寻址方式为。 21.下列指令中正确的是。 (1)RLC R7 (2)SETB R7.0 (3)MOV A, @DPTR (4)POP 40H 22.一个4k*4RAM芯片的地址线有根,数据线有。23.设(A)=30H,(B)=40H,(SP)=40H,执行下列程序段后,(A)= 。 PUSH A PUSH B

【可直接使用】单片机指令表(最全).doc

单片机指令以A开头的指令有18条,分别为: 1、ACALL addr11 指令名称:绝对调用指令 指令代码:A10 A9 A8 10001 A7 A6 A5 A4 A3 A2 A1 A0 指令功能:构造目的地址,进行子程序调用。其方法是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不变。操作内容: PC←(PC)+2SP←(SP)+1 (SP)←(PC)7~0 SP←(SP)+1 (SP)←(PC)15~8 PC10~0←addrl0~0 字节数: 2 机器周期:2 使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。 2、ADD A,Rn 指令名称:寄存器加法指令指令代码:28H~2FH 指令功能:累加器内容与寄存器内容相加 操作内容:A←(A)+(Rn),n=0~7 字节数: 1 机器周期;1 影响标志位:C,AC,OV 3、ADD A,direct 指令名称:直接寻址加法指令指令代码:25H 指令功能:累加器内容与内部RAM单元或专用寄存器内容相加操作内容:A←(A)+(direct) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 4、ADD A,@Ri ’ 指令名称:间接寻址加法指令指令代码:26H~27H 指令功能:累加器内容与内部RAM低128单元内容相加 操作内容:A←(A)+((Ri)),i=0,1 字节数: 1 机器周期:1 影响标志位:C,AC,OV 5、ADD A,#data 指令名称:立即数加法指令指令代码:24H 指令功能:累加器内容与立即数相加 操作内容:A←(A)+data 字节数: 2 机器周期:1 影响标志位:C,AC,OV 6、ADDC A,Rn 指令名称:寄存器带进位加法指令指令代码:38H~3FH 指令功能:累加器内容、寄存器内容和进位位相加 操作内容:A←(A)+(Rn)+(C),n=0~7 字节数: 1 机器周期:1 影响标志位:C,AC,OV 7、ADDC A,direct 指令名称:直接寻址带进位加法指令指令代码:35H 指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加 操作内容:A←(A)+(direct)+(C) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 8、ADDC A,@Ri 指令名称:间接寻址带进位加法指令指令代码:36H~37H 指令功能:累加器内容, 内部RAM低128单元内容及进位位相加操作内容:A←(A)+((Ri))+(C),i=0,1 字节数: 1 机器周期:1 影响标志位:C,AC,OV 9、ADDC A,#data 指令名称:立即数带进位加法指令指令代码:34H 指令功能:累加器内容、立即数及进位位相加 操作内容:A←(A)+data+(C) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 10、AJMP addr11 指令名称:绝对转移指令 指令代码:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0 指令功能:构造目的地址,实现程序转移。其方法是以指令提供的11位地址,取代PC的低11位,.而PC的高5位保持不变。操作内容:PC←(PC)+2PCl0~0←addrll 字节数: 2 机器周期:2 使用说明:由于addrll的最小值是000H,最大值是7FFH,因此地址转移范围是2KB。 11、ANL A,Rn 指令名称:寄存器逻辑与指令指令代码:58H~5FH 指令功能:累加器内容逻辑与寄存器内容 操作内容:A←(A)∧(Rn),n=0~7 字节数: 1 机器周期:1 12、ANL A,direct 指令名称:直接寻址逻辑与指令指令代码:55H 指令功能:累加器内容逻辑与内部RAM低128单元或专用寄存器内容 操作内容:A←(A)∧(diret) 字节数: 2 机器周期:1 精选

单片机原理试题库答案

单片机原理及应用复习题及答案 一、选择题(在每个小题四个备选答案中选出一个或几个正确答案,填在题的括号中) 1、80C51基本型单片机内部程序存储器容量为(C)。 (A)16KB (B)8KB (C)4KB (D)2KB 2、在80C51单片机应用系统中,可以作为时钟输出的是(C)引脚。 (A)EA(B)RST (C)ALE (D)PSEN 3、在80C51的4个并行口中,能作为通用I/O口和高8位地址总线的是(C)。 (A)P0 (B)P1 (C)P2 (D)P3 4、当优先级的设置相同时,若以下几个中断同时发生,(D)中断优先响应。 (A)并口(B)T1 (C)串口(D)T0 5、在80C51中,要访问SFR使用的寻址方式为(AB)。 (A)直接寻址(B)寄存器寻址(C)变址寻址(D)寄存器间接寻址 6、以下的4条指令中,不合法的指令为(D)。 (A)INC A (B)DEC A (C)INC DPTR (D)SWAP ACC 7、当需要扩展一片8KB的RAM时,应选用的存储器芯片为(B)。 (A)2764 (B)6264 (C)6116 (D)62128 8、若想扩展键盘和显示,并希望增加256字节的RAM时,应选择(A)芯片。 (A)8155 (B)8255 (C)8253 (D)8251 9、80C51单片机要进行10位帧格式的串行通讯时,串行口应工作在(B )。 (A)方式0 (B)方式1 (C)方式2 (D)方式3 10、80C51复位初始化时未改变SP的内容,第一个入栈的单元地址为(A)。 (A)08H (B)80H (C)00H (D)07H 11、MCS—51单片机的复位信号是( A )有效。 A.高电平 B.低电平 C.脉冲 D.下降沿 12、若MCS-51单片机使用晶振频率为6MHz时,其复位持续时间应该超过( B )。 A.2μs B.4μs C.8μs D.1ms 13、若PSW.4=0,PSW.3=1,要想把寄存器R0的内容入栈,应使用( D )指令。 A.PUSH R0 B.PUSH @R0 C.PUSH 00H D.PUSH 08H 14、能够用紫外光擦除ROM中程序的只读存储器称为( C )。 A.掩膜ROM B.PROM C.EPROM D.EEPROM 15、在片外扩展一片2764程序存储器芯片要( B )地址线。 A.8根 B.13根 C.16根 D.20根 16、定时器/计数器工作方式1是( D )。 A.8位计数器结构 B.2个8位计数器结构 C.13位计数结构 D.16位计数结构 17、设MCS-51单片机晶振频率为12MHz,定时器作计数器使用时,其最高的输入计数频率应为 ( C ) A.2MHz B.1MHz C.500KHz D.250KHz 18、已知1只共阴极LED显示器,其中a笔段为字形代码的最低位,若需显示数字1,它的字形代码应为( A )。 A.06H B.F9H C.30H D.CFH

单片机习题集及答案

1.在MCS-51中,有7种寻址方式,它们分别为立即数寻、寄存器寻址、直接寻址、寄存器间接寻址、相对寻址、变址寻址和位寻址。 2.汇编语言的指令格式为标号:操作码操作数注释。 3.数据传送类指令执行完毕,源操作数的内容不会(会/不会)丢失。 4.8051内部RAM从20H至2FH既可位寻址,又可间接寻址,位地址空间从00H 到7FH 。5.MCS-51单片机指令系统中,指令长度有一字节、二字节和(三)字节,指令执行时间有一个机器周期、两个机器周期和四机器周期,乘法指令需四机器周期。 6.MOV A,20H中,20H的寻址方式称之为_直接___;SETB 20H的寻址方式为位寻址。 7.关于堆栈类操作的两条指令分别是_PUSH(入栈)指令_ 、POP(出栈)指令;堆栈操作只能是寄存器间接寻址寻址。 8.访问8031片外数据存储器MOVX指令采用的是寄存器间接寻址寻址方式。访问片外序存储器MOVC指令采用的是变址寻址方式。 9.设(A)=55H,(R5)=AAH,则执行ANL A,R5指令后的结果是(A)= 00H ,(R5)= AAH ;则执行ORL A,R5指令后的结果是(A)= FFH ,(R5)= AAF ; 则执行XRL A,R5指令后的结果是(A)= FFH ,(R5)= AAH 。 10.伪指令不产生(产生/不产生)可执行目标代码。汇编语言程序结束的指令为END 。11.DA指令跟在ADD,ADDC 指令的后面,用与二进制数与BCD 码的调整。若 (A)=0AH ,执行DA A指令后,(A)= 15 。 单项选择题 1.JMP跳转范围是:(D. -128~127B) 2.MCS—51系列单片机最长的一条指令需 B. 4个机器周期。 3.MOV A,@R0这条指令中@R0的寻址方式称为:(B. 寄存器间接寻址) 4.在CPU内部,反映程序运行状态或反映运算结果的特征寄存器是:B. PSW 5.下列指令中正确的是:B. JBC TF0,L1 6.下列指令中错误的是:A. SETB 50H.0 7.将累加器的值压入堆栈的正确指令是:B. PUSH A 8.下列那条减法指令是错误的:C. SUBBC 9. 指令CJNE A ,#00H ,LOOP 影响PSW的哪一位:C.CY 10. 在MUL AB指令中,若积超过255,则C. OV=1 11.在相对寻址方式中,寻址的结果体现在A.PC中 12.在相对寻址方式中,"相对"两字是指相对于 C.当前指令的末地址 13.在寄存器间接寻址方式中,指定寄存器中存放的是B.操作数地址 14.对程序存储器的读操作,只能使用D.MOVC指令 15.必须进行十进制调整的十进制运算C.只有加法 16.执行返回指令时,返回的断点是C.调用指令下一条指令的首地址 17.下列指令中与进位标志位CY 无关的指令有D.无条件转移指令 18.可以为访问程序存储器提供或构成地址的有D.PC、A、DPTR和SP 19.以下各项中不能用来对内部数据存储器进行访问的是A.数据指针DPTR 20.若原来工作寄存器0组为当前寄存器组,现要改1组为当前寄存器组,不能使用指令C.MOV PSW.3,C 21.不能为程序存储器提供和构成地址的有:D.PSW

IC8位单片机汇编语言常用指令的识读

PIC单片机指令集简介 PIC 8位单片机共有三个级别,有相对应的指令集。基本级PIC系列芯片共有指令33条,每条指令是12位字长;中级PIC系列芯片共有指令35条,每条指令是14位字长;高级PIC系列芯片共有指令58条,每条指令是16位字长。其指令向下兼容。 一、PIC汇编语言指令格式 PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下: 标号操作码助记符操作数1,操作数2;注释 指令格式说明如下:指令的4个部分之间由空格作隔离符,空格可以是1格或多格,以保证交叉汇编时,PC机能识别指令。 1与MCS-51系列单片机功能相同,标号代表指令的符号地址。在程序汇编时,已赋以指令存储器地址的具体数值。汇编语言中采用符号地址(即标号)是便于查看、修改,尤其是便于指令转移地址的表示。标号是指令格式中的可选项,只有在被其它语句引用时才需派上标号。在无标号的情况下,指令助记符前面必须保留一个或一个以上的空格再写指令助记符。指令助记符不能占用标号的位置,否则该助记符会被汇编程序作标号误处理。 书写标号时,规定第一字符必须是字母或半角下划线“—”,它后面可以跟英文和数字字符、冒号(:)制符表等,并可任意组合。再有标号不能用操作码助记符和寄存器的代号表示。标号也可以单独占一行。 2该字段是指令的必选项。该项可以是指令助记符,也可以由伪指令及宏命令组成,其作用是在交叉汇编时,“指令操作码助记符”与“操作码表”进行逐一比较,找出其相应的机器码一一代之。 3由操作数的数据值或以符号表示的数据或地址值组成。若操作数有两个,则两个操作数之间用逗号(,)分开。当操作数是常数时,常数可以是二进制、八进制、十进制或十六进制数。还可以是被定义过的标号、字符串和ASCⅡ码等。具体表示时,规定在二进制数前冠以字母“B”,例如B10011100;八进制数前冠以字母“O”,例如O257;十进制数前冠以字母“D”,例如D122;十六进制数前冠以“H”,例如H2F。在这里PIC 8位单片机默认进制是十六进制,在十六进制数之前加上Ox,如H2F可以写成Ox2F。 指令的操作数项也是可选项。 PIC系列与MCS-51系列8位单片机一样,存在寻址方法,即操作数的来源或去向问题。因PIC系列微控制器采用了精简指令集(RISC)结构体系,其寻址方式和指令都既少而又简单。其寻址方式根据操作数来源的不同,可分为立即数寻址、直接寻址、寄存器间接寻址和位寻址四种。所以PIC系列单片机指令中的操作数常常出现有关寄存器符号。有关的寻址实例,均可在本文的后面找到。 4用来对程序作些说明,便于人们阅读程序。注释开始之前用分号(;)与其它部分相隔。当汇编程序检测到分号时,其后面的字符不再处理。值得注意:在用到子程序时应说明程序的入口条件、出口条件以及该程序应完成的功能和作用。 二、清零指令(共4条) 1 实例:CLRW;寄存器W被清零 说明:该条指令很简单,其中W为PIC单片机的工作寄存器,相当于MCS-51系列单片机中的累加器A,CLR是英语Clear的缩写字母。 2 实例:CLRWDT;看门狗定时器清零(若已赋值,同时清预分频器)

单片机原理与应用试题库___答案

《单片机原理及应用》试题库 一、填空题 1.单片机就是把( CPU)、( 输入/输出 )、和( 存储器 )等部件都集成在一个电路芯片上,并具备一套功能完善的( 指令系统 ),有的型号同时还具备( AD )和( DA )等功能部件,其简称为( 微处理器 )或(微控制器 )。 2.Intel公司典型的单片机有( MCS-51系列 )和( MCS-96系列 )。 3.单片机具有体积( 下 )、重量( 轻 )、价格( 低 )、功耗( 小 )、控制功能强、运算速度快、运用灵活、易于产品化、抗扰能力( 强 )等特点,故在国民经济建设、军事及家用电器等领域均得到了广泛的应用。 4.微处理器本身不是计算机,它是微型计算机的核心部件,又称它为( CPU )。它包括两个主要部分:(运算器)、(控制器)。 5.当扩展外部存储器或I/O口时,P2口用作(地址线的高8位)。 6.MCS-51单片机内部RAM区有( 4 )个工作寄存器区。 7.MCS-51单片机内部RAM区有( 128 )个位地址。 8.89C51单片机片内RAM中位寻址区的地址范围是( 20H—2FH ),工作寄存器区的地址范围是( 00H—1FH ),片内程序存储器中寻址区的地址范围是( 0000H —07FFH )。 9.MCS-51有( 4 )个并行I\O口。 10.MCS-51的堆栈是软件填写堆栈指针临时在( 30H—7FH )内开辟的区域. 11.MCS-51片内( 20H—2FH )范围内的数据存储器,既可以字节寻址又可以位寻址。 12.程序状态标志字寄存器PSW中的PSW.7的含义是(进位和借位标志位);PSW.0的含义是(奇偶校验位)。 13.若不使用89C51片内的程序存储器,引脚( EA’)必须接地。 14.MCS-51中凡字节地址能被( 0和8 )整除的特殊功能寄存器均能寻址。 15.MCS-51有4组工作寄存器,它们的字节地址范围是( 00H—1FH )。 16.当MCS-51引脚( ALE )信号有效时,表示从P0口稳定地送出了低8位地址. 17.在单片机的RESET端出现(两个机器周期以上的高电平时),便可以可靠复位,复位后的程序指针PC指向( 0000H )地址。 18.MCS-51系列单片机有:(外部中断0), (外部中断1 ), (定时/计数器T0溢出中断), (定时/计数器T1溢出中断), (串行口)等5个中断请求源。 39.KeiL C51软件中,工程文件的扩展名是__UV2______,编译连接后生成可烧写的文件扩展名是__hex_______。

51单片机复习题及答案

第1章单片机概述 3 ?在家用电器中使用单片机应属于微计算机的 _________ o A ?辅助设计应用; B ?测量、控制应用; C .数值计算应用; D ?数据处理应用 答:B o 4?微处理器、微计算机、微处理机、 CPU 、单片机它们之间有何区别? 答:微处理器、微处理机和CPU 都是中央处理器的不同称谓;而微计算机、单片机都是一个完 整的计算机系统,单片机特指集成在一个芯片上的用于测控目的的单片微计算机。 5. MCS-51系列单片机的基本型芯片分别为哪几种?它们的差别是什么? 答:MCS-51系列单片机的基本型芯片分别是8031、8051和8751 o 它们的差别是在片内程序存 储器上。8031无片内程序存储器,8051片内有4KB 的程序存储器ROM ,而8751片内集成有 4KB 的程序存储器EPROM o 6. 为什么不应当把51系列单片机称为MCS-51系列单片机? 答:因为MCS-51系列单片机中的“ MCS ”是In tel 公司生产的单片机的系列符号,而 51系列单 片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。 第2章51单片机片内硬件结构 1?在51单片机中,如果采用6MHz 晶振,一个机器周期为 答:2血 2. AT89C51单片机的机器周期等于 答: 12o 3?若A 中的内容为63H ,那么,P 标志位的值为— 答:P 标志位的值为0o 4?内部RAM 中,可作为工作寄存器区的单元地址为 答:00H ; 1FH o 5?通过堆栈操作实现子程序调用,首先要把 ______ 回时,再进行出栈保护,把保护的断点送回到 _____ 答: PC ; PC o 6. 51单片机程序存储器的寻址范围是由程序计数器PC 的位数所决定的,因为51单片机的PC 是16位的,因此其寻址的范围为 ___________ KB o 答: 64KB o 7?判断下列 1 .单片机与普通微型计算机的不同之处在于其将 块芯片上。 答:CPU 、存储器、I/O 口。 2. 8051与8751的区别是 — A .内部数据存储单元数目不同 C .内部程序存储器的类型不同 答:C o 、和 3部分集成于 B .内部数据存储器的类型不同 D .内部寄存器的数目不同 个时钟振荡周期。 的内容入栈,以进行断点保护。调用返 项说法是正确的。

51单片机指令表

此表主要是为了方便大家查阅每条指令的作用,写法以及字节数和周期数,建议大家保存为书签。 助记符指令说明字节数周期数 (数据传递类指令) MOV A,Rn 寄存器传送到累加器 1 1 MOV A,direct 直接地址传送到累加器 2 1 MOV A,@Ri 累加器传送到外部RAM(8 地址) 1 1 MOV A,#data 立即数传送到累加器 2 1 MOV Rn,A 累加器传送到寄存器 1 1 MOV Rn,direct 直接地址传送到寄存器 2 2 MOV Rn,#data 累加器传送到直接地址 2 1 MOV direct,Rn 寄存器传送到直接地址 2 1 MOV direct,direct 直接地址传送到直接地址 3 2 MOV direct,A 累加器传送到直接地址 2 1 MOV direct,@Ri 间接RAM 传送到直接地址 2 2 MOV direct,#data 立即数传送到直接地址 3 2 MOV @Ri,A 直接地址传送到直接地址 1 2 MOV @Ri,direct 直接地址传送到间接RAM 2 1 MOV @Ri,#data 立即数传送到间接RAM 2 2 MOV DPTR,#data16 16 位常数加载到数据指针 3 1 MOVC A,@A+DPTR 代码字节传送到累加器 1 2 MOVC A,@A+PC 代码字节传送到累加器 1 2 MOVX A,@Ri 外部RAM(8 地址)传送到累加器 1 2 MOVX A,@DPTR 外部RAM(16 地址)传送到累加器 1 2 MOVX @Ri,A 累加器传送到外部RAM(8 地址) 1 2 MOVX @DPTR,A 累加器传送到外部RAM(16 地址) 1 2 PUSH direct 直接地址压入堆栈 2 2 POP direct 直接地址弹出堆栈 2 2 XCH A,Rn 寄存器和累加器交换 1 1

(完整版)51单片机汇编指令(全)

指令中常用符号说明 Rn当前寄存器区的8个工作寄存器R0~R7(n=0~7) Ri当前寄存器区可作为地址寄存器的2个工作寄存器R0和R1(i=0,1) Direct8位内部数据寄存器单元的地址及特殊功能寄存器的地址 #data表示8位常数(立即数) #data16表示16位常数 Add16表示16位地址 Addr11表示11位地址 Rel8位代符号的地址偏移量 Bit表示位地址 @间接寻址寄存器或基址寄存器的前缀 ( )表示括号中单元的内容 (( ))表示间接寻址的内容 指令系统 数据传送指令(8个助记符) 助记符中英文注释 MOV Move 移动 MOV A , Rn;Rn→A,寄存器Rn的内容送到累加器A MOV A , Direct;(direct)→A,直接地址的内容送A MOV A ,@ Ri;(Ri)→A,RI间址的内容送A MOV A , #data;data→A,立即数送A MOV Rn , A;A→Rn,累加器A的内容送寄存器Rn MOV Rn ,direct;(direct)→Rn,直接地址中的内容送Rn MOV Rn , #data;data→Rn,立即数送Rn MOV direct , A;A→(direct),累加器A中的内容送直接地址中 MOV direct , Rn;(Rn)→direct,寄存器的内容送到直接地址 MOV direct , direct;(direct)→direct,直接地址的内容送到直接地址 MOV direct , @Ri;((Ri))→direct,间址的内容送到直接地址 MOV direct , #data;8位立即数送到直接地址中 MOV @Ri , A;(A)→@Ri,累加器的内容送到间址中 MOV @Ri , direct;direct→@Ri,直接地址中的内容送到间址中 MOV @Ri , #data; data→@Ri ,8位立即数送到间址中 MOV DPTR , #data16;data16→DPTR,16位常数送入数据指针寄存器,高8位送入DPH,低8位送入DPL中(单片机中唯一一条16位数据传送指令) (MOV类指令共16条)

相关文档
最新文档