您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 第9章(第5版)李朝青-单片机原理及接口技术(第5版)课件
单片机原理及接口技术第9章应用系统配置及接口技术单片机原理及接口技术应用系统配置及接口系统前向通道:数字量、开关量、模拟量输入(A/D)系统后向通道:数字量、开关量、模拟量输出(D/A)人-机通道:键盘、显示器、打印机等图9-1系统前向、后向、人-机通道配置框图单片机原理及接口技术9.1人机通道配置与接口技术►进行人机对话。包括人对系统的状态干预与数据输入,还有系统显示运行状态与运行结果等。►键盘、显示器用来完成人机对话的人机通道。9.1.1键盘接口及处理程序9.1.2LED显示器接口及显示程序单片机原理及接口技术9.1.1键盘接口及处理程序键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件译码器实现,并产生键编号或键值的称为编码键盘,如BCD码键盘、ASCII码键盘等;靠软件识别的称为非编码键盘。单片机原理及接口技术键盘中的按键:都是一个常开开关电路。当按键K未被按下时,P1.0输入为高电平;当按键K闭合时,P1.0输入为低电平。图9-2按键电路单片机原理及接口技术通常按键在闭合及断开的瞬间均伴有一连串的抖动。如图所示。抖动时间一般为5~10ms。键抖动会引起一次按键被误读多次,必须去除键抖动。可用硬件或软件两种方法消除。软件方法去抖动,即检测出键闭合后执行一个5~10ms延时程序,再一次检测,如果仍保持闭合,则确认为真正按下。当检测到按键释放后,也要给5~10ms的延时,待后沿抖动消失后,才能转入该键的处理程序。键的消抖图9-3按键时的抖动单片机原理及接口技术1)独立式非编码键盘接口及处理程序各按键相互独立地接通一条输入数据线,如图所示。当一个键按下时,与之相连的输入数据线即清0(低电平),平时该线为1(高电平)。要判别是否有键按下,用单片机的位处理指令十分方便。优点是电路简单;缺点是占用I/O线多。图9-4独立连接式非编码键盘1、键盘结构单片机原理及接口技术查询方式键盘的处理程序程序清单(设I/O为P1口):START:MOVA,#0FFH;输入时先置P1口为全1MOVP1,AMOVA,P1;键状态输入PL1:JNBACC.0,P0F;0号键按下转P0F标号地址JNBACC.1,P1F;1号键按下转P1F标号地址JNBACC.2,P2F;2号键按下转P2F标号地址JNBACC.3,P3F;3号键按下转P3F标号地址JNBACC.4,P4F;4号键按下转P4F标号地址JNBACC.5,P5F;5号键按下转P5F标号地址JNBACC.6,P6F;6号键按下转P6F标号地址JNBACC.7,P7F;7号键按下转P7F标号地址LJMPSTART;无键按下返回单片机原理及接口技术P0F:LJMPPROM0P1F:LJMPPROM1;入口地址表┊┊P7F:LJMPPROM7PROM0:…;0号键功能程序LJMPSTART;0号键执行完返回PROM1:…LJMPSTART┊PROM7:…LJMPSTART由程序可以看出,各按键由软件设置了优先级,优先级顺序依次为0~7。单片机原理及接口技术2)行列式键盘接口及工作原理图9-64×4矩阵键盘接口图为了减少键盘与单片机接口时所占用I/O线的数目,在键数较多时,通常都将键盘排列成行列矩阵形式.单片机原理及接口技术按键扫描的工作过程如下:①判断键盘中是否有键按下;②进行行扫描,判断是哪一个键按下,若有键按下,则调用延时子程序去抖动;③读取按键的位置码;④将按键的位置码转换为键值(键的顺序号)0、1、2…、F。在扫描过程中,当发现某行有键按下,也就是输入的列线中有一位为0时,便可判别闭合按键所在列的位置,根据行线位置和列线位置就能判断按键在矩阵中的位置,知道是哪一个键按下。单片机原理及接口技术首先判别键盘中有无键按下:由I/O口向键盘送(输出)全扫描字,然后读入(输入)列线状态来判断。方法:向行线(水平线)输出全扫描字00H,把全部行线置为“0”,然后将列线的状态读入累加器A中。如果有按键按下,总有一根列线电平被拉至低电平,使列输入不全为1。判断键盘中哪一个键被按下:通过将行线逐行置低电平后,检查列输入状态实现的。方法:依次给行线送“0”,然后查所有列线状态,称行扫描。如果全为1,则所按下的键不在此行;如果不全为1,则所按下的键必在此行,而且是在与“0”列线相交交点上的那键。单片机原理及接口技术行扫描法识别键号的工作原理:将第0行输出低电平,其余行高电平时,输出编码为1110。然后读取列,判别第0行是否有键按下。若有一键按下,则相应列被拉到低电平,则表示第0行和此列相交位置上有按键按下。若没有任一条列线为低电平,则说明0行上无键按下。将第1行变为低电平,其余行高电平时,输出编码为1101。读取各列,判别是有哪一列键按下方法同上。将第2行变为低电平,其余行为高电平时,输出编码为1011。判别是否有哪一列键按下的方法同上。将第3行变为低电平,其余行为高电平时,输出编码为0111。判别是否有哪一列键按下的方法同上。根据行线扫描值(行码)与列线输入值(列码)可唯一确定按下的键并获得该键的位置码(键码)例如:行码=1011B;列码=1101B则:键码=10111101B单片机原理及接口技术键的位置码及键值的译码过程扫描过程后得到的行号存放在R0,列号存放在R2中。键值(号)的获得(译码)通常采用计数译码法。根据矩阵的结构,每个按键值=行号×每行按键数+列号即:键号(值)=行首键号+列号第0行的键值为:0行×4+列号(0~3)为0、1、2、3;第1行的键值为:1行×4+列号(0~3)为4、5、6、7;第2行的键值为:2行×4+列号(0~3)为8、9、A、B;第3行的键值为:3行×4+列号(0~3)为C、D、E、F。4×4键盘行首键号为0、4、8、C,列号为0,1,2,3。键值译码子程序为DECODE,该子程序出口:键值在A中单片机原理及接口技术图9-74×4键盘扫描流程图单片机原理及接口技术(3)键盘扫描子程序(参见图9-7)出口:键值(键号)在A中KEY:MOVP1,#0F0H;令所有行为低电平KEY1:MOVR7,#0FFH;设置计数常数DJNZR7,KEY1;延时MOVA,P1;读取P1口的列值CPLA;求反后,有高电平就有键按下ANLA,#0F0H;判别有键值按下吗?JZEKEY;无键按下时退出LCALLDEL20ms;延时20ms去抖动MOVA,P1;再次读取P1口的列值CPLA;求反后,有高电平就有键按下ANLA,#0F0H;判别有键值按下吗?JZEKEY;无键按下时退出SKEY:MOVA,#00;下面进行行扫描,1行1行扫MOVR0,A;R0作为行计数器,开始为0MOVR1,A;R1作为列计数器,开始为0MOVR3#0FEH;R3暂存行扫描字,低4位为行扫描字SKEY1:MOVA,R3单片机原理及接口技术MOVP1,A;输出行扫描字,高4位全1NOPNOPNOP;3个NOP操作使P1口输出稳定MOVA,P1;读列值MOVR1,A;暂存列值CPLA;取列值ANLA,#0F0H;高电平则有键闭合S123:JNZSKEY3;有键按下转SKEY3INCR0;行计数器加1SETBC;准备将行扫描左移1位,;形成下一行扫描字,C=1保证输出行扫描字中高4位全为1,;为列输入作准备,低4位中只有1位为0MOVA,R3;R3带进位C左移1位RLCAMOVR3,A;形成下一行扫描字→R3MOVA,R0CJNEA,#04H,SKEY1;最后一行扫(4次)完了吗?EKEY:RET单片机原理及接口技术;列号译码SKEY3:MOVA,R1JNBACC.4,SKEY5JNBACC.5,SKEY6JNBACC.6,SKEY7JNBACC.7,SKEY8AJMPEKEYSKEY5:MOVA,#00HMOVR2,A;存0列号AJMPDKEYSKEY6:MOVA,#01HMOVR2,A;存1列号AJMPDKEYSKEY7:MOVA,#02HMOVR2,A;存2列号AJMPDKEYSKEY8:MOVA,#03HMOVR2,A;存3列号AJMPDKEY单片机原理及接口技术;键位置译码DKEY:MOVA,R0;取行号ACALLDECODEAJMPEKEY;键值(键号)译码DECODE:MOVA,R0;取行号送AMOVB,#04H;每一行按键个数MULAB;行号×按键数ADDA,R2;行号×按键数+列号=键值RET单片机原理及接口技术2、中断扫描方式中断扫描工作方式,即只有在键盘有键按下时才产生中断申请;CPU响应中断,进入中断服务程序进行键盘扫描,并做相应处理。图9-9中断方式键盘接口单片机原理及接口技术求出键号后,按不同类型进行处理。数字键:存贮、显示等功能键:转向相应的功能处理程序3.键处理图9-10求功能键地址转换程序流程图单片机原理及接口技术程序:BUFFEQU30HKEYADR:MOVA,BUFF;键号→ACJNEA,#0FH,KYARD1AJMPDIGPRO;等于F,转数字键处理KYARD1:JCDIGPRO;小于F,转数字键处理KEYTBL:MOVDPTR,#JMPTBL;送功能键地址表指针CLRC;请进位位SUBBA,#10H;功能键值(10H~1FH)减16RLA;(A)×2,使(A)为偶数:0,2,4,…JMP@A+DPTR;转相应的功能键处理程序单片机原理及接口技术JMPTBL:AJMPAAAAJMPBBBAJMPCCCAJMPDDDAJMPEEEAJMPFFFAJMPGGGAJMPHHHAJMPIIIAJMPJJJJAJMPKKKAJMPLLLAJMPMMMDIGPRO:单片机原理及接口技术9.1.2LED显示器接口及显示程序单片机应用系统中使用的显示器主要有:发光二极管,简称LED(LightEmittingDiode);液晶显示器,简称LCD(LiquidCrystalDisplay);CRT显示器单片机原理及接口技术1.LED显示器结构原理:有共阴极和共阳极两种图9-11LED7段显示器单片机原理及接口技术表9-1共阴极和共阳极7段LED显示字型编码显示字符012345678共阴极段选码3F(BF)06(36)5B(DB)4F(CF)66(F6)6D(FD)7D(FD)07(87)7F(FF)共阳极段选码C0(40)F9(79)A4(24)B0(30)99(19)92(12)82(02)F8(78)80(00)显示字符9ABCDEF-熄灭共阴极段选码6F(EF)77(F7)7C(FC)39(B9)5E(DE)79(F9)71(F1)40(C0)00(80)共阳极段选码90(10)88(08)82(03)C6(46)A1(21)86(06)8E(0E)BF(3F)FF(7F)单片机原理及接口技术例:共阴极LED,(COM)端接地,a、b、……g,dp送入11100001,则显示“7。”译码方式⑴.硬件译码:用专用译码器电路,将欲显示的字符转换为段码。⑵.软件译码:利用查表法,将段码作成一个表,以字符值为索引,可查出不同字符的相应段码。单片机原理及接口技术2.LED显示器接口及显示方式►LED显示器有静态显示和动态显示两种方式。1)LED静态显示方式:•显示某个字符时,LED相应的段恒定地导通或截止。•各位的共阴极(公共端K0)接地.若为共阳极(公共端K0),则接+5v电源。•每位的段选线(a~dp)分别与8位的输出口相连,相互独立,字符一经确定,相应锁存的输出维持不变。•可用8D锁存器(如74LS273)或带锁存的译码器(如CD4511)、串行移位寄存器(如74LS164)来扩展I/O端口.其输出端(8位)可驱动一位LED。►静态显示器的亮度较高,编程容易,管理也较简单,但占用I/O口线资源较多。在显示位数较多的情况下,一般都采用动态显示方式。单片机原理及接口技术2)LED动态显示方式在多位LED显示时,将所有位的段选线并联在一起,由一个8位I/O口控制。而共阴(或共阳)极公共端K分别由相应的I/O线控制,实现各位的分时选通。
本文标题:第9章(第5版)李朝青-单片机原理及接口技术(第5版)课件
链接地址:https://www.777doc.com/doc-4480855 .html