版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、接口与通讯技术接口与通讯技术武汉科技大学武汉科技大学计算机科学与技术学院计算机科学与技术学院第第1313章基本人机交互设备接口章基本人机交互设备接口 本章内容本章内容13.1 13.1 键盘接口键盘接口13.2 LED13.2 LED数码显示器接口数码显示器接口13.3 13.3 可编程键盘可编程键盘/LED/LED接口芯片接口芯片82C79A82C79A13.4 13.4 打印机接口打印机接口13.1 13.1 键盘接口键盘接口13.1.1 13.1.1 键盘的类型键盘的类型1. 按键的种类按键的种类机械式、电容式、导电橡胶式、薄膜式2. 键盘的结构键盘的结构 线性键盘线性键盘:每个按键直接
2、与微机接口相连;按键少时适用 矩阵键盘矩阵键盘:可减少与微机接口的连线数目 矩阵键盘的识键和译键方法矩阵键盘的识键和译键方法非编码键盘、编码键盘u编码键盘:编码键盘:内部设有键盘编码器,能识键、生成键码、去抖动、防串键;硬件电路复杂u非编码键盘:非编码键盘:只提供键盘矩阵,按键的识别、键码的提供都由软件来完成;结构简单,成本低13.1.2 13.1.2 键盘的结构与工作原理键盘的结构与工作原理非编码键盘1. 线性键盘的结构与工作原理线性键盘的结构与工作原理硬件接口:硬件接口:82C55A82C55APA0PA1PA2PA3PA4PA5PA6PA7CPUCPU总线D0D1D2D3D4D5D6D7
3、5.1K8+5VS0S1S2S3S4S5S6S713.1.2 13.1.2 键盘的结构与工作原理键盘的结构与工作原理非编码键盘1. 线性键盘的结构与工作原理线性键盘的结构与工作原理软件编程:软件编程:查询是否有键按下确定按下的键,执行服务例如:例如:按下S0报警;按下S1解除报警;按下S2退出开始置PA口为输入方式有键闭合吗?是S0闭合吗?是S1闭合吗?是S2闭合吗?延时10ms消除抖动解除报警报警结束NYYYYNNN有键闭合吗?NY线性键盘的汇编语言程序线性键盘的汇编语言程序MOV DX,303HMOV AL,90HOUT DX,AL;82C55A初始化KB: MOV DX,300HIN A
4、L,DXAND AL,07HJZ KB;检查3个键是否有键按下CALL DELAY;延时去抖动MOV DX,300HIN AL,DXAND AL,07HJZ KB;再次检查是否按键CMP AL,01HJZ BJ;按下S0CMP AL,02HJZ JBJ;按下S1CMP AL,04HJZ STP;按下S2JMP KBDELAY:延时子程序(略)BJ: 报警处理(略)JBJ: 解除报警处理(略)STP: MOV AX,4C00HINT 21H13.1.2 13.1.2 键盘的结构与工作原理键盘的结构与工作原理非编码键盘2. 矩阵键盘的结构与工作原理矩阵键盘的结构与工作原理行扫描方式:行扫描方式:列
5、线一端接输入端口,另一端接高电平;行线接输出端口;轮流对行线输出低电平,从列线读扫描结果列扫描方式:列扫描方式:行线一端接输入端口,另一端接高电平;列线接输出端口;轮流对列线输出低电平,从行线读扫描结果工作原理工作原理(以列扫描为例):82C55A82C55APA0PA1PA2PA3PB0PB1PB2PB3CPUCPU总线5.1K4+5VS2S1S3S4S6S5S7S8S10S9S11S12S14S13S15S1613.1.3 13.1.3 键盘接口设计键盘接口设计例例13.113.1 设计一个采用行扫描行扫描方式的34非编码键盘接口硬件设计:硬件设计:采用82C55A作为接口芯片,PA输出,
6、PB输入82C55A82C55APA0PA1PA2 PB0PB1PB2PB3CPUCPU总线+5VS4S8S0S5S9S1S6S10S2S7S11S30行1行2行0列1列2列3列行扫描方式行扫描方式3 3 4 4非非 编码键盘的软件设计编码键盘的软件设计行扫描方式识键和译键的步骤:行扫描方式识键和译键的步骤:判断是否有键按下去抖动延时1020ms找到被按下的键根据键号进行处理82C55A82C55APA0PA1PA2 PB0PB1PB2PB3CPUCPU总线+5VS4S8S0S5S9S1S6S10S2S7S11S30行1行2行0列1列2列3列行扫描方式行扫描方式3 3 4 4非非 编码键盘查找
7、按键的汇编程序编码键盘查找按键的汇编程序MOV DX,303HMOV AL,82HOUT DX,AL;82C55A初始化;检查是否有键按下BEGIN:MOV DX,300HMOV AL,00HOUT DX,AL;令所有行线为0WAIT1:MOV DX,301HIN AL,DXAND AL,0FHCMP AL,0FH;读列线,判断是否按键JZ WAIT1;无按键,等待MOV CX,7FFHL0:LOOP L0;延时去抖动;识别哪一个键被按下ST:MOV BL,3;设置行数MOV AH,4;设置列数MOV AL,0FEH;起始行扫描码(0行开始)MOV CL,0FH;列线屏蔽码(只查低4位)MOV
8、 CH,0FFH;起始键号(-1的补码)L1:MOV DX,300HOUT DX,AL;扫描一行ROL AL,1MOV AH,ALMOV DX,301HIN AL,DXAND AL,CLCMP AL,CL;是否有列线为0JNZ L2ADD CH,BH;无,修改键号指向改行末列键号MOV AL,AHDEC BL;行数减1JNZ L1JMP BEGINL2:INC CH;键号加1,指向本行首列键号RCR AL,1;右移1位,检测一列JC L2MOV AL,CH;该列为0,键号送ALJMP KeyTable;转去查找键盘编码表,获取键码;或者直接转向按键相应的子程序去执行相关操作13.2 LED13
9、.2 LED数码显示器接口数码显示器接口13.2.1 LED13.2.1 LED显示器的结构与工作原理显示器的结构与工作原理pgfedcbVCC(b)共阳极apgfedcb(a)共阴极aabcdefg(c)内部排列p13.2 LED13.2 LED数码显示器接口数码显示器接口13.2.2 LED13.2.2 LED显示器的字形码显示器的字形码(段码)采用不同的段进行组合来表示字符形状的数据七段数码显示器的字形码格式七段数码显示器的字形码格式数据位数据位D7D6D5D4D3D2D1D0显示段名显示段名pgfedcba七段七段LEDLED显示器字符与字形码对照表显示器字符与字形码对照表显示显示字符
10、字符0123456789ABCDEF字形码字形码( (共阴共阴) )3FH06H5BH4FH66H6DH7DH07H7FH6FH77H7CH39H5EH79H71H字形码字形码( (共阳共阳) )40H79H24H30H19H12H02H78H00H10H08H03H46H21H06H0EH13.2.3 LED13.2.3 LED显示器的显示方式显示器的显示方式静态显示:静态显示: 构成字符的发光二极管总处于点亮状态动态显示:动态显示:用扫描方式使多位显示器逐位轮流循环显示13.3 13.3 可编程键盘可编程键盘/LED/LED接口芯片接口芯片82C79A82C79A输入:输入:扫描键盘、扫描
11、传感器、选通输入方式输出输出:8段LED显示器接口,8个或16个,左(右)入口13.3.1 82C79A13.3.1 82C79A的外部特性的外部特性(40脚)1. 1. 面向面向CPUCPU的信号线的信号线(15)D D0 07 7、CSCS、RDRD、WRWRCLKCLK:系统时钟,为82C79A提供内部定时RESETRESET:复位,高有效;复位后为16个字符显示(左进方式),编码扫描键盘(双键锁定),时钟设置为31A A0 0:端口选择;A0=0数据寄存器,A0=1命令/状态寄存器IRQIRQ:中断申请,高有效;通常键盘有数据输入时有效13.3 13.3 可编程键盘可编程键盘/LED/
12、LED接口芯片接口芯片82C79A82C79A13.3.1 82C79A13.3.1 82C79A的外部特性的外部特性(40脚)2. 2. 面向键盘的信号线面向键盘的信号线(14)SLSL0 0SLSL3 3:矩阵键盘的行扫描线,可编程为编码输出/译码输出RLRL0 0RLRL7 7:返回线,用作键盘矩阵的列线值返回SHIFTSHIFT:移位信号,高有效,用于扩充键功能,上/下档键CNTL/STBCNTL/STB:控制线,高有效;用于扩充键的控制功能,功能键3. 3. 面向显示器的信号线面向显示器的信号线(9)SLSL0 0SLSL3 3(与键盘共用):字符显示器的位扫描线,可编程为左进/右进
13、OUTAOUTA0 0OUTAOUTA3 3、OUTBOUTB0 0OUTBOUTB3 3、A、B组显示输出线,两组可独立或合并使用;输出与SL03同步,实现按位分时显示BDBD:显示消隐,低有效;显示切换或执行消隐命令时有效13.3.2 13.3.2 82C79A82C79A的内部寄存器的内部寄存器 8279 的内部结构框图 数据缓冲器 I/O 控制器 FIFO RAM状态寄存器 显示 RAM地址寄存器 168 显示 RAM 控制与定时寄存器 88 FIFO RAM 键盘去抖动与控制 显示寄存器 定时控制 扫描计数器 回复缓冲器 A0 CLK RESET D07 RD CS WR IRQ 片
14、内总线 OUTA03 OUTB03 BD SL03 RL07 SHIFT CNTL/STB 13.3.2 13.3.2 82C79A82C79A的内部寄存器的内部寄存器1. 1. 显示器显示器/ /键盘共享的模块键盘共享的模块(1)(1)扫描计数器:扫描计数器:4位的计数器,可编程为译码/编码方式译码译码扫描:最低两位经译码,由SL03输出,作为键盘及显示器的扫描信号(任何时刻SL03只有一个有效,实现4选1)编码编码扫描:计数器的状态由SL03直接输出,再经外部译码,才能作为扫描信号(实现16选1)(2)(2)定时控制:定时控制:将外部时钟CLK分频为内部要求的100KHz2. LED2.
15、LED显示器接口模块显示器接口模块(1)(1)显示存储器显示存储器RAMRAM:168位,存储16个数码显示器的数据(2)(2)显示字符寄存器:显示字符寄存器:存放要显示的字符,显示过程中与显示扫描配合,轮流从显示RAM中读出显示信息输出(3)(3)显示地址寄存器:显示地址寄存器:读/写显示RAM的地址指针;可由命令直接设定,或设置为每次读/写后自动加1输出端与显示单元中各位的对应关系输出端与显示单元中各位的对应关系D7D6D5D4D3D2D1D0OUTA3OUTA2OUTA1OUTA0OUTB3OUTB2OUTB1OUTB013.3.2 13.3.2 82C79A82C79A的内部寄存器的内
16、部寄存器3. 3. 键盘接口模块键盘接口模块(1)(1)返回缓冲器:返回缓冲器:缓冲并锁存回复信号RL07的状态;与CNTL、SHIFT一起构成完整的键盘按键数据(2)(2)键盘去抖动:键盘去抖动:实现对键盘输入的去抖动(3)FIFO RAM(3)FIFO RAM及状态寄存器及状态寄存器FIFO RAMFIFO RAM:88位,键盘输入方式暂存键盘输入数据FIFO RAMFIFO RAM状态寄存器:状态寄存器:寄存FIFO RAM的工作状态,FIFO RAM不空时,会使IRQ变高键盘按键的数据格式键盘按键的数据格式D7D6D5D4D3D2D1D0CNTLSHIFTSL2SL1SL0RL2RL1
17、RL0控制移位行号编码列号编码最多最多8 8 8 8键盘键盘, ,扩充扩充后可达后可达6464 4 4键定义键定义82C79A82C79A的数据输入的数据输入/ /输出方式输出方式 输入方式输入方式键盘输入键盘输入(键扫描)、传感器扫描、选通输入、传感器扫描、选通输入键扫描:键扫描:按下一个键时形成键盘数据,送入FIFO RAM并产生IRQ(数据读出后撤除) 传感器扫描:传感器扫描:FIFO RAM中8个单元用于寄存传感器的现时状态,地址编号与扫描线顺序一致,传感器阵列(最多为88位)中某一位状态发生变化时,产生IRQ选通输入:选通输入:与82C55A选通输入端口功能相同,CNTL/STB作为
18、选通信号,上升沿将RL07锁存到FIFO RAM 输出方式输出方式8 8字符左入口、字符左入口、1616字符左入口、字符左入口、8 8字符右入口、字符右入口、1616字符右入口字符右入口左入口:左入口:显示器位置编号与显示RAM地址一一对应(0号单元显示在0号显示器上),显示时从最左位开始右入口右入口(计算机显示方式):最高位从最右边显示器进入,以后逐次左移13.3.3 13.3.3 82C79A82C79A的编程模型的编程模型数据端口数据端口30CH 30CH ,命令,命令/ /状态端口状态端口30DH30DH1. 1. 命令字命令字8个,最高3位为特征位,02、4号命令使用最多82C79A
19、82C79A的命令字的命令字序号序号命令名称命令名称特征码和命令参数特征码和命令参数D7 D6 D5 D4 D3 D2 D1 D0 0设置键盘及显示方式0 0 0 D D K2 K1 K01设置扫描频率0 0 1 P P P P P2读FIFO RAM0 1 0 AI A2 A1 A03读显示RAM0 1 1 AI A3 A2 A1 A04写显示RAM1 0 0 AI A3 A2 A1 A05禁写显示RAM/消隐1 0 1 IWA IWB BLA BLB6清除1 1 0 CD2 CD1 CD0 CF CA7结束中断/设置错误方式 1 1 1 E D7 D6 D5D4 D3 D2 D1 D0 特
20、征位命令参数82C79A82C79A命令字的一般格式命令字的一般格式13.3.3 13.3.3 82C79A82C79A的编程模型的编程模型1. 1. 命令字命令字(1)0(1)0号命令号命令 :设置键盘及显示方式K K0 0:设置扫描方式;K0=0编码扫描,K0=1译码扫描K K2 2K K1 1 :设置输入方式(其中4种为键盘输入)DDDD :设置显示输出方式特征位特征位命令参数命令参数0 0 0 D D K2 K1 K0K K2 2 K K1 1输入方式输入方式D DD D显示输出方式显示输出方式0 0扫描键盘输入,双键锁定0 08字符显示,左进方式0 1扫描键盘输入,N键轮回0 116
21、字符显示,左进方式1 0扫描传感器输入1 08字符显示,右进方式1 1选通输入1 116字符显示,右进方式13.3.3 13.3.3 82C79A82C79A的编程模型的编程模型1. 1. 命令字命令字(2)1(2)1号命令号命令 :设置扫描频率PPPPPPPPPP:设置对外部输入CLK的分频系数N(231)以获得100KHz(3)2(3)2号命令号命令 :读FIFO RAM的设置A A2 2 A A0 0 :指定读取键盘FIFO RAM中字符的起始地址AIAI :地址自动增量标志;AI=1每次读出后地址自动加1特征位特征位命令参数命令参数0 0 1 P P P P P特征位特征位命令参数命令
22、参数0 1 0 AI A2 A1 A013.3.3 13.3.3 82C79A82C79A的编程模型的编程模型1. 1. 命令字命令字(4)4(4)4号命令号命令 :写显示RAM的设置A A3 3 A A0 0 :指定写显示RAM中字符的起始地址AIAI :地址自动增量标志;AI=1每次写入后地址自动加1特征位特征位命令参数命令参数1 0 0 AI A3 A2 A1 A013.3.3 13.3.3 82C79A82C79A的编程模型的编程模型2. 2. 状态字状态字指示FIFO RAM中待取走的字符数和有无错误发生DU:显示无效标志,执行显示RAM清除命令时为1S/E:传感信号结束/特殊错误方
23、式标志;键盘输入方式下作特殊错误标志,S/E=1:多键同时按下O:超出标志,向已满的FIFO RAM写入时置1U:“空”标志,从已空的FIFO RAM读出时置1F:“满”标志,FIFO RAM中的字符数为8时置1N2N1N0:FIFO RAM中待取走的字符个数D7D6D5D4D3D2D1D0DUS/EOUFN2N1N013.3.4 13.3.4 键盘键盘/ /数码显示器接口设计数码显示器接口设计例例13.2 13.2 设计一个8位LED显示器接口,要求从0位开始显示13579H六个字符,显示方式为左进,采用编码扫描硬件设计:硬件设计:接口由82C79A芯片、扫描译码器7445和段驱动器7406
24、组成82C79A82C79A:核心,负责LED与CPU的连接、执行控制命令74457445:负责LED显示器的动态扫描,产生位控信号74067406:为LED的8段字形码提供电流驱动 D07 RESET RD WR CLK A0 CS SHIFT CNTL RL0RL7 SL0 SL1 SL2 SL3 OUTA03 OUTB03 82C79A CPU 74LS45 A B C D 扫描译码器 7406 反相驱动 +5V 07 00 01 p g a 段驱动器 T7 T0 13.3.4 13.3.4 键盘键盘/ /数码显示器接口设计数码显示器接口设计例例13.2 13.2 软件设计软件设计从0位
25、开始显示13579H六个字符,六个字符的共阴极字形码存于BUF存储区CODE SEGMENTASSUME CS:CODE,DS:CODE ORG 100HBEGIN: JMP START BUF DB 06H,4FH,6DH,07H,67H,76HSTART: MOV AX,CODEMOV DS,AX;82C79A初始化MOV DX,30DHMOV AL,00H;方式命令字OUT DX,ALMOV AL,39H;设置分频系数OUT DX,ALMOV AL,90H;设置写显示RAM地址OUT DX,ALMOV SI,OFFSET BUFMOV CX,6;显示器显示字符L:MOV DX,30CHM
26、OV AL,SIOUT DX,ALINC SIDEC CXJNZ LMOV AX,4C00HINT 21HCODE ENDSEND BEGIN13.3.4 13.3.4 键盘键盘/ /数码显示器接口设计数码显示器接口设计例例13.3 13.3 设计一个键盘及LED双功能接口,连接24键的键盘和8个共阳极数码显示器。键盘采用编码扫描、双键锁定;显示器采用编码扫描、右进方式。外部时钟CLK=2.5MHz。要求从键盘读取10个字符代码;在显示器上从0位开始显示“HELLO”五个字符硬件设计:硬件设计: D07 RESET RD WR CLK A0 CS SHIFT CNTL RL0 RL7 SL0
27、SL1 SL2 SL3 OUTA03 OUTB03 82C79A CPU 38 矩阵键盘 74LS45 A B C D 扫描译码器 74LS156 译码器 A B C Y0 Y1 Y2 74LS06 反相驱动 +5V 00 07 06 DIGIT7 段驱动器 DIGIT0 13.3.4 13.3.4 键盘键盘/ /数码显示器接口设计数码显示器接口设计例例13.3 13.3 软件设计软件设计键盘输入程序段键盘输入程序段CODE SEGMENTASSUME CS:CODE,DS:CODE ORG 100HBEGIN: JMP START BUF DB 10 DUP(0)START: MOV AX,
28、CODEMOV DS,AX;82C79A初始化MOV DX,30DHMOV AL,00H;方式命令字OUT DX,ALMOV AL,39H;设置分频系数OUT DX,ALMOV DI,OFFSET BUFMOV CX,10;读状态字LOOP1: MOV DX,30DHIN AL,DXTEST AL,07HJZ LP1;设置读出地址MOV AL,40HOUT DX,ALMOV DX,30CHIN AL,DX ;读数据MOV DI,ALINC DIDEC CXJNZ LOOP1MOV AX,4C00HINT 21HCODE ENDSEND BEGIN13.3.4 13.3.4 键盘键盘/ /数码显
29、示器接口设计数码显示器接口设计例例13.3 13.3 软件设计软件设计显示器输出显示器输出程序段程序段CODE SEGMENTASSUME CS:CODE,DS:CODE ORG 100HBEGIN: JMP START BUF DB FH,38H,38H,79H,76HSTART: MOV AX,CODEMOV DS,AX;82C79A初始化MOV DX,30DHMOV AL,10H;方式命令字OUT DX,ALMOV AL,39H;设置分频系数OUT DX,ALMOV AL,90H;设置写显示RAM地址OUT DX,ALMOV SI,OFFSET BUFMOV CX,5;显示器显示字符L:
30、MOV DX,30CHMOV AL,SIOUT DX,ALINC SIDEC CXJNZ LMOV AX,4C00HINT 21HCODE ENDSEND BEGIN13.4 13.4 打印机接口打印机接口13.4.1 13.4.1 并行打印机接口标准并行打印机接口标准(Centronics标准,8位并行)1. 1. 信号线定义信号线定义引脚引脚信号信号功能说明功能说明1STROBESTROBE数据选通数据选通29DATADATA0 07 78 8位数据线位数据线10ACKACK应答信号应答信号11BUSYBUSY打印机忙打印机忙12PE无纸13SLCT联机请求14AUTOFEEDXT自动走纸16逻辑地17机架地1930地双绞线的回线31INIT初始化(复位)32ERROR无纸、脱机、出错指示33地35+5V通过4.7K电阻接+5V36SLCTIN允许打印机工作15,18,34 不用(未定义)13.4 13.4 打印机接口打印机接口13.4.1 13.4.1 并行打印机接口标准并行打印机接口标准2. 2. 工作时序工作时序打印机与打印机与CPUCPU采用查询方式传送数据的步骤:采用查询方式传送数据的步骤:CPU查询BUSY,BUSY=1则等待;BUSY=0送数CPU通过并口把
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计算机软硬件购销合同
- 详解投标人须知的招标文件核心内容
- 语文大专阅读理解卷
- 财务顾问合同服务亮点
- 货物采购招标文件模板要点
- 质量技能担保
- 购物卡采购合同版
- 购销合同延期的影响
- 购销合同门禁系统的技术实践经验
- 走读生自觉培养自我保护能力保证书
- MOOC 机械设计-北京交通大学 中国大学慕课答案
- 警察校园突发事件安全讲座
- 煤矿消防知识培训课件
- GB/T 43743-2024工业回用水处理设施运行管理导则
- 幼儿园大班数学活动《5的加减》
- 带状疱疹病人的个案护理
- 国家开放大学《Python语言基础》实验2:基本数据类型和表达式计算参考答案
- 初中图书目录
- 甲方与乙方的权利义务
- 流程让管理更高效(流程管理全套方案制作、设计与优化)
- 充电桩建设项目经济效益和社会效益分析报告
评论
0/150
提交评论