电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
创作
电子发烧友网>电子资料下载>单片机>单片机课后习题答案

单片机课后习题答案

2017-11-04 | doc | 116KB | 次下载 | 免费

资料介绍

单片机课后习题答案

  单片机课后习题答案

  1.89C51单片机内包含哪些主要逻辑功能部件?

  答:80C51系列单片机在片内集成了以下主要逻辑功能部件:

  (l)CPU(中央处理器):8位 (2)片内RAM:128B(3)特殊功能寄存器:21个 (4)程序存储器:4KB (5)并行I/O口:8位,4个(6)串行接口:全双工,1个(7)定时器/计数器:16位,2个  (8)片内时钟电路:1个

  2.89C51的EA端有何用途?

  答:/EA端接高电平时,CPU只访问片内flash Rom并执行内部程序,存储器。/EA端接低电平时,CPU只访问外部ROM,并执行片外程序存储器中的指令。/EA端保持高电平时,CPU执行内部存储器中的指令。

  3.89C51的存储器分哪几个空间?如何区别不同空间的寻址?

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

  4. 简述89C51片内RAM的空间分配。

  答:片内RAM有256B,低128B是真正的RAM区,高128B是SFR(特殊功能寄存器)区 。

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

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

  其中20H~2FH(字节地址)是位寻址区 对应的位地址是00H~7FH

  6. 如何简捷地判断89C51正在工作?

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

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

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

  因为/PSEN接外部EPROM(ROM)的/OE端子 OE=Output Enable(输出允许)

  7. 89C51如何确定和改变当前工作寄存器组?

  答:PSW(程序状态字)(Program Status Word)中的RS1和RS0 可以给出4中组合,用来从4组工作寄存器组中进行选择 PSW属于SFR(Special Function Register)(特殊功能寄存器)

  9.读端口锁存器和“读引脚”有何不同?各使用哪种指令?

  答:读锁存器(ANLP0,A)就是相当于从存储器中拿数据,而读引脚是从外部拿数据(如MOV A,P1这条指令就是读引脚的,意思就是把端口p1输入数据送给A)传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常用这些指令于外部通信,判断外部键盘等;字节交换XCH、XCHD算术及逻辑运算

  ORL、CPL、ANL、ADD、ADDCSUBB、INC、DEC控制转移CJNE、DJNZ都属于读锁存器。10. 89C51

  P0~P3口结构有何不同?用作通用I/O口输入数据时,应注意什么?

  答:P0口内部没有上拉电阻,可以用做16位地址的低8位;

  P3有第二功能;

  P2口可以用做16位地址的高8位;

  需要上拉电阻。OC门电路无法输出高低电平,只有靠上拉电阻才能实现

  11.89C51单片机的EA信号有何功能?在使用8031时,EA信号引脚应如何处理?

  答:(1)80C51单片机的EA信号的功能

  EA为片外程序存储器访问允许信号,低电平有效;在编程时,其上施加21V的编程电压 EA引脚接高电平时,程序从片内程序存储器开始执行,即访问片内存储器;EA引脚接低电平时,迫使系统全部执行片外程序存储器程序。

  (2)在使用80C31时,EA信号引脚的处理方法

  因为80C31没有片内的程序存储器,所以在使用它时必定要有外部的程序存储器,EA 信号引脚应接低电平。

  12.89C51单片机有哪些信号需要芯片引脚以第2功能的方式提供?

  答: 第一功能 第二功能 串行口: P3.0 RXD(串行输入口)

  P3.1 TXD(串行输出口)

  中断: P3.2 INT0外部中断0

  P3.3 INT1外部中断1

  定时器/计数器(T0、T1):

  P3.4 T0(定时器/计数器0的外部输入)

  P3.5 T1(定时器/计数器1的外部输入) 数据存储器选通:

  P3.6 WR(外部存储器写选通,低电平有效,输出) P3.7 RD(外部存储器读选通,低电平有效,输出) 定时器/计数器(T2):

  P1.0 T2(定时器T2的计数端)

  P1.1 T2EX(定时器T2的外部输入端)

  13.内部RAM低128字节单元划分为哪3个主要部分?各部分主要功能是什么?

  答:片内RAM低128单元的划分及主要功能: (l)工作寄存器组(00H~lFH)

  这是一个用寄存器直接寻址的区域,内部数据RAM区的0~31(00H~lFH),共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0~R7。 (2)位寻址区(20H~2FH)

  从内部数据RAM区的32~47(20H~2FH)的16个字节单元,共包含128位,是可位寻址的RAM区。这16个字节单元,既可进行字节寻址,又可实现位寻址。

  (3)字节寻址区(30H~7FH)

  从内部数据RAM区的48~127(30H~7FH),共80个字节单元,可以采用间接字节寻址的方法访问。

  14.使单片机复位有几种方法?复位后机器的初始状态如何?

  答:(1)单片机复位方法

  单片机复位方法有:上电自动复位、按键电平复位和外部脉冲三种方式,如题图2-1所示。

  (2)复位后的初始状态

  复位后机器的初始状态,即各寄存器的状态:PC之外,复位操作还对其他一些特殊功能寄存器有影响,它们的复位状态如题表2-1所例

  15.开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?

  答:一般开机复位后都是选择第一组通用工作寄存器作为工作寄存器的,一共有4组,分别为0.1.2.3连续位于00h到1FH地址,然后在机器中有个程序状态字PSW,它的第四和第三位RS1,RS0是用来选择工作寄存器组的,可能不同机器地址稍有不同。他们俩的值和寄存器组的关系:

  RS1/RS0 0/0 0/1 1/0 1/1使用的工作寄存器 0 1 2 3地址 00-07 08-0F 10-17 18-1F写程序的时候就是通过定义程序状态字来选择使用不同的寄存器组。也可以直接对RS1和RS0赋值。

  16.程序状态寄存器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(奇偶校验位)

  17.位地址7CH与字节地址7CH如何区别?位地址7CH具体在片内RAM中的什么位置?

  答:用不同的寻址方式来加以区分,即访问128个位地址用位寻址方式,访问低128字节单元用字节寻址和间接寻址。

  具体地址为2F的第五位,即为7C。

  18.89C51单片机的时钟周期与振荡周期之间有什么关系?什么叫机器周期和指令周期?

  答:时钟信号的周期称为机器状态周期,是振荡周期的两倍。一个机器周期是指CPU访问存储器一次所需的时间。指令周期是执行一条指令所需的时间。

  19. 一个机器周期的时序如何划分?

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

  S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1,S5P2,S6P1,S6P2

  其中s=state(状态),p=phase(相位) 20.

  什么叫堆栈?堆栈指针SP的作用是什么?89C51单片机堆栈的容量不能超过多少字节?

  答:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。要点:堆:顺序随意栈:后进先出(Last-In/First-Out)

  在调用子程序时需要保存调用函数的CPU寄存器PC指针,PC指针是被CALL指令自动压入SP所指向的片内存储器,CPU寄存器要由用户用PUSH指令自行保存,因此SP的作用就是一个指针,当进行中断调用,子函数调用时将现场数据压入SP所指向的存储器,SP自动增加1或2,当中断结束RETI,调用返回RET,POP时将SP数据弹出,SP自动减1或,28051最大为128字节的片内存储器,0X20以上理论都可以做堆栈用96字节,8052为256字节224字节可用,但这样便没有其它空间可用于数据存储现在的单片机的程序一般都能用C51来,不用关心堆栈大小与SP寄存器

  21. 89C51有几种低功耗方式?如何实现?答:空闲方式和掉电方式

  空闲方式和掉电方式是通过对SFR中的PCON(地址87H)相应位置1而启动的。

  当CPU执行完置IDL=1(PCON.1)的指令后,系统进入空闲工作方式。这时,内部时钟不向CPU提供,而只供给中断、串行口、定时器部分。CPU的内部状态维持,即包括堆栈指针SP、程序计数器PC、程序状态字PSW、累加器ACC所有的内容保持不变,端口状态也保持不变。ALE和PSEN保持逻辑高电平。

  当CPU执行一条置PCON.1位(PD)为1的指令后,系统进入掉电工作方式。在这种工作方式下,内部振荡器停止工作。由于没有振荡时钟,因此,所有的功能部件都停止工作。但内部RAM区和特殊功能寄存器的内容被保留,而端口的输出状态值都保存在对应的SFR中,ALE和PSEN都为低电平。

  22. PC与DPTR各有哪些特点?有何异同?

  答:(1)程序计数器PC作为不可寻址寄存器的特点

  程序计数器PC是中央控制器申最基本的寄存器,是一个独立的计数器,存放着下一条将程序存储器中取出的指令的地址。

  程序计数器PC变化的轨迹决定程序的流程。程序计数器的宽度决定了程序存储器可以寻址的范围。

  程序计数器PC的基本工作方式有:

  ①程序计数器PC自动加1。这是最基本的工作方式,也是这个专用寄存器被称为计数器的原因。

  ②执行条件或无条件转移指令时,程序计数器将被置入新的数值,程序的流向发生变化。

  变化的方式有下列几种:带符号的相对跳转SJMP、短跳转AJMP、长跳转LJMP及JMP @A+DPTR等。

  ③在执行调用指令或响应中断时:

  PC的现行值,即下一条将要执行的指令的地址送入堆栈,加以保护;

  将子程序的入口地址或者中断矢量地址送入PC,程序流向发生变化,执行子程序或中断服务程序;

  子程序或中断服务程序执行完毕,遇到返回指令RET或RETI时,将栈顶的内容送到PC寄存器中,程序流程又返回到原来的地方,继续执行。 (2)地址指针DPTR的特点

  地址指针DPTR的特点是,它作为片外数据存储器寻址用的地址寄存器(间接寻址)。

  (3)地址指针DPTR与程序计数器PC的异同 ①

  相同之处:

  两者都是与地址有关的、16位的寄存器。其中,PC与程序存储器的地址有关,而 DPTR与数据存储器的地址有关。

  作为地址寄存器使用时,PC与DPTR都是通过P0和P2口(作为16位地址总线)输出的。但是,PC的输出与ALE及PSEN有关;DPTR的输出,则与ALE、RD及WR相联系

  ②不同之处:

  PC只能作为16位寄存器对待,由于有自动加1的功能,故又称为计数器;

  DPTR可以作为16位寄存器对待,也可以作为两个8位寄存器对待。

  PC是不可以访问的,有自己独特的变化方式,它的变化轨迹决定了程序执行的流程; DPTR是可以访问的,如MOV DPTR,#XXXXH,INC DPTP。23. 89C51端口锁存器的“读—修改—写”操作与“读引脚”操作有何区别?答:指令系统中有些指令读锁存器的值,有些指令则读引脚上的值。读锁存器指令是从锁存器中读取一个值并进行处理,把处理后的值(原值或已修改后的值)重新写入锁存器中。这类指令称为读-修改-写指令。 对于读-修改-写指令。直接读锁存器而不是读端口引脚, 是因为从引脚上读出的数据不一定能真正反映锁存器的状态。

  单片机原理及接口威廉希尔官方网站 课后习题答案第三章1、

  指令:CPU根据人的意图来执行某种操作的命令指令系统:一台计算机所能执行的全部指令集合机器语言:用二进制编码表示,计算机能直接识别和执行的语言

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

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

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

  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

  9MOVA,@R0;((R0))=80H→AMOV@R0,40H;(40H)=08H→(R0)MOV40H,A;(A)=80→40HMOVR0,#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→17HXRL A,@R0 ;03H⊕37H=34HCPL 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,R7MOV 26H,R6MOV 25H,R5MOV 24H,R4MOV 23H,R3MOV 22H,R2MOV 21H,R1MOV 20H,R0

  19、MOV 2FH,20

  MOV 2EH,21 MOV 2DH,22

  20、CLR CMOV A,#5DH ;被减数的低8位→AMOV R2,#B4H ;减数低8位→R2SUBB A,R2 ;被减数减去减数,差→A

  MOV 30H,A ;低8位结果→30HMOV A,#6FH ;被减数的高8位→A

  MOV R2,#13H ;减数高8位→R2SUBB A,R2 ;被减数减去减数,差→AMOV 31H,A ;高8位结果→30H注意:如果在你的程序中用到了进位位,在程序

  开始的时候要记得清0进位位21、(1)A≥10CJNE A,#0AH,L1;(A)与10比较,不等转L1LJMP LABEL ;相等转LABELL1:JNC LABEL

  ;(A)大于10,转LABEL或者:CLR C

  SUBB A,#0AHJNC LABEL

  (2)A>10CJNE A,#0AH,L1;(A)与10比较,不等转L1RET ;相等结束L1:JNC LABEL ;(A)大于10,转LABEL RET

  ;(A)小于10,结束或者:CLR CSUBB A,#0AHJNC L1RETL1RET;数据块长度减1,不等于0,继续查找(3)A≤10 RETCJNE A,#0AH,L1 27、 MOV DPTR,#SOURCE ;(A)与10比较,不等转L1;源首地址→DPTRL2:LJMP LABEL ;相等转LABEL MOV R0,#DIST L1:JC L2 ;(A)小于10,转L2;目的首地址→R0RET LOOP:MOVX A,@DPTR 或者:;传送一个字符CLR C MOV @R0,ASUBB A,#0AH INC DPTR

  JC LABEL

  JZ LABELRET22、(SP)=23H,(PC)=3412H

  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 ;数据块首地址→R0LOOP: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

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1TC358743XBG评估板参考手册
  2. 1.36 MB  |  330次下载  |  免费
  3. 2开关电源基础知识
  4. 5.73 MB  |  6次下载  |  免费
  5. 3100W短波放大电路图
  6. 0.05 MB  |  4次下载  |  3 积分
  7. 4嵌入式linux-聊天程序设计
  8. 0.60 MB  |  3次下载  |  免费
  9. 5基于FPGA的光纤通信系统的设计与实现
  10. 0.61 MB  |  2次下载  |  免费
  11. 651单片机窗帘控制器仿真程序
  12. 1.93 MB  |  2次下载  |  免费
  13. 751单片机大棚环境控制器仿真程序
  14. 1.10 MB  |  2次下载  |  免费
  15. 8基于51单片机的RGB调色灯程序仿真
  16. 0.86 MB  |  2次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33564次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6653次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537796次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420026次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191185次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费