1 / 199

第九章 应用系统配置及 接口技术

第九章 应用系统配置及 接口技术. 9.1 人 - 机通道配置与接口技术 9.2 前向通道中的 A/D 转换器及接口技术 9.3 系统后向通道配置及接口技术. 9.1 人 - 机通道配置与接口技术. 9.1.1 键盘接口及处理程序 键盘是一组按键的集合,它是最常用的单片机输入设备,操作人员可以通过键盘输入数据或命令,实现简单的人机通信。 键是一种常开型按钮开关,平时 ( 常态 ) 键的二个触点处于断开状态,按下健时它们才闭合 ( 短路 ) 。. 任务 :可靠而快速的实现键信息输入与键功 能任务。 解决下列问题:.

nanda
Download Presentation

第九章 应用系统配置及 接口技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第九章 应用系统配置及接口技术 9.1 人-机通道配置与接口技术 9.2 前向通道中的A/D转换器及接口技术 9.3 系统后向通道配置及接口技术

  2. 9.1 人-机通道配置与接口技术 9.1.1 键盘接口及处理程序 • 键盘是一组按键的集合,它是最常用的单片机输入设备,操作人员可以通过键盘输入数据或命令,实现简单的人机通信。 • 键是一种常开型按钮开关,平时(常态)键的二个触点处于断开状态,按下健时它们才闭合(短路)。

  3. 任务:可靠而快速的实现键信息输入与键功 能任务。 解决下列问题: 1. 键开关状态的可靠输入 键盘是利用机械触点的合、断作用来实现的。由于机械触点的弹性作用,在闭合及断开的瞬间均有抖动过程,会出现一系列负脉冲,见图9-1(b)。抖动时间一般为5~10ms。

  4. 89C51 (b) (a) 图9-1 按键电路及按键时的抖动

  5. 按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。 键抖动会引起一次按键被误读多次,为了确保CPU对键的一次闭合仅作一次处理,必须去除键抖动,在键闭合稳定时取键状态。 消除抖动影响措施: ⑴ 硬件方法消除抖动:常用RS触发器去抖电路。 ⑵ 软件方法:利用延时程序消除抖动。

  6. 2. 对按键进行编码,给定键值或直接给出键号 一组按键或键盘由多个按键组成,为区分每个按键,每个按键都有一个键值或键号。根据键值或键号找到对应的功能程序。 不同类型的键盘结构,采用不同的编码方式。

  7. 3. 选择键盘的监测方法 监测是否有键按下的信息输入方式有中断方式和查询方式。 4. 编制键盘程序 键盘控制程序应解决的问题: ⑴ 监测有无键按下;

  8. 有键按下,若无硬件除抖电路时,应有软件 去抖程序消除抖动影响; ⑶ 有可靠的逻辑处理方法; ⑷ 输出确定的键号或键值。

  9. 一、键盘结构 键盘分编码键盘和非编码键盘。 1) 编码键盘:键盘上闭合键的识别由专用的硬件译码器实现并产生键编号或键值,如D码键盘、ASII码键盘等。 2) 非编码键盘:键盘上闭合键的识别靠软件识别。

  10. 1.独立式非编码键盘接口及处理程序 独立式按键是各按键互相独立地接通一条输入数据线,如图9-2所示。这是最简单的键盘结构,该电路为查询方式电路。 这种键盘结构的优点是电路简单,配置灵活;缺点是当键数较多时,要占用较多的I/O线。

  11. 89C51 图9-2 独立连接式非编码键盘

  12. 上图示查询方式键盘的处理程序比较简单,程序中没有使用散转指令,省略了软件去抖动措施,只包括键查询、键功能程序转移。P0F~P7F为功能程序入口地址标号,其地址间隔应能容纳JMP指令字节; PROM0~PROM7分别为每个按键的功能程序。

  13. 程序清单(设I/0为P1口): START: MOV A,#0FFH ;输入时先置P1口为全1 MOV P1,A MOV A,P1 ;键状态输入 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号键按下转P3F标号地址

  14. JNB ACC.5,P5F;5号键按下转P5F标号地址 JNB ACC.6,P6F;6号键按下转P6F标号地址 JNB ACC.7,P7F;7号键按下转P7F标号地址 JMP START P0F: JMP PROM0 ∶ ∶ P7F: JMP PROM7 入口地址表

  15. PROM0: …………;0号键功能程序 …………. JMP START ;0号键执行完返回 PROM1: …………;1号键功能程序 …………. JMP START ∶ ∶ PROM7: …………;7号键功能程序 …………. JMP START 由此程序可以看出,各按键由软件设置了优先级,优先级顺序依次为0~7。

  16. 2.行列式键盘接口及工作原理 为了减少键盘与单片机接口时所占用I/O线的数目,在键数较多时,通常都将键盘排列成行列矩阵型式,如图9-3所示。 ⑴ 结构: 每一水平线(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来联通。利用这种行列短阵结构只需N条行线和M条列线,即可组成N×M个按键的键盘。

  17. ⑵ 键盘工作原理 图9-3 行列式键盘原理电路

  18. 行(或列)扫描法的工作原理 以4×4键盘为例说明扫描法识别哪一个按键被按下的工作原理: 1) 判别键盘中有无键按下 由单片机I/O口向键盘送(输出)全扫描字,然后读入(输入)行(列)线状态来判断。其方法是:向列(行)线(图中垂直线)输出全扫描字00H,即把全部列(行)线置为低电平,然后将行(列)线的电平状态读入累加器A中。如果有按键按下,总会有一根行(列)线电平被拉至低电平,从而使行(列)输入不全为“1”。

  19. 2) 判断键盘中哪一个键按下 采用列(行)扫描方式,即逐列(行)置低电平后,检查行输入状态。其方法是:依次给列(行)线送低电平、然后查所有行(列)线状态,如果全为“1”,则所按下之键不在此列(行)。如果不全为“1”,则所按下的键必在此列(行),而且是在与“0”电平行线相交的交点上的那个键。

  20. 3) 计算键值 键盘上的每个键都有一个键值,计算键值有两种方法: ① 键值赋值的最直接办法是将行、列线按二进制顺序排列,当某一键按下时,键盘扫描程序执行到给该列置“0”电平,读出各行状态为非全“1”状态,这时的行、列数据组合成键值。 ② 采用依次排列键值的方法,可得 键值(号) = 行号*行的按键个数+ 列号 即键值(号) = 行首键号 + 列号

  21. 二、单片机对非编码键盘扫描的控制方式 ⑴ 程序控制扫描方式,即查询方式。 ⑵ 定时扫描方式: 利用单片机内部定时器产生中断(例如10ms),CPU响应中断后对键盘扫描一次。定时扫描方式的硬件电路与程序扫描方式相同。 ⑶ 中断扫描方式: 引起外部中断(INT0或INT1)后,CPU响应中断对键盘进行扫描。 要根据应用系统中CPU的“忙”、“闲”情况,所需按键数目的多少来选择工作方式。下面重点介绍常用的程序控制扫描方式和中断扫描方式。

  22. 1.程序控制扫描方式及处理程序 以教材P233图9-6 4×4矩阵键盘为例,介绍程序控制扫描工作方式工作过程与键盘扫描子程序。 程序流程图见P235图9-7。 程序在进行行扫描时,先将行计数器、列计数器设置为0,然后再设置行扫描初值为FEH。 行扫描得到的行号和列号分别放在R0和R2中,采用计数译码法对键值译码。

  23. ⑵ 键盘扫描子程序的功能 ① 判断键盘上有无键按下。 ② 去除键的机械抖动影响。 ③ 判别闭合键的键值 ④ 采用计数译码法(DECODE子程序)将键号送入累加器A中。

  24. 键盘扫描子程序(出口:键值在A中) KEY: MOV P1,#0F0H ;行为低电平,列为输入 MOV R7,#0FFH ;设置计数常数 KEY1:DjNZ R7,KEY1 ;延时 MOV A,P1 ;读P1口的列值 ANL A,#0F0H ;判有键按下吗? CPL A ;求反后,高电平为有键按下 JZ EKEY ;无键按下退出 LCALL DEL20ms;延时20ms去抖动 SKEY: MOV A, #00H ;开始行扫描,一行一行扫 MOV R0, A ;行计数器初值为0 MOV R1, A ;列计数器初值为0 MOV R3,#0FEH ;行扫描字

  25. SKEY2: MOV A,R3 MOV P1,A ;输出行扫描字,高4位全1 NOP NOP NOP ;使P1口输出稳定 MOV A,P1 ;读列值 MOV R1,A ;暂存列值 ANL A,#0F0H ;取列值 CPL A ;高电平则有键闭合 S123: JNZ SKEY3 ;有键按下转,无键下一行扫描 INC R0 ;行计数器加1

  26. SETB C MOV A, R3 ;R3带进位左移 RLC A MOV R3, A ; 下一扫描字送R3 MOV A, R0 CJNE A, #04H,SKEY1 ;第4行扫完了吗? EKEY: RET

  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

  28. SKEY7: MOV A, #02H MOV R2, A ;存2列号 AJMP DKEY SKEY8: MOV A, #03H MOV R2, A ;存3列号 AJMP DKEY 键位置译码: DKEY: MOV A, R0 ACALL DECODE AJMP EKEY

  29. 键值(键号译码): DECODE: MOV A, R0 ;取行号 MOV B,#04H ;每行按键个数 MUL AB ;行*按键数 ADD A, R2 ;行*按键数+列 RET

  30. 2.中断扫描方式 中断扫描工作方式,即只有在键盘有键按下时才产生中断申请,CPU响应中断,进入中断服务程序进行键盘扫描,并作相应处理。 ⑴ 键盘接口 中断扫描工作方式的键盘接口如下图9-6所示。该键盘直接由89C51的P1口的高、低字节构成4×4行列式键盘。键盘的行线与P1口的低4位相接,键盘的列线通过二极管接到P1口的高4位。因此,P1.4~P1.7

  31. 作键输出线,P1.0~P1.3作扫描输入线。扫描时,使P1.4~P1.7置零。当有键按下时、INT0/INTl端为低电平,向CPU发出中断申请,若CPU开放外部中断,则响应中断请求,进入中断服务程序。在中断服务程序中除完成键识别、键功能处理外,还须有消除键抖动等功能。作键输出线,P1.0~P1.3作扫描输入线。扫描时,使P1.4~P1.7置零。当有键按下时、INT0/INTl端为低电平,向CPU发出中断申请,若CPU开放外部中断,则响应中断请求,进入中断服务程序。在中断服务程序中除完成键识别、键功能处理外,还须有消除键抖动等功能。 ⑵ 中断服务程序 功能:键识别,键功能处理,消除键抖动等。

  32. 89C51 图9-6 中断方式的接口 图9-7 求功能键地址转换程序流程图

  33. 三、键操作及功能处理 在键盘扫描程序中,求得键值只是手段,最终目的是使程序转移到相应的地址去完成该键的操作。一般对数字键是直接将该键值送到显示缓冲区进行显示,对功能键则需找到该功能键处理程序入口地址,并转去执行该键的命令。因此,当键值求得后,还必须找到功能键处理程序入口。下面介绍一种求地址转移的程序。

  34. 设0、1、2…、E、F 16个键为数字键,其它16个键为功能键,即10H~1FH。设备功能键入口程序地址标号分别为AAA、BBB、…、PPP。功能键地址转移程序如下:

  35. ORG 8000H 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 ;功能键值(10H~FH)减16 RL A ;(A)×2,使(A)为偶数:0,2, ; 4…… JMP @A+DPTR ;转相应的功能键处理程序

  36. JMPTBL: AJMP AAA ; AJMP BBB ; AJMP CCC ; AJMP DDD ; AJMP EEE ; AJMP FFF ; AJMP GGG ; 均为2字节,转到16个功能键的 AJMP HHH ; 相应入口地址。 AJMP III ; (A)=0,2,4,6, .. 散转到 AJMP JJJ ; AAA,BBB,CCC, DDD,……PPP AJMP KKK ; AJMP LLL ; AJMP MMM ; AJMP NNN ; AJMP OOO ; AJMP PPP ;

  37. 9.1.2 LED显示器接口及显示程序 单片机应用系统中使用的显示器主要有: • 发光二极管显示器(数码管),简称LED; • 液晶显示器,简称LCD; • 也有配置CRT显示器的。 前者价廉,配置灵活,与单片机接口方便后 者可进行图形显示,但接口较复杂,成本也较 高。

  38. 一、LED显示器结构原理 • 在单片机中通常使用七段LED,构成字型“8”,另外还有一个小数点发光二极管以显示数字、符号及小数点。 • 这种显示器有共阴和共阳两种,如图所示。发光二极管的阳极连在一起的(公共端K0)称为共阳极显示器,阴极连在一起的(公共端K0)称为共阴极显示器。

  39. 图9-8 LED七段显示器

  40. 表9-1 八段LED数码显示管字形码表 8段LED显示数字0~F、文字、符号及小数点的编码(a段为最低位,dp点为最高位)

  41. 二、LED显示器接口及显示方式 LED显示器有静态显示和动态显示两种方式。 1.LED静态显示方式 所谓静态显示.就是当显示器显示某个字符时,相应的段(发光二极管)恒定地导通或截止,直到显示另一个字符为止。例如,7段显示器的a、b、c段恒定导通,其余段和小数点恒定截止时显示“7”,当更换显示另一个字符“8”时,显示器的a、b、c、d、e、f段恒定导通,g、dp截止。

  42. LED显示器工作于静态显示方式时,如图9-9所示,各位的共阴极(公共端K0)接地,若为共阳极(公共端K0)时接十5v电源。每位的段选线(a~dp)分别与一个8位锁存输出口相连,显示器中的各位相互独立,而且各位的显示字符一经确定,相应锁存的输出将维持不变。LED显示器工作于静态显示方式时,如图9-9所示,各位的共阴极(公共端K0)接地,若为共阳极(公共端K0)时接十5v电源。每位的段选线(a~dp)分别与一个8位锁存输出口相连,显示器中的各位相互独立,而且各位的显示字符一经确定,相应锁存的输出将维持不变。 • 正因为如此,静态显示器的亮度较高。这种显示方式编程容易,管理也较简单,但占用I/O口线资源较多,因此,在显示位数较多的情况下,一般都采用动态显示方式。

  43. I/O1 I/O2 I/O3 I/O4 a b c d e f g dp a b c d e f g dp GND 图9-9 静态显示接口电路

  44. 2.LED动态显示方式 在多位LED显示时,将所有位的段选线并联在一起,由一个8位I/O口控制。而共阴(或共阳)公共端K0分别由相应的I/O线控制,实现各位的分时选通。图9-10所示为6位共阴极LED动态显示接口电路。 由于所有6位段选线皆由一个I/O口控制,因此,在每一瞬间,6位LED会显示相同的字符。要想每位显示不同的字符,就必须采用扫描方法轮流点亮各位LED即

  45. 图9-10 6 位LED 动态显示接口电路

  46. 在每一瞬间只使某一位显示字符。在此瞬间 ,段选控制I/O口输出相应字符段选码(字型码),而位选则控制I/O口在该显示位送入选通电平(因为LED为共阴,故应送低电平),以保证该位显示相应字符。如此轮流,使每位分时显示该位应显示字符。

  47. 图9-11 6位动态扫描显示状态

  48. 三、LED显示器与8155接口及显示子程序 1. 接口电路 图中P0口输出段选码,P1口输出位选码,位选码占用输出口的线数决定于显示器位数,比如6位就要占6条。75452(或7406)是反向驱动器,这是因为8155 PB口正逻辑输出的位控与共阴极LED要求的低电平点亮正好相反,即当PB口位控线输出高电平时,点亮一位LED。7407是同相OC门,作段选码驱动器。逐位轮流点亮各个LED,每一位停留1ms,在10~20ms之内再一次点亮,重复不止,这样,利用人的视觉暂留好象6位LED同时点亮了。

  49. 图9-12 6只LED动态显示接口

  50. 2 . 显示子程序 1)功能 ① 把显示字符送显示缓冲区; ② 把显示字符转换为对应的段选码; ③ 送出位选码,使LED依次显示。 2)框图

More Related