单片机键盘接口技术----独立按键-
MSP430单片机应用中键盘的软件设计

按键设计在行、 列线交叉上, 行列线分别连接到按键开关 的两端。当行线通过上拉电阻接 +5V 时, 被钳位在高电平状 态。 键盘中有无按键按下是由列线送人全扫描字, 行线读人行 线状态来判断的。 其方法是:先给列线的所有 珊 线均置成低 电平, 然后将行线电平状态读人累加器 A 中。如果有键按下, 总会有一根行线电平被拉至电平, 从而使行输人不全为 1。 键 盘中哪一个键按下是由列线逐列置低电平, 检查输人状态。 其 方法是:依次给列线送低电平, 然后检查所有行线状态, 如果 全为 1, 则所按下之键不在此列。而且是在与 0 电平行线相交 点上的那个键。 (2)键盘工作方式的选择 一般在实践应用中,由于应用系统在工作时并不经常需 要按键输人 , 所以为了提高 CPU 的工作效率, 可采用中断扫 描工作方式,即只有在键盘有按键按下时,才发中断请求, CPU 响应中断请求后, 转到中断服务程序, 进行键盘扫描, 识 别键码。 具体应用程序举例:(下面程序经过调试验证正确)下 面介绍通过 MSP430 的 P1 口接的 4*4=16 个按键 ( 编号为
l
P10UTI=BIT7;
if(PI IN&BITI)
e lse
if(Pl IN&B1 T4)
x=7;
void Comm- Sent(unsigned char Byte) { unsigned char i, a[3]二 , '430";
{
for(i=O ;i<3;i++)
{ TXBUFO =aa[i]; while((UTCTLO &0x01)二 =0);
x=2;
e lse
{
int i;
BCSCTLI &=- X'IS ;
3.2.2独立按键检测(消抖原理)(精)

按键的去抖
机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随 有一定时间的触点机械抖动,然后其触点才稳定下来,抖动时间一 般为510ms,在触点抖动期间检测按键的通与断状态,可能导致 判断出错。
键按下
前沿抖动
)检测按键
(b)释放按键
按键去抖流程图
独立式按键
实际应用中,一般希望按键一次按下单片机只处理 一次,但由于单片机执行程序的速度很快,按键一次 按下可能被单片机多次处理。为避免此问题,可在按 键第一次按下时延时10ms之后再次检测按键是否按下, 如果此时按键仍然按下,则确定有按键输入。这样便 可以避免按键的重复处理。
计数器
按键按照结构原理可分为两类,一类是触点式开关按键, 如机械式开关、导电橡胶式开关等;另一类是无触点开关 按键,如电气式按键,磁感应按键等。前者造价低,后者 寿命长。按键按照接口原理可分为编码键盘与非编码键盘 两类。 这两类键盘的主要区别是识别键符及给出相应键码的方 法。编码键盘主要是用硬件来实现对按键的识别,硬件结 构复杂;非编码键盘主要是由软件来实现按键的定义与识 别,硬件结构简单,软件编程量大。这里将要介绍的独立 式按键和矩阵式键盘都是非编码键盘。
2.任务分析
(2)独立式按键的软件设计
在单片机应用系统中 主程序一般是循环结构,键盘程 序作为子程序供主程序调用。单片机按键控制系统的主程 序结构图所示。
物理按键抖动波形图
按键消抖一般有两种方法,即硬件消抖和软件消抖。
硬件消抖方法
在软件设计中,当单片机检测到有键按下时,可以 先延时一段时间越过抖动过程再对按键识别。
独立式按键电路配置灵活,软件结构简单,但每个按键必须占用 一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。
智能仪器课件5.1 键盘处理技术

前沿抖动
闭合稳定
后沿抖动 释放稳定
16
软件抗抖动的方法
软件方法是指编制一段时间大于100ms的延时程
序,在第一次检测到有键按下时,执行这段延时
子程序使键的前沿抖动消失后再检测该键状态,
如果该键仍保持闭合状态电平,则确认为该键已 稳定按下,否则无键按下,从而消除了抖动的影 响。同理,在检测到按键释放后,也同样要延迟 一段时间,以消除后沿抖动,然后转入对该按键
15
按键的抖动干扰
由于机械触点的弹性振动,按键在按下时不会马上稳定地 接通而在弹起时也不能一下子完全地断开,因而在按键闭 合和断开的瞬间均会出现一连串的抖动,这称为按键的抖 动干扰,波形如下图所示。 当按键按下时会产生前沿抖动,当按键弹起时会产生后沿 抖动。这是所有机械触点式按键的共性问题。 抖动的时间长短取决于按键的机械特性与操作状态,一般 为10~100ms,此为键处理设计时要考虑的一个重要参数。
18
R1
(Di) Vo
Vi R2
S
V1
(Di) V2
由基本R-S触发器构成的反弹跳电路
4 .7 k a
4 .7 k &
1
b
&
2
按键未按下时,a=0,b=1,输出Q=1。按 键按下时,因按键的机械弹性作用的影响, 使按键产生抖动。当开关没有稳定到达b 端时,因与非门2输出为0反馈到与非门1 的输入端,封锁了与非门1,双稳态电路 VCC 的状态不会改变,输出保持为1,输出Q (+5 V) 不会产生抖动的波形。当开关稳定到达b Q 端时,因a=1,b=0,使Q=0,双稳态电路 状态发生翻转。当释放按键时,在开关未 稳定到达a端时,因Q=0,封锁了与非门2, 双稳态电路的状态不变,输出Q保持不变, 消除了后沿的抖动波形。当开关稳定到达 a端时,因a=0,b=1,使Q=1,双稳ቤተ መጻሕፍቲ ባይዱ电 路状态发生翻转,输出Q重新返回原状态。 由此可见,键盘输出经双稳态电路之后, 输出已变为规范的矩形方波。
单片机的外围电路

键盘电路设计要点
1 2
去抖处理
消除按键按下时的抖动,确保一次只识别一个按 键。
独立按键与矩阵按键的选择
根据按键数量和单片机I/O口资源选择合适的键 盘形式。
3
接口类型
根据单片机和键盘的接口类型选择合适的连接方 式,如直接连接或通过I2C、SPI等通信协议连接。
05
通信接口电路
通信接口电路的作用与类型
寻址方式
每个设备具有唯一的地址,通过地址码进行访问。
数据传输速率
最高可达400kHz。
06
外围电路的干扰与防护
外围电路的干扰来源与影响
01
02
03
04
电源噪声
由于电源线路上的电压波动和 电流脉冲,可能导致单片机工
作异常。
信号线耦合
信号线之间的电磁场相互作用 ,可能导致信号的畸变或噪声
。
接地回路
不同电路之间的地线连接可能 形成地线回路,导致噪声和干
扰。
空间辐射
来自其他电子设备或自然界的 电磁波可能对单片机产生干扰
。
干扰的防护措施
电源滤波
在电源入口处加入滤波 器,减少电源噪声的干
扰。
隔离与屏蔽
对容易受到干扰的信号 线进行隔离或屏蔽,降 低信号线耦合的影响。
合理的接地
采用单点接地、多点接 地或混合接地方式,减
少地线回路的干扰。
空间滤波
在单片机周围加装电磁 屏蔽材料,减少空间辐
单片机外围电路
• 单片机外围电路概述 • 电源电路 • 输入输出接口电路 • 显示与键盘电路 • 通信接口电路 • 外围电路的干扰与防护
01
单片机外围电路概述
定义与作用
定义
(完整版)单片机原理及接口技术(C51编程)(第2版)-习题答案汇总

单片机答案第1章思考题及习题1参考答案一、填空1. 除了单片机这一名称之外,单片机还可称为或。
答:微控制器,嵌入式控制器.2.单片机与普通微型计算机的不同之处在于其将、、和三部分,通过内部连接在一起,集成于一块芯片上。
答:CPU、存储器、I/O口、总线3. AT89S51单片机工作频率上限为 MHz。
答:24MHz。
4. 专用单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低和提高。
答:成本,可靠性。
二、单选1. 单片机内部数据之所以用二进制形式表示,主要是A.为了编程方便B.受器件的物理性能限制C.为了通用性D.为了提高运算速度答:B2. 在家用电器中使用单片机应属于微计算机的。
A.辅助设计应用B.测量、控制应用C.数值计算应用D.数据处理应用答: B3. 下面的哪一项应用,不属于单片机的应用范围。
A.工业控制 B.家用电器的控制 C.数据库管理 D.汽车电子设备答:C三、判断对错1. STC系列单片机是8051内核的单片机。
对2. AT89S52与AT89S51相比,片内多出了4KB的Flash程序存储器、128B的RAM、11个中断源、1个定时器(且具有捕捉功能)。
对3. 单片机是一种CPU。
错4. AT89S52单片机是微处理器。
错5. AT89S51片内的Flash程序存储器可在线写入(ISP),而AT89C52则不能。
对6. 为AT89C51单片机设计的应用系统板,可将芯片AT89C51直接用芯片AT89S51替换。
对7. 为AT89S51单片机设计的应用系统板,可将芯片AT89S51直接用芯片AT89S52替换。
对8. 单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能则是DSP的长处。
对第2章思考题及习题2参考答案一、填空1. 在AT89S51单片机中,如果采用6MHz晶振,一个机器周期为。
答:2µs2. AT89S51单片机的机器周期等于个时钟振荡周期。
单片机实验指导书

单片机原理与应用实验指导书九江学院电子工程学院2007年9月第一章单片机实验的基本要求与方法一、实验目的学习并掌握单片机的基本结构及接口设计方法,学习汇编语言程序设计的基本方法和技能。
二、实验要求1、上机前要做好充分准备,明确实验目的、熟悉实验内容、掌握实验步骤、了解所用单片机实验开发系统及仪器设备的性能。
做好实验前预习和必要的准备,如画好程序流程图,编好程序,做到准备充分。
2. 进入实验室后,熟悉所用的单片机实验开发系统及仪器设备,了解其外观、性能。
接线要正确、简单明了,接线完成后检查一遍,经老师复查允许后才可通电。
通电瞬间,应注意仪器和实验装置是否正常工作,如有不正常现象,应立即断电查找原因,直至故障排除后,实验方可继续进行。
3. 实验进行时,按规定步骤进行,经过反复修改调试,达到设计功能后,读取数据,并及时纪录。
4. 实验完成后,经老师验收合格,并把仪器、导线、工具整理完毕后,学生方可离开实验室。
三、实验方法本课程所用的实验板采用在系统可编程方式下载程序,具体操作过程参考第三章。
四、实验报告内容和要求1. 实验报告要用学校统一印发的实验报告纸。
2. 实验报告内容应包括:实验名称、器材、目的、原理、步骤、结果及分析、流程图、程序清单。
3. 实验报告中实验原理图(含电路图和时序图)要准确无误。
4. 实验报告中程序清单要求调试并运行正确无误,要有中文注释。
5.每个实验后的实验结果分析和心得体会必须独立完成,对实验中发现的问题应加以讨论,并提出自己的改进意见和要求。
6.实验报告写完后统一交到学习委员处,按学号排列装订成册,然后交到老师处。
第二章 V6实验板简介本课程所用单片机实验板,可用于MCS-51系列单片机的仿真开发和《单片机原理与应用》课程的教学实验,具有电路简单,小巧便携,支持在系统可编程技术,简便易用等特点。
适合单片机初学者使用。
图2-1一、可开设实验1、wave仿真软件的应用2、用isplay实现在系统可编程3、流水灯4、动态显示程序5、中断响应程序设计6、定时/计数器的应用:测量脉冲宽度、倒计时器、带闪动的动态显示7、键盘接口程序设计:计时系统、抢答器设计、模拟汽车转向灯设计*8、红外按键识别程序设计*9、基于红外按键输入的四则混合运算计算器设计10、电子音乐盒设计*11、基于红外按键输入的电子琴设计12、基于DS1302的精密时钟设计13、基于DS18B20的数字温度计设计14、串行程序存储器扩展*15、数据采集电路设计:单片机与A/D 转换器接口 *16、信号发生器设计:单片机与D/A 转换器接口 *17、直流电机调速 *18、步进电机控制*19、基于MAX7219的数码管静态显示程序设计 *20、字符型液晶显示程序设计 *21、点阵型液晶显示程序设计注:带“*”实验项目需外接扩展电路二、V6实验板的原理和组成1、总体电路图上电复位....图2-22、微处理器V6实验板采用DIP 封装的AT89s52单片机作为微处理器,引脚配置如图2-3所示,为实现在系统可编程功能,选用11.0592MHz的晶振。
键盘显示器及功率接口

6.1.4 BCD码拨盘接口
BCD码十进制拨盘是向单片机应用系统输入数据的设 备,是一种硬件设置数据的设备。使用拨盘输入的数据具 有不可变性,却又易于修改。十进制输入,BCD输出的拨 盘是最常使用的一种。图6-7所示是一个4位BCD码拨盘组 结构和连接示意图。每位拨盘有0~9十个拨动位置,每个 位置有相应的数字表示,分别代表拨盘输入的十进制数。 所以,一位拨盘可以代表一位十进制数,可以根据设计的 需要,用多位BCD码拨盘组成多位十进制数。
判断是否有键下的方法是,查询哪一根接按键的I/O线为 低电平时,便知此键按下。独立式非编码键盘的优点是电路结 构简单。缺点是当键数较多时,占用的I/O口线多。例如编写 图6-4所示的键处理程序如下:
图 6-4 独立式非编码键盘
程序清单 START:MOV A,#0FFH ; 输入时先置P1口为全1 MOV P1,A MOV A,P1 ;键状态输入 JNB ACC.0,P0F ;0号键按下转POF标号地址 JNB ACC.1,P1F ;1号键按下转P1F标号地址 JNB ACC.2,P2F ;2号键按下转P2F标号地址 JNB ACC.3,P3F ;3号键按下转P3F标号地址 JNB ACC.4,P4F ;4号键按下转P4F标号地址 JNB ACC.5,P5F ;5号键按下转P5F标号地址 JNB ACC.6,P6F ;6号键按下转P6F标号地址 JNB ACC.7,P7F ;7号键按下转P7F标号地址 SJMP START ;无键按下返回
图 6-7 4位BCD码拨盘结构和连接
BCD码盘有一个输入控制线A,4个BCD码输出信号线。拨盘的各个 不同的位置,使输入控制线A分别与4根BCD码输出线中的某几根接通, 使BCD码输出线的状态与拨盘所显示的值一致,并使该编码信号输入单 片机的CPU。BCD码拨盘的输入输出状态如表6-2所示。
单片机应用技术(C语言版)第2版课后习题答案-王静霞

3
LED数码若采用动态显示方式,下列说法错误的是__________。
A.将各位数码管的段选线并联
B.将段选线用一个8位I/O端口控制
C.将各位数码管的公共端直接连接在+5V或者GND上
D.将各位数码管的位选线用各自独立的I/O端口控制
C
4
共阳极LED数码管加反相器驱动时显示字符“6”的段码是_________。
规定一个机器周期的宽度为12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。
当振荡脉冲频率为12MHz时,一个机器周期为1µs;当振荡脉冲频率为6MHz时,一个机器周期为2µs。
序号
知识点
题型
内容
答案
1
项目三单片机并行I/O端口的应用
3.1单项选择题
下面叙述不正确的是()
A.一个C源程序可以由一个或多个函数组成
P3口各引脚与第二功能表
引脚
第二功能
信号名称
P3.0
RXD
串行数据接收
P3.1
TXD
串行数据发送
P3.2
外部中断0申请
P3.3
外部中断1申请
P3.4
T0
定时/计数器0的外部输入
P3.5
T1
定时/计数器1的外部输入
P3.6
外部RAM写选通
P3.7
外部RAM读选通
3
什么是机器周期?机器周期和晶振频率有何关系?当晶振频率为6MHz时,机器周期是多少?
voiddelay(void)
{inti;
for(i=0; i<10000; i++);
}
10000
12
在单片机的C语言程序设计中,______________类型数据经常用于处理ASCII字符或用于处理小于等于255的整型数。