版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 失败容忍2026年合同管理评估协议
- 股东权益变动及公司治理协议
- 线上线下金融产品销售合同
- 互联网数据保护合规咨询合同2026
- 水上乐园游客安全管理协议
- 自动驾驶系统开发合同协议2026年
- 2026年排列与组合练测试题及答案
- 2026年语文诗词测试题及答案
- 2026年冯媛客孟尝君测试题及答案
- 2026年八型人格测试题及答案
- 保险消保工作汇报
- 中国农业大学《电子电路基础》2023-2024学年第一学期期末试卷
- 医院科研诚信培训课件
- DB5107∕T 059-2018 莴笋周年绿色高效生产技术规范
- 企事业单位住房指标转让合同范本
- DB11-T 1014-2021 液氨使用与储存安全技术规范
- 知识点2、化学式和化合价-2022年浙江省中考科学一轮复习化学部分
- 建筑公司商务部岗位职责
- T 3034-2022化工过程安全管理导则知识培训
- DB13-T 5871-2023 矿山地质环境恢复治理工程资料管理规程
- 《数值分析简明教程》讲义
评论
0/150
提交评论