《《人机交互技术》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《人机交互技术》PPT课件.ppt(33页珍藏版)》请在三一办公上搜索。
1、第4章 人机交互技术,4.1 键盘接口设计4.2 LED显示器接口设计4.3 LCD显示器接口设计4.4 触摸屏技术4.5 打印机接口设计,第4章 单片机的人机交互技术,人机交互是指操作人员与计算机之间进行的现场或远程信息交换与联系,用于人机交互的设备称为人机接口,这些设备主要有键盘、显示器和打印机等。一般的计算机控制系统必须要有人机交互功能,以便操作人员可以随时输入数据传递生产命令,并通过显示和打印功能及时掌握生产情况。对于简单的应用场合,由于单片机本身就是一个最小的应用系统,因此能直接满足实际应用所要求的功能,充分发挥单片机硬件结构紧凑、设计简单、成本低的优点。当设计一些较为复杂的测控系统
2、时,其自身的功能往往不能够满足应用的需要,此时可利用MCS-51系列单片机强大的外部扩展功能,扩展各种外围电路以补充片内资源的不足,适应特定应用的要求。,概 述,键盘是若干按键的集合,是向系统提供操作人员干预命令及数据的接口设备。键盘可分为编码键盘和非编码键盘两种。编码键盘能够由硬件逻辑自动提供与被按键对应的编码。此外,一般还具有去抖动和多键、窜键保护电路,这种键盘使用方便,但需要较多的硬件,价格较贵,一般的单片机应用系统较少采用。非编码键盘只简单地提供行和列的矩阵,其它工作都靠软件来完成,由于其经济实用,目前在单片机应用系统中多采用这种办法。,4.1 键盘接口设计,1、在设计键盘接口时,解决
3、以下几个问题:检测是否有键按下;去抖动 若有键按下,判定是哪一个键;确定被按键的读数;不管一次按键持续的时间有多长,仅采用一个数据;处理同时按键。,2、独立式连接的非编码键盘,()查询方式,()中断方式,为了识别键盘上的闭合键,通常采用两种方法,一种为扫描法,另一种称为线反转法。扫描法,原理:CPU每次使并行输出端口的某位为零,而其它位为1,然后CPU只要读取输入端口中的数据,就可判别。,3、矩阵式连接的非编码键盘,线反转法,5V,原理:第一步设A口输出B口输入A口输出全0值,然后从B口读入;第二步设A口输入B口输出将B口刚读入的值输出,再从A口读入,例4.1:用一位数码管显示4X4矩阵键盘按
4、键号名称0-F。,#include#define uchar unsigned char#define uint unsigned intuchar code DSY_CODE=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e,0 x00;/段码uchar Pre_KeyNo=16,KeyNo=16;/上次和当前按键的序号,序号范围015,16表示无按键/延时void DelayMS(uint x)uchar i;while(x-)for(i=0;i12
5、0;i+);,/矩阵键盘扫描void Keys_Scan()uchar Tmp;P1=0 x0f;/高4位置0,放入4行DelayMS(1);Tmp=P10 x0f;switch(Tmp)/判断按键发生于03列的哪一列case 1:KeyNo=0;break;case 2:KeyNo=1;break;case 4:KeyNo=2;break;case 8:KeyNo=3;break;default:KeyNo=16;/无键按下P1=0 xf0;/低4位置0,放入4列DelayMS(1);Tmp=P140 x0f;switch(Tmp)/对03行分别附加行首键值0,4,8,12case 1:Ke
6、yNo+=0;break;case 2:KeyNo+=4;break;case 4:KeyNo+=8;break;case 8:KeyNo+=12;,/主程序void main()P0=0 x00;while(1)P1=0 xf0;if(P1!=0 xf0)Keys_Scan();/获取键序号if(Pre_KeyNo!=KeyNo)P0=DSY_CODEKeyNo;Pre_KeyNo=KeyNo;DelayMS(100);,1.LED显示技术,4.2 LED显示器接口设计,在单片机应用系统中,为了便于观察和监视系统的运行情况,经常需要用显示器显示输入信息、中间信息、运行状态及运行结果等数据。目
7、前常用的显示器件有LED(发光二极管显示器)和LCD(液晶显示器)两种。,LED显示器主要是指由发光二极管组成的数码管显示器或LED点阵显示模块。根据公共端的接法不同,LED数码管分为共阴极和共阳极二种类型,在使用时,由于LED显示器的工作电流通常为515mA,工作电压为1.52.5V,因此使用时需加驱动及限流电阻。根据显示方式不同,LED显示有静态显示和动态显示之分。,(1)静态显示方式:每一位显示都占用单独的具有锁存功能的I/O接口,显示信号始终存在;com端连接在一起;,8051,P1.5,P1.4,P1.3,P1.2,P1.1,P1.0,LE D C B A,g f e d c b a
8、,Dp g f e d c b a,MC14495,LE D C B A,g f e d c b a,g f e d c b a,MC14495,+5V,(2)动态显示方式 是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,每个数码管的COM为各自独立的位选信号,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于位选信号。,用第2章动态显示程序控制显示的方法是1ms延时,CPU周而复始显示,在实际工程中是不可取的;另外还有一种方法是定时20ms扫描一次,在中断服务程序中,将所有数码管显示一次。虽然程序简单,但CPU的负担
9、较重,一次循环显示的过程,需要几个毫秒,在这段时间里CPU不能做其它事情,否则影响LED亮度的一致性。在一些实时性要求较高的控制系统中,可以采用1ms中断显示的方法控制显示,即用单片机内部定时器每隔1ms产生一次中断。在定时中断服务程序中更新显示,由于中断显示程序不需要延时,更新一位显示只需要几十微秒,对主程序的影响较小。,例4.2:如第二章例3图所示,用定时中断的方式编写控制4位显示器动态显示的程序。,位选码输出,段选码输出,#include“reg51.h”char code dispdata=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,
10、0 x7F,0 x6F;/*数字0-9对应的段选码*/char dis_data=2,4,6,8;void time(void)interrupt 1 using 1/*T0中断服务程序入口,定时1ms*/static unsigned char ch1=0;TH0=-500/256;TL0=-500%256;disp(ch1);ch1+;if(ch1=0 x04)ch1=0;,void disp(char ch1)/*显示函数*/static char ch=0 x01;P1=ch;P2=dispdatadis_datach1;ch=ch1;if(ch=0 x10)ch=0 x01;main
11、()TMOD=0 x01;/*T0为16位定时工作方式*/TH0=-(500/256);/*预置计数初值*/TL0=-(500%256);EA=1;/*CPU中断开放*/ET0=1;/*T/C0中断开放*/TR0=1;/*启动T/C0开始定时*/while(1);/*等待中断*/,LCD(Liquid Crystal Display)液晶显示是一种新型的显示技术,它是利用液晶材料的电光效应(如加电引起光学特性变化)的显示器。液晶本身不发光,靠电信号控制环境光在显示部位反射(或透射)而显示。液晶显示具有很多独到的优异特性,比如低压、微功耗、平板型结构、被动型显示、易于彩色化、长寿命等,已经越来越
12、多地应用到各个领域,从智能化仪器仪表、计算机到家用电器都可以看到液晶显示的身影。液晶显示器通常把驱动电路集成在一起,形成液晶显示模块,用户可以不必了解驱动器与显示器是如何连接的,使用时只需按照一定的要求向显示模块发命令和写数据即可。,4.3 LCD显示技术,典型应用(OCMJ48),如图为MCS-51单片机与OCMJ48中文显示模块的接口电路。图中单片机的P1口接OCMJ模块的8根数据线用于数据的传送,P0.0、P0.1引脚接OCMJ模块的BUSY和REQ作为握手联络信号。,1)写字节子程序,该子程序采用查询方式对模块进行写操作。SUB1:JB P0.1,SUB1;确信模块空闲(BUSY=0)
13、MOV P1,A;向总线送数 NOP;等待数据总线稳定 SETB P0.0;置模块REQ=1,向模块发请求命令 HE3:JNB P0.1,HE3;等待模块响应(BUSY=1)CLR P0.0;撤消REQ请求信号,数据输入结束 RET;返回,2)写汉字程序段,该程序段显示一个汉字“啊”(区位码为 1601H)。MOV A,#0F0H;选显示汉字命令字 ACALL SUB1;调用写子程序 MOV A,#02H;#O2H,XX,屏幕坐标 ACALL SUB1;调用写子程序 MOV A,#00H;#00H,YY,屏幕坐标 ACALL SUB1;调用写子程序 MOV A,#16H;#16H,QQ,GB2
14、312汉字区位码高位ACALL SUB1;调用写子程序 MOV A,#01H;#01H,WW,GB2312汉字区位码低位 ACALL SUB1;调用写子程序,3)写816 ASCII 码程序段 该程序段显示一个816 ASC码“A”。MOV A,#0F9H;选显示816 ASCII字符命令字 ACALL SUB1;调用写子程序 MOV A,#04H;#04H,XX坐标值 ACALL SUB1 MOV A,#00H;#00H,YY坐标值 ACALL SUB1 MOV A,#41H;#41H,ASCII字符代码“A”ACALL SUB1 4)绘制一个点(11点阵)程序段 MOV A,#0F2H;选
15、显示位点阵命令字 ACALL SUB1;调用写子程序 MOV A,#20H;#20H,XX,以11 点阵屏幕坐标值 X ACALL SUB1 MOV A,#00H;#00H,YY,以11点阵屏幕坐标值 Y ACALL SUB1,5)绘制一横线(18点阵)程序段 MOV A,#0F3H;选显示字节点阵命令字 ACALL SUB1;调用写子程序 MOV A,#04H;#04H,XX,以18 点阵屏幕坐标值 X ACALL SUB1 MOV A,#00H;#00H,YY,以11点阵屏幕坐标值 Y ACALL SUB1 MOV A,#0FH;为输入字节数据,1为黑点,0 为白点 ACALL SUB1,
16、4.4.1 触摸屏技术概述 触摸屏又称为“触控屏”、“触控面板”,是一种可接收触头等输入讯号的感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械式的按钮面板,并借由液晶显示画面制造出生动的影音效果。触摸屏作为一种较新的电脑输入设备,是目前最简单、方便、自然的人机交互方式。从技术原理角度来讲,触摸屏是一套透明的绝对定位系统,其特性是:透明、采用绝对坐标及能检测触摸并定位。,4.4 触 摸 屏 技 术,4.4.2 触摸屏的分类 从技术原理来区别触摸屏,可分为五个基本种类:矢量压力传感技术触摸屏、电阻技术触摸屏、电容技术触摸屏、红
17、外线技术触摸屏、表面声波技术触摸屏。每一类触摸屏都有其各自的优缺点,要了解哪种触摸屏适用于哪种场合,关键就在于要懂得每一类触摸屏技术的工作原理和特点。,矢量压力传感技术触摸屏已退出历史舞台;红外线技术触摸屏价格低廉,但其外框易碎,容易产生光干扰,曲面情况下失真;电容技术触摸屏设计构思合理,但其图像失真问题很难得到根本解决;电阻技术触摸屏的定位准确,但其价格颇高,且怕刮易损;表面声波触摸屏解决了以往触摸屏的各种缺陷,清晰不容易被损坏,适于各种场合,缺点是屏幕表面如果有水滴和尘土会使触摸屏变的迟钝,甚至不工作。,4.5.1 标准Centronics接口 并行打印机接口通常按Centronics标准
18、定义插头插座引脚,Centronics标准中各引脚和信号之间的对应关系见下表。,4.5 打印机接口电路设计,4.5.2 应用实例在计算机控制系统中,常用的有并行和串行接口的针式打印机。下面介绍并行打印机与计算机的接口举例。,例:用8255控制打印机。下图是8031扩展8255与打印机接口的电路。8255的片选线为P0.7,打印机与8031采用查询方式交换数据。打印机的状态信号输入给PC7,打印机忙时BUSY=1,微型打印机的数据输入采用选通控制,当STB上负跳变时数据被输入。8255采用方式0由PC0模拟产生STB信号。按照接口电路,A口地址为7CH,C口地址为7EH,命令口地址为7FH,PC
19、7PC4输入,PC3PC0输出。方式选择命令字为8EH。,8031扩展8255与打印机接口的电路,向打印机输出字符串WELCOME的程序如下:,#include#include#define uchar unsigned char#define COM8255 XBYTE0 x007f/*命令口地址*/#define PA8255 XBYTE 0 x007c/*口A地址*/#define PC8255 XBYTE 0 x007e/*口C 地址*/void toprn(uchar*p)/*打印字符串函数*/while(*p!=0)/*字符串结束标志*/while(0 x80&PC8255)!=0);/*查询等待打印机的BUSY状态*/,PA8255=*p;/*输出字符*/COM8255=0 x00;/*模拟STB脉冲*/COM8255=0 x01;p+;void main(void)uchar idata prn=WELCOME;/*设测试用字符串*/COM8255=0 x8e;/*输出方式选择命令*/toprn(prn);/*打印字符串*/,