输入有很多种方式,如下所述:
键盘输入:传统方式
鼠标输入:图形用户界面的重要输入方式
手写输入:手写汉字识别,”平扳电脑”
语音输入
触摸屏输入
数字化仪输入:适用于CAD/CAM系统
扫描输入:条形码、扫描仪、光电阅读器
三维输入:数据手套、三维鼠标、力矩球等
视觉输入:摄像设备.机器人的视觉
做产品是为了实用,在这些输入方式中,键盘输入虽然是最早使用的一种输入方式,但是键盘是实现人机交互最简便和最常用的接口,键盘分为编码式键盘和非编码式键盘。非编码式键盘如一组开关,全部工作包括按键识别、按键代码的产生、防串建和去抖动等问题都是靠软件查询和软件延时实现的。需要的硬件小,且价格便宜。本设计由于是针对农村的烘烤设备,基于成本和功能的考虑,采用非编码式键盘输入实现干燥箱温湿度设置及水箱水位设置。
微控制器(Mcu)LPC9401的PO9可以用作键盘输入,当有键按下时,可以配置为产生一个键盘中断(KBI)。此时需要将P0口(POE]可以位寻址)相应位的i/o模式设置为准双向口,i/o模式的控制通过对寄存器PxMl.y和PxM2.y的操作来实现。如设置Po.7为“准双向口”,PO的其他I/O设为“仅为输入”,可对P0的I/O配置寄存器POMl,POM2作如下操作:
MOV POMl,#01111111B,Mov PoM2,#00000000B准双向口的I/O结构如图4-17,PO.X表示Po口的各位,X可以为o_7。如PO.X作为输出口,D为l时,Q1截止,电位拉至1;D为0时,Q1导通,电位拉至0。
此时该位既可把外部电路拉低,也可由内部上拉电阻拉成高电平,所以称为准双向口。当P0.X作为键盘中断源输入口时,U1置为l,Ql截止。P0.x与按键的连接电路如图4-18所示:KEY键断开时,该位由内部上拉电阻拉成高电阻;KEY键按下时,内部电源经P0.X,R2,KEY流向地,该位被拉低至低电平。本设计中,使用P0.0,P0.1,P0.2,P0.3,P0.6口作为中断源输入口。有三个特殊功能寄存器(SFR)与键盘中断有关,它们是键盘模式寄存器KBPATN,键盘中断控制寄存器KBCON和键盘屏蔽寄存器KBMASK。
键盘模式寄存器KBPATN寄存器存放的是POEI的参考状态;本设计中K13PATN寄存器的值未设置,即采用复位值(默认值)FFH。键盘中断控制寄存器KBCON的PATN_SEL位决定P01 1与KBPATN匹配方式:设PATN_SEL位为l,JJPoD的状态必须等于KBPATN的内容才能产生中断,清零PATN SEL,贝lJP0口的状态不等于KBPATN的内容才能产生中断。KBCON的第0位为键盘中断标志KBIF,有中断产生时,CPU将该位设为1,此时不响应其他中断,所以在中断返回前,需要通过软件清零该位。其它位为保留位,不用不要将其置l。本设计中KBCON寄存器的初始值设为00H。键盘中断屏蔽寄存器KBMASK的每个位与P01 1相应位对应,位置为1.受lJ使能P01 1对应位作为键盘中断源(如:08H送到KBMAsK寄存器,KBMASK.3位为1,则使能P0.3作为键盘中断源)。本设计中由于P0.0,P0.1,P0.2,P0.3,P0.6作为键盘中断源,KBMASK的相应位要设为l,所以KBMASK的初始值要设为4FH。
键盘中断的产生过程:MCU会监视PO口的状态,当检测到满足中断产生条件(当PATN SEL---I时,检测:至口状态与KBPATN内参考状态相等,或当PATN SEL=0时,钡,NPo口某位状态与KBPATN相应位的参考状态不相等)后,再来检查引起这个条件的I/O在KBMASK中是否被使能作为中断源,如果是,则产生中断,否则不产生中断。本测控系统中,KBCON的初值为00H,位PATN-SEL的值为0,KBPATN的值为默认值(复位值)FFH则MCU检查到P0.0,P0.1,P0.2,P0.3,PO.6中某一个的状态为0时产生中断。5个按键与P0.X的连接如图4-19所示,当有按键按下时,对应PO.x的状态变为0,产生中断。如keyl键断开时,内部上拉电阻把PO.0拉到逻辑高,keyl键按下时,内部电源通过PO.0与地相连,该位被下拉,即PO.0状态为0,引发中断。http://www.zhenghang88.com