




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自动饮料售货机 目录1. 前言.12. 设计流程图.23. 源代码编写.34. 仿真时序图.65. 分析与总结.76. 参考文献.71. 前言本人在本科阶段自学了一部分PLC,并运用PLC完成了本科的毕业设计,同在毕业设计课题组的同学选做基于PLC自动饮料售货机的设计,当时对自动饮料售货机的控制系统了解仅限于基于单片机与PLC的控制没有亲自动手去尝试设计。在本学期,全新的接触和学习了FPGA课程,正处于一个FPGA的入门阶段,基于以前的兴趣,该次尝试基于FPGA简单设计自动饮料售货机的一部分控制。本次是采用Quartus II 13.0sp1 进行了程序源代码的编写和时序仿真。图1-1自动饮料售货机内部结构图图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,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 (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=8b0000_0000;seg3=8b11111101;end else begin temp1=half_yuan;temp2=one_yuan; /初始状态赋值 case(D) idle: if (temp1,half_yuan=2b10) /0元状态下检测下降沿 begin D=half; seg1,seg2=8b0000_0101;seg3=8b1111_1101; /数码管显示 dispense=0;collect=0;half_out=0;end /循环时输出置0else if (temp2,one_yuan=2b10) begin D=one; seg1,seg2=8b0001_0000;seg3=8b1111_1101; dispense =0;collect=0;half_out=0;end half: if (temp1,half_yuan=2b10) /0.5元状态下检测下降沿 begin D=one; seg1,seg2=8b0001_0000;seg3=8b11111101;end else if (temp2,one_yuan=2b10) begin D=two; seg1,seg2=8b0001_0101;seg3=8b11111101;end one: if (temp1,half_yuan=2b10) /1元状态下检测下降沿 begin D=two; seg1,seg2=8b0001_0101;seg3=8b11111101;endelse if (temp2,one_yuan=2b10) begin D=three; seg1,seg2=8b0010_0000;seg3=8b11111101;end two: if (temp1,half_yuan=2b10) /1.5元状态下检测下降沿 begin D=three; seg1,seg2=8b0010_0000;seg3=8b11111101;end else if (temp2,one_yuan=2b10) begin dispense=1;collect=1;D=idle; seg1,seg2=8b0010_0101;seg3=8b11111101;end /售出饮料 three: if (temp1,half_yuan=2b10) /2元状态下检测下降沿 begin dispense=1;collect=1;D=idle; seg1,seg2=8b0010_0101;seg3=8b11111101;end /售出饮料 else if (temp2,one_yuan=2b10) begin dispense=1;collect=1;half_out=1;D=idle seg1,seg2=8b0011_0000;seg3=8b10110110;end /售出饮料 endcase end end endmodule 图3-1Verilog HDL设计图3-2 Verilog HDL设计4.仿真时序图 图4-1仿真时序图图4-2仿真时序图5. 分析与总结 首先对该控制系统基于PLC和FPGA软件控制方面做简单比较,PLC采用的梯形图的编程,个人认为PLC的类似“积木式的电路结构图”梯形图较简单明了,对程序的调试也方便了些,FPGA的Verilog HDL也可以认为是对象电路的实现的描述,虽然是基于C语言,大部分人有C语言的基础,但是一般人调试很困难。 该课程设计只完成了一部分的程序控制,可作为主程序源代码的一部分,主要功能是投币显示取饮料找零。虽然参考了几本书和网上的资料,多数的不够完善,该设计虽然也可以完成一部分的功能,但是很粗糙,在找零数码管显示设计中虽然在源代码中可以通过测试分析,但是对于功能的实现是未实现。 由衷的感谢莫老师的教导,基于本人现在处于的入门阶段,能独立尽可能的完善一个设计,还需要一定的时间,需深入思考,再接再励。6. 参考文献1 潘松主编.EDA技术实用教程第四版M.北京:科学出版社,2010,66-962 王金明主编.EDA技术与Verilog设计M.北京:科学出版社,2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年技术转移评估师笔试模拟题
- 电商平台入驻协议注意事项
- 2025年食堂采购员招考模拟题库解析集
- 2025年农业机械操作员职业知识考核试卷及答案解析
- 2025年礼仪培训讲师认证考试试题及答案解析
- 2025年外事办西语翻译面试常见题及答案
- 2025年机械设计师资格认证考试试题及答案解析
- 2025年互联网金融风控师资格考试试题及答案解析
- 2025年动画设计师职业技能等级考试试题及答案解析
- 2025年评估师招聘考试重点题库及解析
- EPC项目设计管理实施策划书(模板)
- 陕西省公路工程通用表格
- GA 1801.4-2022国家战略储备库反恐怖防范要求第4部分:火炸药库
- 实测实量测量表格优质资料
- 读书笔记 -《提高利润的78个方法》
- GB/T 4623-2006环形混凝土电杆
- GB/T 14273-1993旋转轴唇形密封圈性能试验方法
- GB/T 12247-2015蒸汽疏水阀分类
- 期权风险管理课件
- 《护理伦理学》教学大纲(本科)
- 安全标准化班组汇报课件
评论
0/150
提交评论