单片机原理及接口技术课后习题答案

发布时间:2024-09-20

第二章答案

第一题 8051单片机内包含哪些主要逻辑功能部件?

CPU

ROM

RAM

Timer/Counter

UART(串口)(通用异步串行接收机发送机)

4个8bits Port(并口)

Int0,int1(外部中断)

第二题8051的/EA端有什么用处?

EA端Enable Address(外部程序存储器地址允许输入端)

低电平有效

EA=0(低电平有效)时,只允许访问外部存储器

EA=1时,可以访问内部和外部存储器

EA还有复用功能,Vpp(Pulse of Programming)(编程脉冲)(固化编程电压输入端)

第三题8051的存储器分为那几个空间?怎样区别不同空间的寻址?

ROM(片内ROM和片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits地址)(64KB) 片外RAM(MOVX)(16bits地址)(64KB)

片内RAM(MOV)(8bits地址)(256B)

什么是普林斯顿结构?哈佛结构?

普林斯顿结构,ROM和RAM统一编址

哈佛结构,ROM和RAM分开编址

第四章8051片内RAM的空间是怎样分配的?

片内RAM有256B

低128B是真正的RAM区

高128B是SFR(特殊功能寄存器)区

真正的RAM区可以分成那几个部分?

4个工作寄存器区(R0~R7)

位寻址区

真正的RAM区

第五题简述布尔处理存储器的空间分配,片内RAM中包含哪些可位寻址单元?

片内RAM区从00H~FFH(256B)

其中20H~2FH(字节地址)是位寻址区

对应的位地址是00H~7FH

第六题 如何简洁地判断8051正在工作?

用示波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路工作是否正常?) ALE(地址锁存允许)(Address Latch Enable)输出是fosc的6分频

用示波器观察ALE是否有脉冲输出(判断 8051芯片的好坏?)

观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?)

因为/PSEN接外部EPROM(ROM)的/OE端子

OE=Output Enable(输出允许)

第七题 8051如何确定和改变当前工作寄存器组?

PSW(程序状态字)(Program Status Word)中的RS1和RS0

可以给出4中组合

用来从4组工作寄存器组中进行选择

PSW属于SFR(Special Function Register)(特殊功能寄存器)

第十题 8051的/EA信号有什么功能?在使用8031的时候,EA信号引脚应该如何处理?

EA=Enable Address(外部程序存储器地址允许输入端)

EA=0(低电平有效)只允许访问外部存储器

EA=1内外ROM都可以访问

因为8031没有片内ROM

只能访问片外的EPROM

应该使EA=0(有效)

第十二题内部RAM第128B单元划分成那几个主要部分?各部分主要功能是什么?

当前工作寄存器组(4组)(00H~1FH)

位寻址区(20H~2FH)

真正的RAM区(30H~7FH)

第十三题 使单片机复位有哪几种方法?复位后机器的初始状态如何?

上电复位

上电复位+手动复位

脉冲复位

复位会重置一些寄存器

第十四题开机复位后,CPU使用的是哪组工作寄存器?它们的地址什么什么?

8051有4个工作寄存器组

分别从R0~R7

分别位于 00H~07H,08H~0FH,10H~17H,18H~1FH

开机复位后,默认使用寄存器组0

第十五题 PSW的作用是什么?作用是什么?

PSW是一个SFR(特殊功能寄存器)

位于片内RAM的高128B

具体地址D0H(00H~FFH)(片内RAM的编址)(8bits编址方法)

PSW=Program Status Word(程序状态字)

PSW的常用标志位有哪些?

CY=Carry(进位标志位)

AC=Auxiliary Carry(辅助进位标志位)(半进位标志位)

F0用户标志位

RS1,RS0,用来选择当前工作寄存器组(R0~R7)(4选1)

OV=Overflow(溢出标志位)

P=Parity(奇偶校验位)

第十五题位地址7CH和字节地址7CH如何区别?位地址7CH在片内RAM中什么地方?

片内RAM的地址从00H~FFH

其中20H~2FH(字节地址)是位寻址区(bits)

位地址从00H~7FH

位地址7CH位于字节地址2FH

可以从寻址方式来区分

位地址使用位寻址方式

字节地址使用直接寻址,间接寻址

第十七题 8051的时钟周期,震荡周期有什么关系?

震荡周期

时钟周期=状态周期(state)

时钟周期=2*振荡周期

机器周期=6*时钟周期=12*震荡周期

指令周期=1~4个机器周期

第十八题 一个机器周期的时序如何划分?

一个机器周期=12个震荡周期=6个时钟周期(状态周期)

S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1,S5P2,S6P1,S6P2 其中s=state(状态),p=phase(相位)

第十九题什么叫做堆栈?SP是什么?它的作用是什么?8051堆栈的容量不能超过多少个字节?

Stack(堆栈)

具有FILO,LIFO的特性

SP=Stack Pointer(堆栈指针)

SP是栈顶指示器

第三章

1、 指令:CPU根据人的意图来执行某种操作的命令

指令系统:一台计算机所能执行的全部指令集合

机器语言:用二进制编码表示,计算机能直接识别和执行的语言

汇编语言:用助记符、符号和数字来表示指令的程序语言

高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言

2、 见第1题

3、 操作码 [目的操作数] [,源操作数]

4、

 

寻址方式

寻址空间

立即数寻址

程序存储器ROM

直接寻址

片内RAM低128B、特殊功能寄存器

寄存器寻址

工作寄存器R0-R7、A、B、C、DPTR

寄存器间接寻址

片内RAM低128B、片外RAM

变址寻址

程序存储器(@A+PC,@A+DPTR)

相对寻址

程序存储器256B范围(PC+偏移量)

位寻址

片内RAM的20H-2FH字节地址、部分SFR

5、 SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址

6、 MOV A,40H ;直接寻址 (40H)→A

MOV R0,A ;寄存器寻址 (A)→R0

MOV P1,#0F0H ;立即数寻址 0F0→P1

MOV @R0,30H ;直接寻址 (30H) →(R0)

MOV DPTR,#3848H ;立即数寻址 3848H→DPTR

MOV 40H,38H ;直接寻址(38H) →40H

MOV R0,30H ;直接寻址 (30H) →R0

MOV P0,R0 ;寄存器寻址 ( R0 )→P0

MOV 18H,#30H ;立即数寻址 30H→18H

MOV A,@R0 ;寄存器间接寻址 ((R0)) →A

MOV P2,P1 ;直接寻址 (P1)→P2

最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H

注意:→左边是内容,右边是单元

7、 用直接寻址,位寻址,寄存器寻址

8、

MOV A,DATA ;直接寻址 2字节1周期

MOV A,#DATA ;立即数寻址 2字节1周期

MOV DATA1,DATA2 ;直接寻址 3字节2周期

MOV 74H,#78H ;立即数寻址 3字节2周期

如果想查某一指令的机器码,字节数或周期数可查阅书本后面的附录A

9、

MOV A,@R0 ;((R0))=80H→A

MOV @R0,40H ;(40H)=08H→(R0)

MOV 40H,A ;(A)=80→40H

MOV R0,#35H ;35H→R0

最后结果:(R0)=35H (A)=80H,(32H)=08H,(40H)=80H

10、用直接寻址,位寻址,寄存器寻址

11、只能采用寄存器间接寻址(用MOVX指令)

12、低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7)

高128字节:直接寻址,位寻址,寄存器寻址

13、采用变址寻址(用MOVC指令)

14、压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。用DA A指令调整(加06H,60H,66H)

15、用来进行位操作

16、ANL A,#17H ;83H∧17H=03H→A

ORL 17H,A ;34H∨03H=37H→17H

XRL A,@R0 ;03H⊕37H=34H

CPL A ;34H求反等于CBH

所以(A)=CBH

17、(1)SETB ACC.0或SETB E0H ;E0H是累加器的地址

(2)CLR ACC.7

CLR ACC.6

CLR ACC.5

CLR ACC.4

(3)CLR ACC.6

CLR ACC.5

CLR ACC.4

CLR ACC.3

18、MOV 27H,R7

MOV 26H,R6

MOV 25H,R5

MOV 24H,R4

MOV 23H,R3

MOV 22H,R2

MOV 21H,R1

MOV 20H,R0

19、MOV 2FH,20

MOV 2EH,21

MOV 2DH,22

20、CLR C

MOV A,#5DH ;被减数的低8位→A

MOV R2,#B4H ;减数低8位→R2

SUBB A,R2 ;被减数减去减数,差→A

MOV 30H,A ;低8位结果→30H

MOV A,#6FH ;被减数的高8位→A

MOV R2,#13H ;减数高8位→R2

SUBB A,R2 ;被减数减去减数,差→A

MOV 31H,A ;高8位结果→30H

注意:如果在你的程序中用到了进位位,在程序开始的时候要记得清0进位位

21、(1)A≥10

CJNE A,#0AH,L1 ;(A)与10比较,不等转L1

LJMP LABEL ;相等转LABEL

L1:JNC LABEL ;(A)大于10,转LABEL

或者:

CLR C

SUBB A,#0AH

JNC LABEL

(2)A>10

CJNE A,#0AH,L1

RET

L1:JNC LABEL

RET

或者:

CLR C

SUBB A,#0AH

JNC L1

RET

L1:JNZ LABEL

RET

(3)A≤10

CJNE A,#0AH,L1

L2:LJMP LABEL

L1:JC L2 ;(A)与10比较,不等转L1 ;相等结束 ;(A)大于10,转LABEL ;(A)小于10,结束 ;(A)与10比较,不等转L1 ;相等转LABEL (A)小于10,转L2 ;

RET

或者:

CLR C

SUBB A,#0AH

JC LABEL

JZ LABEL

RET

22、(SP)=23H,(PC)=3412H

参看书上80页

23、(SP)=27H,(26H)=48H,(27H)=23H,(PC)=3456H

参看书上79页

24、不能。ACALL是短转指令,可调用的地址范围是2KB。

在看这个题的时候同时看一下AJMP指令。同时考虑调用指令ACALL和LCALL指令和RET指令的关系。

25、 MOV R2,#31H ;数据块长度→R2

MOV R0,#20H ;数据块首地址→R0

LOOP:MOV A,@R0 ;待查找的数据→A

CLR C ;清进位位

SUBB A,#0AAH ;待查找的数据是0AAH吗

JZ L1 ;是,转L1

INC R0 ;不是,地址增1,指向下一个待查数据

DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找

MOV 51H,#00H ;等于0,未找到,00H→51H

RET

L1:MOV 51H,#01H ;找到,01H→51H

RET

26、 MOV R2,#31H ;数据块长度→R2

MOV R0,#20H ;数据块首地址→R0

LOOP:MOV A,@R0 ;待查找的数据→A

JNZ L1 ;不为0,转L1

INC 51H ;为0,00H个数增1

L1:INC R0 ;地址增1,指向下一个待查数据

DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找

RET

27、 MOV DPTR,#SOURCE ;源首地址→DPTR

MOV R0,#DIST ;目的首地址→R0

LOOP:MOVX A,@DPTR ;传送一个字符

MOV @R0,A

INC DPTR ;指向下一个字符

INC R0

CJNE A,#24H,LOOP ;传送的是“$”字符吗?不是,传送下一个字符

RET

28、 MOV A,R3 ;取该数高8位→A

ANL A,#80H ;取出该数符号判断

JZ L1 ;是正数,转L1

MOV A,R4 ;是负数,将该数低8位→A

CPL A ;低8位取反

ADD A,#01H ;加1

MOV R4,A ;低8位取反加1后→R4

MOV A,R3 ;将该数高8位→A

CPL A ;高8位取反

ADDC A,#00H ;加上低8位加1时可能产生的进位

MOV R3,A ;高8位取反加1后→R3

L1: RET

29、 CLR C ;清进位位C

MOV A,31H ;取该数低8位→A

RLC A ;带进位位左移1位

MOV 31H,A ;结果存回31H

MOV A,30H ;取该数高8位→A

RLC A ;带进位位左移1位

MOV 30H,A ;结果存回30H

30、 MOV R2,#04H ;字节长度→R2

MOV R0,#30H ;一个加数首地址→R0

MOV R1,#40H ;另一个加数首地址→R1

CLR C ;清进位位

LOOP:MOV A,@R0 ;取一个加数

ADDC A,@R1 ;两个加数带进位位相加

DA A ;十进制调整

MOV @R0,A ;存放结果

INC R0 ;指向下一个字节

INC R1 ;

DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找

RET

31、 MOV R2,#08H ;数据块长度→R2

MOV R0,#30H ;数据块目的地址→R0

MOV DPTR,#2000H ;数据块源地址→DPTR

LOOP:MOVX A,@ DPTR ;传送一个数据

MOV @R0,A

INC DPTR ;指向下一个数据

INC R0 ;

DJNZ R2,LOOP ;数据块长度减1,没传送完,继续传送

RET

32、(1)MOV R0,0FH ;2字节,2周期 4字节4周期(差)

MOV B,R0 ;2字节,2周期

(2)MOV R0,#0FH ;2字节,1周期 4字节3周期(中)

MOV B,@R0 ;2字节,2周期

(3)MOV B,#0FH ;3字节,2周期 3字节2周期(好)

33、(1)功能是将片内RAM中50H~51H单元清0。

(2)7A0A (大家可以看一下书上,对于立即数寻址的话,后面一个字节存放的是立即数) 7850 (第一个字节的后三位是寄存器,前一个条指令是010也就是指的R2,在这里是R0,所以应该是78,后一个字节存放的是立即数) DAFC (这里涉及到偏移量的计算,可以参考书上56页)

34、 INC @R0 ;(7EH)=00H

INC R0 ;(R0)=7FH

INC @R0 ;(7FH)=39H

INC DPTR ;(DPTR)=10FFH

INC DPTR ;(DPTR)=1100H

INC DPTR ;(DPTR)=1101H

35、解:(1000H)=53H (1001H)=54H (1002H)=41H

(1003H)=52H (1004H)=54H (1005H)=12H

(1006H)=34H (1007H)=30H (1008H)=00H

(1009H)=70H

36、MOV R0,#40H ;40H→R0

MOV A,@R0 ;98H→A

INC R0 ;41H→R0

ADD A,@R0 ;98H+(41H)=47H→A

INC R0

MOV @R0,A ;结果存入42H单元

CLR A ;清A

ADDC A,#0 ;进位位存入A

INC R0

MOV @R0,A ;进位位存入43H

功能:将40H,41H单元中的内容相加结果放在42H单元,进位放在43H单元,(R0)=43H,

(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H

37、 MOV A,61H ;F2H→A

MOV B,#02H ;02H→B

MUL AB ;F2H×O2H=E4H→A

ADD A,62H ;积的低8位加上CCH→A

MOV 63H,A ;结果送62H

CLR A ;清A

ADDC A,B ;积的高8位加进位位→A

MOV 64H,A ;结果送64H

功能:将61H单元的内容乘2,低8位再加上62H单元的内容放入63H,将结果的高8位放在64H单元。(A)=02H,(B)=01H,(61H)=F2H,(62H)=CCH,(63H)=B0H,(64H)=02H

39、MOV A,XXH

ORL A,#80H

MOV XXH,A

40、(2)MOV A,XXH

MOV R0,A

XRL A,R0

第五章

1、什么是中断和中断系统?其主要功能是什么?

答:当CPU正在处理某件事情的时候,外部发生的某一件事件请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件,中断服务处理完该事件以后,再回到原来被终止的地方,继续原来的工作。这种过程称为中断,实现这种功能的部件称为中断系统。功能:

(1) 使计算机具有实时处理能力,能对外界异步发生的事件作出及时的处理

(2) 完全消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率

(3) 实现实时控制

2、试编写一段对中断系统初始化的程序,使之允许INT0,INT1,TO,串行口中断,且使T0中断为高优先级中断。

解:MOV IE,#097H

MOV IP,#02H

3、在单片机中,中断能实现哪些功能?

答:有三种功能:分时操作,实时处理,故障处理

4、89C51共有哪些中断源?对其中端请求如何进行控制?

答:(1)89C51有如下中断源

① :外部中断0请求,低电平有效

② :外部中断1请求,低电平有效

③T0:定时器、计数器0溢出中断请求

④T1:定时器、计数器1溢出中断请求

⑤TX/RX:串行接口中断请求

(2)通过对特殊功能寄存器TCON、SCON、IE、IP的各位进行置位或复位等操作,可实现各种中断控制功能

5、什么是中断优先级?中断优先处理的原则是什么?

答:中断优先级是CPU相应中断的先后顺序。原则:

单片机原理及接口技术课后习题答案.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219