1.02k likes | 1.22k Views
MCS-51 单片机. AT89S51 最小化应用电路. 第 5 章 MCS-51 的常用接口设计. 主要类容: 5.1 人机接口 — 键盘和 LED 显示接口 5.2 LCD 显示接口 5.3 并行接口的扩展 5.4 同步串行总线接口 5.5 常用传感器接口 5.6 常用功率驱动接口. V. S. 5.1 人机接口 -- 键盘和 LED 显示接口. 一 . 键盘接口. 每一按键都有一根信号线与单片机相连,所有的按键有一个公共端与地或与电源正端连接,每个按键相互独立。. 独立式键盘. 1. 键盘的结构.
E N D
MCS-51单片机 AT89S51最小化应用电路
第5章 MCS-51的常用接口设计 主要类容: 5.1 人机接口—键盘和LED显示接口 5.2 LCD显示接口 5.3 并行接口的扩展 5.4 同步串行总线接口 5.5 常用传感器接口 5.6 常用功率驱动接口
V S
5.1 人机接口--键盘和LED显示接口 一.键盘接口 每一按键都有一根信号线与单片机相连,所有的按键有一个公共端与地或与电源正端连接,每个按键相互独立。 独立式键盘 1.键盘的结构 按键触点连接于行线和列线组成的矩阵电路的交叉处,每当某一按键按下时则与之相连的行线与列线被连通。 矩阵式键盘
图5.1独立式键盘 图5.2.矩阵式键盘 ①程序控制扫描方式 2.键盘扫描方式 ②定时扫描方式 ③中断扫描方式
用简单的R-S触发器 或单稳态电路构成 硬件消抖-- 3.按键去抖动 用延时来躲过暂态抖动过程,即执行一个大约10ms的延时程序后,再读取稳定的键状态 软件消抖-- 图5.3 按键合断时的电压抖动 图5.4 消除抖动电路
二.LED显示器接口 • LED显示器的结构与原理 • LED显示器是由发光二极管显示字段组成的显示器件,它分共阴极和共阳极两种。公共端(共阴或共阳端)称为位选线,dp g f e d c b a为段选线,组成8位二进制称为段码,点亮不同的字段组合可以显示不同的数字或字符。
(a) (b) (c) 共阴极LED显示器的发光二极管的阴极接地,当发光 二极管的阳极为高电平时对应的字段点亮,如(a); 共阳极LED显示器的发光二极管的阳极接+5v,当发光二极管的阴极为低电平时对应的字段点亮,如(b); 图(c)中a~g 引出端对应的字段构成“8”,dp引出 端对应的字段为小数点。
LDE显示器的显示方式 N位LED显示器有N根位选线和8×N根段选线。根据显示方式的不同,位选线和段线的连接方法有所不同。 LED静态显示方式--共阴极接地或共阳极接+5V,每一位的段选线与一个8位平行I/O口相连。 LED动态显示方式--将所有位的段选线按同名字段并接在一个I/O口上,共阴极端或共阳极端分别由不同的I/O口线控制,构成LED动态显示电路。 注:单片机轮流点亮每一位LED显示器,在同一时刻只有一位显示器点亮,但由于人眼的视觉滞留效应和发光二极管熄灭时的余辉,将出现多个字符同时显示的现象。
三.键盘+LED显示接口举例 1.实例设计内容: ①键盘为4×4矩阵式键盘,4位LED显示器; ②可以显示给定的数字,输入按键值。 2.硬件配置 ①LED接口:MCS51的P2口串入8只330欧的限流 电阻连接到LED的段选线,P1.0至P1.3经7407驱动接LED的位选线; ②键盘接口:P1.0至P1.3经与门驱动后接键盘的扫描线,P1.4至P1.7作为键盘输入线。
5.2 LCD显示接口 LCD(liquid crystal display)液晶显示器的主要材料是液态晶体。它本身不发光,靠液晶态物质的液晶分子排列状态在电场中改变而调制外界光而被动显示。 被动型显示适合于人眼视觉,不易引起疲劳, 不怕光冲刷。 光冲刷是指环境光较亮时,被显示的信息被冲淡,从而显示不清晰。 LCD主要用于低压微功耗的便携式仪器仪表,如通信器材、计算器、电子手表等,另外电脑、电视用量也很大。
一.液晶的显示原理 LCD之所以能发光显示信息,是因为它可以通过特定的驱动方式来调节光源的亮度。夹在导电玻璃电极间的液晶经过加工,内部分子呈90°扭曲,如上图所示。由于光线顺着分子的排列方向传播,所以光线经过液晶时也被扭转90°。
当夜晶上加上电压时,分子便会重新垂直排列,使光线能直射出去,而不发生任何扭转。当夜晶上加上电压时,分子便会重新垂直排列,使光线能直射出去,而不发生任何扭转。 • 液晶显示是由于在显示像素上施加了电场,这个电场由显示像素前后两电极上的电位信号合成产生。 • 由于过强的直流电场会导致液晶材料的化学反应以及电极老化,迅速降低液晶的显示寿命,因此必须建立交流驱动电场。 • 显示像素上交流电场的强弱可由交流电压的有效值表示。 • 液晶显示驱动通过调节施加在液晶显示器件电极上的电位信号的相位、峰值、频率等,建立驱动电场,以实现液晶显示器件的显示效果。 • 常用的液晶显示驱动方法有静态驱动和动态驱动。
a.静态驱动 导通/断开信号与共用波形连接异或门得到笔段波形,产生笔段电极电位。 共用波形产生共用电极电位 • 控制方波保持为对称方波,频率一般为25~100Hz,使加在LCD两极电压的平均值为0。 • 笔段波形与公用波形不是相同关系就是相反关系:处在相同关系时,液晶上无电场,LCD处于非选通状态;处在反相关系时,在液晶上施加了矩形波。
若矩形波电压高出液晶阀值很多时,LCD处于选通状态,其波形如上图所示。若矩形波电压高出液晶阀值很多时,LCD处于选通状态,其波形如上图所示。
b.动态显示 在x电极上施加选通信号。 在y电极施加于x电极同步的选通信号。 x,y方向上的选通信号均有效,那么坐标为(x,y)的液晶点像素处在选通状态,否则处在非选通状态。
帧周期(Tf)——驱动X电极从第一行到最后一行所帧周期(Tf)——驱动X电极从第一行到最后一行所 需的时间。 • 占空比(Duty)——驱动每一行所需时间Tt与帧周期 • 之比值,Duty=Tt/Tf=1/N。 • 偏压比(Bias)——非选通时的波形电压与选通时的 • 波形电压之比Bias=1/a。 为了使选通像素、非选通像素之间显示状态一致,要求选点电压Von 、非选点电压Voff一致。像素在选通电压作用下被选通,在非选通电压作用下不被选通,则必须要求LCD的光电性能有阀值特性,且越陡越好, Von、Voff之间的差异越大越好,即比值Von/Voff越大越好。
二.LCD控制器KS0108介绍 由KS0108控制的128*64点阵LCD框图如下:
指令说明 ①显示开/关设置——设置屏幕显示开/关。 ②设置显示起始行——执行该命令后,所设置的行 将显示在屏幕的第一行。 ③设置页地址 ——执行本指令后,下面的读写操作 将在指定页内,直到重新设置。 CODE: R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 ① ② ③
④设置列地址 CODE: R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 功能: DD RAM 的列地址存储在Y地址计数器中, 读写数据对列地址有影响,在对DD RAM进 行读写操作后,Y地址自动加一。 ⑤状态检测 CODE: R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 功能: BF=H:内部正在执行操作; BF=L:空闲状态。 RST=H:正处于复位初始化状态; RST=L:正常状态。 ON/OFF=H:显示关闭; ON/OFF=L:显示开。
⑥写显示数据 CODE: R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 功能:写数据到DD RAM,写指令执行后Y地址计数 器自动加1。D7-D0位数据为1表示显示,数据 为0表示不显示。写数据到DD RAM前,要先 执行“设置页地址”及“设置列地址”命令。 ⑦读显示数据 CODE: R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 功能:从DD RAM读数据,读指令执行后Y地址计数 器自动加1。从DD RAM读数据前要先执行“设 置页地址” 及“设置列地址”命令。
时序说明 ①写操作时序
5.3 并行接口的拓展 I/O并行接口的扩展方法: • 当所需I/O口较少时,可采用74LS系列器件进行扩展。 • 当所需I/O口较多时,可采用专用接口芯片进行扩展,如8255、8155等。 进行I/O并行接口扩展时,需遵守“输入三态,输出锁存”的原则与总线相连。 “输入三态”可保证在未被选通时,I/O芯片的输出与数据总线隔离,防止总线上的数据出错。 “输出锁存”则可使通过总线输出的信息得以保持,以备速度较低的外设较长时间读取,或能长时间作用于被控制对象。
一.74LS系列器件扩展并行口 上图中,74LS244三态输入门作为8个按钮开关的输入,74LS273 8D锁存器作为8位输出驱动8个LED发光管。
图中,单片机控制P2.0为低电平,当RD为低电平 时,选通74LS244读入8个按钮开关状态;当WR为低电 平时,选通74LS273写入8位数据至8D锁存器,点亮或熄灭LED发光管。 • 74LS244和74LS272的选通地址相同,定义为: • #define 74PORT XBYTE[0xFEFF] • 假如将按钮开关状态显示到LED发光管上,则执行以下程序即可: • X=74 PORT; //读按钮开关状态 • 74 PORT =X; //把按钮开关状态显示到LED发光管上
二.8255扩展并行口 • 8255A内部结构和引脚 其采用 40脚的 D I P封装
8255A有三个数据端口A、B、C,每个端口为8位,并均可设成输入和输出方式,但各个端口仍有差异:8255A有三个数据端口A、B、C,每个端口为8位,并均可设成输入和输出方式,但各个端口仍有差异: • 端口A(PA0~PA7):8位数据输出锁存/缓冲器, • 8位数据输入锁存器; • 端口B(PB0~PB7):8位数据I/O锁存/缓冲器, • 8位数据输入缓冲器; • 端口C(PC0~PC7):8位输出锁存/缓冲器,8位 • 输入缓冲器。 • 在模式控制下这个端口又可以分成两个4位的端口,它们可单独用作为输出控制和状态输入。 • 在8255A中,还有一个控制寄存器,用于控制8255A的工作方式,因此8255A共有4个端口寄存器,分别用A1A0指定。
方式控制字 方式0:基本的输入/输出 8255A的三种基本工作方式 方式1:有联络信号的输入/输出 方式2:双向传送 A组三种方式均可采用,B组只能采用方式0和1。 当向A1A0=11的端口寄存器发送D7=1的控制字时,其作用为方式控制字,各个位的含义如上图。
置位控制字 当向A1A0=11的端口寄存器(即控制寄存器)发送D7=0的控制字时,其作用为置位控制字,各个位的含义如下图。 图5.24 置位控制字
方式0 —— 基本的输入/输出 将端口信号线分成4组,分别由方式控制字的D 4D3D1D0控制其传送方向,当某位为1时,相应的端口数据线设置成输入方式;当某位为0时,相应的端口数据线设置成输出方式。 例如,当方式控制字设置成1000 1010B时,端口A与端口C的低4位数据线设置成输出方式,端口B与端口C的高4位数据线设置成输入方式。 注:当将C口的低4位设置成同一传送方向时,则端口C可用作为独立的端口,因此,8255A提供了3个独立的8为端口。
地址分配: (假定将无关位看作1) PA: 111XX······00B (FFFCH) PB: 111XX······01B (FFFDH) PC: 111XX······10B (FFFEH) 控制寄存器: 111XX······11B (FFFFH) 读操作: (以PA口为例) MOV DPTR,#0FFFCH MOVX A,@DPTR 写操作: (以PA口为例) MOV DPTR,#0FFFCH MOVX @DPTR,A
例:编程将PA口、PB口分别设置成方式0输出和方式0输入,并将由PB口读入的数据在PA口输出。(假定PC口高四位工作在输出,低四位工作在输入)例:编程将PA口、PB口分别设置成方式0输出和方式0输入,并将由PB口读入的数据在PA口输出。(假定PC口高四位工作在输出,低四位工作在输入) 分析:8255的方式控制字83H MOV DPTR,#0FFFFH MOV A,#83H MOVX @DPTR,A ;初始化8255 MOV DPTR, #0FFFDH MOVX A,@DPTR ;读PB口 MOV DPTR,#0FFFCH MOVX @DPTR,A ;写PA口
方式1 —— 有联络信号的输入/输出 为对中断请求信号进行管理,8255A中专门设置了中断屏蔽触发器INTEA和INTEB,它们是通过对端口C某一位的置位控制字进行控制,如下表。 通过置位控制字,当对INTE对应的端口C的位置位时,INTE=1,允许产生中断请求信号;当对INTE对应的端口C的位清零时,INTE=0,不允许产生中断请求信号。
a.方式1/输入 当将A组和B组设置成方式1输入时,其方式控制字与端口数据线如下图所示,注意:D3用于控制PC6~PC7的传送方向。 A口方式一/输入时的方式控制字和端口数据线
B口方式一/输入时的方式控制字和端口数据线 STB与外设提供的选通脉冲相连,将外设送来的数据锁存到端口寄存器,这相当于“数据准备好”信号。 IBF向外设发送数据输入响应,表示端口寄存器已收到数据,但尚未被CPU取走;当IBF信号无效时,表示“接收准备好”。
b.方式1/输出 当将A组和B组设置成方式1输出时,其方式控制字与端口数据线如图5-23所示,注意D3用于控制PC4~PC5的传送方向。 A口方式一/输出时的方式控制字和端口数据线