版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
*开封大学单片机课件制作组项目9电话拨号液晶显示系统的设计【项目导入】在单片机控制系统中,除了输入输出设备外,还有与操作人员进行信息交换的常规输入与输出设备,键盘和LCD就是其中常见的一种输入/输出设备。在此我们通过设计一个电话拨号键盘显示系统来讲述键盘的接口电路、键盘的工作原理和LCD显示技术。让大家掌握输入/输出技术在单片机控制系统的应用。*开封大学单片机课件制作组【项目目标】1.知识目标(1)掌握键盘的接口技术和编程方法;(2)理解键盘检测的原理;(3)掌握单片机与LCD的接口技术。2.能力目标(1)掌握单片机与键盘的连接以及键盘的消抖技术;(2)能熟练使用C语言对液晶显示模块进行编程;(3)熟练掌握常用LCD显示器的使用方法和一般键盘的使用方法。3.态度目标(1)具有认真的学习的态度和主动学习的积极性;(2)养成良好的职业习惯和与团队协作共同开发的能力。(3)具有良好的安全意识、环保意识和责任意识。*开封大学单片机课件制作组9.1项目描述电话在人们的日常生活中是比较常见的电子产品之一,人们可以通过按键来拨打电话。当按下所拨电话号码时,可以清楚地看到自己拨下电话号码。基于这样的理念,本项目采用AT89C51单片机、1602LCD显示器、控制按键等元件来设计一个电话拨号显示系统。通过此项目的学习,让大家熟悉单片机如何通过键盘扫描来获得输入数据,再通过CPU把得到的数据按照一定的要求显示。项目学习过程中重点掌握常用的LCD显示器的使用方法和矩阵键盘的编程方法。*开封大学单片机课件制作组9.2项目目的与要求本项目的目的就是设计一个电话拨号显示系统,该系统能完成把所按下的键转化为电话号码,并通过LCD1602显示出所按下的电话号码。项目在实施过程中需要解决的一下关键问题(1)单片机与矩阵键盘的接口电路设计;(2)矩阵键盘扫描程序的编写;(3)单片机与液晶显示模块LCD1602的接口电路的设计;(4)液晶显示模块LCD1602显示数字的C语言编程方法。*开封大学单片机课件制作组9.3
项目支撑知识链接 键盘是单片机系统常见的输入设备,通过键盘输入与单片机建立基本的人机交互通道,使单片机能够接受用户输入的数据或命令。一、键盘工作原理 键盘(按键)是单片机系统常用的输入设备。操作人员可以通过键盘输入数据或命令,实现简单的人-机通信。按键是一种常开型按钮开关。平时(常态时),按键的两个触点处于断开状态,按下键时它们才闭合(短路)。9.3.1键盘接口电路工作原理*开封大学单片机课件制作组一、键盘识别原理 键盘分编码键盘和非编码键盘。键盘上闭合按键的识别由专用的硬件译码器实现,并产生键编号或键值的称为编码键盘,如BCD码键盘、ASCII码键盘等;靠软件识别的称为非编码键盘。在单片机组成的测控系统及智能仪器中,用得最多的是非编码键盘。本节着重讨论非编码键盘原理、接口计数和程序设计。键盘中每个按键都是一个常开开关元件,如图示。
*开封大学单片机课件制作组 当按键K未被按下时,P1.0输入为高电平;K闭合时,P1.0输入低电平。
按键电路
*开封大学单片机课件制作组按键为机械弹性开关,在断开、闭合的瞬间,由于机械触点的弹性作用,会有一连串的抖动,其电压信号波形如图7-14示。 图7-14按键抖动抖动时间的长短主要由按键的机械特性决定,一般在5ms~10ms之间,这一时间为实际中的去除机械抖动提供了参考。
*开封大学单片机课件制作组 当按键K未被按下时,P1.0输入为高电平;K闭合时,P1.0输入低电平。通常按键所用的开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会立即断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,其电压信号波形如图7-14示。抖动时间一般持续在5ms~10ms之间,这一时间为实际中的去除机械抖动提供了参考。
*开封大学单片机课件制作组
去除抖动抖动时间会引起一次按键的多次误读操作。为了确保CPU对按键的一次闭合仅做一次处理,必须消除键盘抖动。
基本思路在键盘闭合稳定时读取键的状态,并且必须判别到按键释放稳定后再做处理。按键的去抖动通常有硬件和软件两种方法消除。 软件/硬件去除抖动硬件去抖动电路复杂,需要添加额外的触发器门电路,在键盘比较多时显得不适用。而软件去抖动仅仅是通过对单片机编程时做简单的处理,不需要额外电路,实现方便,简单,是最常用的键盘去抖动方式。
*开封大学单片机课件制作组二、独立式键盘软键盘可以分为独立连接式键盘和行列矩阵两类,每一类按其译码方式都可以分为编码与非编码两种类型。由于非编码键盘结构简单,在实际中应用较多,此处仅介绍非编码式键盘。1.独立式按键独立式按键是每个按键连接到一个单片机的I/O口上,如图所示。这是最简单的键盘结构,由于每个按键占用一个I/O口,当键盘较多的时候需要占用较多的I/O口,显然是不合适的,因此该类键盘仅适用于键盘数量较少的情况。*开封大学单片机课件制作组
独立非编码键盘*开封大学单片机课件制作组
可以使用用查询方式判断这些键盘是否被按下。当开关没有被按下时,对应的I/O口的状态被拉到高电平1,当有按键按下时,对应的I/O口被短接到地,为低电平。因此检测是否按键按下,只需要通过查询方式查询对应I/O口的状态即可。
键盘结构
以下程序使用比较指令判断键值。设键盘接在P1口,将P1口的值读入A,当无键盘按下时,A的值为FFH。为了节省程序执行时间,当没有键盘输入时不执行键值比较程序,故对A取反。当判断到A为0时,说明没有键盘输入,返回再去读键盘。如果A值不为0,说明有键盘输入,可找出是哪个按键被按下。程序中省略了软件去抖动和判断键盘释放程序,仅包含键值判断与键值查询。*开封大学单片机课件制作组对图中P1.0~P1.3的4个按键进行扫描来获得检测触发信息,以实现不同的功能控制,其C51程序如下:SbitS0=P1^0;SbitS1=P1^1;SbitS2=P1^2;SbitS3=P1^3;/*******键盘扫描程序********
voidKeyscan{P1=0xff;//对P1口置1While(!s0)//判断s0按键是否按下
{delay();//延时去抖
While(!s0){key1();}}While(!s1)//判断s1按键是否按下
{delay();//延时去抖
While(!s1){key2();}}While(!s2)//判断s2按键是否按下
{delay();//延时去抖
While(!s2){key3();}}While(!s3)//判断s3按键是否按下
{delay()//延时去抖
While(!s3){key4();}}}*开封大学单片机课件制作组
当键盘的个数比较多的时候,比如有16个按键,如果仍旧按独立式键盘的接法,则需要16个I/O口,这显然不实用。一是单片机仅32个I/O口,一半用来接键盘不太可能,二是太多的线不利于PCB布线。因此,当键盘比较多时,通常都将键盘排成行列矩阵的形式,如图。
2.行列扫描键盘(矩阵式键盘)*开封大学单片机课件制作组*开封大学单片机课件制作组
2.按键的识别具体过程是:⑴先将全部列线置为低电平,然后通过行线接口读取行线电平,判断键盘中是否有按键被按下。⑵判断闭合键的具体位置。在确定键盘中有键被按下后,依次将列线置为低电平,再逐行检测各行的电平状态。若某行为低电平,则该行与置为低电平的列线相交处的按键即为闭合按键。⑶综合上述2步的结果,即可确定闭合按键所在的行和列,从而识别出所按下的键。*开封大学单片机课件制作组矩阵式键盘的扫描常用编程方式、定时扫描或中断扫描等方式,不管采用哪种方式,都要编制相应的键盘扫描程序。键盘扫描程序中,一般要具有以下功能。⑴判断键盘上有无按键按下;⑵去键的机械抖动影响;⑶求所按下按键的键号;⑷转向键处理程序。3.矩阵式键盘的软件设计*开封大学单片机课件制作组
矩阵键盘键值的判断有两种方法,一种是逐行(列)扫描查询法,另一种是速度较快的线反转法。线反转法实现首先是从列线上全部送0,读入行线的状态,然后反过来,从行线全部送0,读入从列线状态,将两次行线、列线读入的数据组合成一个字节就可以判断出是哪个按键被按下了。这种方法只要通过两次输出,两次读入,就可以读得键盘值,其实现过程简单,速度快。而行列扫描方法却相对要复杂些,以下详细介绍之。四、键盘与I/O接口应用*开封大学单片机课件制作组
以图7-16中4×4键盘为例,图中D0~D3(P1.0~P1.3)为列输出线,D4~D7(P1.4~P1.7)为行输入线。
首先:列线全部送0,
然后:读入所有行数据。如果此时没有按键按下,行线接高电平,读入行线数据全部为1。反之,如果有按键按下,按键对应的行线与列线短路,列线输出的0送到行线,行线电平被拉低。因此,如果读入的行线数据不全为1,说明有按键按下。*开封大学单片机课件制作组
为了准确找出16个按键中,到底是哪个按键被按下,还需要更进一步进行逐行逐列扫描。具体方法是将第1列置为‘0’,其他列置为‘1’,然后读入行线的数据。判断第1行D4数据是否为0,如果是0,则说明按下的是第1行第1列的上的按键K0,反之如果第1行不为0,则判断第2行D5的数据是否为0。按同样的方法,直到判断第4行D7的数据是否为0为止。*开封大学单片机课件制作组
如可见,每输出一个列扫描信号,逐一判断一次行数据状态就可以知道该列的4个按键中是否有闭合的。如果在第一列没有判断按键闭合,则从第2列输出0,其余列送1,再次逐行判断,看是否有按键闭合。由此可见,通过16次逐列逐行扫描,即可出K0-K15中闭合键盘所在的行列线位置(编码)。*开封大学单片机课件制作组
每一个键盘对应的位置就进行行列扫描时的编码,即列线扫描状态字与行线读入值的组合。如图7-16中,键盘键值从左到右的编码依次是77H,7BH,7DH,7EH;B7H,BBH,BDH,BEH…E7H,EBH,EDH,EEH。这种编码字通常在实际编程中不适用,可以进一步对键值做处理,常用的方法是将16个键值映射成0~15连续16个自然数编号。*开封大学单片机课件制作组
【例9-1】设计一个通过按键控制LED灯亮、灭的单片机控制系统,要求:K1~K4做按键状态显示,K1按下时D1亮,松开时灭;K2按下时D2点亮,松开时熄灭;K3按下时D3灭,松开时D3亮;K4按下时D4灭,释放亮。电路连接如图
*开封大学单片机课件制作组*开封大学单片机课件制作组设计分析:由于此控制电路使用按键较少,可以通过独立式键盘来实现控制功能,要求K1、K2、K3、K4分别与P1.0、P1.1、P1.2、P1.3连接。根据要求,编写C51程序如下:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitLED1=P0^0;sbitLED2=P0^1;sbitLED3=P0^2;sbitLED4=P0^3;sbitK1=P1^0;sbitK2=P1^1;sbitK3=P1^2;sbitK4=P1^3;*开封大学单片机课件制作组/****************延时*****************/voidDelayMS(uintx){ uchari; while(x--)for(i=0;i<120;i++);} /****************主程序*****************/voidmain(){ P0=0xff;//P0口置高电平
P1=0xff;//P1口置高电平
while(1) { LED1=K1; LED2=K2; if(K3==0) { while(K3==0); LED3=~LED3; } if(K4==0) { while(K4==0); LED4=~LED4; } DelayMS(10); }}*开封大学单片机课件制作组7.6
MCS-51的显示接口
在单片机测控系统中,通常需要显示器作为人-机交换界面的终端,显示数据处理结果和工作过程或状态。常用的显示终端有发光二极管显示器(LED)、液晶显示器(LCD)等。*开封大学单片机课件制作组9.3.2
LCD液晶显示器控制技术
LCD为英文LiquidCrystalDisplay的缩写,即液晶显示器,是一种数字显示技术,可以通过液晶和彩色过滤器过滤光源,在平面面板上产生图象。液晶显示器具有结构小巧,造型美观,显示内容丰富等特点。因此在微机应用系统中有广泛应用。*开封大学单片机课件制作组9.3.2
LCD液晶显示器控制技术*开封大学单片机课件制作组液晶是一呈液体状的化学物质,当受到外界电场影响时,其分子会产生精确的有序排列。如果对分子的排列加以适当的控制,液晶分子将会允许光线穿越。位于最后面的一层是由荧光物质组成的可以发射光线的背光层。背光层发出的光线在穿过第一层偏振过滤层之后进入包含成千上万水晶液滴的液晶层。
LCD显示原理液晶层中的水晶液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素。当LCD中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规则的折射,然后经过第二层过滤层的过滤在屏幕上显示出来。*开封大学单片机课件制作组型号为1602(A/B/C)的字符型LCD显示器是目前市场比较常见的显示器。目前市场上生产该型号LCD显示器的厂家比较多,技术成熟。一、字符点阵式液晶显示模块-1602*开封大学单片机课件制作组*开封大学单片机课件制作组该显示器能显示2行ASCII字符,每行显示16个。市场上的成品模组外观见图7-19。该模组采用了HD44780以及兼容LCD驱动芯片,使用Bonding(邦定)封装技术,将芯片与PCB板做成一体,能有效降低整个模组功耗,提高工作稳定性。*开封大学单片机课件制作组
LCD模组提供了16个引脚接口。其中与微机接口的引脚10个,具体每个引脚定义功能见表7-9。
1.LCD模组引脚功能9*开封大学单片机课件制作组
2.字符型液晶显示模块LCD1602的内部结构LCD1602的内部结构可以分成三部分:一为LCD控制器,二为LCD驱动器,三为LCD显示装置*开封大学单片机课件制作组市场上常见的1602LCD液晶显示模组,大多采用HD44780驱动芯片或其兼容芯片。这些兼容芯片对外的命令字大多相同。因此,同一个1602的驱动程序,可以驱动不同厂家的液晶显示器,前提是引脚定义一样。
HD44780的控制命令共11条,见表7-10。
3.主控驱动芯片HD44780*开封大学单片机课件制作组10*开封大学单片机课件制作组当给LCD送01H命令,LCD显示面板所有内容清除,内部数据指针清零。当送02H命令,仅使数据指针清零,而LCD面板内容不变。(1)清屏指令(01H)(2)置输入模式设置光标、画面移动模式,其中:
I/D=1:数据读、写操作后,AC自动增1。
I/D=0:数据读、写操作后,AC自动减1。S=1:数据读、写操作后,画面平移。
S=0:数据读、写操作后,画面不平移。*开封大学单片机课件制作组(3)显示开关控制 功能:设置显示、光标及闪烁开、关。其中:
D表示显示开关:D=1为开,D=0为关;
C表示光标开关:C=1,为开,C=0为关;
B表示闪烁开关;B=1,为开,B=0为关;(4)光标、画面位移功能:设置光标、画面移动,不影响DDRAM。其中:
S/C=1,画面平移一个字符位;
S/C=0;光标平移一个字符位;
R/L=1;右移;R/L=0;左移。*开封大学单片机课件制作组(5)功能设置功能:设置LCD工作模式
DL=1,8位微处理器接口,DL=0,4位微处理器接口;
N=1,两行显示模式,N=0,一行显示模式
F=1,5*10点阵字符,F=0,5*7点阵字符(6)CGRAM地址设置 功能:设置CGRAM的地址。A5-A0=0-3FH.(7)DDRAM地址设置设置DDRAM的地址
N=0,一行显示A6~A0=0~4FH;
N=1,两行显示,首行A6~A0=00H~2FH,次行A6~A0=40H~67H。*开封大学单片机课件制作组(8)读BF及AC的值功能:读忙值和地址计数器AC的值。其中:BF=1时忙,BF=0时准备好。此时AC值意义为最近一次地址(CGRAM或DDRAM)定义。(9)写数据功能:根据最近设置的地址性质,数据写入DDRAM或CGRAM。(10)读数据功能:根据最近设置的地址性质,从DDRAM或CGRAM读出数据。*开封大学单片机课件制作组5.LCD控制器HD44780接口时序说明(1)写操作时序
*开封大学单片机课件制作组(2)读操作指令(LCD至单片机):
*开封大学单片机课件制作组(3)时序参数时序参数符号极限值单位测试条件最小值典型值最大值E信号周期tc400--ns引脚EE脉冲宽度tPW150--nsE上升沿/下降沿时间tR,tF--25ns地址建立时间tSP130--ns引脚E、RS、R/W地址保持时间THD110--ns数据建立时间(读操作)tD--100ns引脚DB0~DB7数据保持时间(读操作)tRD220--ns数据建立时间(写操作)tSP240--ns数据保持时间(写操作)tHD210--ns*开封大学单片机课件制作组6.LCD的初始化(1)初始化设置①显示器清屏;②显示器开/关及光标设置;③显示光标移动设置。(2)数据控制
LCD控制器内部设有一个数据地址指针,用户可通过它来访问内部全部80字节的RAM。1)数据指针设置:数据地址指针:80H+地址码(00H~27H,40H~67H)。2)读数据:当LCD的RS=1、R/W=1和E端为高电平时,读取数据。3)写数据:当LCD的RS=1、R/W=0和E端为下降沿时,写取数据。*开封大学单片机课件制作组例如写指令子程序:write_com(ucharcom){rs=0;rw=0;E=1;LCD=com;Delay(5);E=0;}*开封大学单片机课件制作组
写数据子程序:
write_data(uchardata)
{rs=1;rw=0;E=1;LCD=data;Delay(5);E=0;}*开封大学单片机课件制作组二、1602与单片机的接口与编程LCD1602初始化过程一般如下:(1) 清屏。清除屏幕,将显示缓冲区DDRAM的内容全部写入空格(ASCII20H)。光标复位,回到显示器的左上角。地址计数器AC清零。(2) 功能设置。设置数据位数,根据LCD1602与处理器的连接选择(LCD1602与51单片机连接时一般选择8位),设置显示行数(LCD1602为双行显示)。设置字形大小(LCD1602为5×7点阵)。(3) 开/关显示设置。控制光标显示、字符是否闪烁等。(4) 输入方式设置。设定光标的移动方向以及后面的内容是否移*开封大学单片机课件制作组【例9-3】设计一个由单片机控制LCD显示屏,要求显示:“welcometo
kaifeng!”*开封大学单片机课件制作组设计分析:在此采用LCD1602的数据线与AT89C51的P2口相连,RS与P1.7相连,R/与P1.6相连,E端与8951的P1.5相连。编程在LCD显示器的第1行显示“welcometo”,第2行、第5列开始显示“Kaifeng!”。C51源程序见P191*开封大学单片机课件制作组9.4项目实施本项目的设计内容主要包括主控模块,LCD显示模块、键盘输入模块,晶振电路和复位电路等,其设计的整体结构框图如图所示。。*开封大学单片机课件制作组9.4.1硬件设计根据项目实现的功能,可把LCD1602的D0~D7分别与AT89C51的P1.0~P1.7连接,LCD1602的RS与P2.0连接,RW端与P2.1连接,E端与P2.2连接。键盘拨号采取矩阵行列式键盘,把P3.4、P3.5、P3.6、P3.7作为行线,P3.0、P3.1、P3.2作为列线,项目的总体电路连接如图
*开封大学单片机课件制作组*开封大学单片机课件制作组9.4.2软件设计本设计是由单片机AT89C51控制的LCD显示系统,由外接键盘来控制显示方式。设计过程如下:
按键输入:采取用P3口作为键盘的输入端,对于键盘的识别采取行扫描法进行判定。
LCD显示:用P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大跨度钢拱桥施工技术研究
- 2026年北京体育用品行业分析报告及未来发展趋势报告
- 2026年化工废料行业分析报告及未来发展趋势报告
- 2026年热板卷行业分析报告及未来发展趋势报告
- 2026年四甲基硫脲行业分析报告及未来发展趋势报告
- 2026年便携型肺功能仪行业分析报告及未来发展趋势报告
- 2026年摩托车变速器行业分析报告及未来发展趋势报告
- 2026年驰返变压器行业分析报告及未来发展趋势报告
- 2026年丙基磺酰氯行业分析报告及未来发展趋势报告
- 2026年电阻电容电感元件制造行业分析报告及未来发展趋势报告
- 2026湖北供销集团有限公司招聘66人考试模拟试题及答案解析
- 2025年书记员速录技能考试真题及答案
- 2026年卫生统计学模拟试题+参考答案
- (2026年)共青团入团考试试题(含答案)
- 2026年广东东莞市中考数学二模模拟试卷试题(含答案详解)
- 中耳胆脂瘤手术切除治疗
- 2026年技术经纪人练习题【模拟题】附答案详解
- 2026年夏令营行业分析报告及未来发展趋势报告
- 总包对分包的管理排查清单
- 中国海洋石油集团有限公司2026届校园招聘笔试历年难易错考点试卷带答案解析
- 2026年湖南娄底市中考生物试题及答案
评论
0/150
提交评论