MCS-51单片机系统接口技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机原理及其接口技术主目录上一页下一页结束第8章MCS-51单片机系统接口技术教学目标8.1按键、键盘及其接口8.2LED显示及其接口8.3A/D转换器及其接口8.4D/A转换器及其接口本章小结思考题与习题单片机原理及其接口技术主目录上一页下一页结束教学目标通过本章教学,要求达到以下目标:1.理解独立式按键和矩阵式键盘的结构形式及特点。2.理解键盘扫描三种方法及特点。3.了解LED显示器的结构组成、分类和主要技术参数。4.学会LED显示器编码方法,掌握将显示数据转换为显示字段码的编程方法。5.理解静态显示和动态显示方式的电路结构、原理和特点。6.掌握典型LED显示应用电路及程序编制方法。7.了解ADC、DAC主要性能指标和分类情况。8.掌握典型芯片ADC0809、DAC0832的接口应用电路及其编程方法。单片机原理及其接口技术主目录上一页下一页结束8.1按键、键盘及其接口键盘是单片机应用系统中使用最广泛的一种数据输入设备。键盘是一组按键的组合。按键通常是一种常开型(也有常闭型的)按钮开关,常态下键的两个触点处于断开状态,按下键时它们才闭合(短路)。单片机原理及其接口技术主目录上一页下一页结束非编码键盘键码由软件扫描产生。按组成结构又可分为独立式键盘和矩阵式键盘。无论是硬件结构还是软件设计都比较简单,故重点讨论矩阵式键盘的工作原理与程序设计。通常,键盘有编码和非编码两种。编码键盘通过硬件电路产生被按按键的键码和一个选通脉冲。选通脉冲可作为CPU的中断请求信号。这种键盘使用方便,所需程序简单,但硬件电路复杂,常不被单片机采用。单片机原理及其接口技术主目录上一页下一页结束S1S4S3S2P0.0P0.1P0.2P0.389C51+5V图8.1独立式键盘接口特点:每个按键占用一条I/O线,当按键数量较多时,I/O口利用率不高,但程序编制简单。适用于所需按键较少的场合。特点:电路连接复杂,但提高了I/O口利用率,软件编程较复杂。适用于需使用大量按键的场合。89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V图8.2矩阵式键盘接口单片机原理及其接口技术主目录上一页下一页结束MCS–51单片机键输入过程8.1.1键盘控制流程单片机原理及其接口技术主目录上一页下一页结束由于按键按下时的机械动作,在按键被按下或松开的瞬间,其输出电压会产生波动,称为键抖动。为确保每按一次键单片机只进行一次处理,使键盘可靠地工作,必须消除按键抖动。消抖方法有硬件消抖和软件延时两种。键稳定键按下后沿抖动前沿抖动8.1.2键盘接口和键输入软件中应解决的几个问题1.消除键抖动单片机原理及其接口技术主目录上一页下一页结束(1)硬件消抖法:就是在键盘中附加去抖动电路,从根上消除抖动产生的可能性。右图所示电路实际上是由R-S触发器构成的单脉冲电路。当按钮开关按下时Q端输出低电平,当开关松开时Q端恢复高电平,即输出一个负脉冲,以此消除抖动。/S/RQ/Q原理:基本RS触发器,/S=0,Q=1/R=0,Q=0抖动时,/R=/S=1,Q不变。单片机原理及其接口技术主目录上一页下一页结束(2)软件消抖法:键按下的时间与操作者的按键动作有关,约为十分之几到几秒不等。而键抖动时间与按键的机械特性有关,一般为5~10ms不等。软件消抖法即是采用延时(一般延时10~20ms)的方法,以避开按键的抖动,即在按键已稳定地闭合或断开时才读出其状态。100ms10ms10ms键抖动时间软件消抖法延时区间示意图单片机原理及其接口技术主目录上一页下一页结束因不小心同时按下两个或两个以上的按键,即发生了窜键。8.1.2键盘接口和键输入软件中应解决的几个问题2.窜键处理发生窜键的处理原则:把最后放开的按键作为真正被按的按键。89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V单片机原理及其接口技术主目录上一页下一页结束(1)用键盘连接的I/O线的二进制组合表示键码。3.键编码及键值如图所示,各键相应的键值为:88H、84H、82H、81H、48H、44H、42H、41H、28H、24H、22H、21H、18H、14H、12H、11H。这种键值编码软件较为简单直观,但离散性大,不便安排散转程序的入口地址。8.1.2键盘接口和键输入软件中应解决的几个问题单片机原理及其接口技术主目录上一页下一页结束(2)顺序排列键编码。如图所示,这种方法键值的形成要根据I/O线的状态作相应的程序处理。键码可按下式形成:键码=行首键码+列号D4:0行→0000D5:1行→0100D6:2行→1000D7:3行→1100D0:0列→0000D1:1列→0001D2:2列→0010D3:3列→0011行列键码0000,0001,0010,00110100,0101,0110,01111000,1001,1010,10111100,1101,1110,1111012304812单片机原理及其接口技术主目录上一页下一页结束对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义。对是否有键按下的信息输入方式有中断方式与查询方式两种。4.键盘的监测方法8.1.2键盘接口和键输入软件中应解决的几个问题单片机原理及其接口技术主目录上一页下一页结束8.1.3非编码键盘1.独立式按键2.行列式键盘单片机原理及其接口技术主目录上一页下一页结束(1).独立式按键接口结构独立式按键的接口电路示意图(a)中断方式(b)查询方式1.独立式按键一般用排阻进行上拉。单片机原理及其接口技术主目录上一页下一页结束下面是查询方式的键盘程序。K0~K7为功能程序入口地址标号PROM0~PROM7分别为每个按键的功能程序START:MOVA,#0FFHMOVP1,A;读P1口引脚MOVA,P1;键状态输入JNBACC.0,K0;检测0号键是否按下,按下转JNBACC.1,K1;检测1号键是否按下,按下转2.独立式按键的软件结构单片机原理及其接口技术主目录上一页下一页结束JNBACC.2,K2;检测2号键是否按下,按下转JNBACC.3,K3;检测3号键是否按下,按下转JNBACC.4,K4;检测4号键是否按下,按下转JNBACC.5,K5;检测5号键是否按下,按下转JNBACC.6,K6;检测6号键是否按下,按下转JNBACC.7,K7;检测7号键是否按下,按下转AJMPSTART;无键按下返回,再顺次检测K0:AJMPPROM0K1:AJMPPROM1K7:AJIMPPROM7;入口地址表…单片机原理及其接口技术主目录上一页下一页结束PROM0:………………………;0号键功能程序………………………LJMPSTART;0号键功能程序执行完返回PROM1:………………………;0号键功能程序………………………LJMPSTART;1号键功能程序执行完返回………………………;7号键功能程序PROM7:………………………LJMPSTART;7号键功能程序执行完返回…单片机原理及其接口技术主目录上一页下一页结束行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构,按键设置在行列的交点上。例如4×4的行列结构可组成16个键的键盘。因此,在按键数量较多时,可以节省I/O口线。2.行列式键盘89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V单片机原理及其接口技术主目录上一页下一页结束行列式键盘的接口方法有许多,例如:直接接口于单片机的I/O口;利用扩展的并行I/O接口;用串行口扩展并行I/O口接口;利用可编程的键盘、显示接口芯片8279等进行接口其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系统中比较常用。(1)行列式键盘的接口单片机原理及其接口技术主目录上一页下一页结束89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V单片机原理及其接口技术主目录上一页下一页结束8155扩展I/O口组成的行列式键盘共32个键PA口每位依次送出0,如有某键按下,则在PC口能读到相应的值,结合PA口的信息,则能确定键值。列线行线012345670123单片机原理及其接口技术主目录上一页下一页结束按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接+5V,被箝位在高电平状态。对键盘的工作过程可分两步:第一步是CPU首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。检测键盘上有无键按下可采用查询工作方式、定时扫描工作方式和中断工作方式。(2)键盘工作原理单片机原理及其接口技术主目录上一页下一页结束第一步是CPU首先检测键盘上是否有键按下;键盘中有无键按下是由列线送入全0,读入行线状态来判别的。其方法是:列口输出0,即所有列线置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为1。第二步是再识别是哪一个键按下。键盘中哪一个键按下是由列线逐列置低电平后,检查行输入状态,称为逐列扫描。其方法是:从列口第0位开始,依次输出“0”,置对应的列线为低电平,然后读入行线状态,如果全为1,则所按下之键不在此列;如果不全为1,则所按下的键必在此列,而且是与0电平行线相交的交点上的那个键。1)查询工作方式单片机原理及其接口技术主目录上一页下一页结束0000行线输入列线输出11110000第一步是CPU首先检测键盘上是否有键按下无按键按下有按键按下行线输入列线输出10110000有一根行线电平被拉至低电平,从而使行输入状态不全为“1”,说明有按键按下!单片机原理及其接口技术主目录上一页下一页结束为求取键码,在逐列扫描时,可用计数器记录下当前扫描列的列号,然后用行线值为0的行首键码加列号的办法计算。第二步是再识别是哪一个键按下。行线输入列线输出11111110行列012304812111111011111101110110111键码=行首键码+列号单片机原理及其接口技术主目录上一页下一页结束键盘上有键闭合否开始KM=1KP=1返回1→KM0→KM0→KP查询键码1→KPNNNYYY2)定时扫描工作方式定时扫描方式程序框图做两次查询,都有键后进行键码计算。单片机原理及其接口技术主目录上一页下一页结束计算机应用系统工作时,并不经常需要键输入。但无论是查询工作方式还是定时扫描工作方式,CPU经常处于空扫描状态。为了提高CPU的效率,可采用中断工作方式。这种工作方式是当键盘上有键按下时,向CPU发一个中断请求信号,CPU响应中断后,在中断服务程序中扫描键盘,执行键功能程序。中断服务程序中应完成键识别、消除抖动、排除多次执行键功能操作等功能,可参考查询工作方式键盘程序。3)中断工作方式单片机原理及其接口技术主目录上一页下一页结束例8.1独立式键盘接口应用实例:电路原理图如图所示,要求编程实现当按下任一键时,数码管显示对应的键值。8.1.4键盘接口应用实例单片机原理及其接口技术主目录上一页下一页结束独立式键盘接口应用接线图单片机原理及其接口技术主目录上一页下一页结束;******主程序查询法******ORG0000HMOV32H,#0aH;32H置熄灭符MAIN:ACALLDISP;调显示子程序MOVP3,#0FFH;P3置1,读引脚MOVA,P3;扫描键盘CPLA;按键状态取反JZMAIN;A为全0,无键按下,转MAINACALLDELAY;有键按下,延时消抖MOVP3,#0FFH;再次扫描键盘MOVA,P3CPLAJZMAIN;无键按下,干扰信号,转MAINMOV32H,#00H;确有键按下,求键码源程序如下:单片机原理及其接口技术主目录上一页下一页结束MOVR2,#8KEY1:RLCAJCMAIN1INC32HDJNZR2,KEY1MAIN1:MOVP3,#0FFH;等待释放MOVA,P3CPLAJNZMAIN1;未释放继续等待SJMPMAIN;******延时子程序******DELAY:MOVR7,#50DELA1:MOVR6,#100DJNZR6,$DJNZR7,DE

1 / 122
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功