金属探测器论文设计 联系客服

发布时间 : 星期一 文章金属探测器论文设计更新完毕开始阅读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-