基于FPGA的简单自动邮票销售机系统电子设计报告
- 格式:doc
- 大小:1.63 MB
- 文档页数:31
大连海事大学毕业论文二○一四年六月基于FPGA的自动售货机控制器设计专业班级:电子信息工程3班姓名:林慧指导老师:严飞信息科学技术学院摘要随着科学技术的迅猛发展、人们生活水平的逐日提高,自动售货机作为自动化商业机械的代表被广泛用于公共场所自动售货,给人们的生活带来了极大的方便.本文介绍的是基于FPGA的自动售货机控制器的软件设计,此自动售货机控制器包含八个大模块:购物模块,定价模块,投币模块,比价模块,计时模块,复位模块,购物显示模块以及数码管显示模块。
投入钱币并通过键盘选择后再经比价处理模块,将对应的出货找零信息通过LED 灯和数码管显示模块反映。
本设计借助于VHDL语言来编程实现八个模块的基本功能,在Quartus II软件中实现模块的设计、编译、综合、优化、仿真直至生成器件之后下载到FPGA目标芯片上。
在ZY11EDA13BE 实验系统中完成自动售货机的功能实现,通过开关、键盘等完成购物请求、投币等操作,通过数码管及指示灯显示系统运行结果,从而可以更清晰地观察到自动售货机的运行情况。
关键词:自动售货机控制器;EDA;FPGA;QuartusII;VHDLABSTRACTWith the rapid development of science and technology as well as people’s living standards rise day by day. As a representative of commercial machinery automation vending ,the vending machine business is widely used in public places ,has bought great convenience to people's lives.This paper describes the software design and hardware design based on FPGA vending machine controller, the vending machine controller module consists mainly of eight modules:shopping module,price module,coin module,timing module, price comparison module, reset module, shopping display module and digital display module. After parity processing module for selected commodity prices and the amount of investment comparison,the corresponding change information delivery through LED lights and the digital display module display.This design using VHDL hardware description language programming to describe the basic function of eight modules。
图书分类号:密级:毕业设计(论文) 基于FPGA的自动售货机控制单元设计学生学号学生姓名学院名称专业名称指导教师年月日摘要近年来在随着我国各种大小商品市场快速发展以及城市化不同程度的不断提高,自动售货机已经越来越受到大中城市的青睐,自动售货机在这些大中城市中已经获得了越来越广泛的应用,因此自动售货机的快速发展已经得到了不断的提高和认可,同时自动售货机也极大地丰富了我国的商业产业的结构,是商业结构有了更加丰富的拓展,这样在商业结构中开辟了一种全新的自动自主销售和自动自主服务的时代。
本文将结合大学期间所学的EDA技术实现自动售货机控制系统的设计,应用这种技术实现设计的自动售货机控制系统,将会有效的减小系统的开发周期,同时降低了很多开发成本,因此是一种可行的设计方案和趋势。
该设计在整体设计架构中主要包含两个部分:主要有硬件系统设计部分和FPGA内部电路的编程设计部分。
在FPGA内部电路的编程设计部分主要采用硬件描述语言(Vhdl)对自动售货机的控制系统进行功能描述以及各状态之间的设计。
该设计FPGA硬件部分主要是目前最通用的FPGA之一即ALTERA公司的FPGA芯片为设计目标器件。
该设计中硬件系统设计是围绕系统设计所选合适的FPGA器件的硬件电路进行设计。
本文中将详细介绍了基于FPGA的自动售货机的整体设计方案流程与工作原理及工作状态,在功能叙述中详细阐述了投币选择模块,物品选择模块,主控模块等模块的软件系统设计与实现,在前期设计完成之后对所设计的FPGA内部功能进行功能仿真验证,在确定设计正确无误之后进行下板子测试验证。
关键词FPGA ;EDA;自动售货机;VHDLAbstractWith the continuously prosperity of china’s commodity market and with the rapid develepment of modernization level , vending machines has enterd into large and medium-sized cities quietly ,it enriches china’s commercial industrial structure and creates a new era of automatic selling and self-service.This subject will accomplish the control system of vending machine with EDA technology.Since it has the advantages of shortening product development cycle,reducing product develepment cost , increasing the possibility of first-time success and so on,it can enhence the exploitability of aotomatic machinea and lower the costs.The issue consists of two parts:hardware system design and fpga internal circuit design. Fpga internal circuit design uses hardware describe language (vhdl )to describe the fuction of vending machine;and fpga chip of ALTERA Corporation is choosen for the target device. Hardware system design is a hardware circuit design that center on the selected appropriate fpga device. and the design of the internal functions of FPGA is simulated.Keywords FPGA EDA Vending Machine VHDL目录第1章绪论 (1)1.1 自动售货机的历史 (1)1.2 自动售货机的研究现状 (1)1.3 未来发展和研究方向 (2)1.4 本文的章节安排 (2)第2章关键技术介绍 (4)2.1 EDA技术............................................................................................. 错误!未定义书签。
自动限时邮票出售机系统设计一、任务要求与设计目标本系统能根据功能开关 、 、 的状态,确定购买1元、5角或4角的邮票。
电路的输入信号为每次投入的一枚1元、5角或1角硬币所产生的单次正脉冲信号。
对投币的时间有要求,要求每次购票投币时间限定在10S 内,否则全部退回已投入的硬币,系统回到等待再投币状态。
该系统能自动存储并累计投币金额,当已投入的硬币计值超过或大于所要购买的邮票种类所需金额时,给出售票输出信号C ,并同时给出应找回的剩余零钱信号Y 。
要求用D 触发器和门电路设计实现,完成状态转换图、卡诺图化简、逻辑电路图。
设计要求:1、分析设计要求,明确设计指标。
必须仔细分析课题要求、性能、指标、应用环境等,广开思路,构思出各种设计方案,绘制结构框图。
2、确定合理的总体方案。
对各种方案进行比较,以电路的先进性、结构的繁简、成本的高低及制作的难以等方面作综合比较,并考虑器件的来源,确定可行方案。
3、设计各单元电路。
总体方案化整为零,分解成若干子系统或单元电路,逐个设计。
4、组成系统。
在一定幅面的图纸上合理布局,通常是按信号的流向,采用左进右出的规律摆放各电路,并标出必要的说明。
二、系统划分为控制器和受控器根据系统设计要求,该系统应包括投币信号预处理电路、控制器和数据处理器(受控器)三部分。
其中数据处理器应包含累加寄存器、限时自动计时电路和输出运算电路。
据此,可画出系统初始结构框图,如图1所示。
10M 5M 4M信号说明:K为投币信号,K1=1角,K5=5角,K10=1元。
X为投币信号K的编码信号,X8X4X2X1是将K编码为8421码,X C为投币标志信号。
S为系统启动信号,其中:T1、T0为状态信号。
M为邮票面值选择开关。
O C为定时到信号。
Y为找币信号(Y8Y4Y2Y1为8421码)。
F为不同面值邮票售出信号(F10为1元,F5为5角,F4为4角)。
①输入信号预处理电路任务是把异步输入信号K*转换为单次同步信号K,并对它进行编码,编成8、4、2、1有权二进制码X(X8X4X2X1),同时产生一个表征有无投币输入的输出信号Xc.②累加寄存器R累加寄存器用来累计已投入硬币的值,即求输入的硬币编码信号X和寄存器R内容之和,求和用加法器实现。
摘要本课题是基于Verilog HDL语言的小型自动售货机。
采用Verilog HDL在ModelsimSE6.2B软件平台进行编译和仿真。
在此次设计中,主要采用有限状态机(FSM)的设计,在投币选货状态和找零状态在这两个状态间进行转移。
从而实现货物的选择、货币运算、出货控制、余额显示以及找零等功能。
该售货机系统能够识别两种硬币,两种纸币。
有五种不同价格的商品可供选择,并且通过显示译码电路,可在LED显示器显示余额,同时具备找零、机器存有硬币不足LED 亮起报警、缺货LED亮起报警等功能。
现代的自动售货机有使用方便快捷,可以全天候24小时工作,占地少,成本低,维护简单等优点,有着广阔的前景。
采用FPGA方式用Verilog HDL硬件描述语言,设计简易的自动售货机,其编程简单,开发周期短,硬件运行速度快,开发成本低,稳定性高等优点。
关键词:自动售货机; Verilog HDL;有限状态机;Modelsim;ABSTRACTThis topic design a simple vending machine is based on the FPGA chip. EP2C35 chip, and DE2 development board for the hardware platform, the use of Verilog HDL to compile and simulation in the Quartus Ⅱ software platform, and through the DE2 development achieve the basic functions of a Si mple vending machine.board by to download code to the chip. In this design,it used of finite state machine (FSM) design, choice of goods state, shipment status and give change coin state in the three inter-state transfer, in order to achieve the choice of goods, monetary operations, the cargo control, features such as display and give change. The vending machine system to identify three kinds of coins, there are five kinds of goods at different prices to choose from, and by showing decoding circuit, in DE2 onboard LED display shows the balance, both functions give change. Modern vending machines are convenient, it can work 24 hours a day, covers an area of small, low cost, simple maintenance, there are broad prospects. Manner with the use of FPGA hardware description language Verilog HDL, design simple vending machine, the programming is simple, short development cycles, fast hardware, the development of low cost, high stability.Key words: vending machines; Verilog HDL; Finite state machine; FPGA; DE2 development board;目录绪论..............................................................1 第一章系统方案设计...............................................31.1 人机交换界面设计..........................................31.2 系统方案设计..............................................41.2.1 系统方案确定..........................................5 第二章系统各模块硬件设计.........................................72.1 DE2开发板介绍.............................................72.2 自动售货机各模块设计.....................................82.2.1 自动售货机主体设计...................................82.2.2 LED显示设计方案.....................................92.2.3 货币输入信号设计方案................................102.2.4 出货显示设计方案....................................11 第三章系统的软件设计............................................123.1 EDA工具软件介绍.........................................133.2 软件设计总方案...........................................143.3 售货机主芯片程序设计方案................................153.4 BCD-LED七段数码显示译码器...............................173.5 硬币输入信号程序设计方案................................183.6 出货显示程序设计方案....................................193.7 自动售货机各部分组合连接设计............................20 第四章调试及仿真...............................................214.1 用Quartus Ⅱ完成PFGA设计步骤...........................214.2 自动售货机波形仿真结果..................................214.2.1 自动售货机波形仿真..................................214.2.2 输入信号处理程序波形仿真............................234.2.3 BCD-LED七段数码显示译码器波形仿真..................234.2.4 出货显示译码器波形仿真..............................244.2.5 自动售货机主芯片程序仿真波形.......................254.3 下载、仿真及测试..........................................25 结论..............................................................26 致谢.............................................................27 参考文献..........................................................28 附录1(程序源代码)...............................................29 附录2(整体设计原理图)...........................................35绪论自动售货机最早出现在二十世纪五、六十年代的西欧,英国是较早实行自动售货机售货的国家之一。
目录第1章绪论.......................................... 错误!未定义书签。
1.1本文研究内容 (1)1.2目的与意义 (1)第2章系统设计方案 (2)2.1货物自动贩卖机总体设计方案 (2)第3章货物自动贩卖机的基本原理 (4)3.1货物自动贩卖机功能 (4)3.2货物自动贩卖机的基本组成 (4)3.2.1 投币信号产生的设计 (4)3.2.2 时钟电路的设计 (4)3.2.3 数码显示的设计 (4)第4章货物自动贩卖机软件设计 (6)4.1软件实现功能综述 (6)4.2计数功能的设计 (6)4.3投币功能的设计 (6)4.4显示功能的设计 (6)4.5显示功能的设计 (7)4.6 代码段 (7)第5章货物自动贩卖机系统的仿真与实现 (18)第6章课程设计总结.................................. 错误!未定义书签。
第1章绪论1.1本文研究内容本次设计的是一个货物自动贩卖机。
货物自动贩卖机主要是由以下几个部分构成,电源电路、数码显示、时钟脉冲、投币脉冲、闸门时间控制等,各部件形成一个简单的饮料自动提取机系统。
本设计采用EDA技术,通过FPGA实现了数字电子钟电路的设计,并完成对电路的功能进行仿真。
1.2目的与意义本系统用于模拟现实生活中的自动售货贩卖机。
可以模拟四种商品的买卖、存贮、控制等等功能。
并模拟买家模式和管理模式,可以分开进行商品买卖的模拟和商品上架的模拟。
第2章系统设计方案2.1饮料自动提取机总体设计方案自动售货机控制系统设计主要有四个功能模块,一个为货币:该模块能完成硬币处理,余额计算。
一个为分频模块:功能主要是实现各个部分的操作。
一个为售货器模块:该模块主要是负责进行货物的管理。
最后一个是控制模块:主要负责进行商品买卖控制。
图2.1饮料提取机的系统组成框图设计思路:首先,我们对于物品存储进行模拟,共有商品买卖和商品管理两个模式。
大学实验报告课程名称:数字系统现场集成技术实验项目名称:实验四(自动售货机设计和实现)学院:专业:指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务部制基本要求:该实验为团队协作,2人一个小组。
可以对3种不同种类的货物进行自动售货,价格分别为A=4.00, B=2.50, C=1.00。
售货机可以接受10元,5元,1元三种硬币(即有三种输入信号SY,WY,IY),并且在7段数码管(二位代表元,一位代表角)显示已投入的总钱数,选择货物的输入信号Ia,Ib,Ic,输出指示信号为Sa, Sb ,Sc 分别表示售出相应的货物,同时输出的信号yuan, jiao代表找零,并显示在7段数码管上。
高级要求(可选):VGA显示3种货物图片及其价格,鼠标点击购买数量(1-9)后显示总价,安规格说明2中的button2-button4输入硬币,VGA显示已投入的总钱数,鼠标点击购买后,显示找零数目,购买物品闪烁,交易完成。
规格说明:∙按一下button1按钮,表示购买货物A,第一个LED灯亮;按两下button1按钮,表示购买货物B,第二个LED灯亮;按三下button1按钮,表示购买货物C,第三个LED灯亮,同时7段数码管显示所要购买货物的价格。
∙LED灯亮后,开始输入硬币。
button2按一下,输入10元,按两下,输入二十元,以此类推;Button3按一下输入5元,按两下输入10元,以此类推;button4按一下输入1元,按两下输入2元,以此类推。
7段数码管显示已投入的总钱数,再次按下button1键,7段数码管显示找零数目,同时指示货物的LED灯熄灭。
∙如果投入的钱币不够就按下button1键确认购买,数码管显示“ER”。
∙本实验使用FPGA板:Sparant6XC6SLX16CSG324C(建project时,需要选择该芯片的型号)。
1、顶层代码:module top(input clk,input rst,input[4:0] btn,output[3:0] an,output[7:0] seg,output[2:0] led);wire clk,rst;wire[7:0] first_seg,second_seg,third_seg; wire[4:0] btn_down;seg_drv v1(.clk(clk),.rst(rst),.first_seg(first_seg),.second_seg(second_seg),.third_seg(third_seg),.an(an),.seg(seg));main v2 (.clk(clk),.rst(rst),.btn_down(btn_down),.first_seg(first_seg),.second_seg(second_seg),.third_seg(third_seg),.led(led));btn_scan v3 (.clk(clk),.rst(rst),.btn(btn),.btn_down(btn_down));Endmodule2、数码管驱动:module seg_drv(input clk,input rst,input[7:0] first_seg,input[7:0] second_seg,input[7:0] third_seg,// input[7:0] forth_seg,output reg[3:0] an,output reg[7:0] seg);localparam[1:0] s0=2'b00,s1=2'b01,s2=2'b10,s3=2'b11;reg[1:0] state;always@(posedge clk,posedge rst)beginif(rst)beginan<=4'b1111;seg<=8'b1111_1111;state<=s0;endelsebegincase(state)s0:beginan<=4'b1110;seg<=first_seg;if(ms_up)state<=s1;elsestate<=state;ends1:beginan<=4'b1101;seg<=second_seg;if(ms_up)state<=s2;elsestate<=state;ends2:beginan<=4'b1011;seg<=third_seg;if(ms_up)state<=s3;elsestate<=state;ends3:beginan<=4'b0111;seg<=8'b1111_1111;if(ms_up)state<=s0;elsestate<=state;endendcaseendendreg[17:0] ms_cnt;reg ms_up;always@(posedge clk,posedge rst)beginif(rst)beginms_cnt<=0;ms_up<=0;endelsebeginif(ms_cnt==200000)beginms_cnt<=0;ms_up<=1;endelsebeginms_cnt<=ms_cnt+1'b1;ms_up<=0;endendendendmodule3、按键扫描与消抖:module btn_scan(input clk,input rst,input[3:0] btn,output reg[3:0] btn_down);localparam[1:0] s0=2'b00,s1=2'b01,s2=2'b10;reg[1:0] state;reg[3:0] btn_reg;always@(posedge clk,posedge rst)beginif(rst)beginbtn_down<=4'b0000;state<=s0;endelsebegincase(state)s0: beginbtn_down<=4'b0000;if(btn)state<=s1;elsestate<=s0;ends1: beginif(cnt_done)beginif(btn)beginstate<=s2;btn_reg<=btn;endelsestate<=s0;endelsestate<=s1;ends2:beginif(btn==4'b0000)beginbtn_down<=btn_reg;state<=s0;endelsebeginbtn_down<=btn_down;state<=s2;endendendcaseendendreg[20:0] cnt;reg cnt_done;always@(posedge clk,posedge rst)beginif(rst)begincnt<=21'b0;cnt_done<=1'b0;endelse if(state==s1)begincnt<=cnt+1'b1;if(cnt==21'd2000000)begincnt<=21'b0;cnt_done<=1'b1;endendelsebegincnt<=21'b0;cnt_done<=1'b0;endendendmodule4、主程序code:module main(input clk,input rst,input[3:0] btn_down,output reg[7:0] first_seg,output reg[7:0] second_seg,output reg[7:0] third_seg,output reg[2:0] led);localparam[2:0] s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100,s5=3'b101;reg[2:0] state;reg[3:0] money0,money1;reg[3:0] price;reg[4:0] change;reg[3:0] change1,change0;always@(posedge clk,posedge rst)beginif(rst)beginled <= 3'b000;money0 <= 0;money1 <= 0;change <= 0;price <= 0;state <= s0;endelsebegincase(state)s0:beginled <= 3'b000;if(btn_down[0] == 1)state <= s1;elsestate <= s0;ends1:beginled <= 3'b100;price <= 1;money0 <= 0;money1 <= 0;change<=0;if(btn_down[0] == 1)state <= s2;else if(btn_down[3:1])state <= s4;elsestate <= s1;ends2:beginled <= 3'b010;price<=2.5;money0 <= 0;money1 <= 0;change <= 0;if(btn_down[0] == 1)state <= s3;else if(btn_down[3:1])state <= s4;elsestate <= s2;ends3:beginled <= 3'b001;price <= 4;money0 <= 0;money1 <= 0;change <= 0;if(btn_down[0] == 1)state <= s1;else if(btn_down[3:1])state <= s4;elsestate <= s3;ends4:begincase(btn_down[3:1])3'b001:money1 <= money1 + 1;3'b010:beginmoney0 = money0 + 5;if(money0 >= 10)beginmoney1 <= money1 + 1;money0 <= money0 - 10;endelsemoney1 <= money1;end3'b100:beginmoney0 <= money0 + 1;if(money0 >= 9)beginmoney1 <= money1 + 1;money0 <= 0;endelsemoney1 <= money1;endendcaseif(btn_down[0] == 1)state <= s5;elsestate<=s4;ends5:beginif((money1*10 + money0)>= price)beginchange <= money1*10 + money0 - price;if(change >= 20)beginchange1 <= 2;change0 <= change - 20;endelse if(change >= 10)beginchange1 <= 1;change0 <= change - 10;endelsebeginchange1 <= 0;change0 <= change;endendelsechange <=5'b01110;if(btn_down[3:0])state <= s0;elsestate<=s5;endendcaseendend//译码always@(posedge clk,posedge rst)beginif(state == s0)beginthird_seg<=8'b0000_0011;second_seg<=8'b0000_0010;first_seg<=8'b0000_0011;endelse if(state == s1)beginthird_seg<=8'b0000_0011;second_seg<=8'b1001_1110;first_seg<=8'b0000_0011;endelse if(state ==s2)beginthird_seg<=8'b0000_0011;second_seg<=8'b0010_0100;first_seg<=8'b0100_1001;endelse if(state ==s3)beginthird_seg<=8'b0000_0011;second_seg<=8'b1001_1000;first_seg<=8'b0000_0011;endelse if(state ==s4)begincase(money0)4'b0000: second_seg<=8'b0000_0010;4'b0001: second_seg<=8'b1001_1110;4'b0010: second_seg<=8'b0010_0100;4'b0011: second_seg<=8'b0000_1100;4'b0100: second_seg<=8'b1001_1000;4'b0101: second_seg<=8'b0100_1000;4'b0110: second_seg<=8'b0100_0000;4'b0111: second_seg<=8'b0001_1110;4'b1000: second_seg<=8'b0000_0000;4'b1001: second_seg<=8'b0000_1000;endcasecase(money1)4'b0000: third_seg<=8'b0000_0011;4'b0001: third_seg<=8'b1001_1111;4'b0010: third_seg<=8'b0010_0101;4'b0011: third_seg<=8'b0000_1101;4'b0100: third_seg<=8'b1001_1001;4'b0101: third_seg<=8'b0100_1001;4'b0110: third_seg<=8'b0100_0001;4'b0111: third_seg<=8'b0001_1111;4'b1000: third_seg<=8'b0000_0001;4'b1001: third_seg<=8'b0000_1001; endcasefirst_seg<=8'b0000_0011;endelse if(state ==s5)beginif(change == 5'b01110)beginthird_seg<=8'b0000_0011;second_seg<=8'b0110_0001;first_seg<=8'b0110_0001;endelsebegincase(change0)4'b0000: second_seg<=8'b0000_0010;4'b0001: second_seg<=8'b1001_1110;4'b0010: second_seg<=8'b0010_0100;4'b0011: second_seg<=8'b0000_1100;4'b0100: second_seg<=8'b1001_1000;4'b0101: second_seg<=8'b0100_1000;4'b0110: second_seg<=8'b0100_0000;4'b0111: second_seg<=8'b0001_1110;4'b1000: second_seg<=8'b0000_0000;4'b1001: second_seg<=8'b0000_1000;4'he:second_seg<=8'b0110_0000;endcasecase(change1)4'b0000: third_seg<=8'b0000_0011;4'b0001: third_seg<=8'b1001_1111;4'b0010: third_seg<=8'b0010_0101;4'b0011: third_seg<=8'b0000_1101;4'b0100: third_seg<=8'b1001_1001;4'b0101: third_seg<=8'b0100_1001;4'b0110: third_seg<=8'b0100_0001;4'b0111: third_seg<=8'b0001_1111;4'b1000: third_seg<=8'b0000_0001;4'b1001: third_seg<=8'b0000_1001;endcaseif(led[1] == 1)first_seg<=8'b0100_1001;elsefirst_seg<=8'b0000_0011;endendendendmodule三、实验结果:买货物2,价格2.5,投币15,找零12.5金币不够显示为错误深圳大学学生实验报告用纸四、实验结论:通过此次实验加深了对数码管驱动以及按键扫描与消抖工作原理的的运用,对各个模块搭建系统也有了新的认识。
填写要求1.开题报告只需填写“文献综述”、“研究或解决的问题和拟采用的方法”两部分内容,其他信息由系统自动生成,不需要手工填写。
2.为了与网上任务书兼容及最终打印格式一致,开题报告采用固定格式,如有不适请调整内容以适应表格大小并保持整体美观,切勿轻易改变格式。
3.任务书须用A4纸,小4号字,黑色宋体,行距1.5倍。
4.使用此开题报告模板填写完毕,可直接粘接复制相应的内容到毕业设计网络系统。
内核,一次只能执行一个指令,且基于处理器的系统时刻面临着严格限时的任务相互取占的风险。
而FPGA不使用操作系统,拥有真正的并行执行和专注于每一项任务的确定性硬件,可减少稳定性方面出现问题的可能。
4、长期维护——FPGA芯片是现场可升级的,无需重新设计ASIC所涉及的时间与费用投入。
举例来说,数字通信协议包含了可随时间改变的规范,而基于ASIC的接口可能会造成维护和向前兼容方面的困难。
可重新配置的FPGA芯片能够适应未来需要作出的修改。
随着产品或系统成熟起来,用户无需花费时间重新设计硬件或修改电路板布局就能增强功能。
1.3FPGA实现自动售货机控制系统的基本原理如图1所示,本次设计的售货机是由四个模块组成的,分别为:分频模块、扫描模块、主控模块、显示模块。
图1 自动售货机内部模块分频模块的作用是对外来的时钟信号进行分频以达到自己所需的频率。
扫描模块采用的是实验箱上的4X4矩阵键盘对商品的单价进行手动的输入。
显示模块的作用是对商品的单价、数量以及投币的金额进行显示。
主控模块是自动售货机控制系统的核心模块,主要实现存储商品信息、控制购物进程、处理投币金额、控制商品出货、计算余额以及控制LED灯显示等功能。
其主要分五个步骤来完成:1、信息存储——信息存储是初始设置,对任务所需要的四种商品的价格和数量进行手动的输入并保存,保存完之后系统执行第二个步骤。
2、投币选择——顾客可以投入0.5元、1元、5元、10元四种类型的货币,投币完2.毕业设计任务要研究或解决的问题和拟采用的方法:(1)毕业设计任务要研究或解决的问题研究基于FPGA的自动售货机控制系统问题,要求:①阅读FPGA相关的论文和书籍,系统地了解FPGA相关知识和原理的目的。
自动售邮票机的设计一、摘要:通过参考文献资料仔细分析自动售货机的原理本文详细的介绍了(Very High Speed Integrated Circuit Hardware Description Language)语言的一些特点及语法结构;介绍了自动售货机系统的基本原理、系统组成和主要功能;并分析讨论了用VHDL语言开发自动售货机系统的设计流程。
本设计利用Altera公司的开发软件Quartus II平台,采用VHDL硬件描述语言编程的设计方法设计系统核心电路的硬件程序,在Quartus II软件平台上进行编译和电路仿真,最后生成的目标文件下载到实验台内的FPGA芯片以实现该系统,并在实验台上对设计进行了验证。
最终完成的自动售货机系统具有投币处理、商品选择、购货撤销、异常退币、计算存货等主要功能,整个系统的开发体现了在Quartus II软件平台上用VHDL 设计数字控制系统的实用性。
二、综述电子技术的发展,特别是专用集成电路(ASIC)设计技术的日趋进步和完善,推动力数字系统设计的迅猛发展。
电子设计自动化(EDA)工具给电子设计带来了巨大的变革,尤其是硬件描述语言的出现和发展,解决了传统用电路原理设计系统工程时的诸多不便,成为电子电路设计人员的最得力助手。
学习VHDL 已日益成为我国高等学校学生和工程技术人员的迫切需要。
本设计是利用VHDL,用模块合成的方式来完成的。
根据自动售票机的功能以及顾客的各种买卖行为,将其分为几大模块来处理。
目前最通用的硬件描述语言有VHDL与Verilog两种。
1982年美国国防部的一个分支专案要求所有的数字电路必须用VHDL语言设计。
1983年的IBH及TI等公司在此专案规定下,开始开发VHDL。
随后IEEE1076号标准。
后来将一种可配合集成工具的VHDL程序包,特别命名为IEEE1076.3,并成为1076号IEEE标准的一部分。
最近,新标准包IEEE1076.4被开发出来,成为建立ASIC 及FPGA的模型函数库。
28《信息化纵横》 2009年第14期随着科技的发展及人们生活水平的提高,自动售货机市场的发展呈现出多元化及个性化的需求,通过自动售货机进行自助购物正逐渐成为市民的一种新的消费时尚和追求高品质生活的需要。
传统的自动售货机控制系统采用单片机作为控制核心,不仅需要在输入输出接口上做大量的工作,而且系统的抗干扰性也比较差。
FPGA具有可靠性高、编程简单、维护方便等优点,已在工业控制领域得到广泛应用。
本文详细介绍了一种用FPGA实现的自动售货机主控制系统的硬件设计和软件设计,并进行了软件仿真和硬件设计实验,实验表明该控制系统是可行的。
1 自动售货机系统总体结构自动售货机作为一种完全独立的售货设备,集接收货币、顾客自选商品、售出商品和找零等功能于一体[1]。
具体的说,一个完整的售货机控制系统[2]一般应包含如图1所示的设备和模块。
图1自动售货机主控制器总体设计框图(1)人机交互设备:通过显示设备和输入设备实现,顾客通过使用键盘输入需要购买的商品编号,根据液晶显示器LCD给出的提示信息进行投币、取商品、接受找零等操作;系统管理人员可以使用键盘在显示器所提供的可视化界面下对售货机的各种运行参数进行基于FPGA的自动售货机主控制系统的设计与实现范文萍,吴定雪(黄冈师范学院 计算机科学与技术学院,湖 北 黄 冈 438000)摘 要:从总体上介绍了自动售货机主控制系统的组成和功能,讨论了自动售货机工作原理,详细阐述了主控制系统F P G A的软、硬件设计及其主要控制模块的仿真实现,并编写了系统程序总框图。
实践验证,系统能够在各种条件下持续、平稳、可靠地工作。
关键词:F P G A;自动售货机;硬件设计;软件仿真中图分类号:TP391.8文献标识码:BDesign and implementation of vending machine control systembased on FPGAFAN Wen Ping, WU Ding Xue(Computer Department of Huanggang Normal University, Huanggang 438000,China)Abstract: First of all, the compositions and functions of the vending machine control system is presented, the control fundamental of vending machine are also described. The hardware and software design of the control system based on FPGA is given, and the control system′s main module are simulated in function. The block diagram of the system software is composed. The whole control system demonstrates the capability of working continuously, smoothly, and reliably in various practical applications and conditions.Key words: FPGA; vending machine; hardware design; software simulation《信息化纵横》 2009年第14期29欢迎网上投稿设置;(2)MDB(Multi-Drop Bus / Internal Communication Protocol)通信接口[3]:MDB/ICP协议是欧洲售货机制造者协会制定的一套用于协调自动售货机的主控制器(VMC)与多个外设之间的通信协议,用于协调自动售货机的主控制器(VMC)与多个外设之间的通信,所有外围设备与主控制器之间的通信方式都一致。
《FPGA技术》课程报告指导老师:房梦旭姓名:张强班级: 212361 学号: 121802航空电子工程系2014年5月目录一、引言二、语言介绍三、功能要求四、结果与分析讨论五、附录一、引言自动售货机是能根据投入的钱币自动付货的机器。
自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。
一般的自动售货机由钱币装置、指示装置、贮藏售货装置等组成。
钱币装置是售货机的核心,其主要功能是确认投入钱币的真伪,分选钱币的种类,计算金额。
如果投入的金额达到购买物品的数值即发出售货信号,并找出余钱。
指示装置用以指示顾客所选商品的品种。
贮藏售货装置保存商品,接收出售指示信号,把顾客选择的商品送至付货口。
一般售货机的钱币装置由投币口、选别装置、确认钱币真伪的检查装置、计算金额的计算装置和找钱装置组成。
从西欧、北美、日本和韩国等地区和国家的情况来看,自动售货机在人们日常生活中扮演越来越重要的角色。
其产品特点是科技含量高;24 小时服务,售货便利;无需专人盯守,省人工,省成本;售货范围广泛;此外还是一种新颖独特的广告媒体。
目前,随着移动商务的发展,自动售货机作为一种方便、直观的移动商务工具,开始在全球各地迅速普及和发展。
二、采用Verilog HDL语言编写硬件描述语言(Hradware Description Language ,HDL)是一种按软件的方式进行数字期间设计的方法。
HDL允许设计者无需逻辑框图便可用精确标示优点:1.缩短了产品从研发到上市的时间;2.在设计转变成最终的硬件实现之前,可以不断地对设计进行验证和测试。
Verilog HDL是一种用于数字逻辑电路设计的硬件描述语言(HDL),可以用来进行数字电路的仿真验证、时序分析、逻辑综合。
用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型。
Verilog HDL 既是一种行为描述语言也是一种结构描述语言,它的使用比VHDL 广泛。
毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
数字系统课程设计--基于FPGA的自动售货机组长:师楠(04010512)组员:徐璇(04010505)一、设计要求:功能描述:用于模拟自动售货机的工作过程,完成自动售货功能。
功能要求:(1)售货机有两个进币孔,可以输入硬币和纸币,售货机有两个进币孔,一个是输入硬币,一个是输入纸币,硬币的识别范围是1 元的硬币,纸币的识别范围是5 元,10 元,20,50 元,100元。
乘客可以连续多次投入钱币。
(2)顾客可以选择的商品种类有16 种,价格分别为1-16 元,顾客可以通过输入商品的编号来实现商品的选择。
即有一个小键盘(0-9 按键)来完成,比如输入15 时要先输入1,再输入5。
(3)顾客选择完商品后,可以选择需要的数量。
然后可以继续选择商品及其数量,每次可以选择最多三个商品。
然后显示出所需金额。
顾客此时可以投币,并且显示已经投币的总币值。
当投币值达到或超过所需币值后,售货机出货,并扣除所需金额,并找出多余金额。
在投币期间,顾客可以按取消键取消本次操作,钱币自动退出。
二、课题分析1)进行购物时,顾客依次选择商品种类和对应的商品数量。
一共有16种商品,编号分别为1-16,顾客通过(0-9按键)小键盘输入商品编号和对应的商品数量。
若顾客继续选择商品则按下“继续购物”按钮,继续选择下一商品的种类和数量。
最多可以选择三种商品,每种商品最多可选择三个。
若在商品选择过程中顾客按下“取消”按钮,则回到初始化状态,顾客重新进行选择。
2)完成选择后,自动售货机显示所需金额,编号1-16的商品价格分别为1-16元。
顾客根据所需金额继续投币,可以连续多次投入1元的硬币和5 元,10 元,20,50 元,100元的纸币。
当投币总额大于所需金额时,自动售货机出货并找出零钱。
若在投币过程中顾客按下“取消”按钮,则自动售货机自动退出顾客已经投入的钱币。
3)根据按键的数值范围(0-9)和商品数量(1-3)的选择范围,设置三个端口,分别用于接收商品编号的个位(4位)、商品编号的十位(4位)、商品数量(2位)。
基于FPGA的自动售货机控制系统摘要伴随着我国现代化进程的不断深入以及生活节奏的不断加快,如何能够快速、高效、便捷的购物也成为了商家和顾客不得不面临的一个问题。
自动售货机作为一种不同于传统的零售方式,以其不受时间地点限制、省时省力的优点,迅速的成为了人们的首选。
本课题主要是用EDA技术来实现对自动售货机控制系统的设计。
EDA技术以其特有的有开发周期短、设计成本低、运行速度快等天然优势,使开发出的产品可以迅速的投放到市场上去。
该课题主要是基于FPGA内部电路的编程设计,使用硬件描述语言(VHDL)对自动售货机控制系统进行描述,以Altera公司的EP1K30QC208-3芯片为目标器件详细阐述了自动售货机控制系统整体的设计思路以及工作原理,并且对自动收货机控制系统实现的货物信息的存储、进程控制、硬币处理、余额计算和显示功能加以仿真调试。
通过仿真调试,基于可编程器件FPGA 的自动售货机控制系统的设计基本达到了预期目标。
关键词:EDA,FPGA,自动售货机,VHDLVending machine control system based onFPGAAbstractWith the deepening of China's modernization process and the accelerating pace of life, it has become a problem for businesses and consumers to face that how to fast, efficient, convenient shopping. As a way different from the traditional retail, vending machines are not restricted by time and place, So vending machines quickly became the first choice for shopping election. The main topic is the use of EDA technology to achieve the vending machine control system design. EDA technology has a short development cycle, lower design costs, faster running speed, etc. That products can be developed rapidly to market upswing.The main topic is programming based on FPGA. Using hardware description language (VHDL) to describe the vending machine control system. Altera's EP1K30QC208-3 chip as the target device elaborated vending machine control system as well as the overall design concept works, and automatic control of receipt storing cargo information system implementation, process control, coin handling, balance calculation and display capabilities to simulation debugging. Through simulation debugging FPGA-based programmable device vending machine controller design basically achieve the desired goals.Key Words:EDA; FPGA; Vending machine; VHDL目录摘要 (1)Abstract (2)第一章引言 (1)1.1 自动售货机的发展历史 (1)1.2 自动售货机的发展现状 (1)1.3 自动售货机控制系统研究的目的和意义 (2)1.4 课题主要研究工作 (2)第二章关键技术 (3)2.1 EDA技术简介 (3)2.2 FPGA简介 (3)2.3 VHDL简介 (3)第三章系统硬件介绍 (5)3.1 KH310实验箱简单介绍 (5)3.2 时钟单元 (5)3.3 数码管显示单元 (5)第四章程序设计 (7)4.1 功能要求 (7)4.2 系统内部模块设计 (7)4.3 系统外部界面设计 (7)4.4 工作流程图 (8)4.5 系统各功能模块 (9)4.5.1 分频模块 (9)4.5.2 显示模块 (12)4.5.3 扫描模块 (14)4.5.4 主控模块 (16)第五章仿真调试 (21)5.1 顶层模块 (21)5.2 管脚分配.............................................................................................. 错误!未定义书签。
河南城建学院电子技术基础课程设计报告自动售票邮票机电路设计姓名:张亮亮学号:091213243专业班级:0912132指导老师:贺伟所在院系:电气与信息工程学院2014年6月20日摘要本设计是自动售邮票机,自动售邮票机主要由输入(投币,选票)电路,复位电路,报警电路,累加钱电路,找钱电路,给票电路组成。
找钱(投钱,选票)电路是将投入的硬币转化成脉冲信号,若投入硬币时,端口显示出高电平,未投入硬币时,端口显示出低电平。
控制电路是用来控制电路运行并清零等。
报警电路是如果投入硬币钱数不足,则报警提示。
累加钱电路用以计算投入硬币累加值既而判断是否找钱,给票。
找钱电路找回多余的钱。
给票电路是在累加钱到所买邮票价格时给出邮票。
其中,累加钱电路要用数码管显示,显示2位即可。
给出邮票时,要用不同颜色的灯显示,用不同颜色的发光二极管就行。
找钱电路要用数码管显示出来,显示1位即可。
本设计采用的主要方法是设计单元电路。
总体方案化整为零,分解成若干子系统或单元电路,逐个设计。
其中,选票电路的设计是采用门电路,寄存器(74HC175N)等元件组成。
投币电路的设计是采用一个普通的编码器,把投入1角,2角,5角,一元(10角)对应的投币信号转化成输出的二进制代码。
累加钱电路的设计是采用门电路,加法器(74LS283D),寄存器(74LS183D)和数码管显示器等元件组成。
复位电路的设计是采用门电路,电容,开关等元件组成,当成功给票后,通过复位信号的输入来使电路清零。
找钱电路的设计是采用门电路,减法器,译码器,数码管显示器等元件组成的。
主要实现找钱的功能,而且找钱的多少可以通过数码管显示出来。
报警和给票电路的设计是采用门电路,数值比较器,蜂鸣器,译码器,发光二极管等元件构成。
当给出不同的票时会有不同颜色的二极管发光,如果投入的钱不足以买需要的票时蜂鸣器就会发出报警信号。
本设计取得的结果是设计出来的电路可以较好的完成设计要求,每按一次只能售出一张邮票,如果投入硬币钱数不足,则报警提示。
基于FPGA的简单自动邮票销售系统的设计章节目录第一章设计指标 (1)第二章系统概述 (1)2.1设计思想 (1)2.2可行性论证 (2)2.3各功能的组成 (2)2.4总体工作过程 (3)第三章单元电路设计与分析 (4)3.1各单元电路的选择 (4)3.2设计及工作原理分析 (11)第四章电路的组构与调试 (13)4.1 遇到的主要问题 (13)4.2 现象记录及原因分析 (13)4.3 解决措施及效果 (13)4.4 功能的测试方法、步骤、设备、记录的数据 (15)第五章结束语 (16)5.1对设计题目的结论性意见及进一步改进的意向说明 (16)5.2 总结设计的收获与体会 (18)附图(电路总图) (20)参考文献 (21)第一章设计指标设计指标:设计一个简易投币式邮票自动销售控制电路:(1)系统允许投入0.5元和1元两种硬币,售出面值为2元的邮票。
(2)当硬币投入后,系统用七段LED数码管显示已投入的累计币值。
(3)当投币累计等于2元时,输出邮票;当投币累计大于2元时,输出邮票并输出找零币值。
(4)输出信号有效电平维持3s时间,输出信号无效后系统回到初始状态(累计币值为0。
)输出信号维持期间,不能允许再投入硬币(封锁投币信号,实际产品可封锁投币口)。
(5)输出信号有效时蜂鸣器以0.5s鸣响、0.5s间隔的方式发出提醒音,输出邮票时蜂鸣器的鸣响频率为1KHz,输出邮票并找零时蜂鸣器的鸣响频率为2KHz。
(6)为了保证系统上电时处于初始状态,设置一个状态机复位键。
第二章系统概述2.1设计思想用FPGA实现控制系统,用两个脉冲分别模拟0.5元和1元两种硬币,投入0.5元时X1=“1”,投入1元时X2=“1”,两个信号同时为“1”时无效,状态保持不变;用两个发光二极管分别指示输出邮票和找零,邮票输出信号为Z1,邮票输出并找零的信号为Z2,用时序逻辑电路记忆累计币值,累计币值用两个七段LED数码管显示,通过LP—2900开发装置显示。
基于FPGA的简单自动邮票销售系统的设计章节目录第一章设计指标 (1)第二章系统概述 (1)2.1设计思想 (1)2.2可行性论证 (2)2.3各功能的组成 (2)2.4总体工作过程 (3)第三章单元电路设计与分析 (4)3.1各单元电路的选择 (4)3.2设计及工作原理分析 (11)第四章电路的组构与调试 (13)4.1 遇到的主要问题 (13)4.2 现象记录及原因分析 (13)4.3 解决措施及效果 (13)4.4 功能的测试方法、步骤、设备、记录的数据 (15)第五章结束语 (16)5.1对设计题目的结论性意见及进一步改进的意向说明 (16)5.2 总结设计的收获与体会 (18)附图(电路总图) (20)参考文献 (21)第一章设计指标设计指标:设计一个简易投币式邮票自动销售控制电路:(1)系统允许投入0.5元和1元两种硬币,售出面值为2元的邮票。
(2)当硬币投入后,系统用七段LED数码管显示已投入的累计币值。
(3)当投币累计等于2元时,输出邮票;当投币累计大于2元时,输出邮票并输出找零币值。
(4)输出信号有效电平维持3s时间,输出信号无效后系统回到初始状态(累计币值为0。
)输出信号维持期间,不能允许再投入硬币(封锁投币信号,实际产品可封锁投币口)。
(5)输出信号有效时蜂鸣器以0.5s鸣响、0.5s间隔的方式发出提醒音,输出邮票时蜂鸣器的鸣响频率为1KHz,输出邮票并找零时蜂鸣器的鸣响频率为2KHz。
(6)为了保证系统上电时处于初始状态,设置一个状态机复位键。
第二章系统概述2.1设计思想用FPGA实现控制系统,用两个脉冲分别模拟0.5元和1元两种硬币,投入0.5元时X1=“1”,投入1元时X2=“1”,两个信号同时为“1”时无效,状态保持不变;用两个发光二极管分别指示输出邮票和找零,邮票输出信号为Z1,邮票输出并找零的信号为Z2,用时序逻辑电路记忆累计币值,累计币值用两个七段LED数码管显示,通过LP—2900开发装置显示。
2.2可行性论证通过两个脉冲可分别模拟0.5元与1.0元两种币值的投入,在币值达到邮票输出前需要记忆已输入币值的状态,以确保总币值的准确性,完成整个电路系统的要求。
而系统的累计币值最多为0元、0.5元、1.0元、1.5元、2元、2.5元共6种状态,若采用米利型时序电路实现,仅需记忆0元、0.5元、1.0元、1.5元共4种状态,通过触发器结合时序逻辑电路完全可以实现状态的保持与记忆,完成币值的累加,再结合其他电路单元,此设计系统完全可以实现。
2.3各功能的组成1)币值投入(即信号输入):用两个按键分别模拟两种不同币值的硬币,产生两路开关量脉冲信号,将两路信号综合为一路,经过数字单稳态触发电路对信号进行同步化处理,消除按键抖动,并可将综合后的投币信号归化为宽度是一个CP脉冲周期的状态触发信号,保证系统需要在任一按键作用时都要产生一个状态机的触发脉冲信号,同时输入端触发器的清零做清零用,使能端由Z1输出接反向器控制达到输出时封锁输入的目的;2)币值累计及状态变化判断:由状态机实现,用ROM方式实现状态机的激励控制,触发器的每个激励和电路的每个输出都由存储器的一位数据输出端控制,存储器地址由电路的输入X 和状态机的状态变量Q控制,存储器中每个单元的存储内容是对应电路输入和状态机现态某个组合时的次态和输出逻辑值,此实验用ROM实现米利型状态机的组合逻辑关系,ROM的容量为16×4,以电路输入X2X1和触发器Q1Q0控制ROM的地址A3—A0,ROM的数据输出q3-q0控制电路输出Z2Z1和触发器激励D1D0;3)邮票及找零输出:当累计币值达到2元时,由Z1控制的发光二极管亮表示输出邮票,当累计币值达到2.5元时,Z2Z1控制的两个发光二极管都亮,表示输出邮票并找零,同时由Z2Z1控制分频器使输出邮票时蜂鸣器的鸣响频率为 1KHz,输出邮票并找零时蜂鸣器的鸣响频率为 2KHz;4)定时电路:采用触发器维持输出信号Z2Z1不变,通过74LS161的计数功能,以1Hz脉冲信号作为时钟信号,进行模3计数,使灯亮维持三秒,即输出邮票和找零操作提示维持3S;5)累计币值显示电路:由于采用米利型控制方式,则用状态码Q1Q0控制七段译码显示电路,输出累计币值0、0.5、1、1.5元4个状态,当累计币值达2元或2.5元时清零。
2.4总体工作过程刚开始未输入硬币时,七段显示译码显示0.0,;当按下按键表示输入0.5元时,七段显示译码显示0.5;当输入累计达到1元时七段显示译码显示1.0;当输入累计达到1.5元时,七段显示译码显示1.5;再输入,当输入累计达到2.0元时七段显示译码清零,同时表示输出邮票的发光二极管亮,蜂鸣器以1KHz的频率进行0.5S鸣响,0.5S间隔的方式鸣响;当累计币值是2.5元时,七段显示译码清零,同时表示输出邮票和表示找零的发光二极管蜂同时亮,并且蜂鸣器以2KHz 的频率进行0.5S鸣响,0.5S间隔的方式鸣响,二极管亮和蜂鸣器响的时候输入端被封锁,输入无效,输出状态维持3S时间,时间到自动复位清零,发光二极管灭同时蜂鸣器停止鸣响。
第三章单元电路设计与分析3.1各单元电路的选择1) 输入信号及信号处理电路:单路输入信号经数字单稳态电路处理::双路输入信号经数字单稳态电路处理:2)状态机实现币值的累计及状态变化电路:其中ROM的存储数据表可根据状态转移表得出如下:3)分频电路:倍率为10的分频电路:其仿真波形如下:将上面建立的倍率为10的分频电路元件进行如下级联得到一个8级倍率为10的分频电路:当CP端接到10MHz的石英晶体振荡器OSC时,可在输出端得到输出频率分别为 1Hz、10Hz、100Hz、1KHz、10KHz、100KHz、1MHz、10MHz 8组占空比为50%的脉冲信号。
由分频器的10KHz输出端经7490进行5分频得到要求的2KHz频率,再由74153M4选1数据选择器通过Z2Z1进行蜂鸣器鸣响频率的选择:4)定时电路:由74LS161进行模3计数,由分频器1Hz的输出端作为时钟脉冲,res 返回接到信号输入部分的清零端,使达到输出要求后清零并保持3S的输出提示:5)输出控制电路:Z2Z1输出分别经过如下电路进行保持,保持后的信号作为定时电路中74LS161的使能控制端,配合定时电路,达到输出信号保持3S的要求:6)显示译码控制累计币值显示电路由74LS161计数器来控制七段显示译码器两位显示,同时该控制端接74LS157的选择端SEL,使所控制的显示位与数据选择器选择的数相对应,再通过状态机的Q1Q0输出端来控制数据选择器74LS157(四2选1)的数据输入端,选择的数据通过输出端分别实现累计币值的显示。
其中Z2Z1Q1Q0为系统的输出,A4A3A2A1对应七段译码显示器的第一位显示,B4B3B2B1对应七段译码显示器的第二位显示。
由上表可得:A4=A3=A2=0 A1=Q1 B4=B2=0 B3=B1=Q0即由Q1Q0来控制0.0元、0.5元、1.0元、1.5元4种状态的显示变化,电路图实现如下:将74LS157 的数据输出端接到7448,将累计的币值在七段显示译码器上显示出来:3.2设计及工作原理分析工作原理框图如下:输入信号经处理后作为ROM的输入端A3A2,ROM中保存数据为根据币值累计的不同状态列出的状态转移表得出的状态变化数据,ROM输出端q3q2是输出Z2Z1,q1q0经D触发器记忆后作为ROM的A1A0输入,D触发器的输出Q1Q0控制七段显示译码器的累计币值显示,由Z2Z1控制蜂鸣器的鸣响频率及输出状态的提示,延迟时间由定时电路集合保持电路进行3S延迟,复位键接输入端的清零引脚,Z2Z1同时控制输入端的使能端以达到输出时封锁输入的目的。
各时钟脉冲由分频器提供。
第四章电路的组构与调试4.1 遇到的主要问题1、蜂鸣器不响,作输出提示用的发光二极管只短暂的闪一下而没能维持3S;2、输出提示灯亮同时蜂鸣器开始鸣响,但输出维持的3S过程中继续按输入信号输入仍有效;3、蜂鸣器响,但有时响两声(即2S),有时响三声(即3S),不能固定在要求的3S时间上。
4.2 现象记录及原因分析1、对于问题1,蜂鸣器器不响但输出提示灯却闪了下,说明信号能够到达输出端,电路无中断问题,而发光二极管一闪即灭,输出不能维持3S,说明定时电路部分出现了问题;2、对于问题2,输出信号时输入端输入仍然有效,说明输入信号封锁电路设置出现了问题;3、对于问题3,有时响2S,有时响3S,说明要么是定时电路出问题了要么是激励脉冲的作用沿不同步;4.3 解决措施及效果1、对于现象1,首先检查定时电路是否工作,通过对74LS161模块进行单独的仿真及输入输出波形检测,结果显示该模块能够实现模三计数实现3秒定时,没有问题,计数模块没问题,意味着输出状态输出后瞬间进入下一状态,达到邮票输出后状态并未保持,即缺少了输出保持模块,于是给输出增添如下图保持电路模块,并用保持后的输出信号来控制74LS161的使能端,重新测试,蜂鸣器响,灯亮成功延迟。
输出信号保持电路:2、对于现象2,只需要在输入端设置封锁模块即可解决,封锁模块设置如下:将输入端的D触发器换为具有使能端的D触发器,使能端由输出信号Z1接反向器控制,当Z1为“1”并输出信号时,经反向器后为低电平控制使能端,此时输入无效,达到封锁输入端的目的,在Z1未达到输出要求之前,Z1为“0”,经反向器后为高电平控制D触发器的使能端,不影响输入信号的输入。
重新测试,输入信号封锁成功。
3、对于现象3,输出维持状态在2S与3S间反复,检查74LS161确定不是计数定时的问题后,说明触发脉冲不同步,将用来作为时钟脉冲信号的1Hz脉冲经过反向器后再触发计数器,同时反向后的信号与触发蜂鸣器的信号经与门后共同触发蜂鸣器。
改良后重新测试,测试结果为鸣响3次即3S占大多数,但偶尔还会有2S的情况,继续改善,将产生用来触发74LS161使能端的保持信号的电路改为如下所示(即将原本控制D触发器输入端及脉冲端的两路信号对调):重新测试,电路成功延迟3S。
4.4 功能的测试方法、步骤、设备、记录的数据检查确认电路连接正确后,将电路烧入LP—2900开发装置开始测试:X2与X1分别连接PS4和PS3两个正脉冲按键,按下PS3一次表示投入0.5元,按下PS4一次表示投入1.0元,复位键接PS1,按下则清零复位。
1、测试输入与币值累计:从0开始,按不同组合按下PS3与PS4累计币值,计算相应的累计币值,并于七段显示译码器显示的币值对照,币值显示从0到1.5全部正确,符合米利型电路的显示要求。
2、测试输出状况:观察累计币值达2元或2.5元时的状况,当累计币值达2元或2.5元后显示自动清零。