《嵌入式技术基础与实践》第二版习题参考答案.docx

上传人:b****6 文档编号:8827884 上传时间:2023-05-15 格式:DOCX 页数:42 大小:116.28KB
下载 相关 举报
《嵌入式技术基础与实践》第二版习题参考答案.docx_第1页
第1页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第2页
第2页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第3页
第3页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第4页
第4页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第5页
第5页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第6页
第6页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第7页
第7页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第8页
第8页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第9页
第9页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第10页
第10页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第11页
第11页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第12页
第12页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第13页
第13页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第14页
第14页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第15页
第15页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第16页
第16页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第17页
第17页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第18页
第18页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第19页
第19页 / 共42页
《嵌入式技术基础与实践》第二版习题参考答案.docx_第20页
第20页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《嵌入式技术基础与实践》第二版习题参考答案.docx

《《嵌入式技术基础与实践》第二版习题参考答案.docx》由会员分享,可在线阅读,更多相关《《嵌入式技术基础与实践》第二版习题参考答案.docx(42页珍藏版)》请在冰点文库上搜索。

《嵌入式技术基础与实践》第二版习题参考答案.docx

《嵌入式技术基础与实践》第二版习题参考答案

嵌入式技术基础与实践(第二版)

习题参考答案

目录

第1章概述习题参考答案1

第2章FreescaleS08微控制器习题参考答案3

第3章第一个样例程序及工程组织习题参考答案5

第4章基于硬件构件的嵌入式系统开发方法习题参考答案8

第5章串行通信接口SCI习题参考答案10

第6章GPIO的应用实例—键盘、LED与LCD习题参考答案12

第7章定时器模块习题参考答案13

第8章串行外设接口SPI习题参考答案14

第9章Flash存储器在线编程习题参考答案15

第10章集成电路互连总线I2C习题参考答案18

第11章模数转换模块A/D习题参考答案20

第12章系统开发其他模块应用习题参考答案21

第13章JM60的USB2.0开发方法习题参考答案23

第14章DZ60的CAN总线开发方法习题参考答案28

第1章概述习题参考答案

1.嵌入式系统的基本含义是什么?

为什么说单片机是典型的嵌入式系统?

答:

即MCU的含义是:

在一块芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。

大部分嵌入式系统以MCU为核心进行设计。

MCU从体系结构到指令系统都是按照嵌入式系统的应用特点专门设计的,它能很好地满足应用系统的嵌入、面向测控对象、现场可靠运行等方面的要求。

因此以MCU为核心的系统是应用最广的嵌入式系统。

2.简述嵌入式系统的特点以及应用领域。

答:

嵌入式系统属于计算机系统,但不单独以通用计算机的面目出现;嵌入式系统开发需要专用工具和特殊方法;使用MCU设计嵌入式系统,数据与程序空间采用不同存储介质;开发嵌入式系统涉及软件、硬件及应用领域的知识;嵌入式系统的其他特点,比如紧张的资源,较高稳定性要求,低功耗,低成本等。

一般用于工业控制,智能家电,日常电子等领域。

3.比较MCU与CPU的区别与联系。

答:

CPU是一个单独的PC处理器。

而MCU,则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。

所以可以这么说,MCU是一个包含微处理器的嵌入式系统,而CPU紧紧是一个处理器而已。

4.举例说明嵌入式系统在日常生活中的应用。

答:

日常数码产品:

手机,MP3,U盘,相机等。

日常工业类:

冰箱,空调,微波炉,汽车等。

5.C语言的那些特性使得它成为嵌入式系统中使用频率最高的高级语言。

答:

相比底端汇编,更简单易学;与高级语言如(C++,C#,java等)相比,执行效率高,编译后的编码体积小,而且支持好的编译器还支持嵌入汇编代码;对位的操纵能力很强。

6.阅读光盘中【第01章(概述)阅读资料】中的“嵌入式C语言工程简明规范”,用一页纸给出嵌入式C语言工程简明规范的要点。

答:

此规范主要针对单片机编程语言和08编译器而言,包括命名、注释、编码规范性等内容。

建议在一个工程或者一个项目中尽量遵循相同的代码规范,而不是说你只能拥有一个代码规范。

(1)命名规则:

命名清晰明了,有明确含义,使用完整单词或约定俗成的缩写。

通常,较短的单词可通过去掉元音字母形成缩写;较长的单词可取单词的头几个字母形成缩写。

"见名知意";命名风格要自始至终保持一致;命名中若使用特殊约定或缩写,要有注释说明;为了代码复用,命名中应避免适用与具体项目相关的前缀;应使用英语命名。

(2)注释:

注释基本原则就是有助于对程序的阅读理解,说明程序在"做什么",解释代码的目的、功能和采用的方法。

一般情况源程序有效注释量在30%左右。

注释语言必须准确、易懂、简洁。

边写代码边注释,修改代码同时修改相应的注释,不再有用的注释要删除。

汇编和C中都用"//",取消";"不使用段注释"/**/"(调试时可用)。

使用文件注释必须说明文件名、项目名称、函数功能、创建人、创建日期、版本信息等相关信息。

修改文件代码时,应在文件注释中记录修改日期、修改人员,并简要说明此次修改的目的。

所有修改记录必须保持完整。

文件注释放在文件顶端,用"/*……*/"格式包含。

注释文本每行缩进4个空格;每个注释文本分项名称应对齐。

函数头部注释应包括函数名称、函数功能、入口参数、出口参数等内容。

如有必要还可增加作者、创建日期、修改记录(备注)等相关项目。

函数头部注释放在每个函数的顶端,用"/*……*/"的格式包含。

其中函数名称应简写为FunctionName(),不加入、出口参数等信息。

代码注释应与被注释的代码紧邻,放在其上方或右方,不可放在下面。

如放于上方则需与其上面的代码用空行隔开。

一般少量注释应该添加在被注释语句的行尾,一个函数内的多个注释左对齐;较多注释则应加在上方且注释行与被注释的语句左对齐。

通常,分支语句(条件分支、循环语句等)必须编写注释。

其程序块结束行"}"的右方应加表明该程序块结束的标记"endof……",尤其在多重嵌套时。

同一类型的标识符应集中定义,并在定义之前一行对其共性加以统一注释。

对单个标识符的注释加在定义语句的行尾。

全局变量一定要有详细的注释,包括其功能、取值范围、哪些函数或过程存取它以及存取时的注意事项等。

注释用"//…//"的格式。

(3)编码规范性:

代码的每一级均往右缩进4个空格的位置;不使用Tab键,建议使用空格代替tab键,这样代码打印不回造成错乱;相对独立的程序块之间要加空行;括号内侧(即左括号后面和右括号前面)不加空格,多重括号间不加空格。

如:

SetName(GetFunc());

函数形参之间应该有且只有一个空格(形参逗号后面加空格),如:

CallFunction(para1,para2,para3),而CallFunction(para1,para2,para3)不符合要求;

操作符前后均加一个空格,如:

nSum=nNunm1+nNum2。

而nSum=nNunm1+nNum2则不符合要求;单目操作符,如"!

"、"~"、"++"、"-"、"&"(地址运算符)等,后面不加空格,如:

i++,pName=&name,bRes=!

(x<10);if、elseif、else、for、while语句无论其执行体是一条语句还是多条语句都必须加花括号,且左右花括号各独占一行;Switch语句必须包含default分支;一个函数不要超过80行代码。

 

第2章FreescaleS08微控制器习题参考答案

1.给出AW60存储器映像的简要说明。

答:

所谓存储器映像,是指地址$0000~$FFFF这个64KB空间,哪些地址被何种存储器所占用,或者说AW60的RAM、Flash、I/O映像寄存器各使用$0000~$FFFF这个64KB空间中的哪些地址。

简单地说,就是$0000~$FFFF这个64KB空间是如何分配的。

2.AW60的引脚主要分为哪几类?

简要说明主要引脚的功能。

答:

(1)电源类信号引脚

(2)复位信号引脚

(3)主要功能模块引脚。

比如定时器,IRQ中断等。

(4)其他,比如背景调试BKGD引脚

主要引脚:

AW60最小系统连接的I/O口,以及各具体功能I/O口。

3.嵌入式系统中RAM和Flash作用分别是什么?

答:

一般来说RAM这个区域安排用户数据(主要是全局变量)和堆栈空间;Flash

要用于存储程序、常数、中断向量等。

4.给出AW60的硬件最小系统。

答:

AW60芯片的硬件最小系统包括电源及其滤波电路、复位电路、晶振电路及PLL滤

波电路、写入器接口电路。

5.指出下列指令中的源操作数和目的操作数的寻址方式。

(1)MOV#$80,$80

(2)MOV$80,$A0

(3)MOV$80,X+(4)MOVX+,$80

(5)LDA$80,X

答:

(1)立即寻址,直接寻址

(2)直接寻址,直接寻址

(3)直接寻址,无偏移量变址、变址加1寻址方式

(4)无偏移量变址、变址加1寻址方式,直接寻址

(5)直接寻址,无偏移量变址、变址加1寻址方式

6.说明跳转指令BRA和JMP的差别。

答:

BRA是无条件相对转移指令,转移范围是前127字节、后128字节。

而JMP则是

绝对地址跳转指令。

7.哪些指令影响堆栈指针?

如何影响?

答:

PSH,PUL。

前者是向堆栈中放入,指针减1,向上移;而PUL刚好相反,指针加

1,向下移。

8.说明芯片初始化时堆栈指针的初始化方法。

答:

SP是指向下一个栈地址的16位寄存器,堆栈指针SP采用递减的结构,即进栈

SP减1,出栈时SP加1。

初始化时,SP的初值为$00FF(前置符号$表示十六进制数)。

栈指针复位指令(RSP)可将SP的低8位置为$FF,而不影响高8位。

9.写出主要汇编伪指令?

答:

变量定义(变量声明)

数字常数与字符串常数定义

常数赋值与文本替代符伪指令

指令存储定位伪指令

文件包含伪指令

宏定义和宏调用伪指令

定义存储区域伪指令

具体细节请参照2.7.2节

10.编写一段延时1000个指令周期的延时子程序。

答:

DL1000;

MOVR7#248

DJNZR7$

MOVR7#250

DJNZR74

RET

 

第3章第一个样例程序及工程组织习题参考答案

1.什么叫通用I/O口?

答:

所谓通用I/O,也记为GPIO(GeneralPurposeI/O),即基本的输入/输出,有时也称并行I/O,或普通I/O,它是I/O的最基本形式。

2.什么叫上拉电阻与下拉电阻?

它们的作用是什么?

如何选择上拉电阻与下拉电阻的阻值?

哪些情况下使用上拉电阻?

哪些情况下使用下拉电阻?

答:

通俗地说,若MCU的某个引脚通过一个电阻接到电源(Vcc)上,这个电阻被称为“上拉电阻”。

与之相对应,若MCU的某个引脚通过一个电阻接到地(GND)上,则相应的电阻被称为“下拉电阻”;他们使得悬空的芯片引脚被上拉电阻或下拉电阻初始化为高电平或低电平;根据实际情况,上拉电阻与下拉电阻可以取值在1KΩ~10KΩ之间,其阻值大小与静态电流及系统功耗相关;当某个引脚需要初始化成高电平时可以通过上拉电阻接电源,当某个引脚要初始化低电平时可以通过下拉电阻接地。

3.什么是OC输出?

为什么OC输出的I/O口一定要上拉?

答:

OC输出,即开漏输出,即集电极开路。

只有接了上拉电阻,才能输出高低电平,否则只能输出低电平了。

4.为什么在无操作系统的嵌入式系统软件主程序中使用无限循环?

答:

由于程序都是顺序执行的。

如果不使用无限循环,程序执行一遍代码,就不能在接受其他的任务操作了。

在嵌入式系统中,这是致命的,如果一个嵌入式产品每次只能使用一次或只接受一次任务,那是无法想象的。

但是使用了无限循环,就可以不停地监听任务,并执行。

5.找出样例子工程的机器码文件,解释S19文件的含义。

答:

源文件经编译、连接后可获得目标码文件(.S19文件),它是FreescaleMCU的机器码文件,通过写入程序可将机器码下载到目标MCU内的Flash存储器,也可以通过光盘中苏州大学嵌入式系统研发中心开发的独立写入软件SD-Programmer-S08读出写入到Flash的S19的内容,观察实际写入到Flash的内容是否和S19的内容相同。

该程序也可以擦写Flash。

目标代码文件是以S记录格式表示的机器码文件。

S记录格式是Freescale公司的十六进制目标代码文件,它将目标程序和数据以ASCII码格式表示,可直接显示和打印。

目标文件由若干行S记录构成,每行S记录可以用CR/LF/NUL结尾。

一行S记录由五部分组成,具体细节请参考书中3.4.4。

6.举例给出CW环境C语言工程文件的组织结构图。

答:

以下是控制小灯闪烁的CW环境C语言工程文件的组织结构图

 

 

7.分析Project.prm文件的功能。

答:

Project.prm文件主要实现了芯片的RAM和ROM的定义,初始化RAM中的变量。

初始化堆栈的大小。

定义复位向量,即应用程序的默认入口。

还包含了启动代码,是硬件复位后的函数入口。

8.如何查看一个文件.LST文件,举例分析一个LST文件。

答:

利用FreescaleCodewarrior打开控制小灯闪烁工程文件,通过edit-standardsettings-target–compilerforHC08-option-output-generateListingFile点击确定编译连接可以生成.LST文件。

然后在该工程的bin文件夹中可以找.LST文件,通过FreescaleCodewarrior打开main.lst文件。

看下面的一段代码:

26:

Light_Init(Light_Run_PORT,Light_Run,Light_OFF);//指示灯初始化

004ca606[2]LDA#6

004e87[2]PSHA

004f5f[1]CLRX

00504f[1]CLRA

0051cd0000[6]JSRLight_Init

00548a[3]PULH

26:

Light_Init(Light_Run_PORT,Light_Run,Light_OFF)是C程序代码;

004ca606

004e87

00504f

0051cd0000

004f5f

00548a

是该程序的机器代码;其后面的对应的是汇编程序代码。

9.如何能知道一段或一句C语言源程序的汇编代码与机器码,举例之。

答:

请参考第8题。

10.给出一个C语言控制三盏小灯的程序,并调试,功能自定。

答:

请参考课本中3.5及随书光盘。

11.给出一个S08汇编语言控制三盏小灯的程序,并调试,功能自定。

答:

请参考课本中3.6及随书光盘。

12.分析一个map文件,简要说明map文件给了我们什么信息?

答:

打开工程后,展开“工程设置文件夹”后,再展开“LinkerFiles”文件夹,可以看到“Project.map”文件,通常称之为工程的“映像文件”,这个文件告诉我们,源代码被编译连接后的机器码,到底被下载到MCU内存储器中的什么地方,在高级调试时,可能需要用到这些知识。

 

第4章基于硬件构件的嵌入式系统开发方法习题参考答案

1.简要阐述嵌入式硬件构件的基本思想及优点。

答:

嵌入式硬件构件是指将一个或多个硬件功能模块、支撑电路及其功能描述封装成一个可重用的硬件实体,并提供一系列规范的输入/输出接口。

优点:

结构清晰,方便移植。

2.硬件构件如何分类?

给出各类硬件构件的定义及原理图设计要点。

答:

根据所拥有接口类型的不同,硬件构件分为核心构件、中间构件和终端构件三种类型。

核心构件只有提供接口,没有需求接口。

也就是说,它只为其它硬件构件提供服务,而不接受服务。

在以单MCU为核心的嵌入式系统中,MCU的最小系统就是典型的核心构件。

中间构件既有需求接口又有提供接口,即它不仅能够接受其它构件提供的服务,而且也能够为其它构件提供服务。

而终端构件只有需求接口,它只接受其它构件提供的服务。

设计核心构件时,需考虑的问题是:

“核心构件能为其他构件提供哪些信号?

”核心构件设计的目标是:

凡是使用该MCU进行硬件系统设计时,核心构件可以直接“组装”到系统中,无须任何改动。

为了实现这一目标,在设计核心构件的实体时必须考虑细致、周全,包括稳定性、扩展性等,封装要完整。

设计中间构件时,需考虑的问题是:

“中间构件需要接受哪些信号,以及提供哪些信号?

为直观起见,设计中间构件时,将构件的需求接口放置在构件实体的左侧,提供接口放置在右侧。

设计终端构件时,需考虑的问题是:

“终端构件需要什么信号才能工作?

”。

终端构件没有提供接口,它仅有与上一级构件交互的需求接口,因而接口标识均为斜体标注的接口注释。

3.为什么要将某些寄存器名和寄存器位在头文件中进行宏定义?

答:

对MCU内的模块寄存器名和端口名进行重定义,在其它的代码里面都将使用宏名对模块寄存器和端口进行操作。

这样,当底层驱动程序移植到其它MCU时,只要修改重定义语句就可以了。

4.为什么在设计底层硬件驱动构件时,不能使用全局变量?

答:

应用程序在使用底层构件时,严格禁止通过全局变量来传递参数,所有的数据传递都要通过函数的形式参数来接收。

这样做不但使得接口简洁,更加避免了全局变量可能引发的安全隐患。

5.给出设计底层硬件驱动构件的基本原则,并举例说明。

答:

在对底层构件进行设计时,最关键的工作是要对构件的共性和个性进行分析,抽取出构件的属性和对外接口函数。

尽量做到:

当一个底层构件应用到不同系统中时,仅需修改构件的头文件,对于构件的源程序文件则不必修改或改动很小。

例如,串行通信模块SCI是大多数MCU都具有的内部模块。

仔细分析各种MCU串行通信程序发现:

在查询方式下,各种MCU都是根据状态寄存器中的两个标志位来判断是否接收到数据和数据是否发送完毕,这就是SCI模块的共性。

对于不同的MCU,该状态寄存器的名称可能不同,这两个标志位的位号也有可能不同。

此外,用以设置波特率、通信格式、是否校验、是否允许中断等参数的寄存器也不同,这就是SCI模块的个性。

分析出了共性和个性之后,就可以抽取出SCI构件的属性和操作,编制构件头文件和程序文件了。

6.什么叫程序复用?

什么叫程序移植?

怎样才能方便重用与移植。

答:

复用是指在一个系统中,同一构件可被重复使用多次。

移植是指将一个系统中使用到的构件应用到另外一个系统中;在设计时最关键的工作是要对构件的共性和个性进行分析,抽取出构件的属性和对外接口函数,设计是充分考虑这几放面的因素,才能方便重用和移植。

7.怎样方便驱动程序进行移植?

答:

首先对外接口函数设计要合理,其次要对MCU内的模块寄存器名和端口名进行重定义,在其它的代码里面都将使用宏名对模块寄存器和端口进行操作。

这样,当底层驱动程序移植到其它MCU时,只要修改重定义语句就可以了,这就方便了驱动程序的移植。

8.阐述利用硬件构件思想设计嵌入式应用系统时应该遵循的基本原则。

答:

应当遵循以下基本规则:

(1)构件的头文件和源程序文件的主文件名一致,且为构件名。

(2)属性和操作的命名统一以构件名开头。

这样做的好处是:

当使用底层构件组装软件系统时,避免构件之间出现同名现象。

同时,名称要使人有“顾名思义”的效果。

(3)对MCU内的模块寄存器名和端口名进行重定义,在其它的代码里面都将使用宏名对模块寄存器和端口进行操作。

这样,当底层驱动程序移植到其它MCU时,只要修改重定义语句就可以了。

(4)内部函数与外部函数要设计合理,函数参数个数及类型要考虑全面。

内部函数仅提供给同一构件中的其它内部函数或外部函数调用,作用域仅限于定义该函数的文件。

外部函数是对外接口函数,供上层应用程序调用。

在定义外部函数时,应该对函数名、函数功能、入口参数、函数返回值、使用说明、函数适用范围等进行详细描述,以增强程序的可读性。

上层应用程序不能直接对构件的属性进行读取或设置,必须借助于该构件提供的接口操作函数来实现。

(5)应用程序在使用底层构件时,严格禁止通过全局变量来传递参数,所有的数据传递都要通过函数的形式参数来接收。

这样做不但使得接口简洁,更加避免了全局变量可能引发的安全隐患。

 

第5章串行通信接口SCI习题参考答案

1.简要阐述异步串行通信涉及的主要基本概念。

答:

串行通信至少涉及到以下几个基本概念:

第一,每个字节之间是如何区分开的?

第二,发送一位的持续时间是多少?

第三,怎样知道传输是正确的?

第四,可以传输多远?

这些问题属于串行通信的基本概念。

2.表征串行通信速度的物理量是什么?

串行通信的传输速度有限制吗?

答:

位长(BitLength),也称为位的持续时间(BitDuration)。

其倒数就是单位时间内传送的位数。

人们把每秒内传送的位数叫做波特率(BaudRate)。

波特率的单位是:

位/秒,记为bps。

bps是英文bitpersecond的缩写,习惯上这个缩写不用大写,而用小写。

通常情况下,波特率的单位可以省略。

通常使用的波特率有600、900、1200、1800、2400、4800、9600、19200、38400、57600、115200、128000等。

有限制。

因为随着波特率的提高,位长变小,以至于很容易受到电磁源的干扰,通信就不可靠了。

当然,还有通信距离问题,距离小,可以适当提高波特率,但这样毕竟提高的幅度非常有限,达不到大幅度提高的目的。

3.MCU与PC进行通信为什么要进行电平转换?

如何进行电平转换?

答:

在MCU中,若用RS-232总线进行串行通信,则需外接电路实现电平转换。

在发送端,需要用驱动电路将TTL电平转换成RS-232电平;在接收端,需要用接收电路将RS-232电平转换为TTL电平。

电平转换器不仅可以由晶体管分立元件构成,也可以直接使用集成电路。

目前广泛使用MAX232芯片较多,该芯片使用单一+5V电源供电实现电平转换。

4.给出SCI编程的通用模型。

答:

SCI具有初始化、接收和发送三种基本操作。

按照构件的思想,可将它们封装成三个独立的功能函数,初始化函数完成对SCI模块的工作属性的设定,接收和发送功能函数则完成实际的通信任务。

以SCI的初始化、接收和发送三种基本操作为例,来说明实现构件化的全过程。

(1)SCI模块是最底层的构件,它主要向上提供三种服务,分别是SCI模块的初始化、接收单个字节和发送单个字节,向下则直接访问模块寄存器,实现对硬件的直接操作。

另外,从现实使用角度出发,它还需要封装接收N个字节和发送N个字节的子功能函数。

(2)SCI模块在软件上对应1个SCI.c程序源代码文件和1个SCI.h头文件,当需要对它进行移植时,大多数情况下只需简单拷贝这两个文件即可,无需对源代码文件和头文件进行修改,只有当实施不同芯片之间的移植时,才需要修改头文件中与硬件相关的宏定义。

(3)上层构件或软件在使用该构件时,严格禁止通过全局变量来传递参数,所有的数据传递都直接通过函数的形式参数来接收。

这样做不但使得接口简洁,更加避免了全局变量可能引发的安全隐患。

5.简述中断的作用与处理过程。

答:

中断是MCU实时地处理内部或外部事件的一种内部机制。

当某种内部或外部事件发生时,中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。

中断的处理过程一般为:

关中断(在此中断处理完成前,不处理其它中断)、保护现场、执行中断服务程序、恢复现场、开中断等。

6.S08系列MCU都有哪些中断源?

答:

S08系列MCU有26个中断源,按优先级从高到低的顺序分别是:

复位中断(1个)、SWI指令中断(1个)、

引脚中断(1个)、低电压检测中断(1个)、ICG中断(1个)、定时器中断(10个)、SPI中断(1个)、SCI中断(6个)、键盘输入中断(1个)、ADC转换完成中断(1个)、IIC中断(1个)和实时中断(1个)。

26个中断源只有18个中断向量,有的是几个中断源使用同一个中断向量。

7.S08系列MCU的中断执行过程分为哪几个步骤?

答:

CPU每执行完一条指令,若程序有开放某些中断及总中断(使用CLI指令),则CPU按照优先级次序查询所有中断标志位,若某个中断已发生,则响应该中断请求。

中断响应过程是:

(1)CPU内的寄存器PCL、PCH、X、A、CCR依次进

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2