51单片机c语言6,mcs-51单片机c语言第6章.ppt

mcs-51单片机c语言第6章

第6章 MCS-51系列单片机的接口技术 6.1 键盘接口技术 6.2 数码显示接口技术 6.3 液晶显示技术 6.4 A/D转换器与单片机的接口技术 6.5 D/A转换器与单片机的接口技术 6.6 串行接口技术 6.7 开关量输入/输出接口技术 第6章 MCS-51系列单片机的接口技术 6.1 键盘接口技术 在单片机应用系统中,键盘是人机交流的重要组成部分,用于向单片机应用系统输入数据或控制信息。键盘形式一般有独立式键盘和矩阵式键盘两种。独立式键盘的结构简单,但占用的资源多,通常用在按键数量较少的场合,大多数单片机应用采取这种方式;矩阵式键盘的结构相对复杂些,但占用的资源较少,通常用在按键数量多的场合。 6.1.1 键的特性 由于键的按下与释放是通过机械触点的闭合与断开来实现的,因机械触点的弹性作用,在闭合与断开的瞬间均有一个抖动过程,所以键闭合与断开会产生的电压波形如图6.1所示,抖动时间一般在5ms~10ms。这个抖动对判断键是否按下或释放有重大影响,因此必须消除键的抖动,只有这样,才能可靠地判断键的状态。 6.1.1 键的特性 在单片机应用系统中,消除抖动有硬件和软件两种方法。硬件去抖动方法主要有利用R-S触发器和滤波电路,如图6.2(a)和6.2(b)所示。软件去抖动通常是程序检测到键被按下或释放时,延时10ms后再检测键是否仍然闭合或断开,若是则确认是一次真正的闭合或断开,否则就忽略此次按键或释放。 6.1.2 独立键盘接口技术 1.独立键盘的结构 如图6.3所示,每一个按键的电路是独立的,占用一条数据线,当其中任意一按键按下时,它所对应的数据线的电平就变成低电平,读入单片机就是逻辑0,表示键闭合,若无键闭合,则所有的数据线的电平都是高电平。 6.1.2 独立键盘接口技术 2.独立键盘与单片机接口 在单片机应用时,应遵循尽量不扩展的原则,因此,以单片机基本口为例来分析独立键盘的实现方法,如图6.4所示。 设K1闭合将20H单元内容加1,K2闭合将20H单元内容减1,K3闭合将21H单元清0,K4闭合将21H单元置FFH,若同时有两个以上按键闭合,将不做任何操作。 6.1.2 独立键盘接口技术 由于P1口是一个准双向口,因此首先置P1口为输入口。然后读取P1口的引脚状态,判断是否有键被按下,若有键被按下,则利用延时程序延时10ms时间再判断键是否依然被按下,以确保是一次真正的按键操作。在这里关键的问题是如何判断单键被按下还是有两个以上的键被按下,在此通过比较指令来判别,这是因为四个按键分别接在P1.0、P1.1、P1.2和P1.3引脚上,因此读入后经处理得到相应的单键被下代码分别是01H、02H、04H和08H。程序流程图如图6.5所示。 6.1.2 独立键盘接口技术 6.1.2 独立键盘接口技术 程序如下: ORG 0030H KB:MOVP1,#0FFH;置P1口为输入口 MOVA,P1;读键状态 CPLA ANLA,#0FH;屏蔽高4位 JZKB;无键闭合则返回 ACALLD10MS;延时去抖动 MOVA,P1;再读键状态 CPLA ANLA,#0FH JZKB;无键闭合则返回 CJNEA,#01H,KB01 6.1.2 独立键盘接口技术 INC20H;K1键闭合,20H单元加1 SJMPKB KB01:CJNEA,#02H,KB02 DEC20H;K2键闭合,20单元减1 SJMPKB KB02:CJNEA,#04H,KB03 MOV21H,#00H;K3键闭合,21H单元清0 SJMPKB KB03:CJNEA,#08H,KB MOV21H,#0FFH;K4键闭合,21H单元置FF SJMPKB;若有两键以上闭合则返回 END 6.1.3 矩阵键盘接口技术 1.矩阵键盘的结构 在按键较多时,为了少占用单片机I/O线资源,通常采用矩阵式键盘,如图6.6所示,有4行4列构成了16个键阵。 每一行线与列线的交叉处是互不相通的,而是通过一个按键来接通。D0~D3作为行线,D4~D7作为列线。 在键盘处理程序中,首先确定是否有键按下,下一步再识别是哪一个键被按下,通常使用的一种方法是扫描法,逐行或逐列地进行。 下面以如图6.6所示4×4键盘为例,介绍矩阵键盘的工作原理。 6.1.3 矩阵键盘接口技术 6.1.3 矩阵键盘接口技术 (1)使列线D0~D3都输出0,检测行线D4~D7的电平。如果D4~D7上的电平全为高,则表示没有键被按下。如果D4~D7上的电平

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值