登陆注册
13028600000007

第7章 人机接口技术(2)

POP DPH

POP DPL

RET

读显示数据子程序:

PR5:PUSH DPL

PUSH DPH

MOV DPTR,CRADD2;设置读状态字地址

PR51:MOVX A,@DPTR;读状态字

JB ACC.7,PR51;判“忙”标志为“0”否,否再读

MOV DPTR,#ADD2;设置读显示数据地址

MOVX A,@DPTR;读数据

MOV DAT,A;存数据

POP DPH

POP DPL

RET

2. 间接控制方式接口电路及驱动程序

间接控制方式驱动程序清单如下。

A0 EQU P3.0;寄存器选择信号

R/W EQU P3.1;读/写选择信号

El EQU P3.2;使能信号E1

E2 EQU P3.3;使能信号E2、

写指令代码子程序:

PRO:CLR A0;A0=0

SETB R/W;R/W=1

PRO1:MOV P1,#0FFH;P1 口置“1”

SET EI;El=l

MOV A,P1;读状态字

CLR E1;E1=0

JB ACC.7,PRO1;判“忙”标志为“0”否,否再读

CLR R/W;R/W=0

MOV P1,COM;写指令代码

SETB El;E1=1

CLR El;E1=0

RET

写显示数据子程序:

PR1:CLR A0;A0=0

SETB R/B;R/W=1

PR11:MOV P1,#0FFH;P1 口置“1”

SETB E1;El=1

MOV A,P1;读状态字

CLR El;E1=0

JB ACC.7,PR11;判“忙”标志为“0”否,否再读

SETB A0;A0=l

CLR R/W;R/W=0

MOV P1,DAT;写数据

SETB E1;E1=1

CLR El;E1=0

RET

读显示数据子程序:

PR2:CLR A0;A0=0

SETB R/W;R/W =1

PR21:MOV P1,#0FFH;P1 口置“1”

SETB E1;E1=1

MOV A,P1;读状态字

CLR E1;E1=0

JB ACC.7,PR21;判“忙”标志为“0”否,否再读

SETB A0;A0=1

MOV P1,#0FFH;P1 口置“1”

SETB E1;E1=1

MOV DAT,P1;读数据

CLR E1;E1=0

RET

写指令代码子程序:

PR3:CLR A0;A0=0

SETB R/W;R/W=1

PR31:MOV P1,#0FFH;P1 口置“1”

SETB E2;E2=1

MOV A,P1;读状态字

CLR E2;E2=0

JB ACC.7,PR31;判“忙”标志为“0”否,否再读

CLR R/W;R/W=0

MOV P1,COM;写指令代码

SETB E2;E2=1

CLR E2;E2=0

RET

写显示数据子程序:

PR4:CLR A0;A0=0

SETB R/W;R/W=1

PR41:MOV P1,#0FFH;P1 口置“1”

SETB E2;E2=1

MOV A,P1;读状态字

CLR E2;E2=0

JB ACC.7,PR51;判“忙”标志为“0”否,否再读

SETB A0;A0=l

CLR R/W;R/W=0

MOV P1,DAT;写数据

SETS E2;E2=l、

CLR E2;E2=0

RET

读显示数据子程序:

PR5:CLR A0;A0=0

SETB R/W;R/W=1

PR51:MOV P1,#0FFH;P1 口置“1”

SETB E2;E2=1

MOV A,P1;读状态字

CLR E2;E2=0

JB ACC.7,PR41;判“忙”标志为“0”否,否再读

SETB A0;A0=l

MOV P1,#0FFH;P1 口置“0”

SETB E2;E2=l

MOV P1,DAT;读数据

CLR E2;E2=0

RET

3. 应用子程序

本程序使用89C51汇编语言,接口电路为上面提供的实用电路,使用的模块样机是HY12232C,提供的程序同样可以应用于其他模块,程序中提供参数PD1为不同型号模块所选择。

【例3.1】 初始化子程序

对模块的初始化实际上是对SED1520的初始化。程序如下:

INT:MOV COM,#0E2H;复位

LCALL PRO

LCALL PR3

MOV COM,#0A4H;关闭等待状态

LCALL PRO

LCALL PR3

MOV COM,#0A9H;设置1/32 占空比

LCALL PRO

LCALL PR3

MOV COM,#0A0H;正向排序设置

LCALL PRO

LCALL PR3

MOV COM,#0C0H;设置显示起始行为第一行

LCALL PRO

LCALL PR3

MOV COM,#0AFH;开显示设置

LCALL PRO

LCALL PR3

RET

【例3.2】 清显示RAM 区(清屏)子程序

CLEAR:MOV R4,#00H;页面地址暂存器设置

CLEAR1:MOV A,R4;取页地址值

ORL A,#0B8H;“或”页面地址设置代码

MOV COM,A;页面地址设置

LCALL PRO

LCALL PR3

MOV COM,#00H;列地址设置为“0”

LCALL PRO

LCALL PR3

MOV R3,#50H;一页清80 个字节

CLEAR2:MOV DAT,#00H;显示数据为“0”

LCALL PR1

LCALL PR4

DJNZ R3,CLEAR2;页内字节清零循环

INC R4;页地址暂存器加1

CJNE R4,#04H,CLEAR1;RAM 区清零循环

RET

3.3 键盘及其接口

键盘是一组开关(按键)的集合,操作者通过键盘输入数据或命令,实现简单的人机对话。键盘接口必须解决以下一些问题:确定是否有键按下,按了哪一个键;消除抖动问题;按键的处理等等。这些均可由硬件或软件来完成。

3.3.1 键盘结构和类型

目前常用的按键有三种:机械触点式按键、导电橡胶式按键和柔性按键(又称轻触键盘)。

机械触点式按键是利用金属的弹性使按键复位,具有手感明显、接触可靠的特点。导电橡胶按键则是利用橡胶的弹性来复位,通常采用压制方法把面板上所有的按键制成一块,体积小,装配方便。柔性按键是近年来得到迅速发展的一种新型按键,它可分为凸球型和平面型两大类。前者动作行程触感明显,富有立体感,但工艺复杂;后者动作行程极微,触感较弱,但工艺简单,寿命也长,它的最大特点是廉价、形美、防尘、防潮、耐蚀、装嵌简单,而且外形和面板的布局、色彩、键距都可以按照整机的要求来设计,在一定程度上体现了今后仪器仪表键盘的发展方向。

按照键码识别的方法分类,有编码式和非编码式两种键盘。前者每按一次键,键盘自动提供被按键的编码,同时产生一选通脉冲通知主机;后者是靠软件来完成按键识别的。

3.3.2 抖动和串键

键盘输入时,存在触点弹跳与同时按下多个键的问题,即抖动与串键。

3.3.2.1 抖动

从键按下到接触稳定要经过数毫秒的抖动,键松开时也有同样的问题,这会引起一次按键多次读数。解决键的抖动可使用硬件或软件方法。通常在键数较少时,可用R S触发器,或用最简单的RC滤波器来克服抖动。键数较多时,往往采用软件延时的方法,即当检出键闭合(或断开)后,执行一个数毫秒的延时子程序,让抖动消失后,再检验一下键的状态,这样可避免因抖动所造成的多次读数问题。

3.3.2.2 串键

检出串键情况,避免产生错码也是件重要的事,处理串键有三种技术:两键同时按下、n键同时按下和n键锁定技术。

“两键同时按下”技术是在两个键同时按下时产生保护作用。最简单的方法是当只有一个键按下时才读取键盘的输出,最后仍被按下的键是有效的正确按键。当用软件扫描键盘时常采用这种方法。另一种方法是当第一个按键未松开时,按第二个键不产生选通信号。

这种方法常借助硬件来实现。

“n键同时按下”技术或者不理会所有被按下键,直至只剩下一个键按下时为止;或者将按键的信息存入内部缓冲器中,这种方法成本较高。

“n键锁定”技术只处理一个键,任何其他按下又松开的键不产生任何码,通常是第一个被按下或最后一个松开的键产生码。这种方法最简单也最常用。

3.3.3 非编码式键盘接口电路

非编码式键盘目前大都采用行扫描法来识别按键。行扫描法是以步进扫描的方式,每次在键盘的一行发出扫描信号,同时检查列线输入信号。若发现某列输入信号与扫描信号一致,则位于该列和扫描行交点的键被按下。4行4列键盘接口电路,共有16个键,4条行线接到输出口,4条列线接至输入口。两端口的数据端和控制端分别与单片机的数据线和控制线相连。

采用这种方法时,一般先用全“0”[也可用全“1”]测试是否有键按下。如果有,才在各输出线上依次送“0”,这可减少在没有按键时的扫描时间。假设K9键闭合,其余断开。程序在判出有键按下后,再逐行扫描,以确定所按键的号数。

8155的PA、PB口为输出口,PA 口除输出显示器的扫描控制信号外,又是键盘的行扫描口。8155的PC口为键输入口。7407和75452分别为同相和反相驱动器。下面给出判别按键号的程序,该程序计算键号的方法是先确定列线号,再与键号寄存器内容相加得到按键号。这种方法程序较长,但易于理解。

89C51判键号程序:

KEY:MOVX DPTR,#7F00H;置8155 PA、PB 口为输出方式

MOV A,#03H;PC 口为输入方式

MOVX @DPTR,A

MOV R4,#00H;0→键号寄存器R4

MOV R2,#01H;扫描模式01H→R2

KEY1:MOV DPTR,#7F0lH、MOV A,R2

MOVX @DPTR,A;扫描模式→8155 PA 口

INC DPTR

INC DPTR

MOVX A,@DPTR;读8155 PC 口

JB ACC. 0,KEY2;0 列无键闭合,转判1 列

MOV A,#00H;0 列有键闭合0→A

AJMP KEY5

KEY2:JB ACC.1,KEY3;1 列无键闭合,转判2 列

MOV A,#01H;1 列有键闭合,1→A

AJMP KEY5

KEY3:JB ACC.2,KEY4;2 列无键闭合,转判3 列

MOV A,#02H;2 列有键闭合2→A

AJMP KEY5

KEY4:JB ACC.3,NEXT;3 列无键闭合,转判下一行

MOV A,#03H;3 列有键闭合,3→A

KEY5:ADD A,R4;列线号+(R4)→R4

MOV R4,A

RET

NEXT:MOV A,R4

ADD A,#04H;键号寄存器加4

MOV R4,A

MOV A,R2

JB ACC.3,NEXTI;判是否已扫到最后1 行

RL A;扫描模式左移1 位

MOV R2,A

AJMP KEY1

NEXT1:MOV R4,#0FFH;置无键闭合标志

RET

3.3键盘及其接口

键盘是一组开关(按键)的集合,操作者通过键盘输入数据或命令,实现简单的人机对话。键盘接口必须解决以下一些问题:确定是否有键按下,按了哪一个键;消除抖动问题;按键的处理等等。这些均可由硬件或软件来完成。

3.3.1键盘结构和类型

目前常用的按键有三种:机械触点式按键、导电橡胶式按键和柔性按键(又称轻触键盘)。

机械触点式按键是利用金属的弹性使按键复位,具有手感明显、接触可靠的特点。导电橡胶按键则是利用橡胶的弹性来复位,通常采用压制方法把面板上所有的按键制成一块,体积小,装配方便。柔性按键是近年来得到迅速发展的一种新型按键,它可分为凸球型和平面型两大类。前者动作行程触感明显,富有立体感,但工艺复杂;后者动作行程极微,触感较弱,但工艺简单,寿命也长,它的最大特点是廉价、形美、防尘、防潮、耐蚀、装嵌简单,而且外形和面板的布局、色彩、键距都可以按照整机的要求来设计,在一定程度上体现了今后仪器仪表键盘的发展方向。

按照键码识别的方法分类,有编码式和非编码式两种键盘。前者每按一次键,键盘自动提供被按键的编码,同时产生一选通脉冲通知主机;后者是靠软件来完成按键识别的。

3.3.2抖动和串键

键盘输入时,存在触点弹跳与同时按下多个键的问题,即抖动与串键。

3.3.2.1抖动

从键按下到接触稳定要经过数毫秒的抖动,键松开时也有同样的问题,这会引起一次按键多次读数。解决键的抖动可使用硬件或软件方法。通常在键数较少时,可用RS触发器,或用最简单的RC滤波器来克服抖动。键数较多时,往往采用软件延时的方法,即当检出键闭合(或断开)后,执行一个数毫秒的延时子程序,让抖动消失后,再检验一下键的状态,这样可避免因抖动所造成的多次读数问题。

3.3.2.2串键

检出串键情况,避免产生错码也是件重要的事,处理串键有三种技术:两键同时按下、n键同时按下和n键锁定技术。

“两键同时按下”技术是在两个键同时按下时产生保护作用。最简单的方法是当只有一个键按下时才读取键盘的输出,最后仍被按下的键是有效的正确按键。当用软件扫描键盘时常采用这种方法。另一种方法是当第一个按键未松开时,按第二个键不产生选通信号。

这种方法常借助硬件来实现。

“n键同时按下”技术或者不理会所有被按下键,直至只剩下一个键按下时为止;或者将按键的信息存入内部缓冲器中,这种方法成本较高。

同类推荐
  • 交通运输学

    交通运输学

    本书从管理的角度,系统阐述了交通运输学的经济学原理与管理方法.及运输方式与技术在实际中的应用。主要内容包括运输的作用与重要性、现代运输系统的特性、运输需求分析、运输成本分析、运输服务的定价、运输业投资、运输规划与优化、物流运输实务、集装箱运输与多式联运、物流运输关系管理、物流运输信息管理、物流运输组织等。
  • 求知文库-能源世界

    求知文库-能源世界

    自古以来,人类就为改善自身的生存条件、促进社会的经济发展而不懈地奋斗。在这一奋斗过程中,能源一直在扮演着极其重要的角色。简单地说,能源指的是可以提供能量的物质,例如煤炭、石油、天然气、水能、太阳能、核能都是能源。
  • 未来产品的设计

    未来产品的设计

    本书讲述的是未来产品的设计,重点在于在人机交互方面的设计。书中对未来产品设计中可能面临的问题进行了分析,并探讨了解决方法和指导原则。
  • 征服太空之路丛书:火箭与长征火箭的故事

    征服太空之路丛书:火箭与长征火箭的故事

    火箭技术是一项十分复杂的综合性技术,主要包括火箭推进技术、总体设计技术、火箭结构技术、控制和制导技术、计划管理技术、可靠性和质量控制技术、试验技术,对导弹来说还有弹头制导和控制、突防、再人防热、核加固和小型化等弹头技术。如今,世界各国都加快了向太空进军的步伐,把探测目标投向了更远的地方,而对火箭的研制是其中不可缺少的一环。我们有理由相信,人类凭借自己的聪明才智,一定能够研制出更先进,飞得更远的火箭,把探测器送到月球、火星甚至更远的地方。
热门推荐
  • 面位生存守则

    面位生存守则

    一个倒霉却又幸运的人类,直到他重新成为了她成为了世界的管理者然而这些都是那个高高在上的自己设下的圈套
  • 绝世重修

    绝世重修

    废物方怀阳得修真高手附身重生,从此咸鱼翻身实力大进,左修真右炼脉,融合两大修炼体系体系的他独辟畦径,修真秘籍伐毛洗髓,炼脉宝典锻骨强筋,手握宝典,坐拥药山,天赋异禀的他,创出霸绝天下的异世狂武,终成一代圣王。
  • 垂钓就变强

    垂钓就变强

    路云从自己家的一个角落里翻出了一个钓竿。叮!恭喜宿主获得神级钓师系统!于是从这一天开始,路云经常从自家的一头枯井里头钓出来一些奇奇怪怪的东西。例如,钓出来一颗桃子有足球大小,并且还能幻化人形。随便钓起来一只螃蟹都能随意夹断合金。钓出来一个美女老师竟然还会御剑飞行!终于有一天,路云一竿甩起,一条真龙被他钓了上来!于是,从这个时候开始,一个属于路云的传奇时代开始了……
  • 典圣西游

    典圣西游

    不一样的西游记,不一样的西行,不一样的故事
  • 生化之末日狂潮

    生化之末日狂潮

    特种部队成员唐龙接受了一个奇怪的任务,来到了沙漠孤城斯托克市,结果发现这里满是危险的丧尸,层出不穷的怪物,以及对唐龙欲除之而后快的完美人类“天使”!这里将注定成为末日狂潮爆发的源泉地!身在其中的唐龙那何去何从?人类的未来又会走向何方?是就此灭亡,又或者是浴火重生!
  • 舞墨弄清风

    舞墨弄清风

    在一个偏远的小镇子有个少年郎孜孜不倦的在读书...
  • 半江月

    半江月

    有时候我也会想,不爱就好了啊,退回最初的位置,不那么贪心就好了。可是为什么要是你呢?有时候我也会想,我们不要这样,就都痛快一点吧,在我心上划开一刀。我就会彻底死心了吧。陆明城,我还是会爱你,与记忆无关。
  • 魔兽战神15:妖神祖地

    魔兽战神15:妖神祖地

    掌命之神战无命被害,跌落凡间,神性尽失。若欲重返天道,必须从凡人开始修炼,百战成帝,千战成神,登顶战神巅峰;跻身仙界,历劫成帝,净化神兽鲲鹏血脉;飞升神界,修得五行圆满,九道大成,掌控天地规则,破碎虚空,方能重返天道。如若百世之内,战无命无法凭借自己的能力返回道界,那等待他的就是魂飞魄散。轮回路上的九十九世,战无命都生活在莫氏家族的阴影之下,莫氏家族,一个无人知晓却无处不在的神秘家族,上抵神界,下达凡间,遍布各大星域,渗入各大宗门。战无命与莫家有宿世杀身灭族之仇,仇深似海、不死不休!第一百世,战无命重生归来。这一世,他,要为自己复仇!
  • 六合清浊

    六合清浊

    清,清理,扫除;浊,浊气,污浊。清浊,清扫浊气,还天地清明,究竟是清浊之战,还是六合奇缘,让我们一起去唤醒那段沉睡太久了的远古奇谈。看一场落雪也好听一回风雨也罢这悲旷寂寥的天下埋不下过往刻不得风华琴涩染秋风挥剑斩相思带着悲伤带着缺憾是午夜梦回时的妮妮缠缠亦或聚散流沙般的情深缘浅
  • 白色纪念相册

    白色纪念相册

    夏沫觉得友情是可以一辈子的,她可以全力以赴,赴汤蹈火,可后来发现,并不完全是这样的,她觉得她即使做了这些,对于有些人来说,也不过是视而不见一辈子是真的不能以时间衡量,或早或晚,没有先来后到她只能让该走的走……友情,爱情她都双双失利直到遇到木言,她觉得,他就是为了自己奔来的,只有一个人会穿越人海拥抱你,这句话是真的