verilog自动售货机Word文档格式.doc
- 文档编号:808247
- 上传时间:2023-04-29
- 格式:DOC
- 页数:23
- 大小:690.46KB
verilog自动售货机Word文档格式.doc
《verilog自动售货机Word文档格式.doc》由会员分享,可在线阅读,更多相关《verilog自动售货机Word文档格式.doc(23页珍藏版)》请在冰点文库上搜索。
第2章系统设计方案 3
2.1饮料自动提取机总体设计方案 3
2.2系统的参数 4
第3章饮料自动提取机的基本原理 5
3.1饮料自动提取机功能 5
3.2饮料自动提取机的基本组成 5
3.2.1投币信号产生的设计 5
3.2.2时钟电路的设计 5
3.2.3数码显示的设计 6
第4章饮料自动提取机软件设计 7
4.1软件实现功能综述 7
4.2计数功能的设计 7
4.2.1计数功能接口电路 7
4.2.2计数功能程序设计 7
4.3投币功能的设计 8
4.3.1投币功能的接口电路 8
4.3.2投币功能程序设计 8
4.4显示功能的设计 9
4.4.1显示功能的接口电路 9
4.4.2显示功能程序设计 9
4.5显示功能的设计 11
4.5.1显示功能的接口电路 11
4.5.2显示功能程序设计 11
第5章饮料自动提取机系统的仿真分析 13
5.1系统原理图 13
5.2计数功能的仿真分析 13
5.3投币功能的仿真分析 14
5.4取货功能的仿真分析 15
5.5总体功能的仿真分析 15
第6章课程设计总结 16
参考文献 17
第1章绪论
1.1饮料自动提取机概况
近年来,集成电路技术的迅猛发展,特别是可编程逻辑器件的高速发展,电子设计自动化EDA技术成为电子设计工程师的新宠。
EDA技术以计算机为工具完成数字系统的逻辑综合、布局布线和设计仿真等工作。
电路设计者只需要完成对系统功能的描述,就可以由计算机软件进行系统处理,最后得到设计结果,并且修改设计方案如同修改软件一样方便。
利用EDA工具可以极大地提高设计效率。
VHDL是指超高速集成电路硬件描述语言。
VHDL主要用于描述数字系统的结构、行为、功能、和接口,除了含有许多具有硬件特征的语句外,VHDL的程序结构特点是,将一项工程设计或称设计实体分成外部和内部。
在对一个设计实体定义了外部界面后,一旦其内部开发完成,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部的概念是VHDL系统设计的基本点。
利用VHDL语言的方便与强大功能的特点设计了一套自动饮料售货机系统。
其用方便、可靠、节省人力的自动饮料售卖机机将在社会生活中成为一种趋势,它的出现一定程度上也体现了现代文明的发展程度。
本设计是一套结构简单,操作方便,性能可靠的自动饮料售卖机产品。
自动饮料售卖机电路设计采用选择商品电路、投币累加电路、统计卖出商品电路等四个基本电路构成。
自动售货机在接受投入钱币后,通过与商品价格比较,确定是否能够售出商品和把算出剩余的钱找回。
当商品输出后售货机自动把上次卖出商品的价格和投入的钱币的总和清零,这时才可以进行下次交易。
自动售货机还应满足商家查看销售商品的总和及使其清零,和控制该售货机进行整体复位。
该售货机可以帮助商家更好的销售商品,并且节省人力,获得更大的利润
自动饮料售卖机是能够根据投入的钱币自动取出饮料的机器,它是商业自动化的常用设备,不受时间、地点的限制,能节省人力、方便交易。
现代的自动饮料售卖机的种类、结构和功能依出售的饮料种类而异。
钱币装置是自动饮料售卖机的核心,其主要功能是确认投入钱币的真伪,分选钱币的种类,计算金额。
如果投入的金额达到购买物品的数值即发出售货信号,并找出余钱。
自动饮料售卖机自动输出顾客所要的商品。
因此,自动售货机在商业,食品行业越来越普及,更方便消费者购买自己所需的商品。
自动售卖机是本世纪70年代在日本、欧美发展起来的高新技术现代应用产品,被称为24小时营业的微型超市,售货领域已扩展至小食品、小用品、香烟、电话卡、车票、邮票等。
目前在40多个国家已经广泛使用,日本平均每23人一台,美国平均每40人一台,欧洲平均每60人一台。
在邻国日本,70%份额的罐装饮料市场是通过自动售货机售出的;
美国可口可乐公司拥有五十余万台饮料自动售货机分布在世界各地。
通过自动售货机销售将成为商品零售业不可分割的重要组成部分。
1.2本文研究内容
本次设计的是一个饮料自动提取机。
饮料自动提取机主要是由以下几个部分构成,电源电路、数码显示、时钟脉冲、投币脉冲、闸门时间控制等,各部件形成一个简单的饮料自动提取机系统。
本设计采用EDA技术,通过FPGA实现了数字电子钟电路的设计,通过QuartusII完成对电路的功能进行仿真。
1.3目的与意义
本系统由对外部投入硬币的检测来产生脉冲,并对产生的脉冲进行计数,其中a表示投入的是0.5元的硬币,b表示投入的是1元的硬币,每次根据投入的硬币不同而分别计数,并将投入的总金额用两位数码管显示出来,当达到了交易金额时,out产生一个正脉冲,此正脉冲控制闸门打开,汽水掉出来,当超出了交易金额,则out1会产生一个正脉冲,饮料售卖机找回0.5元钱。
第2章系统设计方案
2.1饮料自动提取机总体设计方案
自动售货机控制系统设计主要有三个功能模块,一个为售货机模块:
该模块能完成货物信息的存储,硬币处理,余额计算。
一个为动态扫描模块:
功能主要是硬件实验板上让两路信号同时在两个7段数码管上显示出来。
另一个为输出控制模块:
该模块主要是控制OUT和OUT1输出信号来控制阀门打开与找钱,并且控制阀门的打开时间。
设计思路:
控制信号输入到售货机模块,售货机进行各项功能操作,输出信号在7段数码管上显示出来。
图2.1饮料提取机的系统组成框图
时钟脉冲
阀门控制
译码
投币信号输入与处理
控制器
显示
本系统由对外部投入硬币的检测来产生脉冲,并对产生的脉冲进行计数,其中a表示投入的是0.5元的硬币,b表示投入的是1元的硬币,每次根据投入的硬币不同而分别计数,并将投入的总金额用两位数码管显示出来,当达到了交易金额时,out产生一个正脉冲,此正脉冲控制闸门打开,汽水掉出来,当超出了交易金额,则out1会产生一个正脉冲,饮料售卖机找回0.5元钱。
2.2系统的参数
输入变量:
a为投入0.5元信号,b为投入1元信号,a1,b1寄存投入的0.5元和1元硬币数目,时钟clk;
输出变量:
out为高电平时售卖机闸门打开,汽水掉出来,out1为高电平时候找0.5元
第3章饮料自动提取机的基本原理
3.1饮料自动提取机功能
3.2饮料自动提取机的基本组成
自动饮料售货机主要是由以下几个部分构成,电源电路、数码显示、时钟脉冲、投币脉冲、闸门时间控制等,各部件形成一个简单的自动售货机系统。
其实现主要的功能是对投币信号的计数与计算,判断是否达到所买物品的价格,如果不足的显示所投的钱数,钱足则控制闸门三秒后放出饮料。
3.2.1投币信号产生的设计
自动售货机的所有信号均由同步时钟信号CLK的正边沿触发,由于售货机的硬币接收器一般是一个机械装置,投币时产生的信号要比同步信号慢得多,一般可以持续好几个周期。
必须对投币输入信号进行处理,使每一次投币时在CLK脉冲周期内只能产生一个脉冲作为功能控制模块的投币驱动信号。
3.2.2时钟电路的设计
在功能实现模块中,售货机在放出饮料的时候需要延时三秒钟,程序中COUNT1数3000下,因此需要1KHZ的时钟脉冲,设计中为同步时钟,所以此时钟脉冲电路为芯片提供“脉搏”。
图中是一种1KHZ脉冲发生电路。
它由集成电路CD4060和晶振、电阻和电容等元件组成。
CD4060是14位二进制串行计数、分频器和振荡器。
CD4060内部分为两部分,其中一部分是14级计数/分频器,其分频系数为16~16348;
另一部分既可与外接电阻和电容构成RC振荡器,又可与外接晶体构成高精度的晶体振荡器。
在采用一定频率的晶振组成晶振振荡器,其震荡信号经过CD4060内部分频后,在Q输出相应频率的脉冲信号。
设计中需要1000HZ的时钟脉冲,所以外接30720HZ的晶振,在Q5端输出大约是1000HZ的时钟脉冲。
3.2.3数码显示的设计
根据程序中,在不满足交易金额的时候,需要把所投的币数额显示在数码管上,利用一个控制信号weixuan来控制数码管的显示位置,当weixuan为0时着在低位显示,当weixuan为1时选择高位。
硬件中选用两个数码管来显示,芯片输出的电流不能驱动数码管来显示,因此需要74HC245来驱动数码管的显示,E端必须接地,这样芯片才能正常工作,DIR端的功能是:
当为高的时候数据A到B,为低的时候B到A。
设计中使用两片芯片,一片来让数码管显示数值,一片来控制weixuan让数码选择显示的位置。
在74HC245与数码管之间需要用一个电阻。
当投入五角的硬币的时候,由于不满足交易金额则数码管上显示0.5,为一元的时候则为01。
第4章饮料自动提取机软件设计
4.1软件实现功能综述
在QuartusII软件平台上建立计数器电路的顶层电路文件并完成编译和仿真。
用Verilog编写shoumaiji.v文件及注释。
QuartusII软件提供完整、易于操作的图形用户界面可以完成整个设计流程中的各个阶段,并提供完整的命令行界面解决方案,使用命令行流程可以降低内存要求,并可使用脚本或标准的命令行选项和命令控制QuartusII软件。
4.2计数功能的设计
4.2.1计数功能接口电路
计数功能模块bdf图如图4.2.1所示:
图4.2.1计数功能模块bdf图
a表示投入5角的硬币信号,b表示投入1元的硬币信号,out控制售卖机闸门是否打开,out为高电平时闸门打开;
a1记录投入5角硬币的个数,b1记录投入1元硬币的个数。
4.2.2计数功能程序设计
modulejishu(a,b,out,a1,b1);
inputa,out,b;
outputa1,b1;
reg[4:
1]a1,b1;
//汽水出来后计数值清零
always@(posedgeaorposedgeout)
begin
if(out==1)a1<
=0;
//汽水出来后计数值清零
elsea1<
=a1+4'
b1;
end
always@(posedgeborposedgeout)
if(out==1)b1<
//汽水出来后计数值清零
elseb1<
=b1+4'
endmodule
4.3投币功能的设计
4.3.1投币功能的接口电路
投币功能模块bdf图如图4.3.1所示:
图4.3.1投币功能模块bdf图
clk为时钟信号,a1记录投入5角硬币的个数,b1记录投入1元硬币的个数,out控制售卖机闸门是否打开,out为高电平时闸门打开,out1为找零信号,为高电平时,饮料售卖机找回5角钱。
4.3.2投币功能程序设计
moduletoubi(clk,a1,b1,out,out1);
inputclk;
input[3:
0]a1,b1;
outputout;
//out为高电平时售卖机闸门打开,汽水掉出来
outputout1;
//out1为高电平时候找0.5元
regout,out1;
always@(posedgeclk)
if(a1==5)out<
=1;
//因为汽水为2.5,可以给5个0.5元
elseif(a1==3&
&
b1==1)out<
//可以给3个0.5元和1个1元
elseif(a1==1&
b1==2)out<
//,可以给1个0.5元和2个1元
elseif(b1==3)beginout<
out1<
end
end
4.4显示功能的设计
4.4.1显示功能的接口电路
显示功能模块bdf图如图4.4.1所示:
图4.4.1显示功能模块bdf图
clk为时钟信号,a表示投入5角的硬币信号,b表示投入1元的硬币信号,a1记录投入5角硬币的个数,b1记录投入1元硬币的个数。
weixuan是选择要显示的数码管,duanxuan是数码管显示钱数。
4.4.2显示功能程序设计
modulexianshi(clk,a,b,a1,b1,duanxuan,weixuan,);
inputa,b;
//a为投入0.5元信号,b为投入1元信号
output[8:
1]duanxuan;
//输出8位段选信号
outputweixuan;
//输出1位位选信号
regweixuan;
reg[8:
reg[31:
0]count;
//数码管动态扫描计数
0]count1;
//用于计算售卖机闸门打开时间
if(a1==0&
b1==0)
begin
count<
=count+1;
if(count==50)//如果实际运行中发现数码管有闪烁,可以将此数值调小
begin
weixuan<
=1'
b0;
duanxuan<
=8'
b00111111;
//0
end
if(count==100)//如果实际运行中发现数码管有闪烁,可以将此数值调小
begin
duanxuan<
count<
end
elseif(a==1)//投币0.5元,显示0.5,假设数码管为共阴极的
begin
count<
if(count==50)//如果实际运行中发现数码管有闪烁,可以将此数值调小
b01101101;
//5
if(count==100)//如果实际运行中发现数码管有闪烁,可以将此数值调小
duanxuan<
b10111111;
//0.
count<
elseif(b==1)//投币1元,显示01
begin
b00000110;
//1
if(count==100)//如果实际运行中发现数码管有闪烁,可以将此数值调小
end
4.5取货功能的设计
4.5.1取货功能的接口电路
计数功能模块bdf图如图4.5.1所示:
图4.5.1取货功能模块bdf图
clk为时钟信号,a1记录投入5角硬币的个数,b1记录投入1元硬币的个数,out为高电平时闸门打开,out1为找零信号,为高电平时,饮料售卖机找回5角钱。
4.5.2取货功能程序设计
modulequhuo(clk,a1,b1,out,out1);
if(out==1)
begin
if(count1==3000)//让闸门打开3秒,由于为1KHz时钟,故要数3000下
begin
out<
out1<
count1<
end
elsecount1<
=count1+1;
第5章饮料自动提取机系统的仿真分析
5.1系统原理图
系统整体bdf原理图如图5.1所示:
图5.1系统整体bdf原理图
5.2计数功能的仿真分析
计数功能仿真图如图5.2所示:
图5.2计数功能仿真图
a为高电平时,投入了5角的硬币,a1、b1记录投入的5角、1元的个数,out为高电平时售卖机闸门打开,汽水掉出来。
5.3投币功能的仿真分析
投币功能仿真图如图5.3所示:
图5.3投币功能仿真图
a1记录投入5角硬币的数量,b1记录投入以角硬币的数量,out1为找零,当其为高电平时,找零;
out为高电平时售卖机闸门打开,汽水掉出来。
5.4显示功能的仿真分析
显示功能仿真图如图5.4所示:
图5.4显示功能仿真图
a是投入5角硬币信号,a1记录投入5角信号的个数,b是投入1元硬币信号,b1记录投入1元信号个数,duanxuan,weixuan控制数码管显示钱数。
5.5取货功能的仿真分析
取货功能仿真图如图5.5所示:
图5.5取货功能仿真图
a1,b1分别记录了5角,1元的个数,5个5角,饮料2.5元,无需找零,out1低电平,out高电平闸门打开,出饮料。
3个5角,1个1元,饮料2.5元,无需找零,out1低电平,out高电平闸门打开,出饮料。
5.6总体功能的仿真分析
总功能仿真图如图5.6所示:
图5.6总体功能仿真图
此图为总体功能仿真图,clk为时钟信号,a为投入5角硬币信号,b为投入1元硬币信号,duanzuan,weixuan显示投入的钱数,out1为找零,当其为高电平时,找零;
第6章课程设计总结
经过这次对自动饮料售货机系统的设计,让我对EDA设计有了更进一步的认识,同时也对EDA这门课程游客更深入的了解。
这次设计让我了解了关于自动饮料售货机的原理课设计理念,要设计一个电路要先进行软件仿真再进行实际的电路制作。
通过这次设计让我收获不小。
这次的课程设计终于顺利完成了,也解决了设计中遇见的一些问题。
这次设计让我受益匪浅。
对软件运用更加的熟练。
在摸索该如何设计程序使之实现的过程中,培养并锻炼了我的设计思维,增加了实际操作经验,锻炼了能力,总的来说这次收获了很多,基本能够学以致用。
根据所学课程,数字电子技术、模拟电子技术、Verilog、EDA等所学知识的应用在设计过程中都得到了相应巩固,我们对本专业的了解也更深了一层。
经过了这次自己实践动手的设计,自己的分析能力得到了提高,动手能力也有很大进步,从中也收获了很多经验,希望今后类似这样课程设计、类似这样的锻炼机会能更多些。
我想在今后的实践过程中我会有更大的进步,也会做的越来越好。
参考文献
[1]
[2]
[3]
侯建军,SOPC技术基础教程,清华大学出版社,2008-05
[5]
束礼宝.宋克柱.伪随机数发生器的FPGA实现与研究[J]
电路与系统学报,2003年,第8卷,第3期.
[6]
童诗白.
华成英.
模拟电子技术基础[M].
高等教育出版社,2006-5
[7]
邱关源.
电路.
高等教育出版社[M].
[8]
王新梅.
肖国镇.
纠错码——原理与方法[M].
西安电
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- verilog 自动 售货