人机接口技术.ppt_第1页
人机接口技术.ppt_第2页
人机接口技术.ppt_第3页
人机接口技术.ppt_第4页
人机接口技术.ppt_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、人机接口技术,单片机原理、接口及应用,主要内容,一、键盘接口设计 1、简单按键设计 2、矩阵式键盘设计 3、键盘接口及LED驱动芯片 二、显示接口 1、LED灯显示 2、LED数码管显示 3、点阵式LED显示 4、LCD显示技术基础,一、键盘接口设计,按键功能:实现控制功能和数据输入 类型:编码键盘和非编码键盘 按键状态:每个按键的状态有闭合和断开两个状态,对应数字量“0”和“1”,便于计算机处理。 键盘设计任务:确定有无键按下;判断何键按下;定义键的功能;消除按键在闭合或断开时的抖动。,1、简单的按键设计,若应用系统仅需要几个按键,可利用8XX51的INT0、INT1或其他I/O口线构成单个

2、按键电路。 由于机械按键的簧片存在轻微的弹跳,导致在按动键的过程中,键闭合和释放过程中存在抖动,呈现一串抖动脉冲波,其时间长短与按键的机械特性有关,一般为520ms。 为了确保CPU对键的一次闭合仅作一次处理,必须去抖动。,2、矩阵式键盘设计,当按键较多时,为节省口线,常将按键接成矩阵的形式。如两个接口可按8*8的形式接64个按键。每个按键有其行值和列值,行值和列值的组合即该按键的特征编码。 两个并行口中,一个输出扫描码,使按键逐行动态接地(称行扫描),另一个并行口输入按键状态(称回馈信号,键盘的列值),由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。也可由硬件编码

3、器完成键的编码。,44矩阵键盘,00001111,00001011,键识别,1 1 1 1,f,键码的获得,图中的“f”键,当行扫描值为fdH=11111101B,由P1口读入的列值为1101xxxxB。保留行值低四位、列值高四位,得“f”键值为ddH=11011101B. 由此可得键盘矩阵中每个按键的编码。,44矩阵键盘键值,键盘处理流程,键判断: P1.0P1.3作输出线,P1.4P1.7作输入线。 当P1.0P1.3输出0时,如无键按下,P1.4P1.7的输入值均为“1”; 若其中有一个不是 “1”,说明有键按下; 键识别: 再使P1.0P1.3逐个输出零(行扫描),依次检查P1.4P1

4、.7的输入值有无零,从而查出是哪行哪列的键按下。 在判断矩阵键盘中按键时,通常采用延时后再重读以跳过抖动时段。,键动作判断例程,TEST: MOV P1,#0F0H ;P1.0P1.3输出0, P1.4P1.7输出1,置输入 MOV A,P1 ;读键盘,查有无键按下 ANL A,#0F0H ;屏蔽P1.0P1.3, 检测P1.4P1.是否全为1 CJNE A,#0F0H,HAVE;P1.4P1.7不全为1, 有键按下 SJMP TEST ;P1.4P1.7全为1, 无键按下,重检测键盘 HAVE: MOV A,#0FE ;有键按下,逐行扫描键盘, 置扫描初值,NEXT: MOV B,A ;扫描

5、码暂存于B MOV P1,A ;输出扫描码 READ: MOV A,P1 ;读键盘 ANL A,#0F0H ;检测P1.4P1.7是否全为1 CJNE A,0F0H,YES ;P1.4P1.7不全为1, 该行有键按下 MOV A,B ;该行无键按下,准备查下一行 RL A ;置下一行扫描码 CJNE A,#0EFH,NEXT ;未扫到到最后一行循环 YES: ACALL DAY ;延时去抖动,键识别例程,AREAD: MOV A,P1 ;再读键盘 ANL A,#0F0H ;保留P1.4P1.7(列码) MOV R2,A ;暂存列码 MOV A, B ANL A,#0FH ;取行扫描码 ORL

6、A,R2 ;行码、列码合并为键编码 YES1: MOV B,A ;键编码存于B LJMP SAM38 ;转键分析处理程序,矩阵键盘处理C语言程序,#include void dlms (void) /* 延时函数 * / uchar i; for (i=200;i0;i- -) uchar kbscan(void); void main (void) uchar key; while (1) key=kbscan( ); / * 键盘扫描函数,键码送key * / dlms( ); ,uchar kbscan(void) / 键盘扫描函数 uchar sccode,recode; P1=0 x

7、f0; /P1低四位送全0,高四位为输入 if (P1 / / 无键按下,返回值为0 , dlms( ); / 延时去抖动 if (P1 / 如该行无键按下,查下一行,行值左移一位 ,ZLG7290 I2C 接口键盘及LED 驱动器,IIC串行接口提供键盘中断信号; 可驱动8位共阴数码管或64只LED和64个按键; 可控扫描位数可控任一数码管闪烁; 提供数据译码和循环移位段寻址等控制; 8个功能键可检测任一键的连击次数; 可直接驱动LED,可扩展驱动电流和驱动电压; 提供工业级器件,多种封装形式PDIP24 SO24。,3、键盘显示驱动芯片,键盘功能描述,可采样64 个按键或传感器,可检测每个

8、按键的连击次数 键盘去抖动处理 双键互锁处理:当两个以上按键被同时按下,只采样优先级高的按键,优先顺序为S1S2S64 连击键处理:RepeatCnt 可识别单击或连击,并判断连击次数。 功能键处理:能实现2 个以上按键同时按下来扩展按键数目或实现特殊功能,显示部分功能描述,在每个显示刷新周期ZLG7290 按照扫描位数寄存器ScanNum 指定的显示位数N 把显示缓存DpRam0 DpRamN 的内容按先后循序送入LED 驱动器实现动态显示。 减少N 值可提高每位显示扫描时间的占空比以提高LED 亮度。显示缓存中的内容不受影响。 修改闪烁控制寄存器FlashOnOff可改变闪烁频率和占空比亮

9、和灭的时间,寄存器说明,1. 系统寄存器SystemReg :地址00H ,复位值11110000B。 保存ZLG7290 系统状态并可对系统运行状态进行配置。 KeyAvi :1表示有效的按键动作(普通键的单击、连击和功能键状态变化); /INT :引脚变为低电平表信号有效;清0 表示无按键动作,高阻态表示引脚信号无效。有效的按键动作消失后或读Key 后,KeyAvi 位自动清0,2. 键值寄存器Key:地址01H,复位值00H。 存放被压键的键值,Key=0 时表无键压按下。 3. 连击次数计数器RepeatCnt: 地址02H,复位值00H。=0表示单击键;大于0 时表示键的连击次数。

10、4. 功能键寄存器FunctionKey:地址03H,复位值0FFH。对应位的值=0表示对应功能键被压按,FunctionKey.7 FunctionKey.0 对应S64 S57。,5. 命令缓冲区CmdBuf01:地址07H、08H ,复位值00H 00H, 用于传输指令。 6. 闪烁控制寄存器FlashOnOff :地址0CH, 复位值0111B/0111B。高4位表闪烁时亮的时间,低4位表闪烁时灭的时间。由其控制闪烁频率和亮和灭的占空比。FlashOnOff的1个单位相当于150250ms,亮和灭的时间范围为116。 0000B 相当1个时间单位。所有象素的闪烁频率和占空比相同。,7.

11、 扫描位数寄存器ScanNum :地址0DH,复位值7。 用于控制最大的扫描显示位数,有效范围为07,对应的显示位数为18。减少扫描位数可提高每位显示扫描时间的占空比,以提高LED亮度。不扫描显示的显示缓存寄存器则保持不变,如ScanNum3 时只显示DpRam03 的内容。 8. 显示缓存寄存器DpRam07:地址10H17H,复位值全为0。 缓存中一位置1表该像素亮,DpRam70 的显示内容对应Dig70 引脚,通信接口,IIC 接口传输速率可达32kbit/s 器件地址slave address 为70H(01110000B) 内部寄存器地址范围为00H17H,所有寄存器可按字节直接读

12、写、通过命令接口间接读写或按位读写。 支持自动增址功能(访问一寄存器后寄存器子地址sub address 自动加一)和地址翻转功能(访问最后一寄存器子地址17H 后寄存器子地址翻转为00H) ZLG7290 的控制和状态查询全部都是通过读/写寄存器实现。,ZLG7290应用,8位LED数码显示 16个矩阵键盘,汇编语言程序示例,SDABITP1.7;I2C总线定义 SCLBITP1.6 RSTBITP1.0 K_INTBITP3.2 MTDEQU40H;发送数据缓冲器 MRDEQU49H;接收数据缓冲区 ;定义器件地址,变量 ZLG7290EQU70H;ZLG7290的器件地址 ACKBIT1

13、0H;应答标志位 SLADATA50H;器件地址 SUBADATA51H;器件子地址 NUMBYTEDATA52H;读/写的字节数变量,MAIN:MOV SP,#70H CLR RST LCALL DELAY SETB RST LCALL DELAY;复位7290 WAIT:JNB K_INT, K_DEAL SJMP WAIT ;无键按下等待 K_DEAL: MOV SLA,#ZLG7290 ;指定器件地址 MOV SUBA,#01H ;指定子地址(键值寄存器) MOV NUMBYTE,#01H ;发送1字节数据 LCALL IRDNBYTE ; 读1字节键值 LCALL DELAY,MOV

14、 R7,#08H MOVA,#60H ;数码显示地址 LOOP:MOVMTD,A PUSHACC MOV30H,R7 MOVMTD+1,MRD ;显示键值 MOVSLA,#ZLG7290;指定器件地址 MOVSUBA,#07H;指定子地址(命令缓冲寄存器) MOVNUMBYTE,#02H ;发送2字节数据 LCALL IWRNBYTE ;调用写2字节数据程序 LCALL DELAY MOVR7,30H POPACC INCA DJNZR7,LOOP SJMPWAIT $INCLUDE(VI2C_ASM.INC);包含VIIC软件包,C语言程序示例,#includereg52.h #includ

15、eVIiC_C51.H/包含VI2C软件包 #include zlg7290.h sbitRST=P10; sbitKEY_INT=P32; unsigned char DelayNS(unsigned char no) unsigned char i,j;/延时参数 for(; no0; no-) for(i=0; i100; i+) for(j=0; j10; j+); return 0; ,voidmain() unsigned char i,KEY; RST=0;DelayNS(1); RST=1;/复位7290 DelayNS(10); while(1) if(KEY_INT=0)

16、/判断有无键按下 KEY=ZLG7290_GetKey(); /若有,读键值 DelayNS(10); for(i=0;i8;i+) ZLG7290_SendCmd(0 x60+i,KEY); DelayNS(1); /将键值输出显示8次 ,显示地址,显示值,键值,二、显示接口,1、LED灯显示,2、控制LED亮度,串连电阻起限流作用,控制LED亮度 根据引脚驱动能力有三种接法 灌电流形式: 拉电流形式: 加驱动电路:,LED数码显示,LED数码管每段需1020mA的驱动电流,可用TTL或CMOS器件驱动。 字形码的控制输出 硬件译码方式:采用BCD 7段译码/驱动器 软件查表方式:,LED显

17、示驱动,LED数码管字形表,静态显示:固定显示方式,无闪烁;占用接口多。采用一个并行口接一个数码管,也可采用串入并出的方法接多个数码管。 动态显示:采用多个数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性 ,看不出闪烁显示现象。特点是需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。,多位显示方法,两位数据显示(静态),MOV A,#00H LP:MOV P1,A ADD A,#1 DA A SJMP LP,两位数据显示(动态),LP:MOV P1,#0E8H MOV P1,#0D7H SJMP LP,五个数码管轮流显示“12345”,多位

18、动态显示,MOV P3,#0 ;清显示 MOV DPTR,#TAB ;DPTR指向表头 LOOP: MOV R0,#0 ;R0存字形表偏移量 MOV R1,#01 ;R1置数码表位选代码 NEXT: MOV A,R0 MOVC A,A+DPTR ;查字形码表 MOV P1,A ;送P1口输出 MOV A,R1 MOV P3,A ;输出位选码 ACALL DAY ;延时 INC R0 ;指向下一位字形 RL A ;指向下一位 MOV R1,A CJNE R1,#20H,NEXT ;五个数码管显示完? SJMP LOOP,汇编语言,C 语言程序,#include #define uchar uns

19、igned char uchar code table5=0 x06,0 x5b,0 x4f,0 x66,0 x6d; main() uchar sel,i,j; P30X00;/*关显示*/ while (1) sel=0 x01; /*选最右边的LED*/ for(i=0;i6;i+) P1=tablei;P3=sel; /*送段码和位码*/ for(j=400;j0;j-); /*延时*/ sel=sel1; /*左移一位*/ ,3、点阵式LED,结构,88点阵LED编程,汇编语言程序,CLKEQUP3.2 DINAEQUP3.3 DINBEQUP3.4 CLEAREQUP3.5 MAI

20、N: MOV SP,#70H MOV50H,#07EH MOV51H,#0BDH MOV52H,#0DBH MOV53H,#0E7H MOV54H,#0E7H MOV55H,#0DBH MOV56H,#0BDH MOV57H,#07EH CLRCLEAR SETB CLK SETB DINA SETB DINB SETB CLEAR,LOOP: MOV r6,#8 MOV DPTR,#TAB MOVR1,#50H flash: MOVA,R1 MOVR0,A INCR1 CLR A MOVC A,A+DPTR MOV P1,0FFH LCALL sendto MOV P1,A INCDPTR

21、LCALL DELAY DJNZR6,flash SJMP LOOP,发送子程序,sendto:PUSHACC CLRCLK MOV R7,#08H MOV A,R0 CLR C SENDCY:RRCA MOV DINA,C SETB CLK CLR CLK DJNZ R7,SENDCY POPACC RET TAB DB 0FEh,0FDh,0FBh,0F7h, 0EFh,0DFh,0BFh,07Fh ;列值,C 语言程序:初始化,#include reg52.h sbit CLK=P32; sbit DINA=P33; sbit DINB=P34; sbit CLEAR=P35; unsi

22、gned char code dispdata8=0 x7e,0 xBD,0 xDB, 0 xE7,0 xE7,0 xDB,0 xBD,0 x7E;/列数据 unsigned char code dispbit8=0 xfe,0 xfd,0 xfb, 0 xf7,0 xef,0 xDf,0 xBf,0 x7f;/行数据 bdata unsigned char kdat; sbit cc=kdat0; void sendto(unsigned char dat); void DELAY();,C 语言程序:主程序,main() unsigned char i; for(i=0;i200;i+);

23、 CLEAR=0; CLK=1;DINA=1;DINB=1; CLEAR=1; while(1) for(i=0;i8;i+) P1=0XFF; sendto(dispdatai);/送出一列 P1=dispbiti;/选中一行 DELAY(); ,C 语言程序:发送子函数,void sendto(unsigned char dat)/串行发送8位bit unsigned char i; CLK=0; kdat=dat; for(i=0;i1; ,4.LCD显示基础,特点:一种极低功耗的显示器件 应用:袖珍式仪表或低功耗应用系统,液晶显示器基本结构,上偏振片,下偏振片,上电极基板,上电极基板,

24、反射板,封焊剂,液晶材料:在上下玻璃电极之间封入向列型液晶材料,液晶分子平行排列,上下扭曲90,液晶显示器工作原理,外部入射光线通过上偏振片后形成偏振光,该偏振光通过平行排列的液晶材料后被旋转90 ,再通过与上偏振光垂直的下偏振片,被反射板反射回来,呈透明状态; 当上下电极加上一定的电压后,电极部分的液晶分子转成垂直排列,失去旋光性,从上偏振片入射的偏振光不被旋转,光无法通过下偏振片返回,因而呈黑色。 根据需要将电极做成各种文字、数字、图形可满足各种状态的显示需要。,LCD驱动方式,由于液晶分子在长时间的单向电流作用下容易发生电解,因此液晶的驱动不能用直流电,但是液晶在高频交流电作用下,也不能

25、很好地显示,故一般采用125150Hz的方波。 液晶显示器的驱动方式由电极引线的选择方式确定,在选择好液晶显示器后,用户无法改变驱动方式。 静态驱动方式:简单显示时 时分割驱动方式:显示字段多时,静态驱动方式,当此字段上两个电极的电压相位相同时,两电极的相对电压为零,该字段不显示; 若此字段上两个电极的电压相位相反时,两电极的相对电压为两倍幅值方波电压,该字段呈黑色显示。,图形液晶显示模块ZY12864D,电源:5V,自带10V负压; 全屏幕点阵; 显示点数:128列64行; 七种指令; 与CPU接口:8位并行数据总线、8条控制线; 可完成图形显示,也可显示84个(1616点阵)汉字; 具有背光电源。,实物外观,64列,64列,64行,ZY12864D外部原理图,背光设置,电源设置,数据接口,控制信号,模块引脚功能,主要组成,指令寄存器IR和数据寄存器DR 显示控制触发器DFF:1开显示 XY地址计数器:位计数器,高3位为X地址计数器,低6位为Y地址计数器。 Z地址计数器:6位计数器,用来显示行扫描同步。当一行扫描完成后,该地址计数器自动加1,指向下一行扫描数据。 显示数据存储器DDRAM:1显示。 忙标志BF:1时系统忙;0时可对显示模块进行读写操作。,操作命令,DDRAM地址表,硬件电路连接图,273,D07,Q0,Q1,Q2,373,G,8XX51,A15 A14 A13

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论