版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、自动饮料售货机 目录1. 前言.12. 设计流程图.23. 源代码编写.34. 仿真时序图.65. 分析与总结.76. 参考文献.7I1. 前言本人在本科阶段自学了一部分PLC,并运用PLC完成了本科的毕业设计,同在毕业设计课题组的同学选做基于PLC自动饮料售货机的设计,当时对自动饮料售货机的控制系统了解仅限于基于单片机与PLC的控制没有亲自动手去尝试设计。在本学期,全新的接触和学习了FPGA课程,正处于一个FPGA的入门阶段,基于以前的兴趣,该次尝试基于FPGA简单设计自动饮料售货机的一部分控制。本次是采用Quartus II 13.0sp1 进行了程序源代码的编写和时序仿真。图1-1自动饮
2、料售货机内部结构图图1-2自动饮料售货机内部结构图2. 设计流程图3.源代码编写/*信号定义: clk: 表示时钟输入; rst_n: 为系统复位信号; half_yuan: 代表投入5角钱币; one_yuan: 代表投入1元钱币; half_out: 代表找零信号; dispense: 代表机器售出一瓶饮料; collect: 用于提示投币者取走饮料. seg1: LCDA数码管显示; seg2: LCDB数码管显示; seg3: LCDC数码管显示;*/ module SCD(half_yuan ,one_yuan,half_out,collect,dispense,rst_n,clk,
3、seg1,seg2,seg3); parameter idle=0,half=1,one=2,two=3,three=4; / idle,half,one,two,three代表投入钱币的几种状态 input half_yuan,one_yuan,rst_n,clk; output collect,half_out,dispense,seg1,seg2,seg3; reg2:0D; /D代表当前时刻投币的状态 reg temp1,temp2; reg collect,half_out,dispense; reg 3:0seg1; reg3:0seg2; reg7:0seg3; always (
4、posedge clk or negedge rst_n) begin if (!rst_n) begin dispense<=0;collect<=0; half_out<=0;D<=idle; temp1<=0;temp2<=0; seg1,seg2<=8'b0000_0000;seg3<=8'b11111101;end else begin temp1<=half_yuan;temp2<=one_yuan; /初始状态赋值 case(D) idle: if (temp1,half_yuan=2'b10)
5、/0元状态下检测下降沿 begin D<=half; seg1,seg2<=8'b0000_0101;seg3<=8'b1111_1101; /数码管显示 dispense<=0;collect<=0;half_out<=0;end /循环时输出置0else if (temp2,one_yuan=2'b10) begin D<=one; seg1,seg2<=8'b0001_0000;seg3<=8'b1111_1101; dispense <=0;collect<=0;half_out&
6、lt;=0;end half: if (temp1,half_yuan=2'b10) /0.5元状态下检测下降沿 begin D<=one; seg1,seg2<=8'b0001_0000;seg3<=8'b11111101;end else if (temp2,one_yuan=2'b10) begin D<=two; seg1,seg2<=8'b0001_0101;seg3<=8'b11111101;end one: if (temp1,half_yuan=2'b10) /1元状态下检测下降沿 be
7、gin D<=two; seg1,seg2<=8'b0001_0101;seg3<=8'b11111101;endelse if (temp2,one_yuan=2'b10) begin D<=three; seg1,seg2<=8'b0010_0000;seg3<=8'b11111101;end two: if (temp1,half_yuan=2'b10) /1.5元状态下检测下降沿 begin D<=three; seg1,seg2<=8'b0010_0000;seg3<=8
8、39;b11111101;end else if (temp2,one_yuan=2'b10) begin dispense<=1;collect<=1;D<=idle; seg1,seg2<=8'b0010_0101;seg3<=8'b11111101;end /售出饮料 three: if (temp1,half_yuan=2'b10) /2元状态下检测下降沿 begin dispense<=1;collect<=1;D<=idle; seg1,seg2<=8'b0010_0101;seg3<
9、;=8'b11111101;end /售出饮料 else if (temp2,one_yuan=2'b10) begin dispense<=1;collect<=1;half_out<=1;D<=idle seg1,seg2<=8'b0011_0000;seg3<=8'b10110110;end /售出饮料 endcase end end endmodule 图3-1Verilog HDL设计图3-2 Verilog HDL设计4.仿真时序图 图4-1仿真时序图图4-2仿真时序图5. 分析与总结 首先对该控制系统基于PLC和
10、FPGA软件控制方面做简单比较,PLC采用的梯形图的编程,个人认为PLC的类似“积木式的电路结构图”梯形图较简单明了,对程序的调试也方便了些,FPGA的Verilog HDL也可以认为是对象电路的实现的描述,虽然是基于C语言,大部分人有C语言的基础,但是一般人调试很困难。 该课程设计只完成了一部分的程序控制,可作为主程序源代码的一部分,主要功能是投币显示取饮料找零。虽然参考了几本书和网上的资料,多数的不够完善,该设计虽然也可以完成一部分的功能,但是很粗糙,在找零数码管显示设计中虽然在源代码中可以通过测试分析,但是对于功能的实现是未实现。 由衷的感谢莫老师的教导,基于本人现在处于的入门阶段,能独立尽可能的完善一个设计,还需要一定的时间,需深入思考,再接再励。6. 参考文献1 潘松主编.ED
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 货车安全驾驶培训
- 培育企业文化助力和谐发展承诺书(7篇)
- 《唐诗艺术特色赏析:大二语文文学鉴赏教案》
- 电子竞技健康环境保障承诺书(6篇)
- 货币银行学知识点
- 企业培训项目管理预案
- 2025年企业财务报表编制与解读指南手册
- 2025年邯郸事业单位职称考试题及答案
- 2025年四川省直事业编面试题库及答案
- 2025年广西幼儿园教师招聘笔试及答案
- 健康活动:长高了变壮了
- JG/T 100-1999塔式起重机操作使用规程
- T/TMAC 031.F-2020企业研发管理体系要求
- 简易运输合同协议书模板
- 高考英语必背600短语总结
- 防渗漏体系策划培训(中建)
- 锅炉教材模块一锅炉认知
- GB/T 34765-2024肥料和土壤调理剂黄腐酸含量及碳系数的测定方法
- 传染性疾病影像学课件
- 监狱服装加工合同范本
- HG20202-2014 脱脂工程施工及验收规范
评论
0/150
提交评论