EDA课程设计自动售货机.docx
- 文档编号:3947820
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:12
- 大小:753.49KB
EDA课程设计自动售货机.docx
《EDA课程设计自动售货机.docx》由会员分享,可在线阅读,更多相关《EDA课程设计自动售货机.docx(12页珍藏版)》请在冰豆网上搜索。
EDA课程设计自动售货机
目录
二、课程设计目的……………………………………………………2
二、课程设计题目描述和要求…………………………………………2
三、课程设计报告内容…………………………………………………2
3.1、设计原理、方案论证…………………………………………2
3.2、设计过程……………………………………………………2
3.2.1、系统框图………………………………………………2
3.2.2、设计总程序……………………………………………3
3.2.3、软件仿真………………………………………………4
3.2.4管脚定义………………………………………………5
3.2.5下载程序与仿真结果…………………………………6
四、设计总结和心得体会………………………………………………7
参考文献…………………………………………………………………8
附录……………………………………………………………………8
一、课程设计目的:
1)熟悉学习QuartusII的编程与调试方式,学会在QuartusII中使用波形图进行软件仿真,并使用EDA6000进行硬件仿真与调试。
2)设计一个自动售货机,具有投币和选择商品等功能
二、课程设计题目描述和要求:
首先应搭建识别模块,将代表每种硬币的拨码开关信号和选择的商品信号转变为数码管显示信号。
两者要进行比较,如果钱数大于售出商品则对其进行求差,求差的结果作为找钱信号;如果等于直接售出商品;小于则报警。
程序中会有一个分频模块,对CLK进行分频,并有一个复位键。
三、课程设计报告内容
3.1、设计原理、方案论证
1)设计一个自动售货机,此机能出售1元、2.5元、3元、3.5元的四种商品。
出售哪种商品可有顾客按动相应的按键即可,并同时用数码管显示售出的是第几种商品;
2)顾客可通过选择投入的钱数来购买商品,并且有一个确认键;
3)如果选择投入的钱小于选择的商品价格,则显示出价格和选择的钱数,并且警告灯亮;
4)如果选择投入的钱大于选择的商品价格,则显示出价格和找回的钱;
5)此售货机有一个整体复位控制。
3.2、设计过程
3.2.1、系统框图:
3.2.2、设计总程序:
3.2.3、软件仿真
当选择钱数为100即为2元、选择商品为10即为3元时,led_warn亮,led_price和led_money、led_good分别显示应该显示的数据
3.2.4管脚定义:
3.2.5下载程序与仿真结果:
商品选择第二个,投入钱币是5,结果显示中25为价格05为投入的钱,2是选择的商品,led_warn亮;
商品选择第一个,投币35,结果中10为商品价格,25为找零,1为选择的商品
四、设计总结和心得体会
通过本次课程设计,我对VerilogHDL语言有了更深刻的了解,能够比较灵活地运用它来实现我们所想要要其实现的功能。
在实验中,我也遇到了很多挫折,不过我都和同伴一一克服了,大家齐心协力解决了问题,使我明白了和他人共同合作的重要性。
在以后的道路上我们也必须深刻认识到团队合作的精神,投入今后的发展之中。
成功就是在不断摸索着前进中实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。
参考文献:
[1]潘松,《EDA实用教程》,科学出版社,2004年
[2]夏宇闻编著《Verilog数字系统教程》北京航空航天出版社
[3]梁瑞宇编写《FPGA设计实验指导书(VerilogHDL)》
附录(程序)
Moduleautoseller(clk,ok,g,rst,m,led_goods,led_money_a,led_money_b,led_price_a,led_price_b,led_warn);
inputclk,ok,rst;//脉冲,确定键,清零键
input[1:
0]g;//货品选择键
input[2:
0]m;
output[6:
0]led_money_b,led_price_b,led_goods;
output[7:
0]led_money_a,led_price_a;
outputled_warn;
regf_500;//分频时钟
reg[6:
0]goods;
regled_warn;
integera_tmp,price,money,money_a,money_b,price_a,price_b;
reg[6:
0]led_money_b,led_price_b,led_goods;
reg[7:
0]led_money_a,led_price_a;
always@(posedgeclk)
begin
if(a_tmp==499)
begin
f_500=~f_500;
a_tmp<=0;
end
else
a_tmp<=a_tmp+1;
end
always@(posedgef_500)
begin
if(rst==1)
begin
money=0;
price=0;
led_warn=0;
end
else
begin
case(m)
3'b000:
beginmoney=00;end
3'b001:
beginmoney=05;end
3'b010:
beginmoney=10;end
3'b011:
beginmoney=15;end
3'b100:
beginmoney=20;end
3'b101:
beginmoney=25;end
3'b110:
beginmoney=30;end
3'b111:
beginmoney=35;end
endcase
case(g)
2'b00:
beginprice=10;end
2'b01:
beginprice=25;end
2'b10:
beginprice=30;end
2'b11:
beginprice=35;end
endcase
if(ok==1)
begin
if(money led_warn=1; else led_warn=led_warn+0; money=money-price; case(price) 10: beginled_goods=7'b0000110;end 25: beginled_goods=7'b1011011;end 30: beginled_goods=7'b1001111;end 35: beginled_goods=7'b1100110;end endcase money=money+0; price=price+0; money_a=money/10; money_b=money-money_a*10; price_a=price/10; price_b=price-price_a*10; case(money_a) 0: beginled_money_a=8'b10111111;end 1: beginled_money_a=8'b10000110;end 2: beginled_money_a=8'b11011011;end 3: beginled_money_a=8'b11001111;end 4: beginled_money_a=8'b11100110;end endcase case(money_b) 0: beginled_money_b=7'b0111111;end 5: beginled_money_b=7'b1101101;end endcase case(price_a) 0: beginled_price_a=8'b10111111;end 1: beginled_price_a=8'b10000110;end 2: beginled_price_a=8'b11011011;end 3: beginled_price_a=8'b11001111;end 4: beginled_price_a=8'b11100110;end endcase case(price_b) 0: beginled_price_b=7'b0111111;end 5: beginled_price_b=7'b1101101;end endcase end end end endmodule
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA课程设计 自动售货机 EDA 课程设计 自动 售货