单片机:矩阵键盘和LCD1602

发布者:Jikai最新更新时间:2018-07-14 来源: eefocus关键字:单片机  矩阵键盘  LCD1602 手机看文章 扫描二维码
随时随地手机看文章

一、矩阵键盘

                            

1、检测按键的方法:

(1)先使1-4全部赋低电平,5-8赋高电平。当有按键按下时,5-8中会有某个点平被拉低。

(2)然后依次将1-4中的某一位置0,其他位置1,观察对应返回值,即可确定哪个按键被按下。

2、对应程序

unsigned char bsp_mkeyscan()

{

    unsigned char keyvalue = 0x99;

KEYPORT = 0xF0;

if (KEYPORT != 0xF0)

{

KEYPORT = 0xFE;

if (KEYPORT != 0xFE)

{

keyvalue = KEYPORT;

while(keyvalue == KEYPORT)bsp_segb();;

}

KEYPORT = 0xFD;

if (KEYPORT != 0xFD)

{

keyvalue = KEYPORT;

while(keyvalue == KEYPORT)bsp_segb();;

}

KEYPORT = 0xFB;

if (KEYPORT != 0xFB)

{

keyvalue = KEYPORT;

while(keyvalue == KEYPORT)bsp_segb();;

}

KEYPORT = 0xF7;

if (KEYPORT != 0xF7)

{

keyvalue = KEYPORT;

while(keyvalue == KEYPORT)bsp_segb();;

}

}

return keyvalue; //根据keyvalue的值即可以确定按下的键

}

二、LCD1602


1、LCD原理

LCD(Liquid Crystal Display):液晶显示器的缩写,一种被动式的显示器,即液晶本身并不发光,而是经液晶经过处理后能改变光线通过方向的特性,而达到白底黑字或黑底白字显示的目的。
  液晶显示器具有功耗低、抗干扰能力强等优点,广泛用在仪器仪表和控制系统中。

2、LCD分类

按排列形状分:字段型、点阵字符型和点阵图形。
 字段型
      广泛用于电子表、数字仪表、计算器中。
 点阵字符型
      显示字母、数字、符号。它是由5×7或5×4点阵组成,广泛应用在单片机应用系统中。
 点阵图形型
      笔记本电脑和彩色电视等设备中。

 1602液晶也叫1602字符型液晶 它是一种专门用来显示字母、数字、符号等的点阵型液晶模块 它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔 每行之间也有也有间隔 起到了字符间距和行间距的作用。

 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块。

3、LCD1602的引脚

                

第1脚接地

第2脚接5V正电源

第3脚VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高, 对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。

第15脚:背光源正极。
第16脚:背光源负极。

4、显示地址映射

第一行第一个的地址是:80H

第二行第一个的地址是:C0H

5、字符发生存储器

 在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。

 1602液晶模块内部的字符发生存储器(CGROM)已经存储了128个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码(ASCII字符集字库),比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”


6、LCD指令说明

 指令1:清显示,指令码01H,光标复位到地址00H位置。

 指令2:光标复位,光标返回到地址00H。
 指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效
 指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示; C:控制光标的开与关,高电平表示有光标,低电平表示无光标;B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
 指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。

 指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线   N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
 指令7:字符发生器RAM地址设置。
 指令8:DDRAM地址设置。
 指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
 指令10:写数据。
 指令11:读数据。

7、LCD1602的初始化过程。

延时15mS
 写指令38H(不检测忙信号)
 延时5mS
 写指令38H(不检测忙信号)
 延时5mS
 写指令38H(不检测忙信号)
 以后每次写指令、读/写数据操作均需要检测忙信号
 写指令38H:显示模式设置
 写指令08H:显示开
 写指令01H:清屏
 写指令06H:显示光标移动设置
 写指令0CH:显示开及光标设置

8、自定义字符显示

(1)1602LCD共有8个自定义字符。


关键字:单片机  矩阵键盘  LCD1602 引用地址:单片机:矩阵键盘和LCD1602

上一篇:单片机:中断及定时器工作
下一篇:单片机:IIC总线通信

推荐阅读最新更新时间:2024-03-16 16:08

MSP430单片机的选型及系列介绍
  在MSP430选型时,我们主要着重介绍现在较流行使用的FLASH型单片机。因为目前主流单片机也是以FLASH型为主,使用得非常广泛。所以在此也针对MSP430 的FLASH型作出了其选型列表,若想了解其它未列出的较少型号请中国TI联系。   MSP430 FLASH型单片机选型表:         MSP430单片机家族详解:   MSP430x1xx系列   基于闪存或 ROM 的超低功耗 MCU,提供 8MIPS,工作电压为 1.8V - 3.6V,具有高达 60KB 的闪存和各种高性能模拟及智能数字外设。   超低功耗低至:   0.1μA RAM 保持模式 0.7μA 实时时钟模式 200μA/MIPS 工作模
[单片机]
MSP430<font color='red'>单片机</font>的选型及系列介绍
AT89S52单片机16LED摇摇棒设计
一、作品说明 摇摇棒是如今流行的一种玩具,在各种聚会、节日中均见得到它的身影。本设计也追随着摇摇棒的原理,利用人眼的视觉暂留特性,通过AT89S52单片机对16只高亮度LED发光二极管进行控制, 配合手的左右摇晃就可呈现一幅完整的画面。 该摇摇棒具有如下功能:1) 显示 “欢迎使用神奇魔幻摇摇棒!”;2) 显示 “o(∩_∩)o”微笑图案;3) 显示 心形图案;4) 显示 “LOVE”;5) 可以通过开关实现转换,轮流显示并循环。 二、系统总体设计 1、总体方案比较与论证所谓的“摇摇棒”,其实就是一个循环的LED显示,利用人的视觉滞留产生静态显示的现象。要实现这个目标,就要求延时部分做的比较小,所以采用石英晶体振荡
[单片机]
AT89S52<font color='red'>单片机</font>16LED摇摇棒设计
怎么去设计一种基于51单片机的便携式恒温箱
一、功能简介 本项目使用Proteus8.12仿真51单片机控制器,使用报警模块、LCD1602显示模块、DS18B20温度模块、加热制冷模块、按键模块、HC05蓝牙模块等。 主要功能: 系统运行后,LCD1602显示传感器检测的温度值; 可通过按键K3设置恒定温度,K1和K2进行加减调节,恒定温度范围是0-10,设定好后可再次按下K3保存。系统会根据当前温度与目标温度比对,通过PID算法控制加热或制冷工作。若温度高于报警上限或低于报警下限值则蜂鸣器报警。检测温度会实时将数据通过串口传输到手机终端显示。 主要功能如下: (1)温度实时检测; (2)LCD1602液晶显示; (3)手机终端显示; (4
[单片机]
怎么去设计一种基于51<font color='red'>单片机</font>的便携式恒温箱
MCU的每一位都恰到好处,是门学问
市场研究机构IC Insights的数据显示,2019年全球微控制器(MCU)营收预计将成长9%,达到204亿美元,并在未来五年以7.2%的年复合增长率高速成长。面对层出不穷的应用需求,MCU厂商该如何主动出击寻求变化?MCU的下一个风口在哪里? 长盛不衰的8位MCU STM8是意法半导体(ST)在十年前设计的产品,但目前来看还是能满足多方面应用需求的。究其原因,ST微控制器市场产品经理PATRICE HAMARD认为一是客户的使用习惯,这些客户一直在使用8位MCU产品;其次是出于成本的控制,很多成本敏感型应用需要更低价的MCU;第三是STM8更简单、易用。 左:ST微控制器市场产品经理PATRICE HA
[嵌入式]
让<font color='red'>MCU</font>的每一位都恰到好处,是门学问
51单片机精确延时设计
在我们使用单片机的时候,很多情况下需要用到精确的延时。比如在跟DS18B20进行通讯的时候需要遵循严格的时序,这就需要我们严格把控程序执行的时间。 一般我们都是通过执行空语句的方式来使程序延时。这种方法是用循环嵌套的方式使程序执行空操作,达到延时的目的;除此之外还有使用中断的方式等。 我们可以通过debug来验证我们的函数延时是否准确。本次实验采用12M的晶振进行仿真模拟,应当对软件进行一些设置。在option中将晶振频率改为12M。用12M的晶振是因为这时候一条指令周期恰好是1us,方便我们计算。 首先我们构建一个延时函数void delay_10us( unsigned char tick ),即每次延时的最小单位
[单片机]
51<font color='red'>单片机</font>精确延时设计
51单片机开发操作系统应注意些什么?
  1,操作系统软件的代码不能太长   因为51系列单片机的系统硬件资源相对匮乏,如果操作系统的代码比应用程序的代码还大,甚至使得用户的应用程序要考虑给操作系统让出资源,这样的操作系统即使功能再完善,也不实用。现在流行的嵌入式操作系统就不能应用于51系列单片机,原因是代码太大。开发一个5000行的基于裸机的应用程序也就是占用 7~8KB ROM空间,一个操作系统用掉了几十KB,占空间不算,实时性的优势恐怕也没了(执行这么多的指令要时间)。所以,μCOS的作者也不支持将他的代码移植到51系列单片机上,这也就不奇怪了。   2,操作系统不能占用太多的片内RAM空间   51系列单片机只有128个或者256个字节的片内RAM空间,
[单片机]
MCS-51系列单片机存储器结构
由于采用改进型哈佛架构,51单片机具备独立的程序存储器ROM、数据存储器RAM,两者地址空间独立,且独立编址,如下是单片机的存储器结构图。 程序存储器ROM,用于存储用户代码,由于程序计数器PC是16位的,因此系统具备64kB寻址能力,地址空间为0x0000 ~ 0xFFFF,厂商在单片机内部实现一部分程序存储器,例如4kB、8kB,剩余的根据用户需要可以外部扩展。访问程序存储器使用MOVC A, @A + DPTR,MOVC A, @A + PC指令,只能进行读取访问,无法写入。 数据存储器分为RAM和外部RAM,两者地址空间独立,且独立编址。以子系列52为例,由于具备256B寻址能力,编址空间为0x00~0xFF。RAM除
[单片机]
HC89S103K6T6单片机的简单介绍
HC89S103K6T6是芯圣兼容STM8S系列Flash单片机,内置增强型8051内核,拥有32K的Flash内存以及1K+256Bytes的RAM;HC89S103K6T6拥有丰富的外设资源,包括5个16位的定时/计数器、3组12位带死区控制以及1路8位的PWM、16+2路12位的ADC、1个SPI、2个UART、1个IIC以及26个外部中断源;HC89S103K6T6还支持2.0~5.5V的工作电压与-40℃~+85℃的工作温度。 以下为该系列目前在售的型号及对应参数: HC89S103K6T6作为芯圣兼容STM8S系列Flash产品,资源非常丰富,客户无需更改PCB,直接替换STM8S103K3产品。可以广泛应用于
[单片机]
HC89S103K6T6<font color='red'>单片机</font>的简单介绍
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved