还剩22页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数字电路课程设计设计题目交通灯控制设计自动售货机学院计算机科学与技术学院专业信息安全班级学号学生姓名指导教师2013年12月20日目录设计一:交通灯第一章引言……………………………………………………3第二章概要设计………………………………………………3第三章详细设计………………………………………………3第四章仿真结果及说明………………………………………8总结………………………………………………………………12设计二:自动售货机第一章引言……………………………………………………14第二章概要设计………………………………………………15第三章详细设计………………………………………………20第四章仿真结果及说明………………………………………22总结………………………………………………………………23交通灯控制摘要本设计通过运用所学的电路知识,使用QuartusII的功能仿真功能设计了一款具有倒计时及显示倒计时功能,并控制交通灯信号输出功能的交通灯关键词分频;计时器;8421BCD;显示Abstract ThedesignofcircuitknowledgethroughtheuseoftheschoolthefunctionsimulationfunctionusingtheQuartusIIdesignedacountdownfunctiontrafficlightsandtrafficlightcontrolsignaloutputfunction.Key words Frequencydivider,Timer,8421BCDdisplay第一章引言日常生活中用交警指挥马路的通行,但它存在几个不足,人会疲劳,容易出错人指挥不够精确受到天气的影响较大安排人来24小时指挥的隐患显而易见在马路上安置交通亭占用空间也容易留下安全隐患而且安排人在马路上指挥,大量的废气粉尘对人也会造成一定的伤害随着电子技术的发展,人们可以用电子技术设计一款交通灯来实现对交通通行的控制它相对人而言,成本更低,只需要初期的投入而不需要大量的后期投入仅仅需要付出少量的电费和一些故障维护费它精确高效,易于控制管理同时醒目,相对于交通手势易于理解同时可以安排在各种地段不需要占用大量的地方所以我们设计了一款交通灯来代替人控制汽车的通行第二章概要设计本电路由分频元件,计时元件,转码元件,7段数码管显示器元件,红绿灯输出元件这五个部件构成本设计的工作原理是输入时钟信号,当输入重置信号时,交通灯开始工作,分频元件将高频时钟信号转换为1Hz的时钟信号,再由计时元件接收计时元件通过统计接收的1Hz时钟信号,实现计时功能计时器将其所处的计时阶段传给红绿灯元件,控制红绿灯信号的输出同时计时元件将其所处的计时结果以二进制码的形式传给转码元件,由转码元件转化为8421BCD码再将其输入到7段数码管显示器元件使计时结果以数字的形式显示出来再次输入重置信号时,交通灯被重置第三章详细设计
3.1分频元件modulefenpinclkinresetclkout;inputclkinreset;outputclkout;reg[31:0]counter;regclkout;always@posedgeclkinorposedgeresetbeginifresetcounter=32d0;elseifcounter=32d2begincounter=32d0;clkout=~clkout;endelsecounter=counter+1d1;endendmodule
3.2计时元件moduletimedeviceclkresettimeoutmode;inputresetclk;output[5:0]timeout;output[3:0]mode;reg[3:0]mode;reg[5:0]timesave;assigntimeout=timesave;always@posedgeclkposedgeresetbeginifresetbeginmode=4b0001;timesave=6b10_0011;endelsebeginifmode==4b0001beginiftimesave0timesave=timesave-1;elsebeginmode=4b0010;timesave=6b00_0101;endendelseifmode==4b0010beginiftimesave0timesave=timesave-1;elsebeginmode=4b0100;timesave=6b01_1001;endendelseifmode==4b0100beginiftimesave0timesave=timesave-1;elsebeginmode=4b1000;timesave=6b00_0101;endendelseifmode==4b1000beginiftimesave0timesave=timesave-1;elsebeginmode=4b0001;timesave=6b10_0011;endendendendendmodule
3.3转码元件moduletimetransformtimeintimeout1timeout2;input[5:0]timein;output[3:0]timeout1;reg[3:0]timeout1;output[3:0]timeout2;reg[3:0]timeout2;reg[5:0]timesave;always@*beginiftimein=6b01_1110begintimeout1=4b0011;timeout2=timein-6b01_1110;endelseiftimein=6b01_0100begintimeout1=4b0010;timeout2=timein-6b01_0100;endelseiftimein=6b00_1010begintimeout1=4b0001;timeout2=timein-6b00_1010;endelsebegintimeout1=0;timeout2=timein;endendendmodule
3.4七段数码管显示器元件module_74HC4511LEBLLTDQ;inputLEBLLT;input[3:0]D;output[6:0]Q;reg[6:0]Q;always@*beginif!LTQ=7b111_1111;elseif!BLLTQ=7b000_0000;elseif!LEBLLTcaseD4b0000:Q=7b111_1110;4b0001:Q=7b011_0000;4b0010:Q=7b110_1101;4b0011:Q=7b111_1001;4b0100:Q=7b011_0011;4b0101:Q=7b101_1011;4b0110:Q=7b001_1111;4b0111:Q=7b111_0000;4b1000:Q=7b111_1111;4b1001:Q=7b111_1011;default:Q=7b000_0000;endcaseendendmodule
3.5交通灯输出元件modulelightmodered1green1yellow1red2green2yellow2;input[3:0]mode;outputred1green1yellow1red2green2yellow2;regred1green1yellow1red2green2yellow2;always@*beginifmode==4b0001beginred1=0;green1=1;yellow1=0;red2=1;green2=0;yellow2=0;endifmode==4b0010beginred1=0;green1=0;yellow1=1;red2=1;green2=0;yellow2=0;endifmode==4b0100beginred1=1;green1=0;yellow1=0;red2=0;green2=1;yellow2=0;endifmode==4b1000beginred1=1;green1=0;yellow1=0;red2=0;green2=0;yellow2=1;endendendmodule
3.6设计图第四章仿真结果及说明当输入reset信号时计时器开始工作,此时主干道绿灯(green1)亮,支干道红灯(red2)亮由于QuartusII在仿真以秒为单位的时间信号时仿真的时间过长无法实现所以用对比法推断对比clk输入和计时结果可知时间信号的周期增大了6倍更改分频器频率,可知,时钟信号的频率增大了4倍可见分频器有效假如将10MHz的时钟信号作为输入的时钟信号,运用分频器可以得到1Hz的时钟信号,从而实现以S为单位的倒计时功能由图中可知当倒计时为0时主干道的绿灯(green1)灭,黄灯(yellow1)亮支干道保持红灯亮不变此时当倒计时为0时,主干道黄灯(yellow1)灭,红灯(red1)亮,支干道红灯(red2)灭,绿灯(green2)亮此时当倒计时为0时,主干道保持红灯不变,支干道绿灯(green2)灭,黄灯(yellow2)亮此时当倒计时为0时,主干道红灯(red1)灭,绿灯(green1)亮支干道黄灯(yellow2)灭,红灯(red2)亮整个交通灯回到初始状态,倒计时由此循环进行此时reset信号再次输入,交通灯回到初状态,完成了交通灯的重置功能总结通过对交通灯的设计,加深了我对数字电路的理解使我对时序逻辑电路的理解更加清晰,同时熟悉了QuartusII软件的使用及其与电脑程序语言的不同通过设计交通灯,使我第一次将学习和实际设计相结合,充分了解了数字电路设计的方向与应用,同时对多人团队开发项目有了自己的了解.开始时由于不懂分频,老是无法做成功,后面经过查资料学习懂得了分频,最终实现了交通灯的设计由于交通灯需求的功能单一故本设计没有加入拓展功能售货机基于状态机的自动售货机设计摘要本设计是以现场可编程逻辑器件(FPGA)为核心的自动售货机,利用QuartusⅡ软件编写verilogHDL硬件描述语言程序以实现自动售货功能本设计主要以程序为主,并通过QuartusII软件进行仿真.其中输入信号:系统复位reset信号商品选择信号selection商品价格信号selectionMoney时钟信号clk确认购买信号finish投币信号get退出信号exit.输出信号有:商品选择信号Select是否购买成功的信号Successful当前可用钱数信号CurrentMoney找零信号Unpaid.本设计并不进行相关的硬件测验.关键字FPGA、VerilogHDL、自动售货机、QuartusⅡAbstractThisdesignisanauto-vendingmachinebasedonfieldprogrammablelogicdevicesFPGA.WeuseQuartusⅡtowriteprocedureinverilogHDLwhichisalanguagetodescribehardware.Theprocedurewillrealizethefunctionofauto-vendingmachine.Thisdesignismainlyaboutprocedure.Theinputsignalsare“ResetofSystemreset”SelectionofGoodsselectionPriceoftheGoodsselectionMoneyClockclkWhethertoBuyfinishGetCoinsgetandExitexit.TheoutputsignalsareCurrentSelectionofGoodsSelectiontheStatewhetherthegoodscanbeboughtSuccessfulCurrentMoneyAvailableCurrentMoneyandtheCoinsNeededtoreturnUnpaid.Inthedesignwewon’tusetheharddevicetodosomeexperiments.引言自动售货机是可完成无人自动售货集光、机、电一体化的商业自动化设备自动售货机不受任何场地限制方便快捷可以每天24小时售货因此深受上班族的欢迎很多城市的公共场所里面都放置有自动售货机出售的商品五花八门从饮料、零食、香烟、糖果到牙刷、方便面、自动照相机近年来我国的自动售货机行业突飞猛进:在汽车总站、商厦、医院、小区、学校等地区纷纷涌现出自动售货机的踪迹这种方便快捷的购物方式越来越受到人们的青睐同时也是现代化城市配套设施的需求因为自动售货机作为社会上完成商品零售和综合服务的独立设施所以必须要求它的结构可靠、稳定而且执行效率高传统的自动售货机控制系统采用单片机作为控制核心这样不仅会在输入输出接口上做大量的工作而且系统的抗干扰性也比较差可编程控制器(ProgrammableLogicalController,简称PLC)是综合了计算机技术、自动控制技术和通讯技术而发展起来的一种新型的工业控制装置它具有可靠性高、编程简单、维护方便等优点已在工业控制领域得到广泛地应用PLC是以CPU为核心综合了计算机技术和通信技术发展起来的一种通用的工业自动控制装置是现代工业控制的三大支柱PLC、机器人和CAD/CAM之一PLC的工作原理与计算机的工作原理基本是一致的可以简单地表述为在系统程序的管理下通过运行应用程序完成用户任务但是PLC也有它自己的特点PLC在确定了工作任务装入了专用程序后成为一种专用机它采用循环扫描工作方式系统工作任务管理及应用程序执行都是用循环扫描方式完成的目前,可编程控制器在国内外已广泛应用于钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输、环保等各行各业自动售货机以其新奇、文明、高档、灵活方便等优点深受广大市民青睐自动售货机最基本的功能是对投入的货币进行运算并根据所投入的货币数值判断是否能够购买某种商品并做出相应的反映因此售货机应能够辨识机内包含的商品能够对所投入的币值进行累计并提供所要购买的商品当按下选择商品的按钮时自动售货机根据投入的币值起动电机提取商品到出货口顾客取出商品,完成此次交易在实际生活中,我们见到的售货机可以销售一些简单的日用品,如饮料、常用药品和小的生活保健用品等售货机的基本功能就是对投入的货币进行运算,并根据货币数值判断是否能够购买某种商品,并做出相应的反应举一个简单的例子来说明例如售货机中有8种商品,其中01号商品(代表第一种商品)价格为
1.50元,02商品为
2.50元,其余类推现投入1个1元硬币,当投入的货币超过01商品的价格时,01商品的选择按钮处应有变化,提示可以购买,其他商品同比当按下选择01商品的价格时,售货机进行减法运算,从投入的货币总值中减去01商品的价格同时启动相应的电机,提取01号商品到出货口此时售货机继续进行等待外部命令,如继续交易,则同上,如果此时不再购买而按下退币按钮,售货机则要进行退币操作,退回相应的货币,并在程序中清零,完成此次交易由此看来,售货机一次交易要涉及加法运算、减法运算以及在退币时的除法运算,这是它的内部功能还要有货币识别系统输入系统显示系统数据系统和货币的传动等来实现完整的售货、退币功能为简单计,本次实验只要求设计一个简单的自动售货机逻辑电路它的投币口每次只能投入一枚五角或一元的硬币可以先投币此时售货机会列出当前可以购买的商品然后购买者选择想要的商品点确定购买或者退出以退回硬币;也可以先选择好商品然后再投入硬币.概要设计流程图说明:最终模块:注意:其中所有的输入端的名字一小写开头输出端的以大写开头说明:1 时钟输入信号2 确认购买的输入信号3 当前所选择的商品输入信号4 当前所选择商品的价格输入信号5 投入硬币的输入信号6 退出输入信号7 系统复位输入信号8 当前所选择的商品输出信号9 是否购买成功的输出信号10 当前共有多少可用钱数的输出信号11 找零的输出信号12 主模块113 主模块214 主模块3详细设计Verilog程序文件以及注释说明:SaleMachine
3.vCountCoin.vInformation.v仿真结果及分析及总结开始时给系统一个复位信号进行系统复位.get投币信号始终设为1,视为连续投币;在40~50ns时CurrentMoney=3’b100finish信号为1此时选择商品的价格selectionMoney=b100;由于CurrentMoney(总共投入的钱)与选择商品的价格(selectionmoney)相等,所以在40~50ns的clk信号的上升沿Successful变为1而在50ns的clk信号的下降沿不进行找零Unpaid=
0.在90~100ns接收到退出信号exit,由于每次程序在下降沿才会执行检测,所以在96ns时退出所有硬币Unpaid=3’b
101.可以发现Unpaid与总共投入的钱(CurrentMoney)相等在872ns之后由于超过了系统投币的最大的限制此时退出所有已投硬币并锁定CurrentMoney信号此时再投币Unpaid等于get(投入硬币的值),即投入多少退出多少总结通过此次对自动售货机命题的分析,我懂了通过对自身设计的仿真分析修改讨论,来改进自身的程序并根据自己对程序的理解来添加程序的功能,如投入的钱过多退出钱并停止投币开始设计过一个程序变异没有任何问题,但是仿真始终没有成功,后面经过讨论才做成功了这个程序最大的收获还是同时挑战两个项目的成就感参考文献
[1]边计年,薛宏熙译.用VHDL设计电子线路[M].北京清华大学出版社,
2000.
[2]黄正谨,徐坚等.CPLD系统设计技术入门与应用.北京电子工业出版社,
2002.
[3]康华光,电子技术基础(第四版)[M].北京高等教育出版社,
1998.
[4]周润景、苏良碧,基于Quartus2的FPGA/CPLD数字系统设计实例第2版[M].北京电子工业出版社,2013
[5]赵艳华、曹丙霞、张睿,基于QuartusII的FPGA/CPLD设计与应用[M].北京电子工业出版社,2009
[6]阎石,数字电子技术基础第5版[M].北京高等教育出版社,2006
[7]周润德、拉贝艾JanM.Rabaey、AnanthaChandrakasan、BorivojeNikolie,数字集成电路:电路、系统与设计第2版 [M].北京电子工业出版社,2010
[8]PaulScherz、夏建生、王仲奕、刘晓晖,实用电子元器件与电路基础第2版 [M].北京电子工业出版社2009
[9]余志新、徐娟,数字电路 [M]广州华南理工大学出版社,2005
[10]罗炎林,数字电路 [M].北京 机械工业出版社,2006
[11]百度等搜索引擎. 。