版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字电路 与逻辑设计实验一.任务要求 3二.系统设计 3设计思路 3总体框图 3分块说明 4三.仿真波形 4投币计数模块 4100元投币的计数 5加油计数模块 6数码管显示模块 7点阵显示模块 8四.VHDL源程序 141.2k分频器 14投币计数器 15加油计数器 16数码管显示 20点阵显示 24音乐模块 30总体布线 36五.完成功能说明 36六.资源利用情况 37七.故障及问题分析 37八.实验总结与心得体会 37至箱满等功量和钱数。基本:15元/22按键、分别表示百元、十元做开始键做3数码管(disp2、disp1、disp0)显示钱数以元为单位990用数码管(disp5disp4disp3)显示量0.1升99.9升。3、时先输入钱币数码管同时显示钱数按键开始。过程中,程中所有按键按下无效。4至按键钱数及量的显示从零开始递增,直到箱随数发生器3050升之间精0.1升。过程中所有按键按下无效。5按下后复位此时数码管显示钱币数及量均为零。提高:1用点阵显示各种状态及动画。2不同的品、价。3库管理功。4。二思路数器传过来的时停止数显示动画提示功。总体框图10元10元
投币计数器clk
点阵money音乐2k器
ychooseoil
数码管显示器Cpclk对每都一所省略。00‘1’所都清。yu=1出在满上设定一个用控制计数器下且钱数等于零下机就从计数器把值赋给钱数然后始后面类似。数码管出还点阵与音乐出在数码管值并出而点阵则是通过动画我姑且把它起名欢迎正在我,在钱。三投币计数块0321yyut写百位十与10010990:‘yuyuyu而uuut为955,95号的价为5元一升当键按下时yuyuyuuuu1数见10(mpimoneypayin的缩写)当=177yut与utuut为.97号。。码管显示模块为为。上个^_^LL区HELOn1n2“”字:“油”字:当THANKS”和一个笑脸,其中笑脸与欢迎加油一样,故略去。THANKS。四.VHDL源程序1.2k分频器libraryieee;useieee.std_logic_1164.all;ueuentitydiv2kisport(clk_in:instd_logic;ut:utend;architecturefenpinofdiv2kissignalcnt:integerrange0to999; 时反转signalclk_tmp:std_logic;beginbeginif(clk_in'eventandclk_in='1')thenifcnt=999thencnt<=0;clk_tmp<=notclk_tmp;elseendif;endif;endprocess;clk_out<=clk_tmp;end;投币计数器libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitypayisport(clk:instd_logic;reset:in:instd_logic;money:outintegerrange0to990;mpo3,mpo2,mpo1:outstd_logic_vector(3downto0));endpay;architecturepayissignalmoneypay:integerrange0to990;signal:std_logic_vector(3downto0);beginprocess(clk)beginif(clk'eventandclk='1')thenifreset='1'thenmoneypay<=0;money3<="0000";money2<="0000";money1<="0000"; elsif(pay100='1andpay10='0'thenif(moneypay<=890)thenmoneypay<=moneypay100; 100money3<=money3+1;endif;elsif(pay100='0'andpay10='1')thenif(moneypay<=980)thenif(money2="1001")thenmoneypay<=moneypay 10; 元elsemoney2<=money2+1;moneypay<=moneypay+ endendif;elsemoneypay<=moneypay;endelsemoneypay<=moneypay;endmoney<=moneypay;endprocess;endpaymoney;加油计数器libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityjiayoucountisport(reset:instd_logic;jiayou,clk:instd_logic;chooseoil:instd_logic;dianzhenout1:outstd_logic;dianzhenout2:outstd_logic;moneypayin:inintegerrange0to990;mpi3,mpi2,mpi1:instd_logic_vector(3downto0);money3out,money2out,money1out:outstd_logic_vector(3downto0);oil3out,oil2out,oil1out:outstd_logic_vector(3downto0);musiccontrol:outstd_logic);endjiayoucount;architecturesimpleofjiayoucountissignaldeng:integerrange0to1999;signalmoney3,money2,money1:std_logic_vector(3downto0);signaloil3,oil2,oil1:std_logic_vector(3downto0);signalcnt2:integerrange0to1;signalmpc:integerrange0to990;signalxiaobiao:std_logic;signalmoneyrd1,moneyrd2:integerrange0to990;signalcnt100:integerrange150to250;signalcnt200:integerrange300to500;beginbeginif(clk'eventandclk='1')thenifcnt100=250thencnt100<=150;elsecnt100<=cnt100+1; endif;ifcnt200=500cnt200<=300;elsecnt200<=cnt200+1; endif;endif;endprocess;process(clk,reset)beginif(reset='1'then xiaobiao<='0'; --oil3<="0000";oil2<="0000";oil1<="0000";deng<=0;cnt2<=0;mpc<=0;dianzhenout1<='0';dianzhenout2<='0';musiccontrol<='1';elsifclk'eventandclk='1'thenif(jiayou='1')thenxiaobiao<='1'; if(moneypayin=0)then 于零则用随机30~50升moneyrd1<=cnt100;moneyrd2<=cnt200;else 传endif;endif;if(xiaobiao='0')thenif(chooseoil='0'then --95money3out<=mpi3;money2out<=mpi2;money1out<=mpi1;oil3out<="1001";oil2out<="0101";oil1out<="0000";elsif(chooseoil='1'then --97money3out<=mpi3;money2out<=mpi2;money1out<=mpi1;oil3out<="1001";oil2out<="0111";oil1out<="0000";endif;
endif;if(xiaobiao='1')thencasechooseoilis 分支计数when'0ifdeng=1999cnt2<=cnt2+1;if(mpc<moneyrd1)thenif(oil3="1001"andoil2="1001"andoil1="1001")thenoil3<="1001";oil2<="1001"; oil1<="1001";elsif(oil2="1001"andoil1="1001")thenoil3<=oil3+1;oil2<="0000";oil1<="0000";elsif(oil1="1001")thenoil2<=oil2+1;oil1<="0000";elseoil1<=oil1+1;endif;ifmoney3="0101andmoney2="0000andmoney1="0000andcnt2=1)then cnt2oil+2时,money+1.money3<="0101";money2<="0000"; money1<="0000";mpc<=mpc+1;elsif(money2="1001"andmoney1="1001"andcnt2=1)thenmoney3<=money3+1;money2<="0000";money1<="0000"elsif(money1="1001"andcnt2=1)thenmoney2<=money2+1;money1<="0000";mpc<=mpc+1;elsif(cnt2=1)thenmoney1<=money1+1;mpc<=mpc+1;elsemoney3<=money3;money2<=money2;money1<=money1;endif;elsedianzhenout1<='0';dianzhenout2<='1'; musiccontrol<='0';money3<=money3;money2<=money2;money1<=money1;oil3<=oil3;oil2<=oil2;oil1<=oil1;mpc<=mpc;enddeng<=0;elsedeng<=deng+1;money3out<=money3;money2out<=money2;money1out<=money1;oil3out<=oil3;oil2out<=oil2;oil1out<=oil1;endif;when'1 ifdeng=1999thenif(mpc<moneyrd2)thenif(oil3="1001"andoil2="1001"andoil1="0000")thenoil3<="1001";oil2<="1001"; oil1<="0000";elsif(oil2="1001"andoil1="1001")thenoil3<=oil3+1;oil2<="0000";oil1<="0000";elsif(oil1="1001")thenoil2<=oil2+1;oil1<="0000";elseoil1<=oil1+1;endif;ifmoney3="1001andmoney2="1001andmoney1="0000"then lymoney3<="1001";money2<="1001"; elsif(money2="1001"andmoney1="1001")thenmoney3<=money3+1;money2<="0000";money1<="0000";mpc<=mpc+1;elsif(money1="1001")thenmoney2<=money2+1;money1<="0000";mpc<=mpc+1;elsemoney1<=money1+1;mpc<=mpc+1;endif;elsedianzhenout1<='0';dianzhenout2<='1';musiccontrol<='0';money3<=money3;money2<=money2;money1<=money1;oil3<=oil3;oil2<=oil2;oil1<=oil1;endif;deng<=0;elsemoney3out<=money3;money2out<=money2;money1out<=money1;oil3out<=oil3;oil2out<=oil2;oil1out<=oil1;endif;endcase;endif;endif;endendsimple;数码管显示libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityshumaguanxianshiisport(clk:instd_logic;--jiayou:instd_logic;money3in,money2in,money1in:instd_logic_vector(3downto0);oil3in,oil2in,oil1in:instd_logic_vector(3downto0);:inintegerrange0to990;sg:outstd_logic_vector(7downto0);bt:outstd_logic_vector(5downto0));end;architectureofissignalcnt6:integerrange0to5;signalwei:integerrange0to5;signalclk_tmp:std_logic;signal:std_logic_vector(3downto0);signaloil3,oil2,oil1:std_logic_vector(3downto0);beginoil3<=oil3in;oil2<=oil2in;oil1<=oil1in;clk_tmp<=clk;p1:process(cnt6)begincasecnt6is 扫描0wei<=5;1wei<=4;2wei<=3;3wei<=2;4wei<=1;5wei<=0;whenothers=>endcase;endprocessp1;p2:process(clk_tmp)beginif(clk_tmp'eventandclk_tmp='1')thenifcnt6=5thencnt6<=0;elsecnt6<=cnt6+endif;endif;endprocessp2;wbegincaseweiwhen5=>e3wo)s wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wns>7wo)endcase;when4=>e3wo)s 位wn"7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wns>7wo)endcase;when3=>e3wo)s wn"7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)wn">7wo)when"1001"=>sg(7downto0)=>0)endcase;when2=>casedownto0is 0when"0001"=>sg(7downto0)<="01100000";when"0010"=>sg(7downto0)<="11011010";when"0011"=>sg(7downto0)<="11110010";when"0100"=>sg(7downto0)<="01100110";when"0101"=>sg(7downto0)<="10110110";=>0)when"0111"=>sg(7downto0)<="11100000";=>0)when"1001"=>sg(7downto0)=>0)endcase;when1=>casedownto0is 0when"0001"=>sg(7downto0)<="01100000";when"0010"=>sg(7downto0)<="11011010";when"0011"=>sg(7downto0)<="11110010";when"0100"=>sg(7downto0)<="01100110";when"0101"=>sg(7downto0)<="10110110";=>0)when"0111"=>sg(7downto0)<="11100000";=>0)when"1001"=>sg(7downto0)=>0)endcase;when0=>casedownto0is 0when"0001"=>sg(7downto0)<="01100000";when"0010"=>sg(7downto0)<="11011010";when"0011"=>sg(7downto0)<="11110010";when"0100"=>sg(7downto0)<="01100110";when"0101"=>sg(7downto0)<="10110110";=>0)when"0111"=>sg(7downto0)<="11100000";=>0)when"1001"=>sg(7downto0)=>0)endcase;whenothers=>null;endcase;endprocessendxianshi;libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydianzhenisport(clk:instd_logic;en1,en2:instd_logic;lie:outstd_logic_vector(7downto0);com:outstd_logic_vector(7downto0));endarchitecturebehaveofdianzhenissignalcnt8:integerrange0to7;signalwei:integerrange0to7;signal:integerrange0to beginbegincasecnt8is 0wei<=0;1wei<=1;2wei<=2;3wei<=3;4wei<=4;5wei<=5;6wei<=6;when7=>com<="11111110";wei<=7;whenothers=>endcase;endprocessp2:process(clk)beginif(clk'eventandclk='1')thenifcnt8=7thencnt8<=0;elsecnt8<=cnt8+endif;=55999)thenelseendif;endif;endprocessp2;p3:process(wei,en1,en2)begincaseen2iswhen'0'caseen1iswhen'0'if(jydianzhen<6999)then caseweiiswhenwhenwhenwhenwhenwhenendcase;elsif(jydianzhen>=6999andjydianzhen<9999)then--NULLcaseweiiswhen0=>lie<="00000000";when1=>lie<="00000000";when2=>lie<="00000000";when3=>lie<="00000000";when4=>lie<="00000000";when5=>lie<="00000000";when6=>lie<="00000000";when7=>lie<="00000000";endcase;elsif(jydianzhen>=9999andjydianzhen<16999)then--Ecaseweiiswhen2=>lie<="00000011";when5=>lie<="00000011";endcase;elsif(jydianzhen>=16999andjydianzhen<19999)then--NULLcaseweiiswhen0=>lie<="00000000";when1=>lie<="00000000";when2=>lie<="00000000";when3=>lie<="00000000";when4=>lie<="00000000";when5=>lie<="00000000";when6=>lie<="00000000";when7=>lie<="00000000";endcase;elsif(jydianzhen>=19999andjydianzhen<26999)thencaseweiiswhen0=>lie<="00000011";when1=>lie<="00000011";when2=>lie<="00000011";when3=>lie<="00000011";when4=>lie<="00000011";when5=>lie<="00000011";endcase;elsif(jydianzhen>=26999andjydianzhen<29999)then--NULLcaseweiiswhen0=>lie<="00000000";when1=>lie<="00000000";when2=>lie<="00000000";when3=>lie<="00000000";when4=>lie<="00000000";when5=>lie<="00000000";when6=>lie<="00000000";when7=>lie<="00000000";endcase;elsif(jydianzhen>=29999andjydianzhen<36999)thencaseweiiswhen0=>lie<="00000011";when1=>lie<="00000011";when2=>lie<="00000011";when3=>lie<="00000011";when4=>lie<="00000011";when5=>lie<="00000011";endcase;elsif(jydianzhen>=36999andjydianzhen<39999)then--NULLcaseweiiswhen0=>lie<="00000000";when1=>lie<="00000000";when2=>lie<="00000000";when3=>lie<="00000000";when4=>lie<="00000000";when5=>lie<="00000000";when6=>lie<="00000000";when7=>lie<="00000000";endcase;elsif(jydianzhen>=39999andjydianzhen<46999)thencaseweiiswhen1=>lie<="01000010";when2=>lie<="10000001";when3=>lie<="10000001";when4=>lie<="10000001";when5=>lie<="10000001";when6=>lie<="01000010";endcase;elsif(jydianzhen>=46999andjydianzhen<49999)then--NULLcaseweiiswhen0=>lie<="00000000";when1=>lie<="00000000";when2=>lie<="00000000";when3=>lie<="00000000";when4=>lie<="00000000";when5=>lie<="00000000";when6=>lie<="00000000";when7=>lie<="00000000";endcase;elsecaseweiiswhen0=>lie<="00000000";when1=>lie<="00000000";when2=>lie<="00100100";when3=>lie<="00000000";when4=>lie<="01000010";when5=>lie<="00100100";when6=>lie<="00011000";when7=>lie<="00000000";endcase;endif;when'1'=>if(jydianzhen<27999then--iswhen0=>lie<="00000010";when1=>lie<="00000010";when3=>lie<="10101010";when4=>lie<="10101010";when5=>lie<="10101010";when6=>lie<="10101010";endcase;else--“油”caseweiiswhen0=>lie<="00100000";when1=>lie<="00100001";when2=>lie<="00100010";when4=>lie<="10101010";when6=>lie<="10101010";endcase;endif;endwhen'1'=>if(jydianzhen<7999)then--Tcaseweiiswhen2=>lie<="00011000";when3=>lie<="00011000";when4=>lie<="00011000";when5=>lie<="00011000";when6=>lie<="00011000";when7=>lie<="00011000";endcase;elsif(andjydianzhen<15999)thencaseweiiswhenwhenwhenwhenwhenwhenendcase;elsif(jydianzhen>=15999andjydianzhen<23999)thencaseweiiswhen0=>lie<="00011000";when1=>lie<="00100100";when2=>lie<="01000010";when3=>lie<="10000001";when5=>lie<="10000001";when6=>lie<="10000001";when7=>lie<="10000001";endcase;elsif(jydianzhen>=23999andjydianzhen<31999)thencaseweiiswhenwhenwhenwhenwhenwhen7=>lie<="11000011";endcase;elsif(jydianzhen>=31999andjydianzhen<39999)then caseweiiswhen0=>lie<="10000011";when1=>lie<="11000011";when2=>lie<="01100011";when3=>lie<="00110011";when5=>lie<="00011011";when6=>lie<="00110011";when7=>lie<="01100011";endcase;elsif(jydianzhen>=39999andjydianzhen<47999)then--Scaseweiiswhen1=>lie<="10000100";when2=>lie<="00000010";when3=>lie<="00000100";when4=>lie<="00001000";when5=>lie<="00010000";when6=>lie<="00100000";endcase;elsecaseweiis --^_^when0=>lie<="00000000";when1=>lie<="00000000";when2=>lie<="00100100";when3=>lie<="00000000";when4=>lie<="01000010";when5=>lie<="00100100";when6=>lie<="00011000";when7=>lie<="00000000";endcase;endif;endcase;endprocessendbehave;作一拓展地方在于加油计数算法上对加油机进行拓展,以下是音乐代码:--------------------------------------- -- Data: 2008-9-21--Title:Musicof---------------------------------------libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;--------------------------------------------------------------------entitymusicisport(inclk: instd_logic;--ClockSignalspk :bufferstd_logic;--speakerdriverendmusic;reset:instd_logic);endmusic;--------------------------------------------------------------------architecturebehaveof music is signaltone std_logic_vector(10downto0);signaltone_count : std_logic_vector(10downtosignaltone_index : integerrange0to15;signalclk10_count: std_logic_vector(17downtosignaltime : integerrange0to150;signalclk : std_logic;signalclk10 : beginPROCESS(inclk) --generate2Mhzclocksignalvariablecnt1:INTEGERRANGE0TOBEGINIFinclk='1'ANDinclk'eventTHENIFcnt1=29THENcnt1:=0;ELSEIFcnt1<20THENclk<='1';ELSEclk<='0';ENDIF;cnt1:=cnt1+1;ENDENDENDPROCESS;process(clk,reset) --generate10hzclocksignalbeginif(clk'eventandclk='1')thenclk10_count<=clk10_count+1;if(clk10_count=16#3fff#)thenclk10<=notendif;endif;endprocess;process(clk10,reset)beginif(reset='1')thentime<=149;elsif(clk10'eventandclk10='1')thenif(time=150)thentime<=0;elseendif;endif;endprocess;process(clk10)beginif(clk10'eventandclk10='1')thencasetimeiswhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhen112=>tone_index<=8;when113=>tone_index<=6;when114=>tone_index<=5;when115=>tone_index<=3;--when116=>tone_index<=3;when117=>tone_index<=3;when118=>tone_index<=3;when119=>tone_in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学府春天物业管理方案模板
- 学校内涵发展实施方案模板
- 卧龙酒厂营销方案(3篇)
- 专业活动策划执行方案(3篇)
- 客房钥匙应急预案(3篇)
- 啤酒品牌活动策划方案(3篇)
- 市级应急预案备案(3篇)
- 微波天线施工方案(3篇)
- 拖鞋采购营销方案(3篇)
- 施工方案变更原则(3篇)
- GB/T 3390.1-2013手动套筒扳手套筒
- GB/T 11337-2004平面度误差检测
- 2022年德清县文化旅游发展集团有限公司招聘笔试试题及答案解析
- 液压与气压传动全版课件
- 小学数学人教三年级上册倍的认识教学设计倍的认识
- 泌尿生殖系统的解剖与生理资料课件
- 图书信息检索课件
- 芪苈强心-课件
- 江苏省中等专业学校毕业生登记表
- 合格供应商评估表格
- 解读义务教育艺术课程标准(2022年版)《2022艺术新课标》PPT
评论
0/150
提交评论