自动售卖机-核心控制模块设计_第1页
自动售卖机-核心控制模块设计_第2页
自动售卖机-核心控制模块设计_第3页
自动售卖机-核心控制模块设计_第4页
自动售卖机-核心控制模块设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FPGA/CPLD应用技术应用技术温国忠温国忠 、余菲、曾启明、余菲、曾启明晏凯、刘俐晏凯、刘俐自动售货机设计自动售货机设计核心控制模块设计核心控制模块设计曾启明曾启明 博士博士电子邮件:电子邮件:电话:电话心控制模块控制三个状态,分别是“等待投币状等待投币状态态”、“等待买货状态等待买货状态”、“出货、退币状态出货、退币状态”。核心控制模块设计1. 系统复位以后,进入“等待投币状态”,此时数码管输出全部为0,而指示灯也输出为“00”;2. 等待状态下,输入投币按键:5元、10元、15元,就会跳转到下一个状态,称之为“等待买货状态”;3. 在“等待买货状态”下,数码管

2、输出投币的金额,指示灯仍然输出“00”。在这个状态下,如果输入了购物按键,包括购买3元、6元、10元、17元的货物,就会跳转到下一个状态,称之为“出货、退币状态”。4. 如果投币金额充足,七段数码管输出找零的金额,“金额充足指示灯”亮起,如果投币金额不足,七段数码管输出零,“余额不足指示灯”亮起。5. 这个状态下,如果按下“出货、退币按键”则系统恢复到“等待投币状态”,表示售货完成。关键实现思路状态代码状态含义2b00等待投币状态2b01等待买货状态2b10出货、退币状态根据前面已经设计好的状态转换图,对所有的状态进行编码设计。由于系统包括三个状态,因此可以设计两位寄存器来对所有的状态进行编码

3、。下面按照三个状态逐一分析状态之间的转换关系,以及输出如何。按照系统要求,有8个按键输入,首先定义每个按键的具体含义,如下表所示。 0号1号2号3号4号5号6号7号投币5元投币10元投币20元购买3元物品购买6元物品购买10元物品购买17元物品出货、退币核心控制模块接口定义信号名I/O位宽含义rstI1系统复位信号clk1I1分频后周期为0.001s-0.0001s的时钟输出ledO88个LED数码管显示数据displayO8七段数码管显示数据key_sI8矩阵按键输入module state( rst, clk1, led, display, key_s );input rst;input

4、clk1;output 7:0 led; /8个LEDS输出output7:0 display; /七段数码管显示数据输出input7:0 key_s; /按键数据输入/+reg 1:0 zhishi_led; /2位指示灯,指示是否金额充足或者缺钱reg 7:0 display; /七段数码管显示数据reg 1:0 state; /状态寄存器/+/输出指示灯到外部LED的低两位上面assign led=6b0,zhishi_led;/状态机always (posedge clk1 )if (rst=1b1) /如果复位管脚按下 begin display =8b00000000; /七段数码

5、管显示数据 state =2b00; /状态寄存器 zhishi_led =2b00; /2位指示灯,指示是否金额充足或者缺钱end代码 (1/5)else begincase(state) 2b00: begin /等待投币状态if(key_s0=1b1) /如果按键0按下,投入了5元 begin state = 2b01;/状态将切换到等待买货状态 display = 8d5;/显示投入了5元 zhishi_led = 2b00;/指示灯不亮 end else if(key_s1=1b1) /如果按键1按下,投入了10元 begin state = 2b01;/状态将切换到等待买货状态 d

6、isplay = 8d10;/显示投入了10元 zhishi_led = 2b00;/指示灯不亮 end else if(key_s2=1b1) /如果按键2按下,投入了20元 begin state = 2b01;/状态将切换到等待买货状态 display = 8d20;/显示投入了10元 zhishi_led = 2b00;/指示灯不亮 end end 代码 (2/5)2b01: begin/等待买货状态if(key_s3=1b1) /购买了3元的货物 begin state = 2b10;/状态将切换到等待出货状态 if(display8d3)/如果投币金额不足 begin displa

7、y= 8d0;/显示余额为0 zhishi_led=2b10;/代表余额不足,只能退币 end else begin/如果投币金额足 display= display-8d3;/显示余额 zhishi_led = 2b01;/代表金额充足可以出货 end end代码 (3/5)if(key_s4=1b1) /购买了6元的货物 begin state = 2b10;/状态将切换到等待出货状态 if(display8d6) /如果投币金额不足 begin display= 8d0; /显示余额为0 zhishi_led=2b10;/代表余额不足,只能退币 end else begin /如果投币金

8、额足 display= display-8d6;/显示余额 zhishi_led = 2b01; /代表金额充足可以出货 end endif(key_s5=1b1) /购买了10元的货物begin state = 2b10; /状态将切换到等待出货状态 if(display8d10) /如果投币金额不足 begin display= 8d0; /显示余额为0zhishi_led=2b10; /代表余额不足,只能退币end else begin /如果投币金额足display= display-8d10; /显示余额 zhishi_led = 2b01; /代表金额充足可以出货 endend代码 (4/5)if(key_s6=1b1) /购买了17元的货物begin state = 2b10; /状态将切换到等待出货状态 if(display8d17) /如果投币金额不足 begin display= 8d0;/显示余额为0 zhishi_led=2b10; /代表余额不足,只能退币 end else begin /如果投币金额足 display= display-8d17; /显示余额 zhishi_led = 2b01; /代表金额充足可以出货 end endend 2b10: begin/出货、退币状态if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论