设计报告
题目: 病房呼叫系统设计
学院:电子信息与电气工程学院
专业: 电子信息工程
班级:
姓名:
学号:
目录
一、设计要求…………………………………….第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、调试
在设计中毫无疑问,会遇到许多问题,这就需要进行不断调试,通过实践反复试验,结合理论,不断更正才能得到预期的结果。
其实验现象如下图:
六、对设计的体会与感想
这学期我们进行了为期两周的课程设计,任务是用Verilog语言设计一个病房呼叫系统,通过这两周的课程设计,我复习了课堂上所学的知识,加深了对课堂所学理论知识的理解,掌握了运用结构化程序设计的基本思想和方法,更重要的是培养了自学能力。这次设计使我对FPGA技术有了进一步的理解,进一步加强了对实际问题的动手和思考和解决能力。但同时也暴露出了自身不足,如自主解决问题的能力有所欠缺,这在以后学习过程中需要更好地加强,在这两周中虽然每天很忙碌,但是很充足。
经过这次的的课程设计,我得到了不少收获,一方面加深了我对课本理论的认识,另一方面也提高了实验操作能力和团队合作能力。这次的设计与我们在实验课上所做的实验不同,因为这是我们真真正正的自己去完成一项设计,实验的过程全是我们自己动手来完成的,这样就必须弄懂设计的核心。在这次设计中我懂得了理论与实际结合是非常重要的,只有理论知识是完全不够的,只有把所学的理论知识与实践结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。毕竟这是第一次自己做设计,在设计过程中遇到很多问题,为此我们特意请教了老师和同学,他们也很耐心给予我们指导和帮助。
通过这次是我对专业课的学习有了更加深刻的认识,不仅要掌握,更要学会融会贯通。另外使我对quartus这个软件的使用有了跟进一步的理解,它给我们这次设计带来了很多方便,通过仿真,我们能够形象的了解原理图的功能特性。
回顾这次课程设计,从理论到实践,在这段日子里,可以说是苦多于甜,但是学到了很多东西,同时不仅巩固了以前学过的知识,而且学到了许多书本上没有学到过的知识。在设计过程中也体会到了团结精神的重要性,团结就是力量,只有在互相之间默契融洽的配合能换来最完美的结果。
七、参考文献
1、《EDA技术实用教程-VerilogHDL版(第五版)》
2、网上查阅。
3、FPGA开发技术手册
因篇幅问题不能全部显示,请点此查看更多更全内容