欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    851-应用系统配置及接口技术.ppt

    • 资源ID:3024814       资源大小:1.05MB        全文页数:125页
    • 资源格式: PPT        下载积分:10
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要10
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    851-应用系统配置及接口技术.ppt

    2019/6/27,1,应用系统配置及接口技术,若输入是非电的模拟信号,还需要通过传感器转换成电信号并加以放大,把模拟量转换成数字量。该过程称为“量化”,也称为模数转换。 实现模数转换的设备称为模数转换器(),将数字量转换成模拟量的设备称为数模转换器()。 图91所示为具有模拟量输入、模拟量输出以及键盘、显示器、打印机等配置的89C51应用系统框图。为节省I/O口线,89C51片外扩展应尽量采用串行外设接口芯片。,2019/6/27,2,图91 系统前向、后向人机通道配置框图,2019/6/27,3,9.1 人机通道配置与接口技术,单片机应用系统通常都需要进行人机对话。这包括人对应用系统的状态干预与数据输入,还有应用系统向人显示运行状态与运行结果等。如键盘、 显示器就是用来完成人机对话活动的人机通道。,2019/6/27,4,9.1.1 键盘接口及处理程序,键盘分编码键盘和非编码键盘。 键盘上闭合键的识别由专用的硬件译码器实现,并产生键编号或键值的称为编码键盘,如BCD码键盘、ASCII码键盘等;靠软件识别的称为非编码键盘。,2019/6/27,5,键盘中每个按键都是一个常开开关电路,如图9-2所示。 当按键K未被按下时,P1.0输入为高电平;当K闭合时,P1.0输入为低电平。,图9-2 按键电路,2019/6/27,6,通常按键所用的开关为机械弹性开关,当机械触点断开、闭合时,电压信号波形如图9-3所示。 由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。 因而在闭合及断开的瞬间均伴随有一连串的抖动,如图9-3所示。抖动时间的长短由按键的机械特性决定,一般为510 ms。这是一个很重要的时间参数,在很多场合都要用到。,图9-3 按键时的抖动,2019/6/27,7,键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按键的抖动,可用硬件或软件两种方法消除。 如果按键较多,常用软件方法去抖动,即检测出键闭合后执行一个延时程序,产生510 ms的延时;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给510 ms的延时,待后沿抖动消失后,才能转入该键的处理程序。,2019/6/27,8,1. 键盘结构,键盘可以分为独立连接式和行列式(矩阵式)两类,每一类按其译码方法又都可分为编码及非编码两种类型。这里只介绍非编码键盘。,2019/6/27,9,1) 独立式非编码键盘接口及处理程序,独立式按键是指各按键相互独立地接通一条输入数据线,如图9-4所示。这是最简单的键盘结构,该电路为查询方式电路。 当任何一个键按下时,与之相连的输入数据线即被清0(低电平),而平时该线为1(高电平)。要判别是否有键按下,用单片机的位处理指令十分方便。 这种键盘结构的优点是电路简单;缺点是当键数较多时,要占用较多的线。,图9-4 独立连接式非编码键盘,2019/6/27,10,图9-4所示查询方式键盘的处理程序比较简单。程序中没有使用散转指令,并且省略了软件去抖动措施,只包括键查询、键功能程序转移。P0FP7F为功能程序入口地址标号,其地址间隔应能容纳JMP指令字节;PROM0PROM7分别为每个按键的功能程序。,2019/6/27,11,程序清单(设为P1口): START: MOV A,#0FFH;输入时先置P1口为全1 MOV P1,A MOV A,P1;键状态输入 PL1: JNB ACC.0,P0F;0号键按下转P0F标号地址 JNB ACC.1,P1F;1号键按下转P1F标号地址 JNB ACC.2,P2F;2号键按下转P2F标号地址 JNB ACC.3,P3F;3号键按下转P3F标号地址 JNB ACC.4,P4F;4号键按下转P4F标号地址 JNB ACC.5,P5F;5号键按下转P5F标号地址 JNB ACC.6,P6F;6号键按下转P6F标号地址 JNBA CC.7,P7F;7号键按下转P7F标号地址 LJMP START;无键按下返回,2019/6/27,12,P0F: LJMP PROM0 P1F: LJMP PROM1 ;入口地址表 P7F: LJMP PROM7 PROM0: ;0号键功能程序 LJMP START ;0号键执行完返回 PROM1: LJMP START PROM7: LJMP START 由程序可以看出,各按键由软件设置了优先级,优先级顺序依次为07。,2019/6/27,13,【例9-1】 设计一个有4个独立式按键的键盘接口,并编写键扫描程序。 解: 电路原理图如图9-5所示。,图9-5 键盘接口电路原理图,2019/6/27,14,程序清单: KEY: MOV P1,#0FFH;P1口为输入,各位应先置位为高电平 MOV A,P1;读取按键状态 CPL A;取正逻辑,高电平表示有键按下 ANL A,#0FH JZ KEY;A=0时无键按下,重新扫描键盘 LCALL D10 ms;有键按下延时去抖动 MOV A,P1;读取按键状态 CPL A;取正逻辑,高电平表示有键按下 ANL A,#0FH;再判别是否有键按下 JZ KEY;A=0时无键按下重新扫描键盘 MOV B,A;有键按下,键值送B暂存 MOV A,P1 CPL A,2019/6/27,15,ANL A,#0FH;判别按键释放 KEY1:JNZ KEY1;按键未释放,等待 LCALL D10ms;释放,延时去抖动 MOV A,B;取键值送A JB ACC.0,PKEY1;K1按下转PKEY1 JB ACC.1,PKEY2;K2按下转PKEY2 JB ACC.2,PKEY3;K3按下转PKEY3 JB ACC.3,PKEY4;K4按下转PKEY4 EKEY:RET,2019/6/27,16,PKEY1:LCALL K1;K1命令处理程序 RET PKEY2:LCALL K2;K2命令处理程序 RET PKEY3:LCALL K3;K3命令处理程序 RET PKEY4:LCALL K4;K4命令处理程序 RET D10ms:MOV R7,#10H;10 ms延时子程序 DS1: MOV R6,#0FFH DS2: DJNZ R6,DS2 DJNZ R7,DS1 RET,2019/6/27,17,2) 行列式键盘接口及工作原理,为了减少键盘与单片机接口时所占用I/O线的数目,在键数较多时,通常都将键盘排列成行列矩阵形式,如图9-6所示。 以图9-6所示的4×4键盘为例,说明行扫描法识别哪一个按键被按下的工作原理。,2019/6/27,18,图9-6 4×4矩阵键盘接口图,2019/6/27,19,首先判别键盘中有无键按下,由单片机口向键盘送(输出)全扫描字,然后读入(输入)列线状态来判断。方法是: 向行线(图中水平线)输出全扫描字00H,把全部行线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根列线电平被拉至低电平,从而使列输入不全为1。 判断键盘中哪一个键被按下是通过将行线逐行置低电平后,检查列输入状态实现的。方法是: 依次给行线送低电平,然后查所有列线状态,称行扫描。如果全为1,则所按下的键不在此行;如果不全为1,则所按下的键必在此行,而且是在与零电平列线相交的交点上的那个键。,2019/6/27,20,(1) 行扫描法识别键号(值)的原理,行扫描法识别键号的工作原理如下: 将第0行变为低电平,其余行为高电平时,输出编码为1110。然后读取列的电平,判别第0行是否有键按下。在第0行上若有某一按键按下,则相应的列被拉到低电平,则表示第0行和此列相交的位置上有按键按下。若没有任一条列线为低电平,则说明0行上无键按下。 将第1行变为低电平,其余行为高电平时,输出编码为1101。然后通过输入口读取各列的电平。检测其中是否有变为低电平的列线。若有键按下,则进而判别哪一列有键按下,确定按键位置。 将第2行变为低电平,其余行为高电平时,输出编码为1011。判别是否有哪一列键按下的方法同上。 将第3行变为低电平,其余行为高电平时,输出编码为0111。判别是否有哪一列键按下的方法同上。,2019/6/27,21,在扫描过程中,当发现某行有键按下,也就是输入的列线中有一位为0时,便可判别闭合按键所在列的位置,根据行线位置和列线位置就能判断按键在矩阵中的位置,知道是哪一个键按下。,2019/6/27,22,(2) 键盘扫描工作过程,按键扫描的工作过程如下: 判断键盘中是否有键按下; 进行行扫描,判断是哪一个键按下,若有键按下,则调用延时子程序去抖动; 读取按键的位置码; 将按键的位置码转换为键值(键的顺序号)0、1、2、F。 图9-7所示为4×4键盘扫描流程图。,2019/6/27,23,图9-7 4×4键盘扫描流程图,2019/6/27,24,键的位置码及键值的译码过程,上述行扫描过程结束后得到的行号存放在R0中,列号存放在R2中。 键值(号)的获得(译码)通常采用计数译码法。这种方法根据矩阵键盘的结构特点,每个按键的值=行号×每行的按键个数+列号,即键号(值)=行首键号+列号第0行的键值为: 0行×4+列号(03)为0、1、2、3; 第1行的键值为: 1行×4+列号(03)为4、5、6、7; 第2行的键值为: 2行×4+列号(03)为8、9、A、B; 第3行的键值为: 3行×4+列号(03)为C、D、E、F。 4×4键盘行首键号为0、4、8、C,列号为0,1,2,3。 所以键值译码子程序为DECODE,该子程序出口: 键值在A中。,2019/6/27,25,(3) 键盘扫描子程序(参见图9-7),出口: 键值(键号)在A中 KEY: MOV P1,#0F0H;令所有行为低电平 KEY1: MOV R7,#0FFH ;设置计数常数 DJNZ R7,KEY1 ;延时 MOV A,P1;读取P1口的列值 ANL A,#0F0H;判别有键值按下吗? CPL A;求反后,有高电平就有键按下 JZ EKEY;无键按下时退出 LCALL DEL20 ms;延时20 ms去抖动 SKEY: MOV A,#00;下面进行行扫描,1行1行扫 MOV R0,A;R0作为行计数器,开始为0 MOV R1,A;R1作为列计数器,开始为0 MOV R3 #0FEH;R3为行扫描字暂存,低4位为行扫描字 SKEY2:MOV A,R3 MOV P1,A;输出行扫描字,高4位全1 NOP NOP NOP;3个NOP操作使P1口输出稳定,2019/6/27,26,MOV A,P1;读列值 MOV R1,A;暂存列值 ANL A,#0F0H;取列值 CPL A;高电平则有键闭合 S123: JNZ SKEY3;有键按下转SKEY3,无键按下时进行一行扫描 INC R0;行计数器加1 SETB C;准备将行扫描左移1位,形成下一行扫描字,C=1保证输出行扫描字中高4位全为1,为列输入作准备,低4位中只有1位为0 MOV A,R3;R3带进位C左移1位 RLC A MOV R3,A;形成下一行扫描字R3 MOV A,R0 CJNE A,#04H,SKEY1;最后一行扫(4次)完了吗? EKEY: RET,2019/6/27,27,;列号译码 SKEY3:MOV A,R1 JNB ACC.4,SKEY5 JNB ACC.5,SKEY6 JNB ACC.6,SKEY7 JNB ACC.7,SKEY8 AJMP EKEY SKEY5:MOV A,#00H MOV R2,A;存0列号 AJMP DKEY SKEY6:MOV A,#01H MOV R2,A;存1列号 AJMP DKEY SKEY7:MOV A,#02H MOV R2,A;存2列号 AJMP DKEY SKEY8:MOV A,#03H MOV R2,A;存3列号 AJMP DKEY,2019/6/27,28,;键位置译码 DKEY: MOV A,R0;取行号 ACALL DECODE AJMP EKEY ;键值(键号)译码 DECODE:MOV A,R0;取行号送A MOV B,#04H;每一行按键个数 MUL AB;行号×按键数 ADD A,R2;行号×按键数+列号=键值(号),在A中 RET,2019/6/27,29,【例92】设计一个2×2行列式键盘,并编写键盘扫描子程序。,解: 原理如图9-8所示。 判断是否有键按下: 将列线P1.0、P1.1送全0,查P0.0、P0.1是否为0。 判断哪一个键按下: 逐列送0电平信号,再逐行扫描是否为0。 键号=行首键号+列号,图9-8 键盘扫描原理图,2019/6/27,30,KEY: LCALL KS;调用判断有无键按下子程序 JZ KEY;无键按下,重新扫描键盘 LCALL T10 ms;有键按下,延时去抖动 LCALL KS JZ KEY MOV R2,#0FEH;首列扫描字送R2 MOV R4,#00H;首列号#00H送入R4 MOV P0,#0FFH LK1: MOV P1,R2;列扫描字送P1口 MOV A,P0 JB ACC.0,ONE;0行无键按下,转1行 MOV A,#00H;0行有键按下,该行首号#00H送A LJMP KP;转求键号,2019/6/27,31,ONE: JB ACC.1,NEXT;1行无键按下,转下列 MOV A,#02H;1行有键按下,该行首号#02H送A KP: ADD A,R4;求键号,键号=行首键号+列号 PUSH ACC;键号进栈保护 LK: LCALL KS;等待键释放 JNZ LK;未释放,等待 POP ACC;键释放,键号送A RET;键扫描结束,出口状态: (A)=键号 NEXT: INC R4;列号加1 MOV A,R2;判断两列扫描完了吗 JNB ACC.1,KND;两列扫描完,返回 RL A;未扫描完,扫描字左移一位 MOV R2,A;扫描字入R2 AJMP LK1;转扫下一列 KND: AJMP KEY,2019/6/27,32,KS: MOV P1,#0FCH;全扫描字送P1口 MOV P0, #0FFH MOV A,P0;读入P0口行状态 CPL A;取正逻辑,高电平表示有键按下 ANL A,#03H;保留P0口低2位(屏蔽高6位) RET;出口状态: (A)0时有键按下 T10 ms:MOV R7,#10H;延迟10 ms子程序 TS1: MOV R6,#0FFH TS2: DJNZ R6,TS2 DJNZR7,TS1 RET,2019/6/27,33,2. 中断扫描方式,为了提高CPU的效率,可以采用中断扫描工作方式,即只有在键盘有键按下时才产生中断申请;CPU响应中断,进入中断服务程序进行键盘扫描,并做相应处理。中断扫描工作方式的键盘接口如图9-9所示。 P1.4P1.7作键输出线,P1.0P1.3作扫描输入线。 扫描时,使P1.4P1.7位清0。 当有键按下时,INT1端为低电平,向CPU发出中断申请。若CPU开放外部中断,则响应中断请求,进入中断服务程序。,图9-9 中断方式键盘接口,2019/6/27,34,3. 键操作及功能处理,若图9-6中为4×8的32键,设0、1、2、E、F共16个键为数字键;其他16个键为功能键,键值为1631,即10H1FH,各功能键入口程序地址标号分别为AAA、BBB、PPP。 当对键盘进行扫描并求得键值后,还必须做进一步处理。方法是首先判别其是功能键还是数字键。若为数字键,则送显示缓冲区进行显示;若为功能键,则由散转指令“JMP A+DPTR”转到相应的功能键处理程序,完成相应的操作。完成上述任务的子程序流程图如图9-10所示。,图9-10 求功能键地址转换程序流程图,2019/6/27,35,功能键地址转移程序如下: BUFF EQU 30H KEYADR:MOV A,BUFF;键值A CJNE A,#0FH,KYARD1 AJMP DIGPRO;等于F,转数字键处理 KYARD1:JC DIGPRO;小于F,转数字键处理 KEYTBL:MOV DPTR,#JMPTBL;送功能键地址表指针 CLR C;清进位位 SUBB A,#10H;功能键值(10H1FH)减16 RL A;(A)×2,使(A)为偶数: 0、2、4、 JMP A+DPTR;转相应的功能键处理程序,2019/6/27,36,JMPTBL:AJMP AAA; AJMP BBB; AJMP CCC; AJMP DDD; AJMP EEE; AJMP FFF; AJMP GGG; AJMP HHH; AJMP III; AJMP JJJ; AJMP KKK; AJMP LLL; AJMP MMM; AJMP NNN; AJMP OOO; AJMP PPP;,均为2字节,转到16个功能键的相应入口地址。 (A)=0、2、4、6散转到AAA、BBB、CCC、DDD、PPP,2019/6/27,37,9.1.2 LED显示器接口及显示程序,单片机应用系统中使用的显示器主要有: 发光二极管显示器,简称LED(Light Emitting Diode); 液晶显示器,简称LCD(Liquid Crystal Display); CRT显示器,2019/6/27,38,1. LED显示器结构原理,单片机中通常使用7段LED有共阴极和共阳极两种,如图9-11所示。 发光二极管的阳极连在一起的(公共端K0)称为共阳极显示器 阴极连在一起的(公共端K0)称为共阴极显示器。 一位显示器由8个发光二极管组成,其中,7个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为dp发光二极管。 当在某段发光二极管上施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,须外加限流电阻。,2019/6/27,39,以共阴极LED为例,如图9-11(a)所示,各LED公共阴极K0接地。若向各控制端a、b、g、dp顺次送入11100001信号,则该显示器显示“7.”字型。 共阴极与共阳极7段LED显示数字0F、“-”符号及“灭”的编码(a段为最低位,dp点为最高位)如表9-1所列。,图9-11 LED 7段显示器,2019/6/27,40,表9-1 共阴极和共阳极7段LED显示字型编码表,2019/6/27,41,2. LED显示器接口及显示方式,LED显示器有静态显示和动态显示两种方式。,2019/6/27,42,1) LED静态显示方式,静态显示就是当显示器显示某个字符时,相应的段(发光二极管)恒定地导通或截止,直到显示另一个字符为止。 LED显示器工作于静态显示方式时,各位的共阴极(公共端K0)接地;若为共阳极(公共端K0),则接+5v电源。每位的段选线(adp)分别与一个8位锁存器的输出口相连,显示器中的各位相互独立,而且各位的显示字符一经确定,相应锁存的输出将维持不变。 因此,静态显示器的亮度较高。这种显示方式编程容易,管理也较简单,但占用口线资源较多。在显示位数较多的情况下,一般都采用动态显示方式。,2019/6/27,43,2) LED动态显示方式,在多位LED显示时,将所有位的段选线并联在一起,由一个8位口控制。而共阴(或共阳)极公共端分别由相应的线控制,实现各位的分时选通。图9-12所示为6位共阴极LED动态显示接口电路。 图9-126位LED动态显示接口电路图9136位动态扫描显示状态,图9-12 6位LED动态显示接口电路,2019/6/27,44,例如,要求显示“E020”时,I/O口1和I/O口2轮流送入段选码、位选码及显示状态如图9-13所示。段选码、位选码每送入一次后延时1 ms,因人眼的视觉暂留时间为 s(100 ms),所以每位显示的间隔不必超过20 ms,并保持延时一段时间,以造成视觉暂留效果,给人看上去每个数码管总在亮。这种方式称为软件扫描显示。,图9-13 6位动态扫描显示状态,2019/6/27,45,3. LED显示器与89C51接口及显示子程序,图9-14图中,P0口输出段选码,P1口输出位选码,位选码占用输出口的线数决定于显示器位数,比如6位就要占6条。 75452(或7406)是反相驱动器(30 V高电压,OC门),这是因为89C51 P1口正逻辑输出的位控与共阴极LED要求的低电平点亮正好相反,即当P1口位控线输出高电平时,点亮一位LED。 7407是同相OC门,作段选码驱动器。 逐位轮流点亮各个LED,每一位保持1 ms,在1020 ms之内再一次点亮,重复不止。这样,利用人的视觉暂留,好像6位LED同时点亮一样。 扫描显示子程序流程如图9-15所示。,2019/6/27,46,图9-14 6只LED动态显示接口,2019/6/27,47,图915 DIS显示子程序流程图,2019/6/27,48,DIS显示子程序清单如下: DIS: MOV R0,#7EH;显示缓冲区末地址R0 MOV R2,#01H;位控字,先点亮最低位(右边) MOV A,R2 MOV DPTR,#TAB;字型表头地址DPTR LP0: MOV P1,A MOV A,R0;取显示数据 MOVC A,A+DPTR;取出字形码 MOV P0,A;送出显示 ACALL D1MS;调延时子程序 DEC R0;数据缓冲区地址减1 MOV A,R2 JB ACC.5,LP1;扫描到最左面的显示器了吗? RL A;没有到,左移1位 MOV R2,A AJMP LP0 LP1: RET TAB: DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,40H,00H D1MS: MOV R7,#02H;延时1 ms子程序 DL: MOV R6,#0FFH DL1: DJNZ R6,DL1 DJNZ R7,DL RET,2019/6/27,49,9.1.3 串行口控制的键盘显示器接口电路,89C51的串行口RXD和TXD为一个全双工串行通信口,但工作在方式0下可作同步移位寄存器用,其数据由RXD(P3.0)端串行输出或输入;而同步移位时钟由TXD(P3.1)端串行输出,在同步时钟作用下,实现由串行到并行的数据通信。 在不需要使用串行通信的场合,利用串行口加外围芯片74HC164就可构成一个或多个并行输入输出口,用于串并转换、并串转换、键盘驱动或显示器LED驱动。,2019/6/27,50,74HC164是串行输入、并行输出移位寄存器,并带有清除端。其引脚如图9-16所示。 其中: Q0Q7: 并行输出端。 A、B: 串行输入端。 CLR: 清除端,零电平时,使74LS164输出清0。 CLK: 时钟脉冲输入端,在脉冲的上升沿实现移位。 当CLK=0、CLR=1时,74HC164保持原来的数据状态。,图9-16 74HC164引脚图,2019/6/27,51,1. 硬件电路,如图9-17所示,图中“与”门的作用是避免键盘操作时对显示器的影响,即仅当P1.2=1时,才开放显示器传送。,图9-17 串行控制键盘扫描和显示器接口电路,2019/6/27,52,2. 程序清单,KEY: MOV A,#00H;向串行口数据缓冲器送全0 MOV SBUF,A KL0: JNB TI,KL0;等待8位数据发送完毕 CLR TI;清中断标志 KL1: JNB P1.0,PK1;第1行有键按下吗? JB P1.1,KL1;第2行有键按下吗?若无则继续扫描 PK1: ACALL D10MS;有键按下,延时10 ms,消除键抖动 JNB P1.0,PK2;确定是否键抖动引起 JB P1.1,KL1 PK2: MOV R7,#08H;不是键抖动引起则逐列扫描 MOV R6,#0FEH;选中第0列 MOV R3,#00H;记下列号初值,2019/6/27,53,PL5: MOV A,R6;使某一列为低 MOV SUBF,A KL2: JNB TI,KL2 CLR TI JNB P1.0,PK4;是第1行吗? JNB P1.1,PK5;是第2行吗? MOV A,R6;不是本列,则继续下一列 RL A MOV R6,A INC R3;列号加1 DJNZ R7,PL5;若8列扫描完仍未找到,则退出,等待执行下一次扫描 RET PK5: MOV R4,#08H;是第2行,则R4送初值08H AJMP PK3;转键处理 PK4: MOV R4,#00H;是第1行,则R4送初值00H PK3: MOV A,#00H;等待键释放 MOV SBUF,A KL3: JNB TI,KL3 CLR TI,2019/6/27,54,KL4: JNB P1.0,KL4 JNB P1.1,KL4 MOV A,R4;取键号 ADD A,R3 SUBB A,#0AH;是命令键吗? JNC KL6;转命令键处理程序 MOV DPTR,#TABL;字形码表初值送DPTR ADD A,#0AH;恢复键号 MOVC A,A+DPTR;取字形码数据 MOV R0,60H;取显示缓冲区指针 MOV R0,A;将字形码入显示缓冲区 INC R0;显示缓冲区地址加1 CJNE R0,#60H,KD;判是否到最高位 MOV 60H,#58H;保存显示缓冲区地址 SJMP KD1 KD: MOV 60H,R0 KD1: ACALL LED;调用送显示子程序 RET,2019/6/27,55,KL6: MOV B,#03H;修正命令键地址转移表指针 MUL AB MOV DPTR,KTAB;地址转移表首地址送DPTR JMP A+DPTR;根据指针跳转 KTAB: LJMP K1;K1、K3为各命令键服务程序首地址 LJMP K3 TABL: DB C0H,F9H,A4H,B0H;09字形码转换 DB 99H,92H,82H,F8H DB 80H,90H LED: SETB P1.2;开放显示器控制 MOV R7,#08H;显示位数R7 MOV R0,#58H;先送最低位 LED1: MOV A,R0;送显示器数据 MOV SBUF,A LED2: JNB TI,LED2 CLR TI INC R0;继续下一位 DJNZ R7,LED1;全部送完 CLR P1.2;关闭显示器控制 RET,2019/6/27,56,9.2 前向通道中的转换器及接口技术,模数()转换电路的种类有:计数比较型、逐次逼近型、双积分型等等。 逐次逼近型转换器,在精度、速度和价格上都适中,是最常用的转换器件。 双积分转换器,具有精度高、抗干扰性好、价格低廉等优点,但转换速度低。 串行输出的A/D芯片由于节省单片机的I/O口线,越来越多地被采用。如具有SPI三线接口的TLC1549、TLC1543、TLC2543、MAX187等,具有2线I2C接口的MAX127、PCF8591(4路8位A/D,还含1路8位D/A)等。,2019/6/27,57,9.2.1 单通道串行输出A/D芯片TLC1549及接口,1 TLC1549串行A/D转换器芯片 1) 主要性能 逐次比较型10位A/D转换器。 片内自动产生转换时钟脉冲,转换时间21 s; 最大总不可调转换误差为±1 LSB; 单电源供电(+5 V), 最大工作电流仅为2.5 mA; 转换结果以串行方式输出; 工作温度为-55+125 。,2019/6/27,58,2) 引脚及功能 TLC1549M有DIP和FK 2种封装形式。其中,DIP封装的引脚排列如图918所示。引脚功能见表92。,图918 TLC1549的引脚图,2019/6/27,59,表92 TLC1549M引脚功能引脚,2019/6/27,60,3) TLC1549的工作方式及时序 TLC1549有6种工作方式,如表93所列。 其中方式1和方式3属同一类型,方式2和方式4属同一类型。 一般来说,时钟频率高于280 kHz时,可认为是快速工作方式; 低于280 kHz时,可认为是慢速工作方式。 因此,如果不考虑I/O CLOCK周期大小,方式5与方式3相同,方式6与方式4相同。,2019/6/27,61,表93 TLC1549的工作方式方式,2019/6/27,62,工作方式1工作时序图如图919所示。图中从CS下跳到DATA输出数据要有1.3 s的延时;连续进行A/D转换时,在上次转换结果输出的过程中,同时完成本次转换的采样,这样大大提高了A/D转换的速率。 如果I/O CLOCK的时钟频率为2.1 MHz,则完成一次A/D转换的时间大约为26 s。如果用连续模拟信号进行采样转换,显然其转换速率是很高的。,图919 方式1工作时序,2019/6/27,63,2 TLC1549与89C51接口电路与程序 TLC1549与89C51的SPI接口如图9-20所示。,图9-20 TLC1549M与89C51的接口电路,2019/6/27,64,89C51读取TLC1549中10位数据程序如下: ORG 0050H R1549:CLR P3.0;片选有效,选中TLC1549 MOV R0,#2;要读取高两位数据 LCALL RDATA;调用读数子程序 MOV R1,A;高两位数据送到R1中 MOV R0,#8;要读取低8位数据 LCALL RDATA;调用读数子程序,读取数据 MOV R2,A;低8位数据送入R2中 SETB P3.0;片选无效 CLR P3.1;时钟低电平 RET;程序结束 ;读数子程序 RDATA:CLR P3.1;时钟低电平 MOV C,P3.2;数据送进位位CY RLC A;数据送累加器A SETB P3.1;时钟变高电平 DJNZ R0,RDATA;读数结束了吗 RET;子程序结束,2019/6/27,65,9.2.2 多通道串行输出A/D芯片TLC2543及接口,TLC2543的特性如下: 12位A/D转换器(可8位、12位和16位输出); 在工作温度范围内转换时间为10 s; 11通道输入; 3种内建的自检模式; 片内采样/保持电路; 最大±1/4 096的线性误差; 内置系统时钟; 转换结束标志位; 单/双极性输出; 输入/输出的顺序可编程(高位或低位在前); 可支持软件关机; 输出数据长度可编程。 TLC1543为11个输入端的10位A/D芯片,价格比TLC2543低。,2019/6/27,66,1 TLC2543的片内结构及引脚功能,TLC2543引脚如图9-21所示,片内结构如图9-22所示。 TLC2543片内由通道选择器、数据(地址和命令字)输入寄存器、采样/保持电路、12位的模/数转换器、输出寄存器、并行到串行转换器以及控制逻辑电路7个部分组成。 通道选择器根据输入地址寄存器中存放的模拟输入通道地址,选择输入通道,并将输入通道中的信号送到采样/保持电路中,然后在12位模/数转换器中将采样的模拟量进行量化编码,转换成数字量,存放到输出寄存器中。 这些数据经过并行到串行转换器转换成串行数据,经TLC2543的DOUT输出到微处理器中。 TLC2543的引脚意义如表9-4所列。,图9-21 TLC2543引脚排列,2019/6/27,67,图9-22 TLC2543片内结构框图,2019/6/27,68,表9-4 TLC2543各引脚定义(1),2019/6/27,69,表9-4 TLC2543各引脚定义(2),2019/6/27,70,2. TLC2543的接口时序,TLC2543的时序有两种: 使用片选信号CS和不使用片选信号CS。这两种时序分别如图9-23和图9-24所示。,图9-23 使用片选信号CS高位在前的时序,2019/6/27,71,图9-24 不使用片选信号CS高位在前的时序,2019/6/27,72,3 TLC2543的命令字,TLC2543的命令字如下:,输入到输入寄存器中的8位编程数据选择器件输入通道和输出数据的长度及格式。其选择格式如表9-5所列。,2019/6/27,73,表9-5 输入寄存器命令字格式,2019/6/27,74,4 TLC2543与89C51的SPI接口及程序,TLC2543串行A/D转换器与89C51的SPI接口电路如图9-25所示。 SPI(Serial Perpheral Interface)是一种串行外设接口标准,串行通信的双方用4根线进行通信。 这4根连线分别是: 片选信号、I/O时钟、串行输入和串行输出。 这种接口的特点是快速、高效,并且操作起来比I2C要简单一些,接线也比较简单,TLC2543提供SPI接口。,图9-25 TLC2543和89C51的接口电路,2019/6/27,75,对不带SPI或相同接口能力的89C51,须用软件合成SPI操作来和TLC2543接口。 TLC2543的I/O CLOCK、DIN和CS端由单片机的P1.0、P1.1和P1.3提供。 TLC2543转换结果的输出(DIN)数据由P1.2接收。 89C51将用户的命令字通过P1.1输入到TLC2543的输入寄存器中,等待20s开始读数据,同时写入下一次的命令字。,2019/6/27,76,1) TLC2543与89C51的8位数据传送程序,TLC2543: MOV R4,#04H;置控制字,AIN0,8位数据高位在前 MOV A,R4 CLR P1.3;片选CS有效,选中TLC2543 MSB: MOV R5,#08H;传送8位 LOOP: MOV P1,#04H;P12为输入位 MOV C,P1.2;将TLC2543 A/D转换的8位数据串行读到C中一位 RLC A;带进位位循环左移 MOV P1.1,C;将控制字(在ACC中)的一位经DIN送入TLC2543 SETB P1.0;产生一个时钟 NOP CLR P1.0 DJNZ R5,LOOP MOV R2,A;A/D转换的数据存于R2中 RET 执行上述子程序的过程如图9-26所示,2019/6/27,77,图9-26 TLC2543与89C51数据交换示意图,2019/6/27,78,2) TLC2543与89C51的12位数据传送程序,ORG 0100H MOV P1,#04H;P12为输入位 MOV R6,#0AH;转换10次 MOV R0,#2FH;置数据缓冲区指针 CLR P1.0;置I/O时钟为低 SETB P1.3;置CS为高 ACALL TLC2543;调转换子程序 SJMP TLC2543:MOV A,#00H;设置通道选择和工作模式(IN0,12位) CLR P13;置CS为低 MOV R5,#0CH;置输出位计数初值 LOOP: MOV P1,#04H;P12为输入位 MOV C,P1.2;读入转换数据一位 RLC A;将进位位移给A,即将转换数据的一位读入,同时将控制字的一位输入C,2019/6/27,79,MOV P1.1,C;送出一位控制位入2543 SETB P1.0;置I/O时钟为高 NOP CLR P1.0;置I/O时钟为低 CJNE R5,#04,LOP1;剩4位了吗? MOV R0,A;前8位存入RAM INC R0 CLR A LOP1:DJNZ R5,LOOP;未转完继续读剩余4位 ANL A,#0FH MOV R0,A;转换完的存入单元 RET,2019/6/27,80,3) TLC2543与89C51的16位数据传送程序,ORG 100H START:MOV SP,#50H;初始化堆栈指针

    注意事项

    本文(851-应用系统配置及接口技术.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开