ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:515.90KB ,
资源ID:8232280      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8232280.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(病房呼叫系统设计与仿真设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

病房呼叫系统设计与仿真设计.docx

1、病房呼叫系统设计与仿真设计病房呼叫系统 一)、设计题目:病房呼叫系统二)、实验目的:1、 用8个开关模拟8个病房的呼叫输入信号,1号优先级最高;18优先级依次降低;2、 用一个数码管显示呼叫信号的号码;没信号时显示0;有多个信号呼叫时,显示优先级最高的呼叫号(其他呼叫用指示灯显示);用四个数码管显示呼叫等待时间(mm ss)。3、 凡有呼叫发出5秒的提示声;呼叫3分钟未处理输出报警信号。发挥部分:对低优先级的呼叫进行存储,处理完高优先级的呼叫,再进行低优先级呼叫的处理。三)、设计思路:1、整体设计思路:根据设计要求,我们将设计分为几个模块来设计,分别为:锁存模块、选优模块(对病房选优)、选优模

2、块2(对复位选优)、计时模块、显示模块、蜂鸣模块。2、整体设计流程:(1)、锁存器:对病房呼叫的信号进行存储并处理信号,需要用一个对所有的呼叫信号进行存储的锁存器。(2)、数据选择器(选优):对发出呼叫的病房进行优先选择,选择优先级最高的一个病房号,病房号从1到8优先级一次降低。(3)、数据选择器2(选优2):对时间控制信号进优先选择,这样就使得数码管显示器显示的时间为当前优先级最高的病房所呼叫的时间。(4)、计时器:病房呼叫系统中要求凡有呼叫发出,呼叫3分种未处理输出报警信号,即要求一个模块对呼叫时间计时,因此设计一个分秒计时器,对呼叫时间计时。实验箱中时钟频率为20MHZ,故计时部分需加入

3、分频,使之为1s。(5)、显示器:用一个数码管显示呼叫信号的号码,用四个数码管显示呼叫等待时间(mm ss),设计一七段数码显示器,数码片选为低电平有效,扫描信号定为1KHZ。二、课程设计过程一)、模块分配:锁存模块:选优模块、对复位选优模块:计时模块:显示模块:连接模块、蜂鸣器模块二)、模块具体设计1. 锁存模块:由于有8个病房所以设计了8个输入信号且高电平时为信号输入,另外考虑到时间模块显示的是当前等待时间,所以时间显示当前等待时间为最好,所以在锁存模块,把复位加到锁存模块,高电平的时候表示复位不工作,低电平的时候表示复位。锁存器的一个输入信号与LED灯相连,使得有呼叫信号时,与病房相对应

4、的灯亮。另外一个相同的输出信号连接选优器,对信号进行选优,还有一个相同输出信号控制计时模块中的SP信号。2. 选优模块:由设计要求,数码管要显示优先级最高的病房的呼叫信号,所以须得对病房呼叫信号进行选优,还考虑到对时间的优先级的问题,所以设计了两个优先输出信号。程序功能部分按优先病房号顺序依次输出BCD码代表的1、2、3、4、5、6、7、8.3. 选优2:考虑到复位键一一对应的问题,我们的时间模块又只用了一个,显示当前最优先病房的等待时间,所以选优2模块连在选优模块的后面以及和8个位宽的复位信号相连,然后通过选优模块,使得输出地复位信号为当前最优先的病房所对应的复位信号。锁存器模块的一个输出信

5、号也在这时进行选优,选出来的优先级最高的信号与时间模块中的SP信号对应。4. 计时模块:由设计要求计时用四个数码管显示mmss, 所以时间方面采用的是以秒进位,实验箱中的时间频率为20MHZ,所以选择了0:20000000即一秒的分频,另外由于有呼叫信号时,SP=1,我们得立即计时,所以定义了每个1秒之内出现一个上升沿,当上升沿到来时时间加计1s,另外mmss之中前一个m代表的是分的十位,后一个m代表的是分的个位,前一个s代表的是秒的十位,后一个s代表的是秒的个位。5. 显示模块:显示模块所要显示的就是优先级最高的呼叫病房的号码以及呼叫等待的时间mmss,所以在模块的设计当中,我们用中间的六个

6、数码管依次显示当前最优先呼叫病房号,分的十位,分的个位,再一个数码管显示一横杠,和秒计位区分开来。在依次是秒的十位,秒的个位。6. 连接模块:由于各个模块成功之后进行顶层设计时,时间模块和蜂鸣器模块的位宽不相等,故需要一个连接模块,使得两模块能够顺利衔接起来。连接模块的输出部分和时间模块的mmss各部分相互对应,模块输出部分位宽的15-12位与记秒的个位的3-0位对应,位宽的11-8位与记秒的十位的3-0相对应,位宽的7-4位与记分的个位的3-0相对应,位宽的3-0位与记分的十位的3-0位相对应。7. 蜂鸣器模块:考虑到计时后发出5秒的提示声以及灯亮3分钟后进行报警,所以报警器模块和时间的链接

7、模块是联系起来的,当输入为0000000100000000表示的是1秒,0000001000000000表示的是2秒,以此类推,当表示的时间是1-5秒时令蜂鸣器响,此时输出为低电平,表是的是蜂鸣器工作。当时间在6秒到3分钟之间的时候,编写程序另输出为高电平,此时蜂鸣器不工作。超过三分钟时再令蜂鸣器工作5秒,进行报警工作,此时已经达到设计要求。 三、课程设计综合介绍我们对这个模块刚开始设计了和现在不同的方案,然后顶层设计时发现并不好实现,而且连接之后模块也比较复杂,所以我们重新思考之后就有了现在模块的初稿,但是在顶层设定好之后,跑实验箱是显示的结果并不如预期的,多次调试没出结果之后,我选择了排除

8、错误,首先从自身下手,我把顶层的连接改成了用系统框图表示,选它的优点是比较直观,设想正确的话基本上不会出现什么错误,所以,当问题再次出现时我考虑到了每个模块的逻辑问题,经过一个一个找出现的问题,从时间模块的SP的高低电平的修改,再到蜂鸣器和时间表示对应的修改,再到对选优模块最后执行语句YOU归零的修改,解决了计时器一直计时、蜂鸣器不工作、病房显示号不归零等问题,终于圆满的完成了实验的要求。 一)、病房呼叫系统框图如下:二)、综合引脚配置如下:三)总体功能仿真三)、整体设计实现描述:实验箱上有8个7段数码管、16个用户LED灯(8个大LED灯,8个小LED灯)、16个开关量输入端口、8个拨码开关

9、、 蜂鸣器等。工程引脚锁定下载完后,将其下载进FPGA中,进行硬件测试。具体实现如下:实验箱中有8个7段数码管,我们只用到了其中的6个,除前两个外从左到右分别显示:病房号码、minitue2、minitue1、(横杠)、second2、 second1。对应病房号指示灯我们用8个小LED。接通电源,计时程序已下载进实验箱,蜂鸣器开始时不响,6个数码管显示000-00,拨码开关从SW1-SW7依次表示的是病房号1-7,当按下拨码开关SW1时表示2号病房开始计时,蜂鸣器接着响5秒钟然后不响,到时间记为三分钟时又开始报警。当同时按开关SW2与SW3时,病房号显示的还是2,因为病房2的优先级比病房三的

10、要高,另外病房相应的拨码开关打开后,相应的指示灯也开始亮,小灯从左到右依次显示优先级从低到高的8个病房的呼叫情况。实验的一个特色是设置了8个复位信号,我们主要考虑到一个实际问题,每一个复位键对应了当时优先级最高的一个病房的灯控和时间控制,当护士去处理优先级最高病房的呼叫信号时,按下复位键,发出一个确知信号:有护士已经去处理这件事情了。而一个复位键相较之的缺点是,当有多个呼叫信号时,按下复位键所有的信号均清零了。病房呼叫系统整体程序一、锁存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SUOCUNQI IS PORT(REST:IN STD_L

11、OGIC_VECTOR(7 DOWNTO 0); SIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); SOUT1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); SOUT2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); SOUT3:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END SUOCUNQI;ARCHITECTURE bhv OF SUOCUNQI IS SIGNAL SOUT:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(REST,SIN) BEGIN IF

12、REST(0)=1 AND SIN(0)=0 THEN SOUT(0)=1; ELSE SOUT(0)=0; END IF; IF REST(1)=1 AND SIN(1)=0 THEN SOUT(1)=1; ELSE SOUT(1)=0; END IF; IF REST(2)=1 AND SIN(2)=0 THEN SOUT(2)=1; ELSE SOUT(2)=0; END IF; IF REST(3)=1 AND SIN(3)=0 THEN SOUT(3)=1; ELSE SOUT(3)=0; END IF; IF REST(4)=1 AND SIN(4)=0 THEN SOUT(4)=

13、1; ELSE SOUT(4)=0; END IF; IF REST(5)=1 AND SIN(5)=0 THEN SOUT(5)=1; ELSE SOUT(5)=0; END IF; IF REST(6)=1 AND SIN(6)=0 THEN SOUT(6)=1; ELSE SOUT(6)=0; END IF; IF REST(7)=1 AND SIN(7)=0 THEN SOUT(7)=1; ELSE SOUT(7)=0; END IF;END PROCESS;SOUT1=SOUT;SOUT2=SOUT;SOUT3=SOUT;END ARCHITECTURE bhv;二、选优模块LIBR

14、ARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY XUANYOU IS PORT(SOUT:IN STD_LOGIC_VECTOR(7 DOWNTO 0); YOU1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); YOU2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END XUANYOU;ARCHITECTURE bhv OF XUANYOU ISSIGNAL YOU:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(SOUT,YOU) BEGIN IF SOUT(0)=1

15、THEN YOU=0001; ELSE IF SOUT(1)=1 THEN YOU=0010; ELSE IF SOUT(2)=1 THEN YOU=0011; ELSE IF SOUT(3)=1 THEN YOU=0100; ELSE IF SOUT(4)=1 THEN YOU=0101; ELSE IF SOUT(5)=1 THEN YOU=0110; ELSE IF SOUT(6)=1 THEN YOU=0111; ELSE IF SOUT(7)=1 THEN YOU=1000; ELSE YOU=0000; END IF; END IF; END IF; END IF; END IF;

16、 END IF; END IF; END IF;END PROCESS;YOU1=YOU;YOU2=YOU;END ARCHITECTURE bhv;仿真分析 根据SOUT的不同的值给YOU赋值,并将最终结果赋给YOU1和YOU2三、计时选优模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY XUANYOU2 IS PORT(REST:IN STD_LOGIC_VECTOR(7 DOWNTO 0); SOUT3:IN STD_LOGIC_VECTOR(7 DOWNTO 0); YOU1:IN STD_LOGIC_VECTOR(3 DOWNTO 0

17、); ZQ:OUT STD_LOGIC; LJ:OUT STD_LOGIC); END XUANYOU2;ARCHITECTURE bhv OF XUANYOU2 ISBEGIN PROCESS(YOU1) BEGIN IF YOU1=0001 THEN LJ=REST(0); ELSE IF YOU1=0010 THEN LJ=REST(1); ELSE IF YOU1=0011 THEN LJ=REST(2); ELSE IF YOU1=0100 THEN LJ=REST(3); ELSE IF YOU1=0101 THEN LJ=REST(4); ELSE IF YOU1=0110 TH

18、EN LJ=REST(5); ELSE IF YOU1=0111 THEN LJ=REST(6); ELSE IF YOU1=1000 THEN LJ=REST(7); END IF; END IF; END IF; END IF; END IF; END IF; END IF; END IF; END PROCESS; PROCESS(SOUT3)BEGIN IF YOU1=0001 THEN ZQ=SOUT3(0); ELSE IF YOU1=0010 THEN ZQ=SOUT3(1); ELSE IF YOU1=0011 THEN ZQ=SOUT3(2); ELSE IF YOU1=01

19、00 THEN ZQ=SOUT3(3); ELSE IF YOU1=0101 THEN ZQ=SOUT3(4); ELSE IF YOU1=0110 THEN ZQ=SOUT3(5); ELSE IF YOU1=0111 THEN ZQ=SOUT3(6); ELSE IF YOU1=1000 THEN ZQ=SOUT3(7); END IF; END IF; END IF; END IF; END IF; END IF; END IF; END IF; END PROCESS; END ARCHITECTURE bhv;仿真分析:第一个仿真图中,分别选通sout0,sout1,sout4,so

20、ut7,在选同的过程中,分别设置0,1电平,与其余电平不相同,所以可以看出选通的情况。第二个仿真图中,分别选通sout0,sout1,sout4,sout6,sout7,在选同的过程中,分别设置0,1电平,与其余电平不相同,所以可以看出选通的情况。四、时间模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TIME ISPORT(REST,SP,CLK:IN STD_LOGIC; SECOND1,SECOND2,MINITUE1,MINITUE2:OUT STD_LOGIC_VE

21、CTOR(3 DOWNTO 0);END ENTITY TIME;ARCHITECTURE ART OF TIME ISSIGNAL MINI: STD_LOGIC;-SIGNAL TIMECLK: STD_LOGIC;SIGNAL SEC1,SEC2: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL MINI1,MINI2: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINMINITUE1(3 DOWNTO 0)=MINI1(3 DOWNTO 0);MINITUE2(3 DOWNTO 0)=MINI2(3 DOWNTO 0);SECOND1(3 D

22、OWNTO 0)=SEC1(3 DOWNTO 0);SECOND2(3 DOWNTO 0)=SEC2(3 DOWNTO 0);-PROCESS(CLK,SP)-VARIABLE CNT:INTEGER RANGE 0 TO 100;-分频 1S-BEGIN-IF CLKEVENT AND CLK=1AND SP=1 THEN CNT:=CNT+1; - IF CNT50 THEN TIMECLK=1; - ELSIF CNT100 THEN TIMECLK=0; -ELSE CNT:=0;TIMECLK=0; -END IF; -END IF;-END PROCESS;-PROCESS(CLK

23、,REST,SP) -计时部分程序BEGIN IF(REST=0) THEN MINI2 =0000; MINI1 =0000; SEC2=0000; SEC1=0000; ELSIF (CLKEVENT AND CLK=1 AND SP=1)THEN -检验时钟上升沿 IF SEC11001THEN SEC1= SEC1+1; ELSE SEC1=0000; IF SEC20101 THEN SEC2=SEC2+1; ELSE SEC2=0000;IF MINI11001THEN MINI1=MINI1+1;ELSEMINI1=0000; IF MINI20101THEN MINI2=MIN

24、I2+1;ELSEMINI2=0000;END IF;END IF;END IF;END IF;END IF;END PROCESS; END ART; 仿真分析:由上图可以看出,在始终的作用下,每隔一个始终脉冲,second1进一位,second1每进10位,second2进一位,second2每进6位,minitue1进一位,minitue1每进10位,minitue2进一位。在此实验中,由于版面关系,所以没能捕捉到minitue2进位的情况。五、连接模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY SQU ISPORT(SECOND1:

25、IN STD_LOGIC_VECTOR(3 DOWNTO 0); SECOND2:IN STD_LOGIC_VECTOR(3 DOWNTO 0); MINITUE1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); MINITUE2:IN STD_LOGIC_VECTOR(3 DOWNTO 0); JISHI:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END SQU;ARCHITECTURE ONE OF SQU ISBEGINJISHI(15 DOWNTO 12)=SECOND1;JISHI(11 DOWNTO 8)=SECOND2;JISHI(7

26、DOWNTO 4)=MINITUE1;JISHI(3 DOWNTO 0)=MINITUE2;END ARCHITECTURE ONE;仿真分析进行计时,将时钟的分的十位和个位分别赋给JISHI前4位和58位,将时钟的秒的十位和个位分别赋给JISHI912位和后1316位, 六、 蜂鸣模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FENGMING IS PORT( BCD:IN STD_LOGIC_VECTOR(15 DOWNTO 0); MING:OUT STD_LOGIC);END FENGMING;ARCHITECTURE bhv OF

27、 FENGMING ISSIGNAL ING:STD_LOGIC;BEGINPROCESS(BCD)BEGINIF BCD=0000000000000000 THEN ING=1;ELSE IF BCD=0001000000000000 THEN ING=0;ELSE IF BCD=0010000000000000 THEN ING=0;ELSE IF BCD=0011000000000000 THEN ING=0;ELSE IF BCD=0100000000000000 THEN ING=0;ELSE IF BCD=0101000000000000 THEN ING=0;ELSE ING=1

28、;IF BCD=0000000000110000 THEN ING=0;ELSE IF BCD=0001000000110000 THEN ING=0; ELSE IF BCD=0010000000110000 THEN ING=0;ELSE IF BCD=0011000000110000 THEN ING=0;ELSE IF BCD=0100000000110000 THEN ING=0; END IF; END IF; END IF; END IF; END IF; END IF; END IF; END IF; END IF; END IF; END IF;MING=ING;END PR

29、OCESS;END ARCHITECTURE bhv;七、显示模块USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DISPLAY ISPORT( CLK:IN STD_LOGIC; SECOND1,SECOND2,MINITUE1,MINITUE2:IN STD_LOGIC_VECTOR(3 DOWNTO 0); YOU:IN STD_LOGIC_VECTOR(3 DOWNTO 0);-显示病房 DISP:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-显示代码 LEDCS:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)-数码管片选 );END DISPLAY;ARCHITECTURE ONE OF DISPLAY ISSIGNAL CLK_1K:STD_LOGIC; SIGNAL DATA:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINCLK_1KHZ:PROCESS(CLK)-产生1k的扫描信号 VARIABLE CNT:INTEGER RANGE 0 TO

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1