嵌入式-课后答案---11页版本

第1章 概述

1.嵌入式系统的基本含义是什么?为什么说单片机是典型的嵌入式系统?

一种计算机硬件和软件的组合,也许还有机械装置,用于实现一个特定功能。

在某些特定情况下,嵌入式系统是一个大系统或产品的一部分。

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

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

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

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

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

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

日常数码产品:手机,MP3,U 盘,相机等。

日常工业类:冰箱,空调,微波炉,汽车等。

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

答:CPU 是一个单独的PC 处理器。而MCU ,则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。所以可以这么说,MCU 是一个包含微处理器的嵌入式系统,而CPU 紧紧是一个处理器而已。

4.嵌入式系统的常用术语

嵌入式的知识体系

◆ 硬件最小系统(包括电源、晶振、复位、写入调试接口)

◆ 通用I/O(开关量输入/输出,涉及各种二值量检测与控制)

◆ 模数转换A/D(各种传感器信号的采集与处理,如红外、温度、光敏、超声波、方向等)

◆ 数模转换D/A(对模拟量设备利用数字进行控制)

◆ 通信(串行通信接口SCI 、串行外设接口SPI 、集成电路互联总线I2C ,CAN 、USB 、嵌入式以

太网、ZigBee 技术等)

◆ 显示(LED 、LCD 等)

◆ 控制(控制各种设备,包括PWM 等控制技术)

◆ 数据处理(图形、图像、语音、视频等处理或识别)

◆ 各种具体应用

与硬件相关的术语

封装(Package)

印刷电路板(PCB,Printed circuit board)

动态可读写随机存储器 (DRAM,Dynamic Random Access Memory)

静态可读写随机存储器(SRAM,Static Random Access Memory)

只读存储器(ROM,Read Only Memory)

闪速存储器(Flash Memory)

模拟量

开关量

与通信相关的术语

并行通信

串行通信

串行外设接口SPI

集成电路互连总线I2C

通用串行总线USB

控制器局域网CAN

背景调试模式BDM

边界扫描测试协议JTAG

与功能模块及软件相关的术语

通用输入/输出GPIO

A/D与D/A

脉冲宽度调制器PWM

看门狗

液晶显示LCD

发光二极管LED

键盘

实时操作系统RTOS

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

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

6. 举例说明结构体变量类型的定义,结构体变量的声明和使用方法

6. 结构体

定义结构体类型,类型名称为student :

struct student{

char name[8]; //成员变量name

int age; //成员变量age

char sex[2]; //成员变量sex

};

声明和使用结构体变量和指针:

struct student s1;

struct student *Pstudent;

s1.age=20;

Pstudent=(struct student*)malloc(sizeof (struct student));

Pstudent->age=18;

1、什么是嵌入式系统?嵌入式系统的特点是什么?

嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,功能、可靠性、 成本、体积、功耗严格要求的专用计算机系统。

嵌入式系统的主要特点如下:

高实时性OS 、系统内核小

专用性强

系统精简

实时性和可靠性要求高

嵌入式软件开发走向标准化

嵌入式系统需要专门的开发工具和环境

2、嵌入式软件的特点有哪些?

规模相对较小,开发难度大

快速启动,直接运行

实时性和可靠性要求高

程序一体化

两个平台

3、嵌入式系统的主要应用领域有哪些?

消费电子、通信设备、家庭设备、汽车电子、工业控制、军事国防、医疗电子等。

4、按实时性来分,嵌入式系统可分为几类?它们的特点是什么?

可分为硬实时系统和软实时系统。其中硬实时系统对响应时间有严格要求,如果系统 响应时间得不到满足,就会引起系统崩溃或致命的错误;软实时系统对响应时间有要求, 但系统响应时间得不到满足时,不会导致系统崩溃或致命的错误。

0 deadline time

1

Hard System

Soft System

5、影响系统响应时间的主要因素有哪些?

影响系统响应时间的主要因素有:

任务调度算法

任务执行时间

事件发生的频率

任务数量

中断响应时间

任务响应时间

资源共享

任务间通信

6、根据自己的理解描述嵌入式系统的发展趋势?

行业性嵌入式软硬件平台——标准化

互联网的普及——网络化

半导体技术的改善——小型化

3C 技术的快速融合——功能多样化

使用者的需求——个性化

信息服务应用生活化——泛在化

28、请简述计数信号量的工作原理。

计数器信号量通常用于保护多实例访问的资源。计数信号量可以看成一个内存单元, 这个内存单元的内容保存一个计数值。当一个任务用semTake 获取一个计数信号量时,会有

两种结果:

如果这个信号量的计数是非0的,那这个信号量的计数就会减1,调用semTake 的任务也 会继续执行;

如果这个信号量的计数是0,调用semTake 的任务会被阻塞,等待信号量的可用。如果 用semTake 获取一个计数信号量时指定了超时,并且达到了超时值,这个任务会从阻塞队列

移出并移入到就绪队列,同时返回错误状态。有可能会有几个任务同时等待在一个计数信 号量上。

当一个任务调用semGive()释放一个计数信号量时,等待在这个计数信号量队列中的任 务会解除阻塞状态。如果没有任务等待,该信号量计数会加1。

29、简述消息队列的工作机制?工作模式?有何优缺点?

消息队列是任务之间传递信息的一种机制,允许多个任务,中断之间发送以指针方式 定义的变量或其他信息,指向的数据结构的变量类型也可以有所不同;可以看作多个邮箱 组成的数组,共用一个等待列表,可以用作计数型信号量。

主要的工作模式有两种:C/S模型、双工通信模型。

优点:可以携带少量信息,可以缓冲,防止峰值。

缺点:效率不高。传递指针信息,没有对消息进行复制,不能对原消息进行修改,效 率相对高(vxWorks 会复制消息)。

30、简述管道的工作机制?与消息队列相比,各有什么优点?

管道是构筑于消息队列之上,由pipeDrv 所控制的一个虚拟的I/O设备,具有标准的I/O 接口。

消息队列的优点:具有超时功能、消息有优先级、更快、可以被删除。

管道的优点:使用标准的I/O接口,如read(), write(),open(), close() ;可以通过io taskStdSet

()重定向;在Select ()重可以使用文件描述符。

31、简要描述VxWorks 中信号的定义和用途。

信号是一种软件通知,用以通知处理事件的任务。VxWorks 支持软件信号功能,信号 异步地改变任务的控制流,任何任务都可以向另外一个任务发送信号。

信号多用于异常处理,很少用于任务间通信。

32、实时系统软件开发不同于其他软件工程的主要特征有哪些?

实时系统的设计是受资源约束的。时间是实时系统的首要资源,除此以外,其他系统 资源如内存大小等,在实现系统目标时都有可能与时间进行折衷。

实时系统是紧凑而复杂的,通常需要软件硬件协同设计。

实时系统的运行常常不需要用户的参与。

33、选择嵌入式系统处理器时主要考虑哪些因素?

主要考虑的因素有应用类型、I/O接口、主频、功耗、所支持的存储器类型、总线、价 格、封装、产品的生命力和厂家的实力、技术支持和第三方软件的支持。

34、选择嵌入式操作系统时主要考虑哪些因素?

是自建还是购买,或是使用开源软件;

应用对嵌入式操作系统的功能、性能的要求;

与硬件平台和开发工具的关系;

产品所属的应用领域是否有行业的标准或限制;

技术支持;

版税或服务费的问题。

第2章 ARM Cortex-M0+处理器

ARM 公司在经典处理器ARM11以后的产品统一改用Cortex 命名,并分成A50、A 、R 和M 四类,旨在为各种不同的市场提供服务。

1.ARM Cortex-A50系列处理器 面向高效的低功耗服务器市场领域。

2.ARM Cortex-A系列处理器 面向尖端的基于虚拟内存的操作系统和用户应用。

3.ARM Cortex-R系列处理器 针对实时系统,

为有严格的实时响应限制的嵌入式系统提供高性能计算解决方案。

4.ARM Cortex-M系列处理器

该系列处理器是一系列可向上兼容的高能效、易于使用的处理器,旨在帮助开发人员满足将来的嵌入式应用的需要。

2.取数指令

存储器中内容加载到寄存器中的指令。其中,LDR 、LDRH 、LDRB 指令分别表示加载来自存储器单元的一个字、半字、单字节(不足部分以0填充)。LDRSH 和LDRSB 指令将存储单元的半字、单字节有符号数扩充至32位,并加载到指定寄存器Rt 中。

3. 存数指令

寄存器中内容存储至存储器中。STR 、STRH 、STRB 指令存储Rt 寄存器的字、半字、单字节至存储器。存储单元地址由Rn 与Rm 之和决定。 Rt 、Rn 和Rm 必须为R0~R7之一。

3.ARM Cortex-M0+处理器的寄存器

4. 1)立即数寻址,操作数直接通过指令给出,数据包含在指令编码中,随着指令一起被编译成机器码存储于程序空间中。用#作为立即数的前导标识符。ARM Cortex-M0+立即数范围是 0x00~0xff。例如: SUB R1,R0,#1 @R1←R0-1

MOV R0,#0xff @将立即数0xff 装入R0寄存器

2)寄存器寻址,操作数来自于寄存器。

MOV R1,R2 @R1 ←R2

SUB R0,R1-R2 @R0 ←R1-R2

3)直接寻址,操作数来自存储单元,指令中直接给出存储单元的地址。指令码中显示数据的位数,字(4字节)、半字(2字节)、单字节三种情况。

LDR Rt ,label @从标号label 处连续取4字节至寄存器Rt 中

LDRH Rt ,label @从标号label 处连续取2字节至寄存器Rt 中

LDRB Rt ,label @从标号label 处取单字节至寄存器Rt 中

4)偏移及寄存器间接寻址,操作数来自存储单元,指令中通过寄存器及偏移量给出存储单元的地址。偏移量不超过4KB (指令编码中偏移量为12位)。偏移量为0的偏移寻址也称为寄存器间接寻址。 LDR R3, [PC, #100] @地址为(PC + 100)的存储器单元的内容加载到寄存器R3中

LDR R3, [R4] @地址为R4的存储单元的内容加载到寄存器R3中

8. 伪指令是没有对应机器码的指令,只能为编译器所识别并指导汇编如何进行。主要用于变量和常量以及宏的定义、条件判断、文件包含等。

第3章 KL25简介与硬件最小系统

(本章3.6节内容不做考核要求)

• 3.1 飞思卡尔Kinetis 系列微控制器简介

飞思卡尔在2010年飞思卡尔技术论坛(FTF2010)美国站推出了Kinetis 系列微控制器。面向领域不同,Kinetis 系列基于ARM Cortex-M内核陆续推出了Kinetis K系列、L 系列、M 系列、W 系列。

• Kinetis K 系列

飞思卡尔的Kinetis K 系列产品组合有超过200种基于ARM Cortex-M4结构的低功耗,高性能、可兼容的微控制器。

目标应用领域是便携式医疗设备、仪器仪表、工业控制及测量设备等。

• Kinetis L 系列

飞思卡尔的Kinetis L系列MCU 不仅汲取了新型ARM Cortex-M0+处理器的卓越能效和易用性、功耗更低、价格更低、效率更高,而且体现了Kinetis 产品优质的性能、多元化的外设、广泛的支持和可扩展性。

目标应用领域是8/16位为微控制器应用领域的升级换代,适用于价格敏感、能效比相对较高领域,如手持设备、智能终端等。

Kinetis M 系列 飞思卡尔的Kinetis M 系列也是基于32位ARM Cortex-M0+内核的MCU 。 目标应用领域是经济高效的单相或两相电表设计中。

• Kinetis W 系列

飞思卡尔的Kinetis W 系列MCU 扩展了Kinetis K系列基于ARM Cortex -M4的成功之处。 目标应用领域是智能电表、传感器控制网络、工业控制、数据采集等。

MCU 的硬件最小系统是指可以使内部程序运行所必须的最低规模的外围电路,也可以包括写入器接口电路。

2. 电路中需要大量的电源类引脚用来提供足够的电流容量同时保持芯片电流平衡,所有的电源引脚必须外接适当的滤波电容抑制高频噪音。

去耦是指对电源采取进一步的滤波措施,去除两级间信号通过电源互相干扰的影响

3. 一般情况下,MCU 的硬件最小系统由电源、晶振及复位等电路组成。随着Flash 存储器制造技术的发展,硬件最小系统应该把写入器的接口电路也包含在其中。

KL25芯片的硬件最小系统包括电源电路、复位电路、晶振电路及与写入器相连的SWD 接口电路。

1.MOV 指令与LDR 指令都是往目标寄存器中传送数据,但是它们有什么区别吗?

MOV 指令用于将数据从一个寄存器传送到另一个寄存器中,或者将一个常数传送到一个寄存器中,但是不能访问内存。LDR 指令用于从内存中读取数据放入寄存器中。

第5章 构件化开发方法与底层驱动构建封装规范

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

据接口之间的生产消费关系,接口可分为提供接口和需求接口两类。根据所拥有接口类型的不同,硬件构件分为核心构件、中间构件和终端构件三种类型。

2. 构件(Component )是可重用的实体,它包含了合乎规范的接口和功能实现,能够被独立部署和被第三方组装 。

软件构件(Software Component)是指,在软件系统中具有相对独立功能、可以明确辨识构件实体。

嵌入式软件构件(Embedded Software Component)是实现一定嵌入式系统功能的一组封装的、规范的、可重用的、具有嵌入特性的软件构件单元,是组织嵌入式系统功能的基本单位。

嵌入式软件分为高层软件构件和底层软件构件(底层驱动构件)。高层软件构件与硬件无关,而底

层驱动构件与硬件密不可分,是硬件驱动程序的构件化封装。

• 2. 5.2 基于硬件构件的嵌入式系统硬件电路设计

5.2.1 设计时需要考虑的基本问题

1.MCU 的选择

选择MCU 时要考虑MCU 所能够完成的功能、MCU 的价格、功耗、供电电压、I/O口电平、管脚数目以及MCU 的封装等因素。

2.电源

(1)考虑系统对电源的需求,例如系统需要几种电

估计各需要多少功率或最大电流(mA )。

(2)考虑芯片与器件对电源波动性的需求。一般允许电源波动幅度在±5%以内。对于A/D转换芯片的参考电压一般要求±1%以内。

(3)考虑工作电源是使用电源模块还是使用电源电路。

3.普通I/O口

(1)上拉、下拉电阻:考虑用内部或者外部上/下拉电阻。

(2)开关量输入:一定要保证高低电压分明。

(3)开关量输出:基本原则是保证输出高电平接近电源电压,低电平接近地电平。

4.A/D电路与D/A电路

(1)A/D电路:要清楚前端采样基本原理,对电阻型、电流型和电压型传感器采用不同的采集电路。如果采集的信号微弱,还要考虑如何进行信号放大。

(2)D/A电路:考虑MCU 的引脚通过何种输出电路控制实际对象。

5.控制电路

对外控制电路要注意设计的冗余与反测,要有合适的信号隔离措施等。在评估设计的布板时,一定要在构件的输入输出端引出检测孔,以方便排查错误时测量。

6.考虑低功耗

低功耗设计并不仅仅是为了省电,更多的好处在于降低了电源模块及散热系统的成本。要做到低功耗一般需要注意以下几点:

(1)并不是所有的总线信号都要上拉。

(2)不用的I/O口不要悬空,如果悬空的话,受外界的一点点干扰就可能成为反复振荡的输入信号,而MOS 器件的功耗基本取决于门电路的翻转次数。

(3)对一些外围小芯片的功耗也需要考虑。

7.考虑低成本

(1)正确选择电阻值与电容值。

(2)指示灯的选择。

(3)不要什么都选最好的。

4. 为了抑制共阻抗,可采取以下措施:

(1)一点接地

(2)就近多点接地

(3)大面积接地

(4)加粗接地线

(5)D /A (数/模)电路的地线分开

5.3.3 硬件构件及底层软件构件的重用与移植方法

1.硬件构件的重用与移植

对于以单MCU 为核心的嵌入式应用系统而言,当用硬件构件“组装”硬件系统时,核心构件(即最小系统)有且只有一个,而中间构件和终端构件可有多个,并且相同类型的构件可出现多次。下面以终

端构件LCD 为例,介绍硬件构件的移植方法。

2.底层构件的移植

当一个已设计好的底层构件移植到另外一个嵌入式系统中时,其头文件和程序文件是否需要改动要视具体情况而定。例如:系统的核心构件发生改变(即MCU 型号改变)时,底层内部构件头文件和某些对外接口函数也要随之改变,例如模块初始化函数。而对于外接硬件构件,希望不改动程序文件,而只改动头文件,那么,头文件就必须充分设计。以LCD 构件为例,与前图相对应的底层构件头文件lcd.h 可如下编写。

第6章 串行通信模块及第一个中断程序结构

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

答:在MCU 中,若用RS-232总线进行串行通信,则需外接电路实现电平转换。在发送端,需要用驱动电路将TTL 电平转换成RS-232电平;在接收端,需要用接收电路将RS-232电平转换为TTL 电平。电平转换器不仅可以由晶体管分立元件构成,也可以直接使用集成电路。目前广泛使用MAX232芯片较多,该芯片使用单一+5V电源供电实现电平转换。

1.M0+中断结构及中断过程

由模块中断源、中断控制器(NVIC )和M0+内核组成。其中断过程分为二步:

(1)模块中断源向中断控制器(NVIC )发出中断请求信号。

(2)中断控制器对发来的中断信号进行管理,判断该中断是否允许中断,若允许,通过私有外设总线发送给M0+内核,由内核进行中断处理;如果同时有多个中断信号到来,NVIC 根据设定好的中断信号的优先级进行判断,优先级高的中断首先响应,优先级低的中断挂起,压入堆栈保存;如果优先级完全相同的多个中断源同时请求,则先响应IRQ 中断号较小的,其他的被挂起。

3.中断初始化设置步骤

根据KL25的中断机制,想让一个非内核中断源能够得到内核响应,必须要进行初始化设置。初始化的几个基本步骤如下:

(1)设置模块中断使能位使能模块中断,使模块能够发送中断请求信号。例如在UART 中,将控制寄存器C2的RIE 位置1。

(2)在中断控制器中设置中断使能寄存器,使该模块对应的使能位置1,允许该中断请求。

第7章 定时器模块

1.实现计数与定时的基本方法有哪些?比较它们的优缺点。

答:实现计数与定时的基本方法有三种:

完全硬件方式、完全软件方式和可编程计数器/定时器方法。

其中完全硬件方式速度快,但通用性和灵活性差;

完全软件方式的优点是节省硬件。主要缺点是执行延时程序期间,CPU 一直被占用,所以降低了CPU 的使用效率,也不容易提供多作业环境;

可编程计数器/定时器方法的最突出的优点是计数时不占用CPU 的时间。

3.定时器模块的核心是什么,为什么?

答:定时器模块的核心是计数器。计数器装载预置的初始计数值之后,启动会以预设的频率进行加一或者减一的运作,当其值变化到0(溢出到0或者减到0)时,即完成了定时的功能,其定时的时长取决于预

置的初始计数值和预设的频率。

4. TPM 模块具有基本定时、输入捕捉、输出比较、脉宽调制(PWM )功能。

1.寄存器地址分析

每个TPM 模块的地址(十六进制) 为4003_8000+x*1000(其中x 代表模块号) 。

2.控制寄存器

1)状态和控制寄存器

SC 包含的溢出状态标志和控制位,用于配置中断使能、模块配置和预分频因子。

2)通道(n )状态和控制寄存器

通道状态控制寄存器CnSC 包含通道中断状态标志和控制位用来配置中断使能、通道模式和引脚功能。

3.捕捉和比较状态寄存器

对于每个LPTPM 通道中,状态寄存器包含了状态标志CHnF 位(在CnSC 中)和TOF 位(在SC 中) 的一个拷贝,这是为了便于软件编写。

4.其它寄存器

1)计数器寄存器

2)模数寄存器

3)通道(n )值寄存器

4)配置寄存器

TPM(定时器/脉宽调制模块) 共有三个模块TPM0/TPM1/TPM2,TPM0有6个通道,TPM1和TPM2只有2个通道。TPM 支持输入捕捉、输出比较, 并且能够产生PWM 信号来控制电机。

TPM 的基本定时器部分是一个递增的计数器,通过设定模块的溢出值,当计数器递增到该数值时,产生TPM 中断,可以通过选择时钟源和溢出值设定该计数器的频率。

周期中断定时器模块(Periodic Interrupt Timer ,PIT )是一组可以用于产生中断和触发DMA 通道的定时器。该模块的中断都是可屏蔽的,每个定时器都有独立的溢出周期,周期中断定时器模块没有外部引脚。----定时器+调试模式+中断

低功耗定时器LPTMR (Low power timer)可以被配置成具有可选预分频因子的定时计数器,也可以被配置成带有脉冲干扰滤波器的脉冲计数器。绝大多数的系统复位都不会影响其继续使用,可以用作天数计数器。

LPTMR 模块共有五种操作模式,即运行模式、等待模式、停止模式、低漏电模式和调试模式。一种计算机硬件和软件的组合,也许还有机械装置,用于实现一个特定功能。其核心是微控制器单元(MCU )

实时时钟RTC (Real Time Clock)模块是一个独立供电的模块,在芯片掉电时由备用电源(VBAT )供电,确保RTC 计时器正常运行,保持RTC 寄存器状态。RTC 模块主要包含一个外部晶体振荡器、一个POR(Power-on reset)块、RTC 计时器以及自身的软件复位控制位。

第8章 GPIO 的应用实例—键盘、LED 与LCD 习题

1.为了实现对键盘的编程,至少应该考虑哪几个方面的问题?分别如何解决?

答:第一,如何识别键盘上的按键?

第二,如何区分按键是否真正地被按下,还是抖动?

第三,如何处理重键问题?

(1)键的识别

如何知道键盘上哪个键被按下就是键的识别问题。若键盘上闭合键的识别由专用硬件实现,称为编码键盘;而靠软件实现的称为未编码键盘。在这里主要讨论未编码键盘的接口技术和键盘输入程序的设计。

识别是否有键被按下,主要有查询法、定时扫描法与中断法等。而要识别键盘上哪个键被按下主要有行扫描法与行反转法。

(2)抖动问题

当键被按下时,会出现所按的键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况,当释放一个按键时也会出现类似的情况,这就是抖动问题。抖动持续的时间因操作者而异,一般为5~10ms 之间,稳定闭合时间一般为十分之几秒~几秒,由操作者的按键动作所确定。在软件上,解决抖动的方法通常是延迟等待抖动的消失或多次识别判定。

(3)重键问题

所谓重键问题就是有两个及两个以上按键同时处于闭合状态的处理问题。在软件上,处理重键问题通常有连锁法与巡回法。

1、键盘模型

键盘是由若干个按键组成的开关矩阵,它是最简单的MCU 数字量输入设备。操作员通过键盘输入数据或命令,实现简单的人机通信。

2、键盘接口方式

(1)键盘排布:独立方式、矩阵方式

(2)读入键值:直读方式、扫描方式

(3)是否进行硬件编码:非编码方式、硬件编码方式

(4)微处理器响应:中断方式、查询方式

下面,介绍独立和矩阵的键盘接口方式

1、LCD 的特点

LCD 作为电子信息产品的主要显示器件,相对于其它类型的显示部件来说,有其自身的特点,概要如下:

(1)低电压微功耗 (2)平板型结构 (3)使用寿命长 (4)被动显示 (5)显示信息量大且易于彩色化

(6)无电磁辐射

2、LCD 的分类

(1)按光电效应分为:电场效应类、电流效应类、电热写入效应类和热效应类。

(2)按显示内容分为:LCD 可分为字段型(或称为笔划型) 、点阵字符型、点阵图形型三种。

(3)按LCD 的采光方式分为:带背光源与不带背光源两大类。

8.3.2 点阵字符型液晶显示模块

1. 液晶显示屏是以若干5×8或5×11点阵块组成的显示字符群。

2. 主控制电路为HD44780(HITACHI)及其它公司的兼容电路。

3. 内部具有字符发生器,可显示192种字符。

第1章 概述

1.嵌入式系统的基本含义是什么?为什么说单片机是典型的嵌入式系统?

一种计算机硬件和软件的组合,也许还有机械装置,用于实现一个特定功能。

在某些特定情况下,嵌入式系统是一个大系统或产品的一部分。

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

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

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

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

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

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

日常数码产品:手机,MP3,U 盘,相机等。

日常工业类:冰箱,空调,微波炉,汽车等。

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

答:CPU 是一个单独的PC 处理器。而MCU ,则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。所以可以这么说,MCU 是一个包含微处理器的嵌入式系统,而CPU 紧紧是一个处理器而已。

4.嵌入式系统的常用术语

嵌入式的知识体系

◆ 硬件最小系统(包括电源、晶振、复位、写入调试接口)

◆ 通用I/O(开关量输入/输出,涉及各种二值量检测与控制)

◆ 模数转换A/D(各种传感器信号的采集与处理,如红外、温度、光敏、超声波、方向等)

◆ 数模转换D/A(对模拟量设备利用数字进行控制)

◆ 通信(串行通信接口SCI 、串行外设接口SPI 、集成电路互联总线I2C ,CAN 、USB 、嵌入式以

太网、ZigBee 技术等)

◆ 显示(LED 、LCD 等)

◆ 控制(控制各种设备,包括PWM 等控制技术)

◆ 数据处理(图形、图像、语音、视频等处理或识别)

◆ 各种具体应用

与硬件相关的术语

封装(Package)

印刷电路板(PCB,Printed circuit board)

动态可读写随机存储器 (DRAM,Dynamic Random Access Memory)

静态可读写随机存储器(SRAM,Static Random Access Memory)

只读存储器(ROM,Read Only Memory)

闪速存储器(Flash Memory)

模拟量

开关量

与通信相关的术语

并行通信

串行通信

串行外设接口SPI

集成电路互连总线I2C

通用串行总线USB

控制器局域网CAN

背景调试模式BDM

边界扫描测试协议JTAG

与功能模块及软件相关的术语

通用输入/输出GPIO

A/D与D/A

脉冲宽度调制器PWM

看门狗

液晶显示LCD

发光二极管LED

键盘

实时操作系统RTOS

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

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

6. 举例说明结构体变量类型的定义,结构体变量的声明和使用方法

6. 结构体

定义结构体类型,类型名称为student :

struct student{

char name[8]; //成员变量name

int age; //成员变量age

char sex[2]; //成员变量sex

};

声明和使用结构体变量和指针:

struct student s1;

struct student *Pstudent;

s1.age=20;

Pstudent=(struct student*)malloc(sizeof (struct student));

Pstudent->age=18;

1、什么是嵌入式系统?嵌入式系统的特点是什么?

嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,功能、可靠性、 成本、体积、功耗严格要求的专用计算机系统。

嵌入式系统的主要特点如下:

高实时性OS 、系统内核小

专用性强

系统精简

实时性和可靠性要求高

嵌入式软件开发走向标准化

嵌入式系统需要专门的开发工具和环境

2、嵌入式软件的特点有哪些?

规模相对较小,开发难度大

快速启动,直接运行

实时性和可靠性要求高

程序一体化

两个平台

3、嵌入式系统的主要应用领域有哪些?

消费电子、通信设备、家庭设备、汽车电子、工业控制、军事国防、医疗电子等。

4、按实时性来分,嵌入式系统可分为几类?它们的特点是什么?

可分为硬实时系统和软实时系统。其中硬实时系统对响应时间有严格要求,如果系统 响应时间得不到满足,就会引起系统崩溃或致命的错误;软实时系统对响应时间有要求, 但系统响应时间得不到满足时,不会导致系统崩溃或致命的错误。

0 deadline time

1

Hard System

Soft System

5、影响系统响应时间的主要因素有哪些?

影响系统响应时间的主要因素有:

任务调度算法

任务执行时间

事件发生的频率

任务数量

中断响应时间

任务响应时间

资源共享

任务间通信

6、根据自己的理解描述嵌入式系统的发展趋势?

行业性嵌入式软硬件平台——标准化

互联网的普及——网络化

半导体技术的改善——小型化

3C 技术的快速融合——功能多样化

使用者的需求——个性化

信息服务应用生活化——泛在化

28、请简述计数信号量的工作原理。

计数器信号量通常用于保护多实例访问的资源。计数信号量可以看成一个内存单元, 这个内存单元的内容保存一个计数值。当一个任务用semTake 获取一个计数信号量时,会有

两种结果:

如果这个信号量的计数是非0的,那这个信号量的计数就会减1,调用semTake 的任务也 会继续执行;

如果这个信号量的计数是0,调用semTake 的任务会被阻塞,等待信号量的可用。如果 用semTake 获取一个计数信号量时指定了超时,并且达到了超时值,这个任务会从阻塞队列

移出并移入到就绪队列,同时返回错误状态。有可能会有几个任务同时等待在一个计数信 号量上。

当一个任务调用semGive()释放一个计数信号量时,等待在这个计数信号量队列中的任 务会解除阻塞状态。如果没有任务等待,该信号量计数会加1。

29、简述消息队列的工作机制?工作模式?有何优缺点?

消息队列是任务之间传递信息的一种机制,允许多个任务,中断之间发送以指针方式 定义的变量或其他信息,指向的数据结构的变量类型也可以有所不同;可以看作多个邮箱 组成的数组,共用一个等待列表,可以用作计数型信号量。

主要的工作模式有两种:C/S模型、双工通信模型。

优点:可以携带少量信息,可以缓冲,防止峰值。

缺点:效率不高。传递指针信息,没有对消息进行复制,不能对原消息进行修改,效 率相对高(vxWorks 会复制消息)。

30、简述管道的工作机制?与消息队列相比,各有什么优点?

管道是构筑于消息队列之上,由pipeDrv 所控制的一个虚拟的I/O设备,具有标准的I/O 接口。

消息队列的优点:具有超时功能、消息有优先级、更快、可以被删除。

管道的优点:使用标准的I/O接口,如read(), write(),open(), close() ;可以通过io taskStdSet

()重定向;在Select ()重可以使用文件描述符。

31、简要描述VxWorks 中信号的定义和用途。

信号是一种软件通知,用以通知处理事件的任务。VxWorks 支持软件信号功能,信号 异步地改变任务的控制流,任何任务都可以向另外一个任务发送信号。

信号多用于异常处理,很少用于任务间通信。

32、实时系统软件开发不同于其他软件工程的主要特征有哪些?

实时系统的设计是受资源约束的。时间是实时系统的首要资源,除此以外,其他系统 资源如内存大小等,在实现系统目标时都有可能与时间进行折衷。

实时系统是紧凑而复杂的,通常需要软件硬件协同设计。

实时系统的运行常常不需要用户的参与。

33、选择嵌入式系统处理器时主要考虑哪些因素?

主要考虑的因素有应用类型、I/O接口、主频、功耗、所支持的存储器类型、总线、价 格、封装、产品的生命力和厂家的实力、技术支持和第三方软件的支持。

34、选择嵌入式操作系统时主要考虑哪些因素?

是自建还是购买,或是使用开源软件;

应用对嵌入式操作系统的功能、性能的要求;

与硬件平台和开发工具的关系;

产品所属的应用领域是否有行业的标准或限制;

技术支持;

版税或服务费的问题。

第2章 ARM Cortex-M0+处理器

ARM 公司在经典处理器ARM11以后的产品统一改用Cortex 命名,并分成A50、A 、R 和M 四类,旨在为各种不同的市场提供服务。

1.ARM Cortex-A50系列处理器 面向高效的低功耗服务器市场领域。

2.ARM Cortex-A系列处理器 面向尖端的基于虚拟内存的操作系统和用户应用。

3.ARM Cortex-R系列处理器 针对实时系统,

为有严格的实时响应限制的嵌入式系统提供高性能计算解决方案。

4.ARM Cortex-M系列处理器

该系列处理器是一系列可向上兼容的高能效、易于使用的处理器,旨在帮助开发人员满足将来的嵌入式应用的需要。

2.取数指令

存储器中内容加载到寄存器中的指令。其中,LDR 、LDRH 、LDRB 指令分别表示加载来自存储器单元的一个字、半字、单字节(不足部分以0填充)。LDRSH 和LDRSB 指令将存储单元的半字、单字节有符号数扩充至32位,并加载到指定寄存器Rt 中。

3. 存数指令

寄存器中内容存储至存储器中。STR 、STRH 、STRB 指令存储Rt 寄存器的字、半字、单字节至存储器。存储单元地址由Rn 与Rm 之和决定。 Rt 、Rn 和Rm 必须为R0~R7之一。

3.ARM Cortex-M0+处理器的寄存器

4. 1)立即数寻址,操作数直接通过指令给出,数据包含在指令编码中,随着指令一起被编译成机器码存储于程序空间中。用#作为立即数的前导标识符。ARM Cortex-M0+立即数范围是 0x00~0xff。例如: SUB R1,R0,#1 @R1←R0-1

MOV R0,#0xff @将立即数0xff 装入R0寄存器

2)寄存器寻址,操作数来自于寄存器。

MOV R1,R2 @R1 ←R2

SUB R0,R1-R2 @R0 ←R1-R2

3)直接寻址,操作数来自存储单元,指令中直接给出存储单元的地址。指令码中显示数据的位数,字(4字节)、半字(2字节)、单字节三种情况。

LDR Rt ,label @从标号label 处连续取4字节至寄存器Rt 中

LDRH Rt ,label @从标号label 处连续取2字节至寄存器Rt 中

LDRB Rt ,label @从标号label 处取单字节至寄存器Rt 中

4)偏移及寄存器间接寻址,操作数来自存储单元,指令中通过寄存器及偏移量给出存储单元的地址。偏移量不超过4KB (指令编码中偏移量为12位)。偏移量为0的偏移寻址也称为寄存器间接寻址。 LDR R3, [PC, #100] @地址为(PC + 100)的存储器单元的内容加载到寄存器R3中

LDR R3, [R4] @地址为R4的存储单元的内容加载到寄存器R3中

8. 伪指令是没有对应机器码的指令,只能为编译器所识别并指导汇编如何进行。主要用于变量和常量以及宏的定义、条件判断、文件包含等。

第3章 KL25简介与硬件最小系统

(本章3.6节内容不做考核要求)

• 3.1 飞思卡尔Kinetis 系列微控制器简介

飞思卡尔在2010年飞思卡尔技术论坛(FTF2010)美国站推出了Kinetis 系列微控制器。面向领域不同,Kinetis 系列基于ARM Cortex-M内核陆续推出了Kinetis K系列、L 系列、M 系列、W 系列。

• Kinetis K 系列

飞思卡尔的Kinetis K 系列产品组合有超过200种基于ARM Cortex-M4结构的低功耗,高性能、可兼容的微控制器。

目标应用领域是便携式医疗设备、仪器仪表、工业控制及测量设备等。

• Kinetis L 系列

飞思卡尔的Kinetis L系列MCU 不仅汲取了新型ARM Cortex-M0+处理器的卓越能效和易用性、功耗更低、价格更低、效率更高,而且体现了Kinetis 产品优质的性能、多元化的外设、广泛的支持和可扩展性。

目标应用领域是8/16位为微控制器应用领域的升级换代,适用于价格敏感、能效比相对较高领域,如手持设备、智能终端等。

Kinetis M 系列 飞思卡尔的Kinetis M 系列也是基于32位ARM Cortex-M0+内核的MCU 。 目标应用领域是经济高效的单相或两相电表设计中。

• Kinetis W 系列

飞思卡尔的Kinetis W 系列MCU 扩展了Kinetis K系列基于ARM Cortex -M4的成功之处。 目标应用领域是智能电表、传感器控制网络、工业控制、数据采集等。

MCU 的硬件最小系统是指可以使内部程序运行所必须的最低规模的外围电路,也可以包括写入器接口电路。

2. 电路中需要大量的电源类引脚用来提供足够的电流容量同时保持芯片电流平衡,所有的电源引脚必须外接适当的滤波电容抑制高频噪音。

去耦是指对电源采取进一步的滤波措施,去除两级间信号通过电源互相干扰的影响

3. 一般情况下,MCU 的硬件最小系统由电源、晶振及复位等电路组成。随着Flash 存储器制造技术的发展,硬件最小系统应该把写入器的接口电路也包含在其中。

KL25芯片的硬件最小系统包括电源电路、复位电路、晶振电路及与写入器相连的SWD 接口电路。

1.MOV 指令与LDR 指令都是往目标寄存器中传送数据,但是它们有什么区别吗?

MOV 指令用于将数据从一个寄存器传送到另一个寄存器中,或者将一个常数传送到一个寄存器中,但是不能访问内存。LDR 指令用于从内存中读取数据放入寄存器中。

第5章 构件化开发方法与底层驱动构建封装规范

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

据接口之间的生产消费关系,接口可分为提供接口和需求接口两类。根据所拥有接口类型的不同,硬件构件分为核心构件、中间构件和终端构件三种类型。

2. 构件(Component )是可重用的实体,它包含了合乎规范的接口和功能实现,能够被独立部署和被第三方组装 。

软件构件(Software Component)是指,在软件系统中具有相对独立功能、可以明确辨识构件实体。

嵌入式软件构件(Embedded Software Component)是实现一定嵌入式系统功能的一组封装的、规范的、可重用的、具有嵌入特性的软件构件单元,是组织嵌入式系统功能的基本单位。

嵌入式软件分为高层软件构件和底层软件构件(底层驱动构件)。高层软件构件与硬件无关,而底

层驱动构件与硬件密不可分,是硬件驱动程序的构件化封装。

• 2. 5.2 基于硬件构件的嵌入式系统硬件电路设计

5.2.1 设计时需要考虑的基本问题

1.MCU 的选择

选择MCU 时要考虑MCU 所能够完成的功能、MCU 的价格、功耗、供电电压、I/O口电平、管脚数目以及MCU 的封装等因素。

2.电源

(1)考虑系统对电源的需求,例如系统需要几种电

估计各需要多少功率或最大电流(mA )。

(2)考虑芯片与器件对电源波动性的需求。一般允许电源波动幅度在±5%以内。对于A/D转换芯片的参考电压一般要求±1%以内。

(3)考虑工作电源是使用电源模块还是使用电源电路。

3.普通I/O口

(1)上拉、下拉电阻:考虑用内部或者外部上/下拉电阻。

(2)开关量输入:一定要保证高低电压分明。

(3)开关量输出:基本原则是保证输出高电平接近电源电压,低电平接近地电平。

4.A/D电路与D/A电路

(1)A/D电路:要清楚前端采样基本原理,对电阻型、电流型和电压型传感器采用不同的采集电路。如果采集的信号微弱,还要考虑如何进行信号放大。

(2)D/A电路:考虑MCU 的引脚通过何种输出电路控制实际对象。

5.控制电路

对外控制电路要注意设计的冗余与反测,要有合适的信号隔离措施等。在评估设计的布板时,一定要在构件的输入输出端引出检测孔,以方便排查错误时测量。

6.考虑低功耗

低功耗设计并不仅仅是为了省电,更多的好处在于降低了电源模块及散热系统的成本。要做到低功耗一般需要注意以下几点:

(1)并不是所有的总线信号都要上拉。

(2)不用的I/O口不要悬空,如果悬空的话,受外界的一点点干扰就可能成为反复振荡的输入信号,而MOS 器件的功耗基本取决于门电路的翻转次数。

(3)对一些外围小芯片的功耗也需要考虑。

7.考虑低成本

(1)正确选择电阻值与电容值。

(2)指示灯的选择。

(3)不要什么都选最好的。

4. 为了抑制共阻抗,可采取以下措施:

(1)一点接地

(2)就近多点接地

(3)大面积接地

(4)加粗接地线

(5)D /A (数/模)电路的地线分开

5.3.3 硬件构件及底层软件构件的重用与移植方法

1.硬件构件的重用与移植

对于以单MCU 为核心的嵌入式应用系统而言,当用硬件构件“组装”硬件系统时,核心构件(即最小系统)有且只有一个,而中间构件和终端构件可有多个,并且相同类型的构件可出现多次。下面以终

端构件LCD 为例,介绍硬件构件的移植方法。

2.底层构件的移植

当一个已设计好的底层构件移植到另外一个嵌入式系统中时,其头文件和程序文件是否需要改动要视具体情况而定。例如:系统的核心构件发生改变(即MCU 型号改变)时,底层内部构件头文件和某些对外接口函数也要随之改变,例如模块初始化函数。而对于外接硬件构件,希望不改动程序文件,而只改动头文件,那么,头文件就必须充分设计。以LCD 构件为例,与前图相对应的底层构件头文件lcd.h 可如下编写。

第6章 串行通信模块及第一个中断程序结构

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

答:在MCU 中,若用RS-232总线进行串行通信,则需外接电路实现电平转换。在发送端,需要用驱动电路将TTL 电平转换成RS-232电平;在接收端,需要用接收电路将RS-232电平转换为TTL 电平。电平转换器不仅可以由晶体管分立元件构成,也可以直接使用集成电路。目前广泛使用MAX232芯片较多,该芯片使用单一+5V电源供电实现电平转换。

1.M0+中断结构及中断过程

由模块中断源、中断控制器(NVIC )和M0+内核组成。其中断过程分为二步:

(1)模块中断源向中断控制器(NVIC )发出中断请求信号。

(2)中断控制器对发来的中断信号进行管理,判断该中断是否允许中断,若允许,通过私有外设总线发送给M0+内核,由内核进行中断处理;如果同时有多个中断信号到来,NVIC 根据设定好的中断信号的优先级进行判断,优先级高的中断首先响应,优先级低的中断挂起,压入堆栈保存;如果优先级完全相同的多个中断源同时请求,则先响应IRQ 中断号较小的,其他的被挂起。

3.中断初始化设置步骤

根据KL25的中断机制,想让一个非内核中断源能够得到内核响应,必须要进行初始化设置。初始化的几个基本步骤如下:

(1)设置模块中断使能位使能模块中断,使模块能够发送中断请求信号。例如在UART 中,将控制寄存器C2的RIE 位置1。

(2)在中断控制器中设置中断使能寄存器,使该模块对应的使能位置1,允许该中断请求。

第7章 定时器模块

1.实现计数与定时的基本方法有哪些?比较它们的优缺点。

答:实现计数与定时的基本方法有三种:

完全硬件方式、完全软件方式和可编程计数器/定时器方法。

其中完全硬件方式速度快,但通用性和灵活性差;

完全软件方式的优点是节省硬件。主要缺点是执行延时程序期间,CPU 一直被占用,所以降低了CPU 的使用效率,也不容易提供多作业环境;

可编程计数器/定时器方法的最突出的优点是计数时不占用CPU 的时间。

3.定时器模块的核心是什么,为什么?

答:定时器模块的核心是计数器。计数器装载预置的初始计数值之后,启动会以预设的频率进行加一或者减一的运作,当其值变化到0(溢出到0或者减到0)时,即完成了定时的功能,其定时的时长取决于预

置的初始计数值和预设的频率。

4. TPM 模块具有基本定时、输入捕捉、输出比较、脉宽调制(PWM )功能。

1.寄存器地址分析

每个TPM 模块的地址(十六进制) 为4003_8000+x*1000(其中x 代表模块号) 。

2.控制寄存器

1)状态和控制寄存器

SC 包含的溢出状态标志和控制位,用于配置中断使能、模块配置和预分频因子。

2)通道(n )状态和控制寄存器

通道状态控制寄存器CnSC 包含通道中断状态标志和控制位用来配置中断使能、通道模式和引脚功能。

3.捕捉和比较状态寄存器

对于每个LPTPM 通道中,状态寄存器包含了状态标志CHnF 位(在CnSC 中)和TOF 位(在SC 中) 的一个拷贝,这是为了便于软件编写。

4.其它寄存器

1)计数器寄存器

2)模数寄存器

3)通道(n )值寄存器

4)配置寄存器

TPM(定时器/脉宽调制模块) 共有三个模块TPM0/TPM1/TPM2,TPM0有6个通道,TPM1和TPM2只有2个通道。TPM 支持输入捕捉、输出比较, 并且能够产生PWM 信号来控制电机。

TPM 的基本定时器部分是一个递增的计数器,通过设定模块的溢出值,当计数器递增到该数值时,产生TPM 中断,可以通过选择时钟源和溢出值设定该计数器的频率。

周期中断定时器模块(Periodic Interrupt Timer ,PIT )是一组可以用于产生中断和触发DMA 通道的定时器。该模块的中断都是可屏蔽的,每个定时器都有独立的溢出周期,周期中断定时器模块没有外部引脚。----定时器+调试模式+中断

低功耗定时器LPTMR (Low power timer)可以被配置成具有可选预分频因子的定时计数器,也可以被配置成带有脉冲干扰滤波器的脉冲计数器。绝大多数的系统复位都不会影响其继续使用,可以用作天数计数器。

LPTMR 模块共有五种操作模式,即运行模式、等待模式、停止模式、低漏电模式和调试模式。一种计算机硬件和软件的组合,也许还有机械装置,用于实现一个特定功能。其核心是微控制器单元(MCU )

实时时钟RTC (Real Time Clock)模块是一个独立供电的模块,在芯片掉电时由备用电源(VBAT )供电,确保RTC 计时器正常运行,保持RTC 寄存器状态。RTC 模块主要包含一个外部晶体振荡器、一个POR(Power-on reset)块、RTC 计时器以及自身的软件复位控制位。

第8章 GPIO 的应用实例—键盘、LED 与LCD 习题

1.为了实现对键盘的编程,至少应该考虑哪几个方面的问题?分别如何解决?

答:第一,如何识别键盘上的按键?

第二,如何区分按键是否真正地被按下,还是抖动?

第三,如何处理重键问题?

(1)键的识别

如何知道键盘上哪个键被按下就是键的识别问题。若键盘上闭合键的识别由专用硬件实现,称为编码键盘;而靠软件实现的称为未编码键盘。在这里主要讨论未编码键盘的接口技术和键盘输入程序的设计。

识别是否有键被按下,主要有查询法、定时扫描法与中断法等。而要识别键盘上哪个键被按下主要有行扫描法与行反转法。

(2)抖动问题

当键被按下时,会出现所按的键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况,当释放一个按键时也会出现类似的情况,这就是抖动问题。抖动持续的时间因操作者而异,一般为5~10ms 之间,稳定闭合时间一般为十分之几秒~几秒,由操作者的按键动作所确定。在软件上,解决抖动的方法通常是延迟等待抖动的消失或多次识别判定。

(3)重键问题

所谓重键问题就是有两个及两个以上按键同时处于闭合状态的处理问题。在软件上,处理重键问题通常有连锁法与巡回法。

1、键盘模型

键盘是由若干个按键组成的开关矩阵,它是最简单的MCU 数字量输入设备。操作员通过键盘输入数据或命令,实现简单的人机通信。

2、键盘接口方式

(1)键盘排布:独立方式、矩阵方式

(2)读入键值:直读方式、扫描方式

(3)是否进行硬件编码:非编码方式、硬件编码方式

(4)微处理器响应:中断方式、查询方式

下面,介绍独立和矩阵的键盘接口方式

1、LCD 的特点

LCD 作为电子信息产品的主要显示器件,相对于其它类型的显示部件来说,有其自身的特点,概要如下:

(1)低电压微功耗 (2)平板型结构 (3)使用寿命长 (4)被动显示 (5)显示信息量大且易于彩色化

(6)无电磁辐射

2、LCD 的分类

(1)按光电效应分为:电场效应类、电流效应类、电热写入效应类和热效应类。

(2)按显示内容分为:LCD 可分为字段型(或称为笔划型) 、点阵字符型、点阵图形型三种。

(3)按LCD 的采光方式分为:带背光源与不带背光源两大类。

8.3.2 点阵字符型液晶显示模块

1. 液晶显示屏是以若干5×8或5×11点阵块组成的显示字符群。

2. 主控制电路为HD44780(HITACHI)及其它公司的兼容电路。

3. 内部具有字符发生器,可显示192种字符。


相关内容

  • 实用软件工程方法
  • 实用软件工程 教学大纲 1.1 课程简介 1.1.1 课程名称 中文名:实用软件工程方法 英文名:Introduction to Software Engieering 1.1.2 课程类别 岗位应用技能课程 1.1.3 课程概览 本书为软件工程的初学者介绍一个实用的软件开发框架,它只说明怎样去做软 ...

  • 数据库系统概论课后习题答案(王珊.萨师煊)
  • 第2章 关系数据库 作者:佚名 来源:网络 1.试述关系模型的三个组成部分.(46页) 答:关系模型由关系数据结构.关系操作集合和关系完整性约束三部分组成. 2.试述关系数据语言的特点和分类.(47页) 答:关系数据语言可以分为三类: A. 关系代数语言. B. 关系演算语言:元组关系演算语言和域关 ...

  • 嵌入式课后练习题答案
  • 第1章 1. 什么是嵌入式系统?嵌入式系统的组成? 从技术的角度定义:以应用为中心.以计算机技术为基础.软件硬件可裁剪.适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. 从系统的角度定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统.术语嵌入式反映 ...

  • 2015.3计算机三级嵌入式新题(8套版)
  • 全国计算机等级考试三嵌入式系统开发技术题库第7套 一.选择题 1.下列产品中不属于嵌入式系统的是: A .洗衣机 B .空调机 C .个人电脑 D .电子血压计 2.下面关于嵌入式系统的叙述中,错误的是 A) 嵌入式系统所涉及的应用领域非常广泛 B) 嵌入式系统在数量上远远超过了各种类型的通用计算机 ...

  • 嵌入式试题及答案
  • <嵌入式开发>期中试卷 试卷适用范围:2011级计算机科学与技术(本)1.2班 一.填空题(每空1分,共46分) 习 题 1 1.填空题 (1)嵌入式系统是以应用为中心.以 计算机技术 为基础,软.硬件可裁剪,适应于应用系统对功能.可靠性.成本.体积.功耗等方面有特殊要求的专用计算机系统 ...

  • ARM命名规则
  • ARM==Advanced RISC Machines 它开创了一种崭新的商业模式,实现了无厂房式工厂,依靠出售芯片技术知识产权的授权来盈利. 其次,ARM是一种architecture,同MIPS.PowerPC.X86等并列.谈到架构,这实际上本身就是一个很复杂的概念.就现在的理解来看,架构是一 ...

  • 流体力学课后习题答案自己整理孔珑4版
  • <工程流体力学>课后习题答案 孔珑第四版 第2章流体及其物理性质 ............................................................................................................... ...

  • 证券投资学课后习题答案参考
  • 1.有价证券的种类和特征: 按证券的经济性质可分为股票.债券和其他证券三大类 有价证券的特征: 1).产权性.有价证券的产权性是指它记载着权利人的财产权内容,代表着一定的财产所有权,拥有证券就意味着享有财产的占有.使用.收益和处分的权利. 2).收益性.收益性是指持有证券本身可以获得一定数额的收益, ...

  • 嵌入式经典面试题
  • 嵌入式经典面试题六: 关键字static的作用是什么? 这个简单的问题很少有人能回答完全.在C语言中,关键字static有三个明显的作用: 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变. 2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被 ...