您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 第9章 应用系统配置及接口技术
第9章应用系统配置及接口技术9-1单片机应用系统的一般硬件组成9-2人-机通道配置与接口技术由于单片机主要用于工业测控,其典型应用系统的组成如下:9-1单片机应用系统的一般硬件组成其中包括:单片机系统用于测控目的前向传感器输入通道后向伺服控制输出通道基本的人机对话通道。复杂测控系统还包括机与机之间进行通信的互相通道。前向通道是应用系统的输入通道,与现场采集对象相连,是现场干扰进入的主要通道,是整个系统抗干扰设计的重点部位。由于所采集的对象不同,有开关量、模拟量、数字量,而这些都是由安放在测量现场的传感、变换装置产生的,许多参量信号不能满足单片机输入的要求,故有大量的、形式多样的信号变换调节电路,如测量放大器、I/F变换、A/D转换、放大、整形电路等。前向通道是一个模拟、数字混合电路系统,其电路功耗小,一般没有功率驱动要求。1.前向通道特点2.后向通道特点后向通道是应用系统的输出通道,大多数需要功率驱动。靠近伺服驱动现场,伺服控制系统的大功率负荷易从后向通道进入单片机系统,故后向通道的隔离对系统的可靠性影响很大。根据输出控制的不同要求,后向通道电路有多种多样,如模拟电路、数字电路、开关电路等,输出信号形式有电流输出、电压输出、开关量输出及数字量输出等。3.人机通道特点通常单片机应用系统大多数是小规模系统,因此,人机对话通道以及设备的配置都是小规模的,如微型打印机、功能键、LED/LCD显示器等。若需高水平的人机对话配置,如通用打印机、CRT、硬盘、标准键盘等,则往往将单片机应用系统通过外总线与通用计算机相连,享用通用计算机的外围人机对话设备。单片机应用系统中,人机对话通道及接口大多采用内总线形式,与计算机系统扩展密切相关。人机通道接口一般都是数字电路,电路结构简单,可靠性好。4.相互通道特点中、高档单片机大多设有串行口,为构成应用系统的相互通道提供了方便条件。单片机本身的串行口只为相互通道提供了硬件结构及基本的通信方式,并没有提供标准的通信规程。故利用单片机串行口构成相互通道时,要配置比较复杂的通信软件。在很多情况下,采用扩展标准通信控制芯片来组成相互通道。例如,用扩展8250、8251、SIO、8273、MC6850等通用通信控制芯片来构成相互通信接口。相互通信接口都是数字电路系统,抗干扰能力强。但大多数都需远距离传输,故需要解决长线传输的驱动、匹配、隔离等问题。9-2人-机通道配置与接口技术一、键盘接口及处理程序1.按键电路的基本概念键盘分两类:编码键盘与非编码键盘。区别是识别键符及给出相应键码的方法。编码键盘是用硬件来实现对键的识别,非编码键盘是由软件来实现键盘的定义与识别。非编码键盘经济实用,较多地应用于单片机系统中。下面将重点介绍非编码键盘接口。键盘中使用的按键一般都是常开结构键。键的操作不可避免的存在机械抖动,抖动时间5~10ms左右。单片机P1.0+5VK抖动时间<10ms开关动作时间>100ms“1”“0”<10ms延时等待10ms仍有按键信号?Y有按键信号?NYN键盘处理按键释放?NY消除抖动的两种解决办法:①硬件消抖动——使用R-S触发器。②软件消抖动——采用软件延时。&&VCC(+5V)Qab4.7k4.7k键抖动会造成CPU误读(实际按一次,误以为按了多次),为确保CPU的读键准确,需要消除抖动。P1.0P1.1P1.7+5v2.键盘结构每个按键单独占有一根I/O线。特点:配置灵活、编程简单;但按键多时,I/O线占用多。①独立式键盘键扫描程序:例:设计一个有4个独立按键的键盘接口,并编写键扫描程序。KEY1:注意:先判的键优先级高。用I/O线组成行、列结构,按键设置在行列的交点上。特点:按键多时,节省I/O线;但编程复杂。判键原理(行线作输出,列线作输入)②行列式(矩阵式)键盘I.先判键盘中有无键按下:行线输出全0(全扫描字),读列线状态,列线全1说明无键按下,列线有0定有键按下。II.判具体哪个键按下:行线依次送0,某列有按键,列线输入有0,某列无按键,列线输入为1。所按的键一定是在行、列线同为0的相交点上。此法称行扫描。键号:用户人为的对每个键所编的位置序号称为键号。图中16个键的键号依此是:0、1、2、3、…、F,键号与键值在使用上并不矛盾,彼此对应,程序可以转换,但使用键号为程序散转提供了方便。键值:每个键都可以根据行、列数据组合得到一个对应的值,该值称为键值(位置码)。图中16个键的键值依此是:11101110、11011110、10111110、01111110、…、01110111,键值可以用来区分每个按键。EEDEBE7EEDDDBD7DEBDBBB7BE7D7B777例:用89C51的P1口作4×4键盘接口,并编制键盘扫描子程序。出口参数(键值)→寄存器B中,若(B)=FFH,表示没键按下。K-SCAN:P1.0~P1.3输出全0延时消抖行线输出初值FEH→B键值→BB内容循环左移一位NEXT:NRETYP1.4~P1.7是全1?RETYP1.4~P1.7是全1?RETYP1.4~P1.7有0?B→P1最后一行结束?FFH→B等键释放HAVE:HAVE1:HAVE2:89C51与4×4键盘的接口电路89C51K-SCAN:MOVB,#0FFHMOVP1,#0F0HMOVA,P1ANLA,#0F0HCJNEA,#0F0H,HAVERETHAVE:LCALLDLY10MSMOVA,P1ANLA,#0F0HCJNEA,#0F0H,HAVE1RETHAVE1:MOVB,#0FEHNEXT:MOVP1,BMOVA,P1ANLA,#0F0HCJNEA,#0F0H,HAVE2MOVA,BRLAMOVB,ACJNEA,#0EFH,NEXTK-SCAN:P1.0~P1.3输出全0延时消抖行线输出初值FEH→B键值→BB内容循环左移一位NEXT:NRETYP1.4~P1.7是全1?RETYP1.4~P1.7是全1?RETYP1.4~P1.7有0?B→P1最后一行结束?FFH→B等键释放HAVE:HAVE1:HAVE2:HAVE2:MOVA,BANLA,#0FHMOVB,AMOVA,P1ANLA,#0F0HADDA,BMOVB,AMOVP1,#0F0HNEXT1:MOVA,P1ANLA,#0F0HCJNEA,#0F0H,NEXT1RETDLY10MS:┇RETK-SCAN:P1.0~P1.3输出全0延时消抖行线输出初值FEH→B键值→BB内容循环左移一位NEXT:NRETYP1.4~P1.7是全1?RETYP1.4~P1.7是全1?RETYP1.4~P1.7有0?B→P1最后一行结束?FFH→B等键释放HAVE:HAVE1:HAVE2:①数字键操作:要求向CPU输入一个具体数字。当CPU扫描到数字键的键值后,将其转换成相应的数字作数字信息用或显示。②功能键操作:要求CPU去完成功能键所指定的任务。当CPU扫描到功能键的键值后,应准确无误的找到该功能键的功能处理程序加以执行。3.键操作及功能程序键盘中的键一般分两类:数字键和功能键。有按键输入?延时消抖取键值(或求键号)延时等待数字键处理程序功能键处理程序确有按键?按键释放?是数字键?NNN①检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。②有可靠的逻辑处理办法。每次只处理一个按键,其间任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。③准确输出键值(或键号),以满足跳转指令要求。一个完善的键盘控制程序应具备以下功能:①编程扫描方式利用CPU完成其它工作之余,调用键盘扫描子程序来响应键盘输入的要求。4.键盘的工作方式对键盘的响应取决于键盘的工作方式,键盘的工作方式应根据实际应用系统中CPU的工作状况而定,其选取的原则是既要保证CPU能及时响应按键操作,又不要过多占用CPU的工作时间。采用键盘扫描方式,CPU经常处于空扫描状态。为提高CPU工作效率,可采用中断扫描方式。②中断扫描方式当无键按下时,CPU处理自己的工作,有键按下时,产生中断请求,CPU转去执行键盘扫描中断服务程序。要求四根行线(P1.4~P1.7)平时处在低电平状态。当无键按下时,与门各输入端均为高电平,保持输出端为高电平;当有键按下时,/INT1端为低电平,向CPU申请中断,CPU转去执行键盘扫描中断服务程序。中断扫描键盘电路接口:LED数码管由7个显示段和1个小数点组成。7个段构成一个“8”字轮廓,可显示0~9和一些特殊字符。7个段和1个小数点对应8个发光二极管,发光二极管的阴极或阳极联成一个公共点,因此,有共阴或共阳两种连接。每个发光二极管需外接限流电阻,工作电流在5~10mA之间。abdpcom共阴LEDafbgecddpgfcomabcdcomedpabdpcom共阳LED二、LED显示器接口及显示程序1.LED数码管结构原理COMP1.0~1.7MCS-51afbgecddpabdpabdpCOMLED的字形码(字段码)显示字符共阴极共阳极03FHC0H106HF9H8.FFH00H‘灭’00FFHF71H84HU3EHC1HP.F3H02HD7D6D5D4D3D2D1D0dpgfedcba注意:字形码与I/O线的具体连接相关。当LED字段引脚(a~dp)与I/O线连接后,每个显示字形对应一个字形码。对于N位LED显示器来讲,有N根位选线(COM脚)和8×N根段选线(a~dp脚)。位选线用来控制显示位的亮暗,段选线用来控制字符选择。多位LED显示器有两种工作方式:静态显示和动态显示。每位LED段选线与一个8位I/O口相连,所有位选线并联接地(共阴)或接+5V(共阳)。字符显示在刷新前可保持不变,编程容易,管理简单。占用I/O资源较多,N位LED需8×N根I/O线。abdpCOMafbgecddpabdpCOMabdpCOM2.LED接口电路及显示方式①静态显示P2.7…P2.1P2.0P1.0P1.1P1.2COMdpCOMhbbdpCOMafbgecddpaaba各位LED的段选线并联与一个8位I/O口相连,而各自位选线另用I/O线控制。每位只能轮流点亮,分时显示字符。每位点亮间隔(扫描时间)必须小于20mS,才能保证看上去不闪烁。必须20mS内扫描一次,管理较繁,编程较难。占用I/O资源较少,N位LED只需8+N根I/O线。②动态显示在ROM中建立字形码表。设置显缓单元,存放待显字符的字形码位置号。查表找出对应字符的字形码。输出字形码到显示端口。3.显示程序设计要点DIS:MOVDPTR,#WTAB;指向字形码表首地址MOVA,DIS_BUFFER;取显缓单元中数据MOVCA,@A+DPTR;查表找字形码MOVP1,A;输出显示RETWTAB:DB3FH;字形码表‘0’——006H;‘1’——15BH;‘2’——2…comP1.0~1.789C51afbgecddpabdp例1:用P1口设计一个1位共阴LED的静态显示电路及显示子程序。静态显示子程序:例2:用P1和P2口设计一个6位共阳LED的动态显示电路及显示程序。89C51P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P1.0P1.1P1.2P1.3P1.4P1.5如果要在同一时刻显示不同的字符,从电路上看,这是办不到的。只能采用动态扫描显示方法,轮流点亮各位数码管,每位显示1ms左右,利用人眼对视觉的残留效应,使人看起来就好象在同时显示不同的字符一样。显示缓冲区地址内容7AH7BH7CH7DH7EH7FH对应位选线D0D1D2D3D4D5显示缓冲区与多位LED对应关系显缓首址7AH→R0DIS:位选初值01H→R1循环次数06H→R2取位选值位选输出,显示其中1位取一个显缓单元中数据查表找字形码输出字形码延时1msR0指向显缓下一单元修改位选值(R1移一位)显示到最右边LED?DLP:RETNY动态显示子程序流程图:字形码表DT
本文标题:第9章 应用系统配置及接口技术
链接地址:https://www.777doc.com/doc-3972391 .html