病房呼叫系统文档格式.docx
《病房呼叫系统文档格式.docx》由会员分享,可在线阅读,更多相关《病房呼叫系统文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
一、课程设计思路
1.1设计题目:
1.2设计要求:
1、用1〜5个开关模拟5个病房的呼叫输入信号,1号优先级为最高,2-3号优先级居中,4-5号优先级最低;
2、用一个数码管显示呼叫病房的号码:
没有呼叫时显示0,有多个病房呼叫时,显示优先级最高的呼叫号,相同优先级显示最先呼叫号;
3、对所有未处理的呼叫进行存储,当护士站处理完当前的呼叫号后,数码管按照优先级顺序,显示剩余呼叫中优先级较高者;
4、凡有呼叫发出3秒的呼叫声。
1、整体设计思路:
根据设计要求,我们将设计分为几个模块来设计,分别为:
锁存模块、选优模块(对病房选优)、选优模块2(对复位选优)、计时模块、显示模块、喇叭模块。
2、整体设计流程:
(1)数据选择器(选优):
对发出呼叫的病房进行优先选择,选择优先级最高的一个病房号,病房号从1到5号,1号病房拥有最高优先级,2,3号病房拥有第二优先级,4,5号病房拥有第三优先级。
(2)计时器:
病房呼叫系统中要求凡有呼叫发出,喇叭都会发出声音提示,提
示时间为3个时钟周期,即3秒。
(3)显示器:
用一个数码管显示呼叫信号的号码,选择当前呼叫病房号码中优先级最高的病房号码进行显示。
同一优先级中的号码,显示时间上相对较早的号码显示。
(4)喇叭:
当任一病房发出呼叫信号,喇叭都会发出3秒提示声,提示有病房呼叫,此时医师处于受理状态,关闭喇叭,当医师再次回到岗位,打开喇叭,如有其它病房发出呼叫(即数码管数字发生变化),则喇叭发出提示声。
、课程设计过程
1.1模块分配
1.选优模块
采用状态机,将五个输入分成三个优先级
2.计时模块
将1HZ的脉冲计数三次,得到一个三秒的延时
3.显示模块
使用译码,将对应号码用数码管显示出来
4•喇叭模块
将一中频脉冲直接输入喇叭端口
1.2模块具体设计
1.选优模块:
采用状态机,并设有四个状态,分别为SO,S1,S2,S3,其中SO
表示无输入时的状态,S1表示第一优先级,即一号病房开关打开有效,此时其他病房开关情况对它无影响;
S2表示第二优先级,即二号或三号病房开关打开有效,此时若一号病房开关打开,就跳转到S1,其余开关情况对它无影响;
S3表示第三优先级,即四号或五号病房打开有效,若此时一号或者二三号病房开关打开,就
跳转到相应的状态S1或S2。
代码如下:
CASENEXT_STATEIS
WHENS0=>
QQ<
="
000"
;
WHENS仁>
001"
WHENS2=>
IFSIN="
00010"
THEN
010"
ELSIFSIN='
"
00100"
THEN
011"
ENDIF;
WHENS3=>
IFSIN="
01000"
QQv="
100"
ELSIFSIN="
10000"
101"
ENDCASE;
2.计时模块:
将1HZ的脉冲计数三次,得到一个三秒的延时,具体是用一个模为3的计数器。
计时过程中设一进位标志Q,提示计时结束,使喇叭停止鸣叫。
对应代码如下:
IF(CLK'
EVENTANDCLK='
1'
)THEN
IF(Q='
IF(QOUT<
11"
Q0UT<
=Q0UT+1;
ELSE
QOUT<
00"
3.显示模块:
过程中设有中间信号量QQ记下对应病房号,之后再通过译码程序,将QC译成对应的长度为七位的LED变量,通过数码管显示出来。
程序代码如下:
CASEQQIS
WHEN"
=>
LED<
1111110"
0110000"
1101101"
1111001"
0110011"
1011011"
WHENOTHERS=>
LEDv="
ZZZZZZZ"
4•喇叭模块:
考虑到喇叭鸣叫需要脉冲,直接将一中频脉冲输入喇叭端口,喇叭模块要和计时模块结合,计时结束后,喇叭立即停止鸣叫,值得注意的是,脉冲的输入应放在计时的部分的外面。
PROCESS(Q,QOUT)IS
BEGIN
MING<
=CLK1;
='
0'
ENDPROCESS;
三、课程设计综合介绍
3.1仿真结果
图1
图1为喇叭部分的仿真结果,其中RST为置位开关,为低电平时,输入无反应;
CLK为1Hz的脉冲,通过它计时;
CLK1为喇叭的鸣叫脉冲,可以接通256Hz的脉冲;
BCD为五个病房输入,高电平表示病房开关打开;
MING为喇叭的输出,
直接接喇叭端口即可。
图2为最终的响应现象,其中RST为置位开关;
CLK为1Hz的脉冲;
CLK1为喇叭鸣叫脉冲;
SIN为五个输入;
SOUT为对应的七个输出,最终接到数码管;
MING为喇叭的输出。
3.2实验结果
当RST处于低电平时,五个病房的情况不会显示,若有单一病房开关打开,
则立即显示此病房的病房号,若同时多个病房输入,则优先级高的显示,同一优先级的按输入先后顺序输出。
此种现象完全达到课题要求,实验成功。
四、心得与体会
我们对这个课题刚开始设计了和现在不同的方案,然后顶层设计时发现并不能很好的出现好的效果,而且连接之后模块也比较复杂,所以我们重新思考之后就有了现在模块的初稿,但是在顶层设定好之后,跑实验箱是显示的结果并不如预期的,多次调试没出结果之后,我们找出错误,首先从自身下手,顶层直接用元件例化,选它的优点是比较简洁明了,当问题再次出现时我考虑到了每个模块的逻辑问题,经过一个一个排除找出问题,解决了喇叭不工作、数码管工作模式错误、计时模块不复位等问题,终于圆满的完成了实验的要求。
经过此次课程设计,我们对VHDL有了更为深刻的了解,见识到了VHDL语言功能的强大,使以后的继续学习有了更大的兴趣和热情,对这次让人收获颇丰的课程设计表示感谢。
参考文献
[1]谭会生,张昌凡.EDA技术及应用.[M].西安电子科技大学出版社:
2004
[2]李国红,沈明山.可编程器件EDA技术及实践.[M].机械工业出版社:
[3]顾辉,华宏新.基于FOGA勺VHDL语言.[M].高等教育出版社:
2005
程设计独创性声明:
学生签名(手写):
指导教师评语:
课程设计成绩:
指导教师签名:
教研室意见:
教研室主任签名:
附件
程序代码:
顶层模块
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYCALLSIS
PORT(CLK,CLK1,RST:
INSTD_LOGIC;
SIN:
INSTD_LOGIC_VECTOR(4DOWNTO0);
A:
OUTSTD_LOGIC;
SOUT:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
MING:
OUTSTD_LOGIC);
ENDENTITY;
ARCHITECTUREARTOFCALLSIS
COMPONENTFENGMINGIS
BCD:
ENDCOMPONENTFENGMING;
TYPESTATESIS(S0,S1,S2,S3);
SIGNALNEXT_STATE:
STATES;
SIGNALQQ:
STD_LOGIC_VECTOR(2DOWNTO0);
SIGNALLED:
STD_LOGIC_VECTOR(6DOWNTO0);
A<
U1:
FENGMINGPORTMAP(CLK,CLK1,RST,SIN,MING);
PROCESS(RST,CLK,NEXT_STATE)IS
IFRISING_EDGE(CLK1)THEN
OOO"
IFRST='
IFSIN(0)='
NEXT_STATE<
=S1;
ELSIFSIN
(1)='
ORSIN
(2)='
=S2;
ELSIFSIN(3)='
ORSIN(4)='
=S3;
ELSENEXT_STATE<
=SO;
WHENS1=>
=S0;
IFSIN
(1)='
ELSIFSIN
(2)='
IFSIN(3)='
ELSIFSIN(4)='
SOUT<
=LED;
ENDART;
喇叭部分
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYFENGMINGIS
ENDFENGMING;
ARCHITECTUREbhvOFFENGMINGIS
SIGNALQOUT:
STD_LOGIC_VECTOR(1DOWNTO0):
SIGNALQ:
STD_LOGIC;
PROCESS(BCD)IS
IF(BCD>
00000"
)THEN
Qv='
Q<
ELSEQ<
PROCESS(CLK)IS
=QOUT+1;
ELSEQOUT<
ENDARCHITECTURE;