攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计
表3.1 显示模式设置
2) 显示开/关及光标位置如表3.2所示:
表3.2 显示开/关及光标位置
② 数据控制:控制器内部设有一个数据地址指针,可以根据它来访问内部的全部字节。
1) 数据指针设置如表3.3所示:
表3.3 数据指针设置
2) 读数据:输入时 RW 、RS、 E均等于H,输出D0-D7=数据 3) 写数据:输入时RW=L、RS=H、D0-D7=数据、E=高脉冲,输出无; 4) 其他设置如表3.4所示:
表3.4 其他设置
12
攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计
③ LCD1602液晶模块的读写指令:
1) 指令1:清除显示,指令码为01H,清楚显示数据; 2) 指令2:光标返回到地址00H即光标复位;
3) 指令3:光标和显示位置设置,光标按方向移动,高/低电平右/左移,S:
屏幕上所有文字是否左移或右移,高电平移动,低电平不移动;
4) 指令4:显示开关控制D:控制整体的显示开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁;
5) 指令5:光标或显示移位 S/C :高电平时显示移动的文字,低电平时移动光标;
6) 指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时为双行显示,F:低电平时显示5X7的点阵字符,高电平时显示5X10的显示字符;
7) 指令7:字符发生器RAM地址设置; 8) 指令8:DDRAM地址设置;
9) 指令9:读忙信号和光标地址BF:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙;
3.2.4 LCD1602的基本时序操作
LCD1602的基本时序操作以及对应的状态和输入输出如表3.5所示:
13
攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计
表3.5 基本时序操作及对应状态的输入输出
LCD1602的读写时序操作如图3.4、3.5所示:
图 3.4读时序操作图
14
攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计
图 3.5写时序操作图
3.3 4*4矩阵键盘简介
3.3.1 4*4矩阵键盘的概述
4*4矩阵键盘又是4*4行列键盘,它是分别用4条I/O线作为行线和列线组成的键盘。每个键的位置设置在每条行线和列线在交叉处上,可以知道4*4矩阵键盘共有4*4=16个按键。这样的设置可以有效地提高单片机I/O口的利用率,与独立式按键相比大大降低了接口占用率。当设计过程中需要按键个数要求比较大时,为了释放出I/O端口来供其他连接需要时往往采用这种矩阵式按键来解决问题。在矩阵键盘中,行列线均通过一个按键加以连接取代了直接交叉相连。这样,在很大的程度上增加了按键数,而直接将端口线连接在键盘上则会减少一倍的按键数量。在需要很多按键的设计中采用矩阵键盘明显地比独立式按键更合理,而且行列线越多效果越明显。
3.3.2 4×4矩阵键盘的硬件结构
图3.6 4*4矩阵键盘的基本结构图
15
攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计
在应用矩阵键盘的设计中要编译程序的时候必定会计算出每个按键的接口地址是多少以方便编译,在矩阵键盘的按键确定上我们可以采用两种方法:
① 行扫描法:
行扫描法是我们常用的一种识别按键的方法,这种方法需要我们逐行逐列进行扫描查询,分为两个步骤:
1) 将连接的全部行线置为低电平,然后检测所有列线的电位状态。只要某一列列线电位为低电平,就表示矩阵键盘中这列有键被按下,并且在被按下的闭合的按键在低电平列线与全部根行线相交叉的4个按键之中。反之,若所有列线电位均为高电平,则表示矩阵键盘中没有按键被按下;
2) 通过前一可知按键处在判断的4个按键之中,在确认了有按键被按下后,就可进入到确定具体被闭合键的操作。然后再依次将所有行线电位置为低电平,即只有一根行线为低电平,其余行线则为高电平。在确定了某根行线电位为低电平后,再逐行检测所有列线的电平状态。若某根列线的电位为低电平,则被按下的按键就处在这根列线和低电平行线的交叉处;
② 高低电平翻转法:
这种确定矩阵键盘按键的方法也是非常有效的方法,也分为两个步骤: 1) 先让所连接的端口高四位为高(1),低四位为低(0),若矩阵键盘上有按键被按下,则高四位中会有一个电平从1被翻转到0,低四位则不会改变电平状态,然后即可确定矩阵键盘上被按下的按键的所在行的具体位置;
2) 让让所连接的端口高四位为低(0),低四位为高(1)。若矩阵键盘上有按
键被按下,则低四位中会会有一个电平1翻被转为0,高四位则不会改变电平状态,然后即可确定矩阵键盘上被按下的按键的所在列的具体位置。综合这两个步骤就可以判断出被按下的按键具体位置;
3.4 货币识别系统
3.4.1对硬币的识别
目前在国内,对于硬币的识别可采用多种方法,比如激光扫描、应变片测重量、光电管检测大小等,然而在自动售货机中采用结构简单、成本低、测量准确及其非接触测量等优点集一身的涡流传感器检测。
电涡流检测原理:以高频的电信号通过一个线圈,在这个过程中产生变化的磁场通过硬币的表面即变化磁通通过硬币的表面,相应地硬币表面上产生电涡流, 并产生反向的变化磁场,以削弱原来线圈产生出来的磁场。然后根据激励磁场线圈幅值的变化,通过变化的给定值即可测出真假硬币。
16