病房呼叫系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《病房呼叫系统EDA》
设计报告
题目:病房呼叫系统设计
学院:电子信息与电气工程学院
专业:电子信息工程
班级:
姓名:
学号:
目录
一、设计要求 (2)
二、病房呼叫系统设计背景及其研究意义 (2)
三、设计思路 (2)
四、基本原理 (3)
五、设计内容及步骤 (3)
六、对设计的体会与感想 (9)
七、参考文献 (10)
病房呼叫系统设计
一、设计要求
1、用1~6个开关模拟6个病房的呼叫输入信号,1号优先级最高;1~6优先级依次降低;
2、用一个数码管显示呼叫信号的号码;没信号呼叫时显示0;有多个信号呼叫时,显示优先级最高的呼叫号(其它呼叫号用指示灯显示);
3、凡有呼叫发出5秒的呼叫声;
4、对低优先级的呼叫进行存储,处理完高优先级的呼叫,再进行低优先级呼叫的处理。
二、病房呼叫系统设计背景及其研究意义
随着科学技术的发展,越来越多的科技设备应用到生活的方方面面,其中在医疗领域尤其多。病房呼叫系统这个设计就是应用于医院的一个简单的系统模型,其目的是为了方便医护人员更好地照顾病人,提高工作效率。病房呼叫系统的优先编码设置可以让相对更需要救助的病人第一时间得到救助,其蜂鸣器和数码管、等设置可以直观的提醒医护人员是否有病房呼叫及呼叫的病房号。
医院,在当代生活中已是必不可少,它在人们的生活中越来越扮演着重要角色,医院让我们的生活更加安心。医院的医学技术与科技设备齐全是人们生活健康的保障,而病房呼叫系统在医院病房更加必不可少,它关系的病人的安危,完善的病房呼叫系统让病人更加安心。
三、设计思路
本次课程设计的题目是病房呼叫系统,有六个病房,分别编号为1、2、3、4、5、6,其优先级依次降低。即当一号病房有信号输出的时候,即使其他病房有信号输出系统也不会响应。当二号病房有信号输出时,3、4、5号病房有信号输出系统不响应其信号。3、4、5号病房的情况同理。此过程为组合电路,有if语句完成其功能。
当病房没有信号时,动态数码管显示0。有信号输出时,动态数码管显示输出的病房号,同时蜂鸣五秒钟。当蜂鸣器输入一个高电平时,跳线器短接,开始蜂鸣。
而且,此系统具有复位功能,由一个拨码开关控制。当此开关向上拨时,输出为高电平,此时复位键有效。当复位键有效时,各个病房均无法输出信号。
四、基本原理
病房呼叫系统共有五个部分,有病房呼叫及复位部分,动态数码管显示数字部分,指示灯部分以及蜂鸣器和分频部分。根据不同的部分定义模块写程序,使系统能够实现预期的功能。
利用EDA技术进行电子系统的设计,是用软件的方式设计硬件。用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的,在设计过程中可以用相关的软件进行仿真。最后将程序下载到实验箱中用硬件模拟病房呼叫系统。
五、设计内容及步骤
1、VerilogHDL源程序设计
①/*呼叫模块*/
modulecall(R,T,C,L);
inputR;
input[1:6]T;//对应六个病房
output[1:3]C;//优先编码输出
output[1:6]L;//红色发光指示灯
reg[1:3]C;
reg[1:6]L;
always@(RorT)
begin
casex({R,T})
'b1XXXXXX:beginC='b000;L='b000000;end
'b0000000:beginC='b000;L='b000000;end
'b01XXXXX:beginC='b001;L='b100000;end
'b001XXXX:beginC='b010;L='b010000;end
'b0001XXX:beginC='b011;L='b001000;end
'b00001XX:beginC='b100;L='b000100;end
'b000001X:beginC='b101;L='b000010;end
'b0000001:beginC='b110;L='b000001;end
endcase
end
endmodule
封装如下图:
②/*数码管模块*/
modulenumber(C,Q);
input[1:3]C;
output[1:7]Q;
reg[1:7]Q;
always@(C)
begin
case(C)
'b000:Q='b1111110;
'b001:Q='b0110000;
'b010:Q='b1101101;
'b011:Q='b1111001;
'b100:Q='b0110011;
'b101:Q='b1011011;
'b110:Q='b1011111;
endcase
end
endmodule
封装如下:
③分频模块
由于开发板系统时钟为20MHz,而在设计中所需时钟为1KHz所以需通过分频得到所需时钟,通过软件自带工具建立模块如下:
④/*蜂鸣器模块*/
modulebuzzer(CLK,C,SPEAKER);
inputCLK;
input[1:3]C;
outputSPEAKER;
integerN;//定义变量N用于蜂鸣器计时
reg[1:3]M;//定义寄存器M存放C的状态用以判断C是否产生变化regSPEAKER;
always@(posedgeCLK)
begin
if(C==0)beginN<=3000;SPEAKER<=0;M<=0;end
else
if(C!=M)
begin
N<=N-1;
if(N>0)SPEAKER<=1;
elsebeginSPEAKER<=0;N<=3000;M<=C;end
/*当C变化之后小于以前那个值蜂鸣三秒,即多个输入信号T同时存在时,若优先级较高的输入消失,系统检测到新的输入,蜂鸣器响三秒*/
end
end
endmodule
封装如下:
2、在工程下完成整个电路的连接编译并进行引脚分配如下:
①工程原理图
②引脚分配如下
③编译报告如下;
3、下载到开发板并完成验证
通过下载到开发板进行分析说明,验证其功能的实现
4、调试