开关量输入输出通道与人机接口

上传人:pu****.1 文档编号:586641403 上传时间:2024-09-05 格式:PPT 页数:172 大小:1.03MB
返回 下载 相关 举报
开关量输入输出通道与人机接口_第1页
第1页 / 共172页
开关量输入输出通道与人机接口_第2页
第2页 / 共172页
开关量输入输出通道与人机接口_第3页
第3页 / 共172页
开关量输入输出通道与人机接口_第4页
第4页 / 共172页
开关量输入输出通道与人机接口_第5页
第5页 / 共172页
点击查看更多>>
资源描述

《开关量输入输出通道与人机接口》由会员分享,可在线阅读,更多相关《开关量输入输出通道与人机接口(172页珍藏版)》请在金锄头文库上搜索。

1、第二章 开关量输入输出通道与人机接口2.1 过程通道的分类过程通道的分类 2.2 开关量输入输出通道开关量输入输出通道 2.3 人机接口人机接口键盘键盘 2.4 人机接口人机接口数字显示方法数字显示方法习题习题 为了实现计算机对生产过程或装置的控制,需要将对象的各种测量参数按要求的方式送入计算机; 经计算机运算处理后的数字信号也要变换成适合于对生产过程或装置进行控制的形式。 因此,在计算机和生产过程之间必须设置信息传递和变换的装置,这种装置就称为过程输入输出通道,简称为过程通道或IO通道。 一般来说,计算机不会自主地工作,需要接收操作人员键入的指令,其运行状态和结果也需要显示或打印,在现代大规

2、模控制系统中还应有通信和数据存盘功能,所有这些都是由人与计算机之间的连接装置来完成的,我们称这种装置为人机接口。 有了过程通道与人机接口,才能将人、计算机和生产过程组成有机的整体,如图2-1所示。 图2-1 过程通道与人机接口 过程通道与人机接口是每个计算机控制系统中都必须具有的重要组成部分,在计算机控制系统的设计中,许多精力都花费在过程通道和人机接口的设计或选择上。许多控制计算机生产厂家都设计和生产了各种各样的IO模块供选用, 近年来还出现了硬件卡+软件驱动程序(driver)等应用更为方便的产品。 这一章我们主要介绍计算机控制系统中过程通道的分类、 开关量输入输出通道与人机接口的设计及应用

3、方法。 有关模拟量输入输出通道将在第四章讨论。 2.1 过程通道的分类过程通道的分类 过程通道包括模拟量输入通道、模拟量输出通道、数字量输入通道和数字量输出通道。 (1) 模拟量输入通道:主要功能是将随时间连续变化的模拟输入信号经检测、变换和预处理,最终变换为数字信号送入计算机。常见的模拟量有压力、温度、液体流量和成分等。 (2) 模拟量输出通道:它将计算机输出的数字信号转换为连续的电压或电流信号,经功率放大后送到执行部件对生产过程或装置进行控制。 (3) 数字量输入通道:也称开关量输入通道。 凡是以电平高低和开关通断等两位状态表示的信号统称为数字量或开关量。 主要有三种形式:一种是以若干位二

4、进制数表示的数字量,它们并行输入到计算机,如拨码盘开关输出的BCD码等; 另一种是仅以一位二进制数表示的开关量,如启停信号和限位信号等;还有一种是频率信号,它是以串行形式进入计算机的, 如来自转速表,涡轮流量计、感应同步器等信号。这些信号都要通过数字量输入通道进入计算机。 (4) 数字量输出通道:有的执行部件只要求提供数字量, 例如步进电机,控制电机启停和报警信号等,这时应采用数字量输出通道。 应该注意,过程通道分类是以经过通道的信号形式来划分的,并不以连续的对象来划分, 如模拟对象的模拟量可以转换为频率信号(VF变换)连接于数字输入通道;同样, 数字输出通道完全可以接直流电动机,组成脉冲调宽

5、控制(PWM)。 2.2 开关量输入输出通道开关量输入输出通道 2 22 21 1 开关量输入输出通道的一般结构形式开关量输入输出通道的一般结构形式开关量输入输出通道一般由三部分组成: CPU接口逻辑、 输入缓冲器和输出锁存器、输入输出电气接口(亦即开关量输入信号调理和输出信号驱动电路)。 一般情况下,各种开关量输入输出通道的前两部分往往大同小异,所不同的主要在于输入输出(IO)电气接口。典型的开关量输入输出通道结构如图2-2所示。 图2-2 典型的开关量输入输出通道结构图 1 1 CPU CPU接口逻辑接口逻辑 这部分电路一般由数据总线缓冲器驱动器、 输入输出口地址译码器、读写等控制信号组成

6、。 2 2 输入缓冲器和输出锁存器输入缓冲器和输出锁存器 输入缓冲器是对外部输入的信号起缓冲、加强以及选通的作用,CPU通过读缓冲器读入数据。输出锁存器的作用是锁存CPU送来的输出数据,供外部设备使用。 输入缓冲器和输出锁存器可以使用各种可编程的外围接口电路,如8255、8155等,也可以使用简单的中小规模集成电路,如74LS240、74LS244、74LS245、 74LS273、 74LS377等。 3 3 输入输出电气接口输入输出电气接口典型的开关量输入输出电气接口的功能主要是滤波、 电平转换、 隔离和功率驱动等, 关于这些内容, 将在后面详细介绍。 2 22 22 2 开关量输入信号的

7、调理开关量输入信号的调理 开关量输入通道的基本功能就是接收外部的状态信号, 这些状态信号是以逻辑“1”或逻辑“0”出现的,其信号的形式可能是电压、电流或开关的触点。在有些情况下,外部输入的信号可能会引起瞬时的高电压、过电压、接触抖动以及噪声等干扰。 为了将外部的开关量信号输入到计算机, 必须将现场输入的状态信号经转换、保护、滤波、隔离等措施转换成计算机能接收的逻辑信号,这就是开关量输入信号调理的任务。 下面针对不同的情况分别介绍相应的调理方法。 1 1 信号转换电路信号转换电路 (1) 电压或电流转换电路如图2-3(a)所示, 可根据电压或电流的大小选择电阻R1和R2。 (2) 开关触点型信号

8、输入电路如图2-3(b)所示, 这种电路使得开关的通和断变成输出电平的高和低。 图2-3 信号转换电路(a) 电压或电流输入; (b) 开关触点输入 图2-4 RC低通滤波电路 2 2滤波电路滤波电路由于长线传输、电路、空间等干扰的原因,输入信号常常夹杂着各种干扰信号,这些干扰信号有时可能使读入信号出错, 这就需要用滤波电路来消除干扰。 图2-4是一个RC低通滤波电路。 这种电路的输出信号与输入信号之间会有一个延迟,可根据需要来调整RC网络的时间常数。 3 3保护电路保护电路 为了防止因过电压、瞬态尖峰或反极性信号损坏接口电路, 在开关量输入电路中,应采取适当的保护措施。图2-5和图2-6分别

9、是几种常用的保护电路, 其中,图25(a)和图2-5(b)分别是采用齐纳二极管和压敏电阻将瞬态尖峰干扰箝位在安全电位的保护电路。 图2-6(a)和(b)分别是反极性保护和高压保护电路。 图2-5 瞬态尖峰保护电路(a) 采用齐纳二极管; (b) 采用压敏电阻 图2-6 反极性和高压保护(a) 反极性保护; (b) 高压保护 4 4 消除触点抖动消除触点抖动 若开关量输入信号来自机械开关或继电器触点,由于开关触点闭合及断开时,常常会发生抖动,因此,输入信号的前沿及后沿常常是非清晰信号,如图2-7所示。 图2-7 开关或触点闭合及断开时的抖动 解决开关或触点的抖动问题可采用图2-8所示的双向消抖电

10、路。双向消抖电路是由两个与非门组成RS触发器, 把开关信号输入到RS触发器的一个输入端A,当抖动的第一个脉冲信号使RS触发器翻转时,D端处于高电平状态,故第一个脉冲消失后RS触发器仍保持原状态,以后的抖动所引起的数个脉冲信号对RS触发器的状态无影响,这样就消除了抖动。 图2-8 双向消抖电路 5. 5. 光电隔离技术光电隔离技术 在计算机控制系统中,为了提高系统的抗干扰能力,常需将工业现场的控制对象和计算机部分在电气上隔离开来。过去一般使用脉冲变压器、继电器等完成隔离任务,而现在普遍采用光耦合器,它具有可靠性高、体积小、成本低等优点。 光耦合器由发光器件和光接收器件两部分组成,它们封装在同一个

11、外壳内, 其图形符号如图2-9所示。发光二极管的作用是将电信号转换为光信号,光信号作用于光敏三极管的基极上, 使光敏三极管受光导通。这样,通过电光电的转换, 把输入侧的电信号传送到了输出侧,而输入与输出侧并无电气上的联系,这样控制对象和计算机部分便被隔离开来了。 图2-9 光耦合器 光耦合器输入侧的工作电流一般为10 mA左右, 正常工作电压一般小于1.3 V。所以光耦合器输入电路可直接用TTL电路驱动。而MOS电路不能直接驱动它,必须通过一个三极管来驱动, 如图2-10所示。 图2-10 光耦合器的输入驱动电路(a) 直接用TTL电路驱动; (b) MOS电路通过三极管驱动 光耦合器的输出可

12、直接驱动DTL、TTL、HTL、MOS等电路器件。 图2-11给出了一个用光耦合器隔离开关信号的电路图。当输入Ui为高电平时,A点为低电平,发光二极管导通发光,光敏三极管受光导通,B点为低电平,三极管V截止,输出Uo为高电平。当输入Ui为低电平时,A点为高电平, 发光二极管截止, 光敏三极管截止,B点为高电平,三极管V饱和导通,输出Uo为低电平。这样就将输入侧的信号传递到了输出侧。由于E1、E2两电源不共地,因此输入侧与输出侧电气上无任何联系,便被完全隔离开来。 由图2-11可知, 通过光耦合器, 还可实现电平转换。 图2-11 用光耦合器隔离开关信号的电路图 2 22 23 3 开关量输出驱

13、动电路开关量输出驱动电路在计算机控制系统中,开关量的输出常常要求有一定的驱动能力, 以控制不同的装置。 常用的驱动电路有以下几种: 1 1小功率驱动电路小功率驱动电路 这类电路一般用于驱动发光二极管、LED显示器、小功率继电器等元件或装置,要求电路的驱动能力一般为1040 mA, 可采用小功率的三极管或集成电路如75451、75452等来驱动。 图 2-12 为典型的小功率驱动电路。 图2-12 小功率驱动电路 图2-13 中功率驱动电路 2 2中功率驱动电路中功率驱动电路这类电路常用于驱动中功率继电器、电磁开关等装置, 一般要求具有50500 mA的驱动能力,可采用达林顿复合晶体管或中功率三

14、极管来驱动,如图2-13所示。 目前常用达林顿阵列驱动器如MC1412、 MC1413、 MC1416等来驱动中功率负载。图2-14是MC1416的结构图及每个复合管的内部结构,它的集电极电流可达500 mA,输出端耐压可达100 V, 特别适合于驱动中功率继电器。 图2-14 MC1416达林顿阵列驱动器(a) MC1416结构图; (b) 复合管内部结构 需要指出的是,对于感性负载,在输出端必须加装克服反电动势的保护二极管。对于MC1416等, 可使用内部的保护二极管。 3 3 固态继电器及其使用方法固态继电器及其使用方法 固态继电器(简写为SSR)是一种四端有源器件,其中两个低功耗输入控

15、制端可与TTL及CMOS电平兼容,另外两个为晶闸管输出端。 固态继电器分为单向直流型(DCSSR)和双向交流型(AC SSR)两种, 双向交流型又有过零触发型(Z型)和调相型(P型)之分,输入电路和输出电路之间采用光电隔离,绝缘电压达2500 V以上,输出端有保护电路,负载能力强。固态继电器的结构如图2-15所示。 图2-15 固态继电器的结构(a) 过零型固态继电器的结构; (b) 调相型固态继电器的结构 调相型固态继电器又称随机开启型固态继电器, 具有快速开启性能,输出端随控制信号同步导通, 控制信号消失后, 过零时关断。过零型固态继电器具有零电压开启、 零电流关断的特点,输出端在控制信号

16、有效并保持到过零时导通, 控制信号消失后,过零时关断。 固态继电器的驱动方法如图2-16所示。 图2-16 固态继电器的驱动方法 2 22 24 4 开关量输入输出通道的设计开关量输入输出通道的设计1 1 开关量输入输出通道设计中应考虑的问题开关量输入输出通道设计中应考虑的问题 在开关量输入输出通道的设计中,主要应考虑输入信号的拾取、转换、滤波、保护、隔离以及输出信号的驱动等问题。 对于开关量输入信号的转换、滤波、保护、隔离以及开关量输出信号的驱动等,前面已有详细讨论。这里主要讨论一下开关量输入信号的拾取方式。 (1) 开关状态型开关量输入信号的拾取:这是最常见的一种开关量输入形式,如生产设备

17、或过程中某个开关或继电器的断开与闭合等。这种类型的开关量可通过前面已介绍的转换电路将开关的状态转换为电平的高低。 (2) 位置型开关量输入信号的拾取:这种类型的开关量输入信号需要通过合适的传感器来拾取,常用的有行程开关、光电装置及干簧继电器等。 (3) 计数型开关量输入信号的拾取:这种类型的开关量输入信号也需通过合适的传感器来拾取。如用于测量转速时可使用光电对管、霍尔传感器、光电编码器等;测量位移时可使用光栅、磁栅等。 其他类型的开关量输入信号还有液位、荷重的上限和下限、 电流或电压的有或无等,均需通过合适的方式来拾取。 2 2 开关量输入输出通道设计实例开关量输入输出通道设计实例 图2-17

18、是一种典型的开关量输入输出通道原理图。它具有16路开关量输入及16路开关量输出。输入及输出通道均采用光电隔离, 输出通道采用达林顿管输出的光耦合器TIL113,可直接用于驱动中小功率继电器或其他中小功率装置。 图2-17 开关量输入输出通道原理图 2.3 人机接口人机接口键盘键盘 2.3.1 2.3.1 非编码键盘非编码键盘 非编码键盘是由一些按键排列成的一个行、列矩阵。按键的作用只是简单地实现开关的接通或断开,但必须有一套相应的程序与之配合,来解决按键的识别,键值的产生以及防止抖动等工作。因此,键盘接口电路和软件程序必须解决以下一些问题: (1) 检查是否有键按下。 (2) 若有键按下, 判

19、断是哪一个键并确定其键号或键值。 (3) 去抖动:一个电压信号是通过机械触点的闭合、断开过程来实现信号传递的,其波形如图2-18所示。抖动时间一般为510 ms。按键的稳定闭合期为几百毫秒到几秒钟时间。 为了保证CPU对按键闭合仅作一次键输入处理, 必须去除抖动影响, 通常可用硬件或软件延时10 ms处理。 图2-18 按键闭合及断开时的电压抖动 (4) 处理多键同时按下:对于同时有两个以上的键被按下的情况, 有两种处理方法。第一,“双键同时按下”。用软件扫描键盘处理, 当只有一个键按下时才读取键盘的输出, 并认为最后按下的键为有效键。第二,“N键锁定”。多键按下时只处理一个键,任何其他按下又

20、松开的键不产生任何键值;通常第一个被按下或最后一个被松开的键产生键值。 这种方法简单实用。 (5) 键输入软件处理: 当有键按下时,单片机应能够完成该按键所设定的功能。一般键盘管理程序是整个应用程序的核心。 8031的散转指令JMP A+DPTR可看成是键输入信息的软件接口。 图2-19是单片机键输入处理流程图。 键盘通过接口与CPU连接,CPU采用查询或中断方式检查有无键按下,再将该键号送A,然后通过散转指令JMP A+DPTR转入执行该键功能的处理程序入口, 最后又返回到键盘管理程序的入口。 图2-19 单片机键输入处理流程图 1 1 独立式连接的非编码键盘独立式连接的非编码键盘 独立式连

21、接是指:每一个按键单独占用一根IO线, 每根IO线上的按键的工作状态不会影响其他IO线的工作状态, 如图2-20所示。 在图2-20中,用P1口8根I/O线连接8个按键。当没有键按下时,与之对应的输入线为1;任何一个键按下时,与之相连的输入线被置成0, CPU输入P1口状态;用查询指令可方便地判断哪一个键被按下。 图2-20 独立式连接的非编码键盘 非编码键盘结构的优点是简单,软件识别方便,缺点是占用较多的IO口线。在系统配置中需要按键数量较少时, 常采用这种按键方式。图2-20中键值输入采用查询方式,不包括延时去抖动程序, 只包括按键查询、键功能转移和8个键号处理程序入口等三部分。 程序清单

22、如下: START: MOV A,0FFH ; 置P1为输入状态,读引脚 MOV P1,A ; P1口锁存器写1, 读引脚有效 MOV A,P1 ; 输入按键状态供查询用 JNB ACC.0, P1.0 ; 0号键按下转 JNB ACC.1, P1.1 ;1号键按下转 JNB ACC.2, P1.2 ;2号键按下转 JNB ACC.3, P1.3 ;3号键按下转 JNB ACC.4, P1.4 ; 4号键按下转 JNB ACC.5, P1.5 ; 5号键按下转 JNB ACC.6, P1.6 ; 6号键按下转 JNB ACC.7, P1.7 ; 7号键按下转 JMP START ; 返回接着查

23、询 P1.0: LJMP PORT0 ; 转07号键处理程序入口P1.1: LJMP PORT1 ; P1.7: LJMP PORT7; 以下是各功能键处理程序结构: PORT0: ; 0号键处理程序 LJMP START ; 从0号键程序执行完返回PORT1: ; 1号键处理程序LJMP START ; 从1号键程序执行完返回 PORT7: ; 7号键处理程序 LJMP START ; 从7号键程序执行完返回 2. 2. 矩阵式连接非编码键盘矩阵式连接非编码键盘矩阵式又称为行列式。 在按键数量较多时,可以少占用IO线。用IO线组成行、列结构,行、列线不相通, 而是通过一个按键设置在行、列交叉

24、点上来连通。 若需要设置NM 个按键,则需要MN根IO线。 (1) 矩阵式键盘工作原理:4行4列键盘工作原理如图2-21所示。 键盘上的字符0123456789ABCDEF键值81H82H42H22H84H44H24H88H48H28H18H14H12H11H21H41H图2-21 44简单键盘结构 由图可见,16个键分两部分,十个数字键09;六个命令键AF。 对按键的识别由软件来完成。 用两个并行IO接口电路,采用步进式行扫描法。CPU每次通过接口对某一行Xi输出扫描信号0,然后输入列线Yj的状态来确定键闭合的位置。 列线Y接+5 V。无按键时,行X和列Y线断开,列线Y1Y4呈现高电平。当某

25、一按键闭合时,该键所在行、列线短接。若该行线输出为0,则该列线电平被拉成0(其余3根列线仍为1),此时CPU可判断出按键闭合所在行、列及键号。 若扫描从第一行有效开始,则CPU输出X4X3X2X1=1110, 以下类推:第二行为X4X3X2X1=1101, 第三行为1011,第四行为0111。设4号键按下闭合, 代表4号键闭合的特征信号为: 列信号:Y4Y3Y2Y1=0111,第4列有效。 行信号:X4X3X2X1=1011,第3行有效。 为了便于CPU处理,将行、列信号拼装成一个字节,然后求反得到4号键对应的“特征字”,也叫键值,即: 列线Y 行线X 0111 10111000 0100=8

26、4H CPU操作时,先输出行有效信号,再输入列信号,经过拼装、 求反得到键值,由于这种对应是唯一的,因此可用来识别键盘上所有的键,根据上述关系可求出其他键的键值如下: CPU在得到键值后,用一个软件计数器通过键值表,很容易判断按键闭合的号码。不同的接线方式,得到的键值可能不同, 但键号和键值的对应关系是唯一的。 (2) 矩阵式非编码键盘接口及程序设计: 用8155作键盘接口,A口作为扫描输出口,接键盘8条行线, C口作为输入口,用PC3PC0接键盘4条列线,8155作84键盘接口如图2-22所示。设A口地址0101H,C口地址0103H。 子程序: 键盘扫描程序中要调用两个子程序: DIR L

27、ED显示器显示子程序(程序略)。 该程序具有延时功能, 其延时时间为6 ms。 KS1判断子程序。 该程序判断是否有键闭合。 程序如下: 图2-22 用8155作矩阵式非编码键盘接口电路 KS1: MOV DPTR, 0101H MOV A,00HMOVX DPTR, AINC DPTRINC DPTR ;建立C口地址MOVX A, DPTR ;读C口CPL A, ;A取反, 无键按下则全0ANL A,0FH ;屏蔽A高半字节 执行KS1判断子程序的结果是:有键闭合,则(A)0, 无键闭合,则(A)=0。 键盘扫描程序:KEY1:ACALL KS1 ; 检查有键闭合否JNZ LK1 ; A非0

28、则转移NI: ACALL DIR ; 显示一次(延时6 ms)AJMP KEY1 ; LK1: ACALL DIR ; 有键闭合二次延时ACALL DIR ;共12 ms去抖动ACALL KS1 ;再检查有键闭合否JNZ LK2 ;有键闭合转LK2 ACALL DIR AJMP KEY1 ; 无键闭合, 延时6 ms后转KEY1 LK2: MOV R2,0FEH ; 扫描初值送R2MOV R4, 00H ; 扫描行号送R4LK4: MOV DPTR,0101H ; 设A口地址MOV A,R2 MOVX DPTR,A ; 扫描初值送A口INC DPTR INC DPTR ; 指向C口MOVX A

29、, DPTR ; 读C口JB ACC.0, LONE ; ACC.0=1, 第1列无键 闭合, 转LONE MOV A, 00H ; 装第1列列值 AJMP LKP LONE: JB ACC.1,LTWO ; ACC.1=1,第2列无键闭合, 转LTWOMOV A, 08H ; 装第2列列值AJMP LKP LTWO: JB ACC.2, LJHR ;ACC.2=1,第3列无键闭合, 转LTHRMOV A, 10H ; 装第3列列值AJMP LKP LTHR: JB ACC.3,NEXT ; ACC.3=1,第4列无 键闭合, 转NEXMOV A, 18H ; 装第4列列值 LKP: ADD

30、A, R4 ; 计算键值 PUSH A ; 保护键值LK3: ACALL DIR ; 延时6 ms ACALL KS1 ; 查键是否继续闭合,若闭合 再延时 JNZ LK3 ; 若键起, 键值送A POP A RET NEXT: INC R4 ; 扫描行号加1 MOV A, R2 JNB ACC.7 ,KND ; 第7位为0, 已扫完最高列, 转KNDRL A ; 循环左移1位MOV R2, AAJMP LK4 ; 扫描下一行KND: AJMP KEY1 ; 扫描完毕,开始新的一次扫 描 键盘扫描程序的运行结果是把闭合键键值放在累加器A中, 然后再根据键值进行下一步工作, 本程序键值未求反处理

31、。 232 编码键盘编码键盘上面所述的非编码键盘都是通过软件方法来实现键盘扫描、 键值处理和消除抖动干扰的。显然, 这将占用较多的CPU时间。 在一个较大的控制系统中,不可能允许CPU总是执行键盘程序。 下面以二进制编码键盘为例,介绍一种用硬件方法来识别键盘和解决抖动干扰的键盘编码器及其接口电路。 具有优先级的8位编码器CD4532B的真值见表2-1。 表示芯片优先级的输入允许端Ein为“0”时,无论编码器的信号输入I7I0为何状态,编码器输出全为“0”(即编码器处于屏蔽状态), 当输入允许端Ein为“1”时,而编码器的信号输入I7I0全为“0”时, 编码器输出也为“0”,但输出允许端Eout

32、为“1”,表明此编码器输入端无键按下,却允许优先级低的相邻编码器处于编码状态。 这两种情形下的工作状态端GS均为“0”。 表2-1 具有优先级的8位编码器CD4532B真值表 同一芯片中,I0的优先级最高,I7的优先级最低,当有多个键按下时,优先级高的被选中。比如处于正常编码状态即Ein为“1”时, I0端为“1”(即S0键按下),其余输入端无论为“1”或“0”(即其余键是否按下),编码输出均为00H,同时GS端为“1”,Eout端为“0”。以此类推,输入端的键值号与二进制编码输出一一对应。 图2-23是一种采用两片CD4532B构成的16个按键的二进制编码接口电路。其中,由于U1的Eout作

33、为U2的Ein,因此按键S0的优先级最高,S15的优先级最低。U1和U2的输出Q0Q2经门A1A3输出, 以便形成低三位编码D0D2。而最高位D3则由U2的GS产生, 当按键S8S15中有一个闭合时,其输出为“1”。 从而, S0S15中任意一个键被按下,由编码位D3D0均可输出相应的4位二进制码。 图2-23 二进制编码键盘电路 为了消除键盘按下时产生的抖动干扰, 该接口电路还设置了单稳态电路(B1、B2、R2和C2)和延时电路(A4、R3和C1),电路中E、F、G和H这四点的波形如图2-24所示。由于U1和U2的GS接或门A4的输入端,因此当按下某键时,A4为高电平,其输出经R3和C1延时

34、后使G点也为高电位,作为与非门B3的输入之一。同时,U2的输出信号Eout触发单稳态(B1和B2),在单稳态持续时间T内, 其F点输出为低电位,也作为与非门B3的输入之一。由于单稳态期间(T)E点电位的变化(即按键的抖动)对其输出F点电位无影响,因此此时不论G点电位如何,与非门B3的输出(H点)均为高电位。 当单稳延时结束,F点变为高电位,而G点仍为高电平(即按键断开)。也就是说,按下S0S15中任意一个按键,就会在T之后(恰好避开抖动时间)产生选通脉冲STB (H点)或STB(I点),作为向CPU申请中断的信号,以便通知CPU读取稳定的按键编码D3D0。 图2-24 消抖电路波形图 2.4

35、人机接口人机接口数字显示方法数字显示方法 2.4.1 2.4.1 发光二极管发光二极管LEDLED显示显示1. 71. 7段段LEDLED显示器结构与原理显示器结构与原理7段LED显示器由7个发光二极管组成显示字段,并按“8”字形排列。 这7段发光管分别称为a、b、c、d、e、f、g,有的还带有一个小数点dp,7段LED由此得名。将7段发光二极管阴极都连在一起, 称为共阴极接法,当某个字段的阳极为高电平时, 对应的字段就点亮。共阳极接法是将LED显示器的所有阳极并接后连到+5 V电源上,当某一字段的阴极为0时,对应的字段就点亮, 如图2-25所示。 图2-25 7段LED显示器件(a) 共阴极

36、; (b) 共阳极; (c) 段排列 由图可见,通过7段的不同组合控制,可以显示09和AF共16个数字、字母,实现十六进制显示。 下面举例说明显示字符和数字量与段选码的关系。对于共阴极接法,当加到阳极的数字量为0011 1111B=3FH时, 除g、 dp不发光外,其他6段均发光,因此显示一个0字符;对于共阳极接法,加到阴极的数字量为1100 0000B=C0H时,则显示“0”。 由此看出,共阳极接法的段选码与共阴极接法的段选码是逻辑“非”关系。 表表2-2 LED段选码和显示字符之间的关系段选码和显示字符之间的关系 显示字符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码03FHC0

37、H466H99H106HF9H56DH92H25BHA4H67DH82H34FHB0H707HF8H2. LED2. LED显示器两种显示方式显示器两种显示方式点亮LED显示器有两种方式:静态显示和动态显示, 下面以共阴极接法为例说明。 (1) LED静态显示方式: 所谓静态显示就是将N位共阴极LED显示器的阴极连在一起接地,每一位LED的8位段选线与一个8位并行口相连,当显示某一个字符时,相应的发光二极管就恒定地导通或截止。一个4位静态显示电路如图2-26所示。 图2-26 4位静态LED显示电路 在图中,每一位LED可独立显示。 由于每一位LED由一个8位输出口控制段选码,故在同一时间里每

38、一位显示的字符可以各不相同。静态显示的优点是所需驱动电流较小,可以由8155或8255直接驱动,显示稳定。缺点是N位LED要求有N8位IO口线,占用IO口线太多,故多在显示位数较少时使用。 (2) LED动态显示方式: 所谓动态显示就是用扫描方式轮流点亮LED显示器的各个位。 特点是将多个7段LED显示器同名端的段选线复接在一起,只用一个8位IO控制各个LED显示器的公共阴极轮流接地,逐一扫描点亮, 使每位LED显示该位应当显示的字符。恰当地选择点亮LED的时间间隔(15 ms),会给人一种视觉暂停效应, 似乎多位LED都在“同时”显示。图2-27是一个8位动态显示原理图。 图2-27 8位L

39、ED动态显示原理图 在图中,控制每个LED显示位轮流接地点亮的代码称为“位选码”。由IO(2)口输出8位代码控制。特点是每次输出只有一位是0(点亮),其余7位均为1(熄灭),因此每一位LED都有一个唯一的8位“位选码”。按图2-27从左向右轮流显示8位LED的位选码可用8031右移循环指令实现: MOV A, 7FH ; 点亮左1 LED的位选码LOOP:MOVX DPTR,A ; 从IO(2)口输出位选码 RR A ; 右移一位, 指向下一个LED位 LCALL DELAY ; 调延时3 ms子程序 LJMP LOOP ; 返回显示下一位LED 动态显示的操作由软件完成。每次由IO(1)口输

40、出段选码、 再由IO(2)口输出位选码,经过延时,以获得稳定的显示效果。 从上述分析的显示原理可知,为了显示数字和字母,最终需要转换成相应的段选码。这种转换可以通过硬件译码器或软件译码完成。 3. 3. 用硬件译码的用硬件译码的8 8位静态位静态LEDLED显示接口电路显示接口电路 在单片机显示中, 要求LED显示十进制或十六进制数。因此在选择硬件译码器时,要能够完成对输入BCD码及十六进制数的锁存、译码并具有直接驱动LED功能。MC14495 BCD7段十六进制锁存、译码驱动芯片能够完成上述任务。 (1) MC14495使用功能介绍: 该芯片有16条引脚。 内部结构如图2-28所示。 图2-

41、28 MC14495 BCD-7段十六进制锁存译码驱动器 由图2-28可见,4位锁存器对A、B、C和D端输入的BCD码进行锁存。由选通线LE控制锁存器,当LE=0时,允许输入数据, 在LE=1时,锁存输入数据。 输入译码电路将输入的BCD码:00001001、10101111译成7段a、b、c、d、e、f、g。电路特点是用字母A、B、C、 D、E、F来显示对应的十进制数10、11、12、13、14、15。引脚hi为输入数据值指示端: 当输入值大于10时,hi=1; 输入数值小于10时,hi=0。 当输入ABCD=1111(15)时,UCR=0。 驱动器输出10 mA电流,并有内部输出限流电阻,

42、可直接与显示器相连接,故LED不需外加限流电阻。 MC14495输入、 输出及显示字符关系如表2-3所示。 表表2-3 MC14495输入、输出及显示字符表输入、输出及显示字符表 (2) MC14495与8031单片机和显示器接口:使用8片MC14495和8位7段LED显示器与8031单片机接口电路如图2-29所示。由图2-29可见,8个7段LED采用共阴极接法。 用P1口的低4位输出BCD待显示的数字到A、B、C、D公共输入端。由P1口高4位P1.4P1.7控制74LS138译码器的输出, Y0Y7分别决定MC14495哪一个输入锁存器的LE有效。这样由P1口一次输出8位代码即可完成一位LE

43、D静态显示。 图2-29 使用MC14495的8位静态LED显示接口图2-29的软件驱动显示程序如下:P1.7=1选中74LS138译码器有效,由P1.6、P1.5、P1.4控制LE端依次选中18LED之一。 然后根据表2-3由P1.0P1.3写入BCD码,再使LE由01时锁存该数据并译码,驱动和显示。 若使1号LED显示0字符, 则P1口输出1000 0000B=80H, 用程序实现: MOV A,80H ; 选中1号LED, 显示0字符MOV P1, A ; 输出, Y0=0, ABCD=0000其他位的选择和显示0F字符可根据需要按上述规律编写。 4. 4. 用软件译码的用软件译码的8

44、8位动态位动态LEDLED显示接口电路显示接口电路 在单片机人机联系中,显示器采用软件译码并不复杂, 而且软件译码逻辑可根据用户的要求任意编程设定,不受硬件译码器的逻辑限制,可以简化硬件接口电路结构。下面以一个8位7段动态LED显示用软件译码的设计为例加以说明。 (1) 软件译码的动态显示硬件接口设计: 8位7段LED显示器需要两个8位并行输出口,一个输出段选码,另一个输出8位位选码。用8031扩展一片8155 IO接口可满足要求,用PB口输出段选码, PA口由动态扫描方式输出位选码,用74LS07作为驱动器, 实现上述功能的硬件接口电路如图2-30所示。 图2-30 通过8155扩展 IO口

45、控制的8位LED动态显示硬件接口电路 (2) 8位动态LED显示程序设计:动态显示程序设计要点有三方面。 8155初始化,设定PA口、PB口工作在输出状态,PC口工作在输入状态,且为ALT1方式,控制字为03H。 代码转换,从PB口输出段选码,应将待显示的字符09,AF自动转换成段选码,为此,应在EPROM中开辟一个换码表,表中关系由表2-3决定,由指令查表取出段选码。 位选码的形成。显示从最左边第1位LED开始,位选码为7FH, 由PA口输出,然后右移一位选择左边第2位,依次轮流。 在两次输出之间延时1 ms,形成动态显示。 按上述要求编制的程序应在8031片内RAM区开辟一个显示缓冲区,存

46、放要进行显示的十六进制数。需要8个单元,首地址为10H单元,存放送往最左边的LED数据,如图2-31所示。 根据上述分析, 8位动态LED显示子程序框图如图2-32所示。 图2-31 LED数字显示缓冲区 图2-32 8位动态LED显示子程序流程图 根据图2-32编写的程序清单如下: DIS: MOV A, 03H; 8155命令字PA、 PB口基本输出MOV DPTR,7F00H ; 8155 IO命令口地址MOVX DPTR,A ; 写入8155方式命令字MOV R0,10H ; 送片内显示缓冲区RAM首地址MOV R3,7FH ; 位选码, 最左一位先亮MOV A,R3 ; 暂存于A中L

47、DO: MOV DPTR, 7F01H ; 指向PA口地址MOVX DPTR,A ; 从PA口输出位选码MOV A,R0 ; 取待显示数据送A MOV DPTR,TABLE ; 指向换码表首地址MOVC A, A+DPTR ; 取出对应段选码MOV DPTR, 7F02H ; 指向PB口地址MOVX DPTR, A ; 从PB口输出段选码ACALL DLL ; 调用延时1 ms子程序MOV A, R3JNB ACC.0, LD1 ; 判断8位LED显示完转(ACC.0=0)RR A ; 未显示完右移一位, 变成 下一位位选码MOV R3, A ; 暂存INC R0 ; 指向下一个RAM显示地址

48、LJMP LD0 ; 转回, 显示下一个数码 LD1: RET以下是待显示数据对应的段选码换码表:TABLE: DB 3FH ; 对应字符0 DB 06H ; 对应字符1 DB 5BH ; 对应字符2 DB 4FH ; 对应字符3 DB 66H ; 对应字符4 DB 6DH ; 对应字符5 DB 7DH ; 对应字符6 DB 07H ; 对应字符7 DB 7FH ; 对应字符8 DB 6FH ; 对应字符9 DB 77H ; 对应字符A DB 7CH ; 对应字符B DB 39H ; 对应字符C DB 5EH ; 对应字符D DB 79H ; 对应字符E DB 71H ; 对应字符F以下是软件

49、延时1 ms子程序(相对于8031为6 MHz时钟):DLL: MOV R7, 64HDLAY: NOP NOP NOP DJNZ R7, DLAY RET 显示程序每次只能在一个显示位上显示一种字型,利用软件延时,将该字符显示保存1 ms再移向下一位。上述程序设计成子程序,一次只能从左向右显示一次。为了使显示字符稳定下来,必须反复调用该程序。 2.4.2 LCD2.4.2 LCD显示接口技术显示接口技术 液晶就是液态晶体(Liquid Crystal)。 通常我们将物质分为三态:固态、液态和气态。而液晶是一种不属于上述三态中任何一种状态的中间状态。这种中间状态的物质是外观呈流动性的混浊液体,

50、同时它具有光学各向异性和晶体所特有的双折射性。这种能在某个温度范围内兼有液体和晶体二者特性的物质就称为液晶,因此也有人将其称为物质的第四态。用液晶材料做成显示器就称为液晶显示器(Liquid Crystal display), 简称LCD。 由于液晶材料具有介电各向异性、电导各向异性及双折射性,因此外加电场能使液晶分子排列发生变化,显示出旋光性、 光干涉性和光散射性等特殊的光学性质,这种现象被称为电光效应(Electrooptic Effect)。 扭曲向列型(TN)液晶显示器件是最常见的一种液晶显示器件,手表、数字仪表、电子钟及大部分计算器所用的液晶显示器件都是TN型器件。液晶显示器的驱动分

51、静态方式和动态方式。 显示方式分笔段式、 点阵字符式、 点阵图形式。 1. LCD1. LCD的驱动方式的驱动方式 (1) 静态驱动: 静态驱动的液晶显示器件,各液晶像素的背电极BP是连在一起引出的,各像素的段电极SEG是分立引出的,如图2-33(a)所示。此时,在背电极BP上加一个正电压(如5 V),在所要显示的像素的段电极(如SEGf)上加上0 V电压,该像素电极间的电位差便为UBP-USEGf=5 V,呈显示状态;不显示像素的段电极(如SEGa)加上5 V电压,该像素电极间的电压便为UBP-USEGa=0 V,呈不显示状态。 当然液晶驱动要求是交流驱动,所以在另一段时间内背极BP上加的是

52、0 V电压,所要显示像素的段电极上(如SEGf)加上5 V电压, 不显示像素的段电极(如SEGa)上加0 V电压,从而造成显示像素电极间电压为UBP-USEGf=-5 V,不显示像素电极间电压为UBP-USEGa=0 V,产生了与上述相同的效果,而各像素上的平均电压差为0 V。 依照交流驱动的原则,可在背电极BP上加入一个正脉冲序列,在显示像素的段电极(如SEGf)上加入一个与背电极脉冲相位差180的等幅脉冲序列,那么在该像素上便会产生+5 V-5 V的显示驱动脉冲序列;而在不显示像素的段电极(如SEGa)上加入一个与背电极脉冲同相位的等幅正脉冲序列时, 则在该像素上产生0 V电压差,从而形成

53、液晶显示的交流驱动。 这就是液晶显示的静态驱动方式。静态驱动波形及静态驱动电路原理如图2-33(b)和(c)所示。静态驱动电路工作时序如图2-33 (d)所示。 图2-33 静态驱动方式原理 图2-33 (c)中A是控制端,以选择某位像素是否被显示。 A=1时,像素的段电极SEG与背电极上信号的相位差正好相差180,在该像素上便产生+5 V-5 V的显示驱动脉冲序列; 当A=0时,像素的段电极SEG与背电极上信号的相位差为0, 则其合成电压(UBP-USEG)也为0 V,该像素就不显示。 (2) 动态驱动:当液晶显示器件上显示像素较多时,若使用静态驱动结构将需要很多的电气连接和庞大的硬件驱动电

54、路。为了解决这个问题,在液晶显示器电极的制作和排布上做一定的修改,采用矩阵结构,即把水平一组显示像素的背电极连在一起引出,称之为行电极,又称为公共极,用表示; 把纵向一组显示像素的段电极连在一起, 称之为段电极,又称为列电极,用SEG或COL表示。每个液晶显示像素都由其所在行和列的位置确定。在驱动方式上采用了类似CRT光栅逐行扫描的方法,这种驱动方式称为动态驱动法,或多路寻址驱动法。下面介绍动态驱动的原理。图2-34(a)给出一个57点阵的液晶像素阵列,设定行驱动电压和列驱动电压。行、列选择电压:U1(行)、U6(列);行驱动电压:U2(行)、U5(列); 列驱动电压:U3(行)、U4(列)。

55、同时有:U1U2U3U4U5U6。由于驱动器使用逻辑电路,因此U1=UCC=+5 V(逻辑电源), 为了提高液晶的驱动电压,U6的变化是往负电压方向增加的。 应用偏压法在电路上采用等电压电路,即U1U6分成若干挡,如分成a挡,然后将两对电压U2、U5和U3、U4分别设置在对应的中心电压两挡上。如令U1U6=ULCD, 若a=5,则分挡宽度为 ,那么各点电压取值为: 因为液晶驱动是交流驱动,所以在列驱动脉冲序列中, 幅值U1和U6,U3和U4相互交换,在一个周期内幅值为U1或U3, 而在另一个周期内幅值为U6或U4。在行驱动脉冲序列中,不仅幅值U1和U6,U2和U5交替变化,而且相对于列驱动脉冲

56、序列还有相位的变化,即相位相差 180,这样才能实现在选择像素上电位差最大,如图2-34(b)所示。 图2-34 动态驱动原理 2. 2. 笔段式笔段式LCDLCD的工作原理及应用的工作原理及应用 笔段式液晶显示器件是以长条状显示像素的液晶显示器件, 类似段式LED显示器。笔段型液晶显示器的驱动方式主要取决于该器件各显示像素外引线的引出与排列方式,通常有24、 33等引出方式。图2-35为24排列方式示意图,它是由2个BP端和4个SEG端(如图2-35(a)所示),或由4个BP端和2个SEG端(如图2-35(b)所示)构成的。由图2-35可以看出,它是采用动态扫描方式进行驱动的。 图2-35

57、24段式液晶显示器引脚排列示意图 笔段式液晶显示器件有多种,如数码式、简单字符式、 带模拟输入AD转换式等。笔段型LCD显示器件主要用于数字及简单字符的显示,如便携式低功耗仪器、电子计算器、家用电器等。下面介绍使用广泛、实用性较高的、带AD转换的笔段式液晶显示驱动电路TCL7129。 (1) TCL7129的基本结构和特性: TCL7129是带有3路寻址位液晶显示驱动的AD转换器,它具有低功耗、高精度(满量程精度为0.05), 具有微弱信号检测能力(分辨率为10V)、自动量程转换等功能。仅需几个外围元件就可工作。TCL7129的主要功能如下: 19 999计数AD转换器; 在200 mV标度上

58、分辨率为10 V; 110 dB抗共模干扰能力; 直接液晶驱动电路; 真差分输入和差分基准; 9 V电源供电,低功耗工作ICC=1 mA; 随测量信号大小变化的小数点驱动电路; 过量程、欠量程输出; 电池电压低检测和指示; 101量程转换输入。 TCL7129的引脚图和原理框图如图2-36和图2-37所示。 图2-36 TCL7129引脚图 图2-37 TC129原理框图 (2) TCL7129的应用实例: TCL7129的使用非常简单,仅需外接几个元件就可完成AD转换及液晶显示器的驱动功能,图2-38所示的是TCL7129应用电路图。 图2-38中ICL8069为稳压二极管,为TCL7129

59、提供一个稳定的基准电压源,20 k电位器用于调整TCL7129的基准电压, UI为模拟电压输入。 图2-38 TCL7129 实际应用电路 3. 3. 点阵图形式液晶显示器的使用点阵图形式液晶显示器的使用 与笔段式液晶显示器相比,点阵图形液晶显示器的显示面积较大,它的显示像素是连续排列的,所以不仅可以显示任意字符,而且可以显示各种曲线和图形;同时图形与字符还可以实现与、或、异或等逻辑组合,然后再混合显示。点阵图形液晶显示器的规格很多,在此,就使用广泛、价格低廉,性能可靠的点阵图形液晶显示模块DMF5001N的结构和使用方法作一介绍。 (1) DMF5001N点 阵 图 形 液 晶 显 示 器

60、结 构 与 特 点 :DMF5001N点 阵 图 形 液 晶 显 示 模 块 如 图 2-39所 示 , 它 由160128点阵液晶屏、T6961B点阵行驱动器、T6A39点阵列驱动器、T6963C点阵液晶显示控制器及64 KB RAM构成,这些部件均安装在液晶显示模块上,且J为防静电保护装置。 图2-39 DMF5001N图形点阵液晶显示器的结构 T6963C点阵液晶显示控制器有8根数据线及6根控制线, 可以和外部的CPU相连,受CPU控制。64 KB随机存储器作为显示缓冲区使用。 DMF5001N的主要特点如下: 点 阵 分 布 为 160128, 每 个 点 阵 大 小 为 0.58 m

61、m0.58 mm。 有字符显示及图形显示两种方式。 在字符显示方式下,字符尺寸大小是88点阵,一屏可显示16行,20列,320个字符。 在图形显示方式下,图形的最小显示单元是一点阵, 但它是以18个点阵为一个基本单元在RAM中存放,一屏画面由128(行)20(列)组成,共有20480个点阵,占用2560 KB RAM。 在图形与字符混合显示方式下,图形缓冲区的内容和文本缓冲区的内容可进行与、或、异或等逻辑操作后混合显示。 可以读和复制显示屏幕数据,也可以通过软件编程设置文本和图形显示窗口。 可以控制光标和字符亮暗闪烁; 控制字符正常或倒置显示。 外形尺寸为129 mm102 mm12.8 mm

62、,用+5 V供电(另需有-21 V电源并通过电位器调节控制显示灰度),其功耗为550 mW(全显示时的最大值)。 (2) DMF5001N液晶显示器的地址安排。DMF5001N液晶显示器的地址有两种,一种是硬件设备所确定的地址,对该地址执行读操作就能读出液晶显示器的状态和屏幕显示的内容,对该地址写就是输入对液晶显示器的各种操作命令和显示数据。 另一种地址是DMF5001N液晶显示器内部64 KB RAM的地址,该地址为0000H0FFFFH,全部可由用户作为显示缓冲区使用。 显示缓冲区RAM的地址与显示屏上的几何位置是一一对应的。 文本缓冲区的地址安排见表2-4所示,在所对应的RAM缓冲区中,

63、每个字符需要1个字节,一屏画面共需320个字节的RAM。 图形缓冲区的地址安排见表2-5,一屏画面需有2560 B的RAM。 DMF5001N液晶显示模块上的64 KB随机存储器,全部可由用户同时自由安排多个(屏)字符缓冲区,或多个图形显示缓冲区,显示时可由软件自由选择显示哪一个缓冲区的内容,或哪两个(图形和文本)显示缓冲区内容叠加的结果图形。为了能使图形和文本混合显示,在屏幕上可以划分为文本说明区和图形显示窗口。在文本说明区的显示字符放入文本缓冲区对应位置的RAM内;图形显示窗口内容都放入图形缓冲区对应位置的地址上。 表表2-4 文本缓冲区的地址安排文本缓冲区的地址安排 THTH+19TH+

64、1TATH+1TA+19TH+2TATH+2TA+19TH+15TATH+15TA+19表表2-5 图形缓冲区的地址安排图形缓冲区的地址安排 GHGH+19GH+1GAGH+1GA+19GH+2GAGH+2GA+19GH+127GATH+127GA+19(3) T6963C点 阵 液 晶 显 示 控 制 器 的 指 令 系 统 : 对DMF5001N液晶显示模块的操作实际上就是对液晶控制器T6963C的操作,但参数设置时又不能脱离具体的液晶显示屏而随意操作,所以在对DMF5001N液晶显示模块编程时有必要对点阵液晶显示控制器T6963C的指令系统有所了解。它共有11条指令, 详解如下。 显示地

65、址设置(DISPLAY ADDRESS SET): N1N0其中,N1、N0与参数D1、D2关系如下: N1N0说 明 00文本初始地址 地址低字节地址高字节 01文本区列数 列数 00H 10图形区起始地址 地址低字节 地址高字节 11图形区列数 列数 00H 地址指针设置(REGISTER SET): N2N1N0其中,N2、N1、N0与参数D1、D2的关系如下: N2N1N0说 明 D1D2001光标指针地址设置 水平位置(低7位)垂直位置(低5位)010偏置寄存器地址设置 偏置地址(低5位) 00H 100显示地址设置 地址低字节 地址高字节 显示状态设置(DISPLAY MODE):

66、 101N3N2N1N0其中,N0N3的含义如下: N0光标闪烁设置 IO 闪烁不闪烁 N1光标显示设置 IO显示光标隐藏光标 N2文本显示设置 IO启用文本显示禁止文本显示 N3图形显示设置 IO启用图形显示禁止图形显示 光标形状设置(CURSOR PATTERN SELECT): 10100N2N1N0其中,光标大小为8点阵列N行, 行的数值由N2、 N1、 N0决定(07)。 一次数据读写(DATA READ WRITE): 11000N2N1N0其中, N2、 N1、 N0的含义和参数D1的关系如下: N2N1N0说 明 D1000数据写, 地址指针加1 被写数据 001数据读, 地址

67、指针加1 一010数据写, 地址指针减1 被写数据 011数据读, 地址指针减1 一100数据写, 地址指针不变 被写数据 101数据读, 地址指针不变 一 数据自动读写方式设置(DATA AUTO READ WRITE): 10N1N0其中, N1、 N0含义如下: N1N0说 明 00数据自动写 01数据自动读 1*终止自动方式 显示方式设置(DISPLAY MODE SET): 100N3N2N1N0其中,N2、 N1、 N0含义如下: N2N1N0说明000图形和文本逻辑或 001图形和文本逻辑异或 011图形和文本逻辑与 100文本属性 N3: 为“0”, 内部字符发生器; 为“1”

68、, 外部字符发生器。 屏幕读(SCREEN PEEK): 10这个指令用于从屏幕上读取一字节的显示数据,如果地址不是图形RAM区, 这个指令就被忽略(该指令不能用在文本区), 并且检测状态标志STA6, 如正确,则读取数据。 屏幕拷贝(SCREEN COPY): 10如果地址指针和图形指针一致,则在地址指针指定的地址写一行显示的数据;如果地址在文本区,这个指令被忽略, 并且建立状态标志STA6。 位操作(BIT SET RESET): 1N3N2N1N0其中,N3是被写入的数据(“1”或“0”); N2、 N1、 N0为当前地址指针所指字节的位地址, 取值000111。 11.读状态标志(RE

69、AD STATUS FLAG): STA7STA6STA5STA4STA3STA2STA1STA0各状态标志位说明如下: 状态标志位 说 明 =1 =0 STA0 指令准备标志 准备好 忙 STA1 数据准备标志 准备好忙STA2自动读准备标志 准备好忙STA3自动写准备标志 准备好忙STA4未用 STA5停止振荡和复位 可以 不可以 STA6出错标志 出错 未出错 STA7闪烁标志 显示闪烁 显示不闪烁 (4) DMF5001N液 晶 显 示 器 的 应 用 : 图 2-40所 示 是DMF5001N液晶显示模块与单片机接口的实际应用电路,用51系列单片机最小系统就可直接控制DMF5001N

70、,液晶显示器的数据总线、电源线及读写线可和单片机最小系统的数据总线、 电源线及读写线直接相连。 图2-40 DMF5001N液晶显示器的实际应用电路 由于DMF5001N液晶显示器的复位信号和8032单片机复位信号正好反相,因此8032单片机复位信号反相后作为DMF5001N液晶显示模块的复位信号;DMF5001N液晶显示器的指令数据(CD)控制信号由单片机端口P1.7控制;时钟控制信号(HALT)可受控制,也可接高电平(内部振荡器一直工作,不受控制)。 DMP5001N液晶显示器在单片机系统中作为外部设备使用,它的地址可以线选或译码后给出。在本电路中它由单片机P2.7端口线选,其地址为7FF

71、FH。 根据图2-40所示的电路,其初始化流程如图2-41所示。 DMF5001N液晶显示模块写指令和数据操作的流程如图2-42所示。 图2-41 DMF5001N液晶显示器初始化流程图 图2-42 写指令、 数据流程图 其初始化程序如下(要写入的指令放在指令缓冲区R5中, 要写入的数据D1、D2放在数据缓冲区R2、R3内):初始化程序如下: FMAT: MOV R2, 05H; 延时, 使LCD充分复位DALY1: MOV R3, 00HDALY2: MOV R4, 00HDALY3: DJNZ R4, DALY3 DJNZ R3, DALY2 DJNZ R2, DALY1 MOV R5,

72、9DH ; 设置为文本图形混合方式, 光标闪烁但暂隐藏 LCALL BSC ; LCD忙否, 进行指令操作 MOV R5, 0A7H ;设置光标大小 LCALL BSC MOV R2, 00H ;游标坐标初始化为0行0列 MOV R3, 00H MOV R5, 21 LCALL BSD ;LCD忙否,不忙进行写数据操作 MOV R5, 81H ;设置文本和图形异或方式显示 LCALL BSC MOV R2, 5AH ;数据文本缓冲区首址为5A00H MOV R3, 00H MOV R5, 40HLCALL BSD ;LCD忙否,不忙进行写数据操作 MOV R3, 14H ; 设置文本宽度为20

73、列 MOV R2, 00H MOV R5, 41H LCALL BSD MOV R2, 50H ; 图形缓冲区首地址5000H MOV R3, 00H MOV R5, 42H LCALL BSD MOV R3, 14H ; 图形宽度为160点, 20字节 MOV R2, 00H MOV R5, 43H LCALL BSD RET 对命令、 数据操作程序如下: 写指令子程序, (R5)中为指令代码:BSC: LCALL WAIT ; LCD忙否 MOV A, R5 ; 读取指令 MOVX DPTR,A ; 写指令 RET ; 返回 写数据及写数据指令子程序,(R2、R3)为被写数据,(R5)为指

74、令代码: BSD: LCALL WAIT ; LCD忙否 CLR P1.7 ; 准备写数据 MOV A, R3 MOVX DPTR,A ; 写(R3)数据D1 INC DPTR MOV A, R2 MOVX DPTR,A ; 写(R2)数据D2 LCALL BSC ; 写(R5)指令 RET ; 返回 检查忙否,判断是否可写数据及指令子程序: WAIT: MOV DPTR,0000H ; 选中LCD SETB P1.7 ; 准备读状态 MOVX A,DPTR ; 读LCD状态 ANL A,03H ; 取STA1,STA2位 CJNE A,03H, WAIT ; 检查LCD忙否 RET ; 返回

75、 (5) DMF5001N液晶显示器的显示数据输入: DMF5001N液晶显示器的显示字符、图形数据输入通常采用连续写的方式, 其流程图如图2-43所示。 图2-43 连续写程序段流程图 习习 题题 1过程通道分为哪些类型?它们各有什么作用?2 开关量输入输出通道一般由哪几部分组成?输入缓冲器和输出锁存器各有什么作用?3 开关量输入信号调理的主要任务是什么?4 光电隔离时,光耦合器两侧能否使用同一个电源?为什么?5 使用固态继电器时,是否还需要光电隔离?为什么? 6 键盘设计需要解决的几个问题是什么?键盘为什么要去除抖动?在计算机控制系统中如何实现去抖动?7 在工业过程控制中, 键盘分为哪几种

76、类型?它们各有什么特点和用途?8 试说明非编码键盘的工作原理。 9 非编码键盘的工作方式有哪几种?请简要说明。 10 设计一33的键盘,画出电路连接图,并编写相应的键盘扫描程序。 11 设计一显示电路,当题10中的键盘有键按下时,能够显示按键对应的数值。设按键对应的数值为19。 12试设计一计时秒表,当按下计时键后,开始计时;按下停止键后,终止计时,并显示计时时间。试画出电路图并写出相应程序。 13 LED发光二极管组成的七段数码管显示器,就其结构来讲有哪两种接法?不同接法对字符显示有什么影响?14多位LED显示器显示方法有哪几种?它们各有什么特点?15LCD显示与LED显示原理有什么不同?这两种显示方法各有什么优缺点?168031单片机的P3口接一个共阴极的数码管,P1口接44的键盘,每个键的键值依次是0F, 要求任意按下一个键, 则在数码管上显示该键的键值,请编写一段程序完成上述任务。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号