数电研讨医用生产线控制电路.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数电研讨医用生产线控制电路

数字电子技术研讨报告医用生产线控制电路梁桥梦信1009【研讨要求】设计一个医用生产线控制电路能够设定每瓶药片数目;如每瓶50片;每24瓶为一箱,计数到18箱停止。要求用软件设计,并仿真;2~3人一组,明确工作分工;写出项目研究报告—项目方案,设计过程,仿真结果,要求每个人就自己负责的部分写出分报告,同时,要完成group的总报告。【目录】项目方案设计过程(分报告)仿真结果心得体会【项目方案】首先我们根据老师所给要求以及提示将电路大致分为两部分:输入部分和计数部分。本来想以此分工,但是不久便发现输入部分的功能较多,而计数部分功能较为单一,设计的工作量分配不均匀。我们一起将电路再细分为了一个个模块。以模块为单位的设计流程图如下:按键输入寄存器BCD-二进制转换器【高位】BCD-二进制转换器【低位】7447加法器7447计数器1(n)计数器2(24)计数器3(18)计数脉冲总计数器74477447744774477447输入部分的主要功能是由一个键盘输入一个设定值,用于给计数部分设定初值,即每瓶所装药片的个数,经由寄存器选择十位和个位分别有两个数码管显示出来,在经由加法器相加得到二进制计数值。输入部分主要由一个输入按键、一个寄存器(选择输入十位或各位数据)2个7段数码管和一个加法器组成。计数部分是这个医用生产线电路的主要功能性部分。计数部分的作用是完成生产线的自动计数功能,即根据输入的片数进行分瓶,而后每24瓶自动计为一箱,计到18箱停止。计数部分主要由一个n模计数器、一个模24计数器、一个模18计数器构成装配计数器,由五个模十计数器构成总计数器,再输出到数码管。这些器件都是由VDHL语言实现的,这个语言只需要设定输入输出端口,并赋予相应功能即可,不注重内部结构只关心输入输出功能,工程性很强。在数字电路设计仿真上十分常用。结合quartus ii软件可以根据情况产生一个元件,并且画出波形图,只需要把相应的管脚加入列表即可,节省了很多的时间。Quartus ii 这一软件还有许多很强大的功能,也可以用固定的元件搭造组合器件。这个软件让我们在仿真时感觉十分简洁方便。在具体设计时,我们以模块为单位进行了分工,其中键盘、寄存器和BCD-二进制转换器主要由张梦皓设计,加法器、分计数器和总计数器主要由梁桥设计。【设计过程】张梦皓:键盘、寄存器和BCD-二进制转换器梁桥:加法器、三个分计数器和总计数器输入键盘首先是输入键盘元件,我们采用的是4*4的一个键盘如下图所示,根据案件的行数和列数确定输入,再输出想对应数字。比如我按下第一行第一列的数字,则输出为1,而第一行第二列就输出2。我还设定A代表着十位,B代表着个位,输入时应先按下A再输入十位,然后按下B 再输入个位。同时我还规定D 为清零键。程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;?ENTITY KEYBOARD IS PORT(//定义管脚CLK: IN STD_LOGIC;ROW: IN STD_LOGIC_VECTOR(3 DOWNTO 0); //行向量COL: IN STD_LOGIC_VECTOR(3 DOWNTO 0); //列向量DATA: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);F:OUT STD_LOGIC; //给寄存器判断是否有输入EN1: OUT STD_LOGIC;EN2: OUT STD_LOGIC;EN3: OUT STD_LOGIC);END ENTITY KEYBOARD;?ARCHITECTURE RTL OF KEYBOARD ISSIGNAL MID: STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL NUM: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,ROW,COL)BEGINMID=(ROWCOL);IF (CLKEVENT AND CLK=1) THENCASE MID IS //WHEN NUM=0001; //第一行第一列为1WHEN NUM=0010; //第一行第二列为2WHEN NUM=0011;WHEN NUM=0100;WHEN NUM=0101;WHEN NUM=0110;WHEN NUM=0111;WHEN NUM=1000;WHEN NUM=1001;WHEN NUM=0000;WHENUM=1010;EN1=0;EN

文档评论(0)

yuguanyin2015 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档