发布时间 : 星期一 文章金属探测器论文设计更新完毕开始阅读b65f61ce370cba1aa8114431b90d6c85ec3a8818
所以判断为第一行。再将P1的低5位置为00111,由于第2个按钮被按下,则此时的管脚电压为00101,所以可以判断是第2列,到此就可以判断是第1行第2列的按钮被按下了[10]。
图3-5 阵列键盘原理图
2)液晶显示
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。
引入液晶显示的目的主要是为了显示频率值、金属类型、精度设置时的一些提示语,其次,有了显示器对键盘的调试将更加方便。液晶显示的要求比较低,1602A内置有基本ASCII字符的显示编码,使用起来比较方便。且价格低廉可以满足需求。
字符型液晶模块是一种用5×7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,这里以常用的2行16个字的1602液晶模块来介绍它的编程方法。
(1)液晶各引脚功能
1602采用标准的16脚接口,其引脚功能如表3-1所示。
表3-1 1602引脚功能表
脚号 1 2 3 4 5 6 7~14 15~18 标识 Vss Vdd Vo RS RW E D7~D0 - 电平 GND +5V 0~5V H/L H/L ↓ 双向 空脚 [13]
功能 地 正电源 对比度 数据R/指令R 读/写 命令 数据线 - 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表3-2所示。这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和
-25-
日文假名等。每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,就能看到字母“A”。
(2)液晶控制指令
1602液晶模块内部的控制器共有11条控制指令,如表3-3所示。
表3-2 点阵字符对应表
[13]
低位高位 0000 0010 0011 0100 0101 0110 0111 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ! “ # $ % & > ( ) * + フ - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? Э A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ¥ ] ^ - \\ a b c d e f g h i j k l m n o p q r s t u v w x y z { ∣ } · ← □ r 」 \\ ロ テ ア ィ ウ エ オ セ ュ ヨ ツ [13]
_ ア ィ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ッ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ャ ュ ョ ラ リ ル レ ロ ヮ ソ ハ ロ α ? β ε μ Β Ρ Ρ q θ ∞ Ω Ο Σ ∏ Χ y 千 万 ∩ + ?ɡ -1 j x ≠ n ? 表3-3 控制指令表
指令 清显示 光标返回 置输入模式 显示开/关控制 光标和字符移位 置功能 置字符发生存储器地址 置数据存储器地址 读忙标志或地址 写数到CGROM或DDRAM 从CGROM或DDRAM读数 RS 0 0 0 0 0 0 0 0 0 1 1 R/W 0 0 0 0 0 0 0 0 1 0 1 D7 0 0 0 0 0 0 0 1 D6 0 0 0 0 0 0 1
D4 0 0 0 0 1 DL D3 0 0 0 1 S/C N D2 0 0 1 D R/L F D1 0 1 I/D C · · D0 1 · S B · · D5 0 0 0 0 0 1 字符发生存储器地址(AGG) 显示数据存储器地址(ADD) 计数器地址(AC) 要写的数据 读出的数据 -26-
它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)
? 指令1:清显示,指令码01H,光标复位到地址00H位置; ? 指令2:光标复位,光标返回到地址00H;
? 指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效; ? 指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电
平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁;
? 指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标; ? 指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电
平时为单行显示,高电平时双行显示F:低电平时显示5×7的点阵字符,高电平时显示5×10的点阵字符(有些模块是DL:高电平时为8位总线,低电平时为4位总线);
? 指令7:字符发生器RAM地址设置; ? 指令8:DDRAM地址设置;
? 指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能
接收命令或者数据,如果为低电平表示不忙; ? 指令10:写数据; ? 指令11:读数据。
DM-162液晶显示模块可以和单片机AT89C51直接接口,电路如图3-6所示。 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表3-4是DM-162的内部显示地址。
表3-4 DM-162的内部显示地址表
位置 第一行 第二行
1 00 40 2 01 41 3 02 42 4 03 43 5 04 44 6 05 45 7 06 46 8 07 47 9 08 48 [13]
11 0A 4A 12 0B 4B 13 0C 4C 14 0D 4D 15 0E 4E 16 0F 4F 10 09 49 3)单片机系统
单片机使用的是有8K容量FLASH的AT89S52[11],由于在这个模块要引进算法对数据进行再处理,在加上液晶和键盘的驱动程序,所以需要比较大的程序空间,故没有使用内部存储器小的AT89S51。
-27-
图3-6 液晶显示器接线图
[30]
-28-