基于protues仿真的自动售货机的实现

2014-10-29 02:36李芝浩朱尔隆
电子技术与软件工程 2014年16期
关键词:投币按键菜单

李芝浩 朱尔隆

摘 要

本系统是在protues上进行仿真实现的自动售货机系统,选用当前的主流芯片AT89C51作为核心,用LCD屏进行显示,能够准确及时的显示投币数、货物数、购买数量等等。系统用中文显示,具有较好的人机交互功能,还能显示当前的日期时间。

【关键词】自动售货机AT89C51LCD人机交互中文显示

自动售货机是劳动密集型的产业构造向技术密集型社会转变的产物。在快节奏生活的今天,自动售货机以其灵活、方便、快捷的特点迅猛发展,走入我们的生活,并将逐渐成为我们生活不可或缺的一部分。那么一个拥有一个良好人机交互功能的自动售货机不仅能给顾客带来更好的消费体验,还能够大大增加公司的收入。

本文设计了一款基于AT89C51单片机的智能型自动售货机,能够较好地实现一个购物的过程,用中文显示购物菜单供顾客选择,并能够在出现投币不足,货物不足时给出提示。

1 总体方案

自动售货机是一个独立的机构,它需要在顾客投币和按购物键选择时实现自动售货及退找零钱,所以要从尽可能全自动的角度去考虑设计方案。它的基本工作过程如图1所示。

本文介绍的自动售货机原理是这样的:首先用三个按键来仿真钱币的入口,通过按键次数来模拟投入钱的数目。在程序中以外部中断的方式实现计数,并在中断子程序中将钱的数量送回主程序中显示。此时,LCD屏幕上就会开始显示菜单,并把价格等相关信息显示出来。在设计中,另外采用了两个开关让顾客进行操作,一个向下选择,一个进行确认。当顾客按动按钮进行选择时,选中的商品会闪烁,顾客第一次按下确认键,系统选中该商品然后显示具体信息如剩余的商品数目等,顾客可以通过向下选择按键来改变商品数目。等顾客第二次完成确认,系统会根据具体情况做出反应,若是一切正常,机器就会送出选定的商品,当然这里的设计只是用闪烁的LED等来表示货物及余币的输出。输出货物之后,系统不会退出,重新进入菜单界面进行选择,若顾客选择退出则送出余币然后退出。

当然根据实际,当出现货物不足,或者投币不足的情况时,系统会报警然后在LCD显示相关信息,然后重新进入选择界面。另外选择界面上设计了一个倒计时系统,若在10s没有相关的操作,倒计时完成后就会退出余币然后结束购物。考虑到实用性,在没有顾客时,LCD屏上会显示欢迎光临,并显示当前的时间。关于货物状态的显示,是由对应的LED灯来显示,若货物充足灯灯亮。

2 系统硬件设计

硬件仿真电路按功能主要分为6大模块,按键输入模块、LED显示模块、LCD显示模块、时钟DS1302模块、手动复位模块、中央控制模块。

三个作为钱币入口的按键,接到外部中断入口int0用中断方式实现。用户只用操作两个按键。一个是加一键,一个是确认键实现购物操作。另外接在P1的八个LED灯用来显示当前货物的状态和自动售货机的工作状态。

采用汉字显示的PG12864F来实现显示功能,无汉字库所以通过汉字取模软件取出字模,建立字库。

DS1302用来实时显示时间,它可以对年、月、日、周、日、时、分、秒进行计时,采用三线接口与CPU进行同步通信。

中央控制模块选用的是AT89C51,是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器。

本设计中并没有用到很多的外部设备,所以没有把P2口作为地址总线使用,而是作为按键的输入口。多余的几个管脚用来补充P3口作为控制总线。P1口用来控制系统的LED灯来显示状态。P3口用作控制总线来控制各芯片。另外还用到了复位引脚,通过按键手动保持RST脚两个机器周期的高电平时间复位,和一个外部中断入口来响应外部中断。

3 系统软件设计

从软件编程上来看,系统采用c语言进行分块编写, 方便调试和扩展。首先主程序完成的是各部分的初始化工作,之后进入执行各部分功能的大循环。当无投币时,进入一个等待界面,显示欢迎光临,并读取时间值显示,这里会循环检查是否投币,然后判断系统中货物的数目,并显示状态。

之后进行的是一个菜单的显示和无操作延时等待,因为我们系统这个延时的实时性要求不是特别高,所以采用软件延时即可满足要求。每隔50ms进行一次按键扫描,然后进行倒计时。

若有投币则进入购物子程序,显示菜单进行选择。先选择商品,再选择数量,之后进行判断,若无误则购买完成,购买值、时间复位,然后返回到菜单选择界面。

若是在之前选择退出,然后倒计时时间到了,就会自动进入退出程序,然后返回主程序。

若是购买过程中出现投币不足或者货物不足就会出现提示显示提示界面,对应LED灯闪烁。

若货物不足,对应灯熄灭,可通过按键重新装载。

4 结束语

本文通过PROTEUS试验仿真,验证了一种自动售货机系统的可行性。模拟了日常生活中一个自动购物的过程,只需要顾客投币和按购物键选择即可自动售货及退找零钱,如果能应用到实际生活中相信能给人们的生活提供很大的便利。

参考文献

[1]高玉芹.单片机原理与应用及 C51编程技术[M].北京:机械工业出版社,2011(06).

[2]郭天祥.新概念51单片机C语言教程—入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2009(11).

[3]彭伟.单片机C语言程序设计实训100例—基于8051+PROTEUS仿真[M].北京:电子工业出版社2009(06).

作者简介

李芝浩(1993-),男,浙江省江山市人。现为中南大学信息科学与工程学院学生。研究方向为电子设计、自动化。

朱尔隆(1993-),男,浙江省温州市人,现为大连理工大学电子信息与电气工程学院学生。研究方向为电气、自动化。

作者单位

1.中南大学信息科学与工程学院 湖南省长沙市 410012

2.大连理工大学电子信息与电气工程学院 辽宁省大连市 116024endprint

摘 要

本系统是在protues上进行仿真实现的自动售货机系统,选用当前的主流芯片AT89C51作为核心,用LCD屏进行显示,能够准确及时的显示投币数、货物数、购买数量等等。系统用中文显示,具有较好的人机交互功能,还能显示当前的日期时间。

【关键词】自动售货机AT89C51LCD人机交互中文显示

自动售货机是劳动密集型的产业构造向技术密集型社会转变的产物。在快节奏生活的今天,自动售货机以其灵活、方便、快捷的特点迅猛发展,走入我们的生活,并将逐渐成为我们生活不可或缺的一部分。那么一个拥有一个良好人机交互功能的自动售货机不仅能给顾客带来更好的消费体验,还能够大大增加公司的收入。

本文设计了一款基于AT89C51单片机的智能型自动售货机,能够较好地实现一个购物的过程,用中文显示购物菜单供顾客选择,并能够在出现投币不足,货物不足时给出提示。

1 总体方案

自动售货机是一个独立的机构,它需要在顾客投币和按购物键选择时实现自动售货及退找零钱,所以要从尽可能全自动的角度去考虑设计方案。它的基本工作过程如图1所示。

本文介绍的自动售货机原理是这样的:首先用三个按键来仿真钱币的入口,通过按键次数来模拟投入钱的数目。在程序中以外部中断的方式实现计数,并在中断子程序中将钱的数量送回主程序中显示。此时,LCD屏幕上就会开始显示菜单,并把价格等相关信息显示出来。在设计中,另外采用了两个开关让顾客进行操作,一个向下选择,一个进行确认。当顾客按动按钮进行选择时,选中的商品会闪烁,顾客第一次按下确认键,系统选中该商品然后显示具体信息如剩余的商品数目等,顾客可以通过向下选择按键来改变商品数目。等顾客第二次完成确认,系统会根据具体情况做出反应,若是一切正常,机器就会送出选定的商品,当然这里的设计只是用闪烁的LED等来表示货物及余币的输出。输出货物之后,系统不会退出,重新进入菜单界面进行选择,若顾客选择退出则送出余币然后退出。

当然根据实际,当出现货物不足,或者投币不足的情况时,系统会报警然后在LCD显示相关信息,然后重新进入选择界面。另外选择界面上设计了一个倒计时系统,若在10s没有相关的操作,倒计时完成后就会退出余币然后结束购物。考虑到实用性,在没有顾客时,LCD屏上会显示欢迎光临,并显示当前的时间。关于货物状态的显示,是由对应的LED灯来显示,若货物充足灯灯亮。

2 系统硬件设计

硬件仿真电路按功能主要分为6大模块,按键输入模块、LED显示模块、LCD显示模块、时钟DS1302模块、手动复位模块、中央控制模块。

三个作为钱币入口的按键,接到外部中断入口int0用中断方式实现。用户只用操作两个按键。一个是加一键,一个是确认键实现购物操作。另外接在P1的八个LED灯用来显示当前货物的状态和自动售货机的工作状态。

采用汉字显示的PG12864F来实现显示功能,无汉字库所以通过汉字取模软件取出字模,建立字库。

DS1302用来实时显示时间,它可以对年、月、日、周、日、时、分、秒进行计时,采用三线接口与CPU进行同步通信。

中央控制模块选用的是AT89C51,是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器。

本设计中并没有用到很多的外部设备,所以没有把P2口作为地址总线使用,而是作为按键的输入口。多余的几个管脚用来补充P3口作为控制总线。P1口用来控制系统的LED灯来显示状态。P3口用作控制总线来控制各芯片。另外还用到了复位引脚,通过按键手动保持RST脚两个机器周期的高电平时间复位,和一个外部中断入口来响应外部中断。

3 系统软件设计

从软件编程上来看,系统采用c语言进行分块编写, 方便调试和扩展。首先主程序完成的是各部分的初始化工作,之后进入执行各部分功能的大循环。当无投币时,进入一个等待界面,显示欢迎光临,并读取时间值显示,这里会循环检查是否投币,然后判断系统中货物的数目,并显示状态。

之后进行的是一个菜单的显示和无操作延时等待,因为我们系统这个延时的实时性要求不是特别高,所以采用软件延时即可满足要求。每隔50ms进行一次按键扫描,然后进行倒计时。

若有投币则进入购物子程序,显示菜单进行选择。先选择商品,再选择数量,之后进行判断,若无误则购买完成,购买值、时间复位,然后返回到菜单选择界面。

若是在之前选择退出,然后倒计时时间到了,就会自动进入退出程序,然后返回主程序。

若是购买过程中出现投币不足或者货物不足就会出现提示显示提示界面,对应LED灯闪烁。

若货物不足,对应灯熄灭,可通过按键重新装载。

4 结束语

本文通过PROTEUS试验仿真,验证了一种自动售货机系统的可行性。模拟了日常生活中一个自动购物的过程,只需要顾客投币和按购物键选择即可自动售货及退找零钱,如果能应用到实际生活中相信能给人们的生活提供很大的便利。

参考文献

[1]高玉芹.单片机原理与应用及 C51编程技术[M].北京:机械工业出版社,2011(06).

[2]郭天祥.新概念51单片机C语言教程—入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2009(11).

[3]彭伟.单片机C语言程序设计实训100例—基于8051+PROTEUS仿真[M].北京:电子工业出版社2009(06).

作者简介

李芝浩(1993-),男,浙江省江山市人。现为中南大学信息科学与工程学院学生。研究方向为电子设计、自动化。

朱尔隆(1993-),男,浙江省温州市人,现为大连理工大学电子信息与电气工程学院学生。研究方向为电气、自动化。

作者单位

1.中南大学信息科学与工程学院 湖南省长沙市 410012

2.大连理工大学电子信息与电气工程学院 辽宁省大连市 116024endprint

摘 要

本系统是在protues上进行仿真实现的自动售货机系统,选用当前的主流芯片AT89C51作为核心,用LCD屏进行显示,能够准确及时的显示投币数、货物数、购买数量等等。系统用中文显示,具有较好的人机交互功能,还能显示当前的日期时间。

【关键词】自动售货机AT89C51LCD人机交互中文显示

自动售货机是劳动密集型的产业构造向技术密集型社会转变的产物。在快节奏生活的今天,自动售货机以其灵活、方便、快捷的特点迅猛发展,走入我们的生活,并将逐渐成为我们生活不可或缺的一部分。那么一个拥有一个良好人机交互功能的自动售货机不仅能给顾客带来更好的消费体验,还能够大大增加公司的收入。

本文设计了一款基于AT89C51单片机的智能型自动售货机,能够较好地实现一个购物的过程,用中文显示购物菜单供顾客选择,并能够在出现投币不足,货物不足时给出提示。

1 总体方案

自动售货机是一个独立的机构,它需要在顾客投币和按购物键选择时实现自动售货及退找零钱,所以要从尽可能全自动的角度去考虑设计方案。它的基本工作过程如图1所示。

本文介绍的自动售货机原理是这样的:首先用三个按键来仿真钱币的入口,通过按键次数来模拟投入钱的数目。在程序中以外部中断的方式实现计数,并在中断子程序中将钱的数量送回主程序中显示。此时,LCD屏幕上就会开始显示菜单,并把价格等相关信息显示出来。在设计中,另外采用了两个开关让顾客进行操作,一个向下选择,一个进行确认。当顾客按动按钮进行选择时,选中的商品会闪烁,顾客第一次按下确认键,系统选中该商品然后显示具体信息如剩余的商品数目等,顾客可以通过向下选择按键来改变商品数目。等顾客第二次完成确认,系统会根据具体情况做出反应,若是一切正常,机器就会送出选定的商品,当然这里的设计只是用闪烁的LED等来表示货物及余币的输出。输出货物之后,系统不会退出,重新进入菜单界面进行选择,若顾客选择退出则送出余币然后退出。

当然根据实际,当出现货物不足,或者投币不足的情况时,系统会报警然后在LCD显示相关信息,然后重新进入选择界面。另外选择界面上设计了一个倒计时系统,若在10s没有相关的操作,倒计时完成后就会退出余币然后结束购物。考虑到实用性,在没有顾客时,LCD屏上会显示欢迎光临,并显示当前的时间。关于货物状态的显示,是由对应的LED灯来显示,若货物充足灯灯亮。

2 系统硬件设计

硬件仿真电路按功能主要分为6大模块,按键输入模块、LED显示模块、LCD显示模块、时钟DS1302模块、手动复位模块、中央控制模块。

三个作为钱币入口的按键,接到外部中断入口int0用中断方式实现。用户只用操作两个按键。一个是加一键,一个是确认键实现购物操作。另外接在P1的八个LED灯用来显示当前货物的状态和自动售货机的工作状态。

采用汉字显示的PG12864F来实现显示功能,无汉字库所以通过汉字取模软件取出字模,建立字库。

DS1302用来实时显示时间,它可以对年、月、日、周、日、时、分、秒进行计时,采用三线接口与CPU进行同步通信。

中央控制模块选用的是AT89C51,是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器。

本设计中并没有用到很多的外部设备,所以没有把P2口作为地址总线使用,而是作为按键的输入口。多余的几个管脚用来补充P3口作为控制总线。P1口用来控制系统的LED灯来显示状态。P3口用作控制总线来控制各芯片。另外还用到了复位引脚,通过按键手动保持RST脚两个机器周期的高电平时间复位,和一个外部中断入口来响应外部中断。

3 系统软件设计

从软件编程上来看,系统采用c语言进行分块编写, 方便调试和扩展。首先主程序完成的是各部分的初始化工作,之后进入执行各部分功能的大循环。当无投币时,进入一个等待界面,显示欢迎光临,并读取时间值显示,这里会循环检查是否投币,然后判断系统中货物的数目,并显示状态。

之后进行的是一个菜单的显示和无操作延时等待,因为我们系统这个延时的实时性要求不是特别高,所以采用软件延时即可满足要求。每隔50ms进行一次按键扫描,然后进行倒计时。

若有投币则进入购物子程序,显示菜单进行选择。先选择商品,再选择数量,之后进行判断,若无误则购买完成,购买值、时间复位,然后返回到菜单选择界面。

若是在之前选择退出,然后倒计时时间到了,就会自动进入退出程序,然后返回主程序。

若是购买过程中出现投币不足或者货物不足就会出现提示显示提示界面,对应LED灯闪烁。

若货物不足,对应灯熄灭,可通过按键重新装载。

4 结束语

本文通过PROTEUS试验仿真,验证了一种自动售货机系统的可行性。模拟了日常生活中一个自动购物的过程,只需要顾客投币和按购物键选择即可自动售货及退找零钱,如果能应用到实际生活中相信能给人们的生活提供很大的便利。

参考文献

[1]高玉芹.单片机原理与应用及 C51编程技术[M].北京:机械工业出版社,2011(06).

[2]郭天祥.新概念51单片机C语言教程—入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2009(11).

[3]彭伟.单片机C语言程序设计实训100例—基于8051+PROTEUS仿真[M].北京:电子工业出版社2009(06).

作者简介

李芝浩(1993-),男,浙江省江山市人。现为中南大学信息科学与工程学院学生。研究方向为电子设计、自动化。

朱尔隆(1993-),男,浙江省温州市人,现为大连理工大学电子信息与电气工程学院学生。研究方向为电气、自动化。

作者单位

1.中南大学信息科学与工程学院 湖南省长沙市 410012

2.大连理工大学电子信息与电气工程学院 辽宁省大连市 116024endprint

猜你喜欢
投币按键菜单
基于有限状态机的按键检测程序设计
中国新年菜单
投币畅饮(图片故事)
本月菜单
一种多方向导光按键结构设计
放飞诚信的白鸽
按键的多种状态检测及消抖处理方法
奇妙投币机
解析某型号手机按键检测程序的缺陷