基于单片机的自动售货机_毕业设计论文(编辑修改稿)内容摘要:

类以及数量并确认; 3) 售货机检查是否有足够的货物并通过 LCD 提示等待顾客投币; 4) 顾客投入货币,售货机自动检测金额是否足够; 5) 金额足够多,售货机将推出顾客选择的相应数量的商品,若金额不足则直接退还货币; 6) 推出商品,售货机转入找零系统 退出余币; 7) 系统自动复位,完成售货; ② 系统采用硬件设计思路如图 : 1) 采用单片机 80C51作 CPU; 2) 采用 口作为投币的输入端; 3) 采用 LCD1602 液晶为显示模块: 4) 采用 4*4 矩阵键盘连接 P1 口作为货物选择选择端; 5) 采用 P0 口实现出货、找零功能; 图 自动售货机系统原理图 ③ 硬件端口的选择思路: 1) 输入:由于本设计模拟输入功能是由 4*4 矩阵键盘来完成的,而键盘连 接在 80C51 的 P1 口上,则货币投入设定为: 攀枝花学院本科毕业设计(论文) 2 自动售货机的系统结构 7 P1 口的按键值为 0X04 的时候代表 1 元货币的投入; P1 口的按键值为 0X05 的时候代表 5 元货币的投入; P1 口的按键值为 0X06 的时候代表 10 元货币的投入; P1 口的按键值为 0X07 的时候代表 20 元货币的投入; P1 口的按键值为 0X08 的时候代表 50 元货币的投入; P1 口的按键值为 0X09 的时候代表 100 元货币的投入; P1 口的按键值为 0X0f 的时候代表购物确定“ OK”按钮; P1 口的按键值为 0X0e 的时候代表购物取消“ NO”按钮; 本设计假定自动售货机的商品种类为 8 种,价格为 8元。 每一个价格代表一种商品且一经售出就由外部电机自动完成补货。 规定每次最多只能购买 10 个。 货物选择: P1 口的按键值为 OX00 的时候代表选择货物价格“ price+”; P1 口的按键值为 OX01 的时候代表选择货物价格“ price”; P1 口的按键值为 OX02 的时候代表选择货物数量“ num+”; P1 口的按键值为 OX03 的时候代表选择货物价格“ num”; 2) 输出:选择商品由 P0 口控制的相应 LED 指示灯: 选择商品 1用 控制 D1LED 灯亮; 选择商品 2用 控制 D2LED 灯亮; 选择商品 3用 控制 D3LED 灯亮; 选择商品 4用 控制 D4LED 灯亮; 选择商品 5用 控制 D5LED 灯亮; 选择商品 6用 控制 D6LED 灯亮; 选择商品 7用 控制 D7LED 灯亮; 选择商品 8用 控制 D8LED 灯亮; 3) 显 示:本设计的显示端口由 P2 端口和 ( RS)、 (RW)、 (E)控制 LCD1602 液晶来显示购货状态,用 P0 口控制 LED 灯表示货物种类。 通过它可以显示购货的种类、数量、总价以及找零等。 攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计 8 3 自动售货机的硬件设计 80C51 的简介 80C51 的基本概述 由 INTEL 公司出品的 MCS51 系列的 80C51 其实用性非常高。 由于它是采用CHMOS 的工艺技术制造,所以它是一款稳定性很高的高性能 8位单片机,是 HCMOS中的最基本的产品之一。 在制作工艺的程中不仅继承和扩展了先前单片机的指令系统和体系结构更是把 HMOS 的高速高密度的技术特点和 CHMOS 的低功耗特点相结合。 为了满足需求,在 80C51 内部置入 CPU、 RAM( 128 字节)、 I/O( 32 个双向输入输出)、定时器 /计数器( 16 位)、串行通信口、两级中断结构以及片内时钟震荡电路。 此外,它还可以通过选择空闲和掉电的方式用于低功耗模式来进行工作,空闲模式下保持串行口、中断系统、 RAM 和定时器正常工作而同时冻结 CPU 来保证其正常运行。 掉电模式下,自动保存 RAM 数据,时钟震荡停止、芯片的其他功能停止工作。 图 80C51单片机内部基本结构 80C51 的引脚功能介绍 攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计 9 图 80C51的引脚图 80C51 单片机的 40 个引脚大致可分为 4 类:电源、时钟、控制和 I/O 引脚。 ① 电源 : 1) VCC 芯片电源,接 +5V; 2) VSS 接地端。 ② 时钟 :XTAL XTAL2 晶体振荡电路反相输入端和输出端。 ③ 控制线 :控制线共有 4 根: 1) ALE/PROG:地址锁存允许 /片内 EPROM 编程脉冲 a. ALE 功能用来锁存 P0口送出的低 8位地址; b. PROG 功能:片内有 EPROM 的芯片,在 EPROM 编程期间,此引脚输入编程脉冲。 2) PSEN:外 ROM 读选通信号。 3) RST/VPD(复位 /备用电源): a. RST( Reset)功能是复位信号输入端; b. VPD 功能是在 Vcc 掉电情况下,接备用电源。 4) EA/Vpp(内外 ROM 选择 /片内 EPROM 编程电源): a. EA 功能:内外 ROM 选择端; b. Vpp 功能:片内有 EPROM 的芯片,在 EPROM 编程期间,施加编程电源 Vpp。 ④ I/O线 :80C51 共有 4 个 8 位并行 I/O 端 口即 P0、 P P P3口,共 32攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计 10 个引脚; P3 口还具有第二功能 —— 用于特殊信号输入输出和控制信号(属控制总线) P0 口输入时需要接上拉电阻才能置 1。 在每次使用单片机之前,我们都要使单片机复位,让 CPU 以及其他功能部件都处于一个确定的初始状态,以消除上一次用户的操作对本次用户操作的影响。 51 的 RST 引脚是复位信号的输入端。 复位信号是高电平有效,持续时间要有 24 个时钟周期以上。 例如:若 MCS51 单片机的时钟频率为 12MHz,则复位脉冲宽度至少应为 2us。 通常, 80C51 的复位有自动上电复位和人工按纽复位两种 自动上电复位电路的工作原理是:电容在通电的时候相当于短路情况,导致RST 引脚上的电位为高电平,这样电容会因为电阻被充电,然后 RST端逐渐降低电压直到变为低电平,从而使单片机开始正常工作。 由于自动售货机的功能需求,本次设计采用自动上电复位电路。 LCD1602 字符型液晶简介 LCD1602 的概述 LCD1602 液晶也叫 1602 字符型液晶,它是一种专门用来显示字母、数字、符号等的 点阵 型液晶模块。 它由若干个 5X7 或者 5X11 等 点阵 字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义 CGRAM,显示效果也不好)。 1602LCD 是指显示的内容为 16X2,即可以显示两行,每行 16个字符液晶模块(显示字符和数字)。 市面上字符液晶大多数是基于 HD44780液晶芯片的,控制原 理是完全相同的,因此基于 HD44780 写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。 根据显示内容可以分为字符型液晶,图形液晶。 根据显示容量又可以分为单行 16字, 2 行 16 字,两行 20 字等等。 LCD1602 的硬件结构 攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计 11 图 LCD1602的基本结构图 引脚说明: LCD1602一般是 16个引脚 第 1脚: VSS 为接地电源。 第 2脚: VDD 接 5V 正电源。 第 3脚: VEE 为液晶显示 器对比度调整端,通过连接电源正负来调节对比度的强弱。 当连接电源正端时对比度最弱,反之连接负极则最高。 对比度太高时会产生所谓的“鬼影”,在连接时可以通过接一个电位器来调整对比度。 第 4脚: RS为数据命令选择端,电平为 H 时选择数据寄存器、电平为 L时选择指令寄存器。 第 5脚: RW为读写选择端,电平为 H 时进行读操作,电平为 L时进行写操作。 第 6脚: E端为使能端,当 E端由高电平跳变成低电平时,液晶模块执行命令。 第 7~ 14脚: D0~ D7为 8位双向数据线。 第 15~ 16脚:空脚或背灯电源, 15脚背光正极, 16脚背光负极。 LCD1602 的指令说明 ① LCD1602 的初始化设置: 1) 显示模式设置如表 所示: 攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计 12 表 显示模式设置 2) 显示开 /关及光标位置如表 : 表 显示开 /关及光标位置 ② 数据控制:控制器内部设有一个数据地址指针,可以根据它来访问内部的全部字节。 1) 数据指针设置如表 : 表 数据指针设置 2) 读数据:输入时 RW 、 RS、 E均等于 H,输出 D0D7=数据 3) 写数据:输入时 RW=L、 RS=H、 D0D7=数据、 E=高脉冲,输出无; 4) 其他设置如表 : 表 其他设置 攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计 13 ③ 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:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙; LCD1602 的基本时序操作 LCD1602 的基本时序操作以及对应的状态和输入输出如表 所示: 攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计 14 表 基本时序操作及对应状态的输入输出 LCD1602 的读写时序操作如图 、 所示: 图 攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计 15 图 4*4 矩阵键盘简介 4*4 矩阵键盘的概述 4*4 矩阵键盘又是 4*4 行列键盘,它是分别用 4条 I/O 线作为行线和列线组成的键盘。 每个键的位置设置在 每条行线和列线在交叉处 上,可以知道 4*4 矩阵键盘共有 4*4=16 个按键。 这样的设置可以有效地提高单片机 I/O口的利用率,与独立式按键相比大大降低了接口占用率。 当设计过程中需要按键个数要 求比较大时,为了释放出 I/O 端口来供其他连接需要时往往采用这种矩阵式按键来解决问题。 在 矩阵 键盘 中,行列线均通过一个按键加以连接取代了直接交叉相连。 这样,在很大的程度上增加了按键数,而直接将端口线连接在 键盘 上则会减少 一倍的按键数量。 在需要很多按键的设计中采用矩阵键盘明显地比独立式按键更合理,而且行列线越多效果越明显。 4 4 矩阵键盘的硬件结构 图 4*4矩阵键盘的基本结构图 攀枝花学院本科毕业设计(论文) 3 自动售货机的硬件设计 16 在应用矩阵键盘的设计中要编译程序的时候必定会计算出每个按键的接口地址是多少以方便编译,在矩阵键盘的按键确定上我们可以采用两种方法: ① 行扫描法: 行扫描法是我们常用的一种识别按键的方法,这种方法需要我们逐行逐列进行扫描查询,分为两个步骤: 1) 将连接的全部行线置为低电平,然后检测所有列线的电位状态。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。