第13章基本人机交互设备接口_第1页
第13章基本人机交互设备接口_第2页
第13章基本人机交互设备接口_第3页
第13章基本人机交互设备接口_第4页
第13章基本人机交互设备接口_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

接口与通讯技术武汉科技大学计算机科学与技术学院,第13章基本人机交互设备接口,本章内容13.1键盘接口13.2LED数码显示器接口13.3可编程键盘/LED接口芯片82C79A13.4打印机接口,13.1键盘接口,13.1.1键盘的类型1.按键的种类机械式、电容式、导电橡胶式、薄膜式2.键盘的结构线性键盘:每个按键直接与微机接口相连;按键少时适用矩阵键盘:可减少与微机接口的连线数目矩阵键盘的识键和译键方法非编码键盘、编码键盘编码键盘:内部设有键盘编码器,能识键、生成键码、去抖动、防串键;硬件电路复杂非编码键盘:只提供键盘矩阵,按键的识别、键码的提供都由软件来完成;结构简单,成本低,13.1.2键盘的结构与工作原理非编码键盘,1.线性键盘的结构与工作原理硬件接口:,13.1.2键盘的结构与工作原理非编码键盘,1.线性键盘的结构与工作原理软件编程:查询是否有键按下确定按下的键,执行服务例如:按下S0报警;按下S1解除报警;按下S2退出,线性键盘的汇编语言程序,MOVDX,303HMOVAL,90HOUTDX,AL;82C55A初始化KB:MOVDX,300HINAL,DXANDAL,07HJZKB;检查3个键是否有键按下CALLDELAY;延时去抖动MOVDX,300HINAL,DXANDAL,07HJZKB;再次检查是否按键CMPAL,01HJZBJ;按下S0CMPAL,02HJZJBJ;按下S1CMPAL,04HJZSTP;按下S2JMPKBDELAY:延时子程序(略)BJ:报警处理(略)JBJ:解除报警处理(略)STP:MOVAX,4C00HINT21H,13.1.2键盘的结构与工作原理非编码键盘,2.矩阵键盘的结构与工作原理行扫描方式:列线一端接输入端口,另一端接高电平;行线接输出端口;轮流对行线输出低电平,从列线读扫描结果列扫描方式:行线一端接输入端口,另一端接高电平;列线接输出端口;轮流对列线输出低电平,从行线读扫描结果工作原理(以列扫描为例):,13.1.3键盘接口设计,例13.1设计一个采用行扫描方式的34非编码键盘接口硬件设计:采用82C55A作为接口芯片,PA输出,PB输入,行扫描方式34非编码键盘的软件设计,行扫描方式识键和译键的步骤:判断是否有键按下去抖动延时1020ms找到被按下的键根据键号进行处理,行扫描方式34非编码键盘查找按键的汇编程序,MOVDX,303HMOVAL,82HOUTDX,AL;82C55A初始化;检查是否有键按下BEGIN:MOVDX,300HMOVAL,00HOUTDX,AL;令所有行线为0WAIT1:MOVDX,301HINAL,DXANDAL,0FHCMPAL,0FH;读列线,判断是否按键JZWAIT1;无按键,等待MOVCX,7FFHL0:LOOPL0;延时去抖动;识别哪一个键被按下ST:MOVBL,3;设置行数MOVAH,4;设置列数MOVAL,0FEH;起始行扫描码(0行开始)MOVCL,0FH;列线屏蔽码(只查低4位)MOVCH,0FFH;起始键号(-1的补码),L1:MOVDX,300HOUTDX,AL;扫描一行ROLAL,1MOVAH,ALMOVDX,301HINAL,DXANDAL,CLCMPAL,CL;是否有列线为0JNZL2ADDCH,BH;无,修改键号指向改行末列键号MOVAL,AHDECBL;行数减1JNZL1JMPBEGINL2:INCCH;键号加1,指向本行首列键号RCRAL,1;右移1位,检测一列JCL2MOVAL,CH;该列为0,键号送ALJMPKeyTable;转去查找键盘编码表,获取键码;或者直接转向按键相应的子程序去执行相关操作,13.2LED数码显示器接口,13.2.1LED显示器的结构与工作原理,13.2LED数码显示器接口,13.2.2LED显示器的字形码(段码)采用不同的段进行组合来表示字符形状的数据,13.2.3LED显示器的显示方式静态显示:构成字符的发光二极管总处于点亮状态动态显示:用扫描方式使多位显示器逐位轮流循环显示,13.3可编程键盘/LED接口芯片82C79A,输入:扫描键盘、扫描传感器、选通输入方式输出:8段LED显示器接口,8个或16个,左(右)入口13.3.182C79A的外部特性(40脚)1.面向CPU的信号线(15)D07、CS、RD、WRCLK:系统时钟,为82C79A提供内部定时RESET:复位,高有效;复位后为16个字符显示(左进方式),编码扫描键盘(双键锁定),时钟设置为31A0:端口选择;A0=0数据寄存器,A0=1命令/状态寄存器IRQ:中断申请,高有效;通常键盘有数据输入时有效,13.3可编程键盘/LED接口芯片82C79A,13.3.182C79A的外部特性(40脚)2.面向键盘的信号线(14)SL0SL3:矩阵键盘的行扫描线,可编程为编码输出/译码输出RL0RL7:返回线,用作键盘矩阵的列线值返回SHIFT:移位信号,高有效,用于扩充键功能,上/下档键CNTL/STB:控制线,高有效;用于扩充键的控制功能,功能键3.面向显示器的信号线(9)SL0SL3(与键盘共用):字符显示器的位扫描线,可编程为左进/右进OUTA0OUTA3、OUTB0OUTB3、A、B组显示输出线,两组可独立或合并使用;输出与SL03同步,实现按位分时显示BD:显示消隐,低有效;显示切换或执行消隐命令时有效,13.3.282C79A的内部寄存器,13.3.282C79A的内部寄存器,1.显示器/键盘共享的模块(1)扫描计数器:4位的计数器,可编程为译码/编码方式译码扫描:最低两位经译码,由SL03输出,作为键盘及显示器的扫描信号(任何时刻SL03只有一个有效,实现4选1)编码扫描:计数器的状态由SL03直接输出,再经外部译码,才能作为扫描信号(实现16选1)(2)定时控制:将外部时钟CLK分频为内部要求的100KHz2.LED显示器接口模块(1)显示存储器RAM:168位,存储16个数码显示器的数据(2)显示字符寄存器:存放要显示的字符,显示过程中与显示扫描配合,轮流从显示RAM中读出显示信息输出(3)显示地址寄存器:读/写显示RAM的地址指针;可由命令直接设定,或设置为每次读/写后自动加1,13.3.282C79A的内部寄存器,3.键盘接口模块(1)返回缓冲器:缓冲并锁存回复信号RL07的状态;与CNTL、SHIFT一起构成完整的键盘按键数据(2)键盘去抖动:实现对键盘输入的去抖动(3)FIFORAM及状态寄存器FIFORAM:88位,键盘输入方式暂存键盘输入数据FIFORAM状态寄存器:寄存FIFORAM的工作状态,FIFORAM不空时,会使IRQ变高,82C79A的数据输入/输出方式,输入方式键盘输入(键扫描)、传感器扫描、选通输入键扫描:按下一个键时形成键盘数据,送入FIFORAM并产生IRQ(数据读出后撤除)传感器扫描:FIFORAM中8个单元用于寄存传感器的现时状态,地址编号与扫描线顺序一致,传感器阵列(最多为88位)中某一位状态发生变化时,产生IRQ选通输入:与82C55A选通输入端口功能相同,CNTL/STB作为选通信号,上升沿将RL07锁存到FIFORAM输出方式8字符左入口、16字符左入口、8字符右入口、16字符右入口左入口:显示器位置编号与显示RAM地址一一对应(0号单元显示在0号显示器上),显示时从最左位开始右入口(计算机显示方式):最高位从最右边显示器进入,以后逐次左移,13.3.382C79A的编程模型,数据端口30CH,命令/状态端口30DH1.命令字8个,最高3位为特征位,02、4号命令使用最多,13.3.382C79A的编程模型,1.命令字(1)0号命令:设置键盘及显示方式K0:设置扫描方式;K0=0编码扫描,K0=1译码扫描K2K1:设置输入方式(其中4种为键盘输入)DD:设置显示输出方式,13.3.382C79A的编程模型,1.命令字(2)1号命令:设置扫描频率PPPPP:设置对外部输入CLK的分频系数N(231)以获得100KHz(3)2号命令:读FIFORAM的设置A2A0:指定读取键盘FIFORAM中字符的起始地址AI:地址自动增量标志;AI=1每次读出后地址自动加1,13.3.382C79A的编程模型,1.命令字(4)4号命令:写显示RAM的设置A3A0:指定写显示RAM中字符的起始地址AI:地址自动增量标志;AI=1每次写入后地址自动加1,13.3.382C79A的编程模型,2.状态字指示FIFORAM中待取走的字符数和有无错误发生DU:显示无效标志,执行显示RAM清除命令时为1S/E:传感信号结束/特殊错误方式标志;键盘输入方式下作特殊错误标志,S/E=1:多键同时按下O:超出标志,向已满的FIFORAM写入时置1U:“空”标志,从已空的FIFORAM读出时置1F:“满”标志,FIFORAM中的字符数为8时置1N2N1N0:FIFORAM中待取走的字符个数,13.3.4键盘/数码显示器接口设计,例13.2设计一个8位LED显示器接口,要求从0位开始显示13579H六个字符,显示方式为左进,采用编码扫描硬件设计:接口由82C79A芯片、扫描译码器7445和段驱动器7406组成82C79A:核心,负责LED与CPU的连接、执行控制命令7445:负责LED显示器的动态扫描,产生位控信号7406:为LED的8段字形码提供电流驱动,13.3.4键盘/数码显示器接口设计,例13.2软件设计从0位开始显示13579H六个字符,六个字符的共阴极字形码存于BUF存储区CODESEGMENTASSUMECS:CODE,DS:CODEORG100HBEGIN:JMPSTARTBUFDB06H,4FH,6DH,07H,67H,76HSTART:MOVAX,CODEMOVDS,AX;82C79A初始化MOVDX,30DHMOVAL,00H;方式命令字OUTDX,ALMOVAL,39H;设置分频系数OUTDX,ALMOVAL,90H;设置写显示RAM地址OUTDX,AL,MOVSI,OFFSETBUFMOVCX,6;显示器显示字符L:MOVDX,30CHMOVAL,SIOUTDX,ALINCSIDECCXJNZLMOVAX,4C00HINT21HCODEENDSENDBEGIN,13.3.4键盘/数码显示器接口设计,例13.3设计一个键盘及LED双功能接口,连接24键的键盘和8个共阳极数码显示器。键盘采用编码扫描、双键锁定;显示器采用编码扫描、右进方式。外部时钟CLK=2.5MHz。要求从键盘读取10个字符代码;在显示器上从0位开始显示“HELLO”五个字符硬件设计:,13.3.4键盘/数码显示器接口设计,例13.3软件设计键盘输入程序段CODESEGMENTASSUMECS:CODE,DS:CODEORG100HBEGIN:JMPSTARTBUFDB10DUP(0)START:MOVAX,CODEMOVDS,AX;82C79A初始化MOVDX,30DHMOVAL,00H;方式命令字OUTDX,ALMOVAL,39H;设置分频系数OUTDX,ALMOVDI,OFFSETBUFMOVCX,10,;读状态字LOOP1:MOVDX,30DHINAL,DXTESTAL,07HJZLP1;设置读出地址MOVAL,40HOUTDX,ALMOVDX,30CHINAL,DX;读数据MOVDI,ALINCDIDECCXJNZLOOP1MOVAX,4C00HINT21HCODEENDSENDBEGIN,13.3.4键盘/数码显示器接口设计,例13.3软件设计显示器输出程序段CODESEGMENTASSUMECS:CODE,DS:CODEORG100HBEGIN:JMPSTARTBUFDBFH,38H,38H,79H,76HSTART:MOVAX,CODEMOVDS,AX;82C79A初始化MOVDX,30DHMOVAL,10H;方式命令字OUTDX,ALMOVAL,39H;设置分频系数OUTDX,ALMOVAL,90H;设置写显示RAM地址OUTDX,AL,MOVSI,OFFSETBUFMOVCX,5;显示器显示字符L:MOVDX,30CHMOVAL,SIOUTDX,ALINCSIDECCXJNZLMOVAX,4C00HINT21HCODEENDSENDBEGIN,13.4打印机接口,13.4.1并行打印机接口标准(Centronics标准,8位并行)1.信号线定义,13.4打印机接口,13.4.1并行打印机接口标准2.工作时序打印机与CPU采用查询方式传送数据的步骤:CPU查询BUSY,BUSY=1则等待;BUSY=0送数CPU通过并口把数据送到DATA0DATA7上CPU给STROBE送一个负脉冲,将数据打入打印机内部缓冲器打印机收到数据,置BUSY=1,直到处理完置BUSY=0打印

温馨提示

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

评论

0/150

提交评论