
一、矩阵键盘
1、检测击键的方法:
([1)首先将所有1-4设置为低电平,将5-8设置为高电平。按下按钮时,将下拉5-8中的某个点。
(2)然后将位置1-4之一设置为0,将其他位置1设置为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(液晶显示器):液晶显示器的缩写,是一种无源显示器,即液晶本身不发光,但具有在处理液晶后改变光的方向的特性,以及在白色背景上实现黑色字符或在黑色背景上以白色显示的目的。
液晶显示器具有功耗低,抗干扰能力强的优点,广泛应用于仪器仪表和控制系统。
2、 LCD分类
根据排列形状分为字段类型,点矩阵字符类型和点矩阵图形。

字段类型
广泛用于电子表,数字表和计算器。
点矩阵字符类型
显示字母,数字和符号。它由5×7或5×4点矩阵组成,广泛用于单片机应用系统中。
点矩阵图形类型
在笔记本电脑和彩色电视等设备中。
1602 LCD也称为1602字符LCD。这是一种点矩阵液晶模块,专门用于显示字母,数字,符号等。它由几个5X7或5X11点矩阵字符位组成,每个点矩阵字符位都可以显示一个字符。在每个位之间有一个点距,在每行之间也有一个间隙,这在字符间距和行间距中起作用。
1602LCD表示显示内容为16X2,即可以显示两行,每行显示16个字符。
3、LCD1602的引脚
针1接地
引脚2已连接到5V正电源
第三引脚VL是液晶显示器的对比度调节端子。当连接正电源时,对比度最弱,而在接地时对比度最高。当对比度太高时,将产生“重影”。使用时,您可以通过10K电位器调整对比度。

引脚4:RS是寄存器选择,数据寄存器选择为高电平,指令寄存器选择为低电平。
引脚5:R / W是读写信号线,高电平时为读操作,低电平时为写操作。当RS和R / W都处于低电平时,您可以编写命令或显示地址。当RS为低电平时,R / W为高电平。可以读取忙音。当RS为高电平时,R / W为低电平。可以写数据。
引脚6:端点E为使能端。当E端从高电平变为低电平时,LCD模块执行命令。
引脚7至14:D0至D7是8位双向数据线。
引脚15:背光的正极。
引脚16:背光的负极。
4、显示地址映射
第一行的第一个地址是:80H
第二行的第一个地址是:C0H
5、字符生成存储器
在LCD模块的初始化中,必须首先设置显示模式。当LCD模块显示字符时,光标将自动向右移动而无需人工干预。每次输入指令之前,都要判断LCD模块是否处于繁忙状态。
1602 LCD模块内部的字符生成存储器(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的初始化过程。
延迟15毫秒
写指令38H(不检测忙音)
延迟5毫秒
写指令38H(不检测忙音)
延迟5毫秒
写指令38H(不检测忙音)
将来,每条写指令,读/写数据操作都需要检测忙信号
写入命令38H:显示模式设置
写入命令08H:显示在
写命令01H:清除屏幕
写指令06H:显示光标移动设置
写命令0CH:显示并设置光标
8、自定义字符显示
([1) 1602LCD总共有8个自定义字符。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-336349-1.html
值得提倡