整理病房呼叫系统带程序.docx

上传人:b****7 文档编号:15847556 上传时间:2023-07-08 格式:DOCX 页数:22 大小:119.92KB
下载 相关 举报
整理病房呼叫系统带程序.docx_第1页
第1页 / 共22页
整理病房呼叫系统带程序.docx_第2页
第2页 / 共22页
整理病房呼叫系统带程序.docx_第3页
第3页 / 共22页
整理病房呼叫系统带程序.docx_第4页
第4页 / 共22页
整理病房呼叫系统带程序.docx_第5页
第5页 / 共22页
整理病房呼叫系统带程序.docx_第6页
第6页 / 共22页
整理病房呼叫系统带程序.docx_第7页
第7页 / 共22页
整理病房呼叫系统带程序.docx_第8页
第8页 / 共22页
整理病房呼叫系统带程序.docx_第9页
第9页 / 共22页
整理病房呼叫系统带程序.docx_第10页
第10页 / 共22页
整理病房呼叫系统带程序.docx_第11页
第11页 / 共22页
整理病房呼叫系统带程序.docx_第12页
第12页 / 共22页
整理病房呼叫系统带程序.docx_第13页
第13页 / 共22页
整理病房呼叫系统带程序.docx_第14页
第14页 / 共22页
整理病房呼叫系统带程序.docx_第15页
第15页 / 共22页
整理病房呼叫系统带程序.docx_第16页
第16页 / 共22页
整理病房呼叫系统带程序.docx_第17页
第17页 / 共22页
整理病房呼叫系统带程序.docx_第18页
第18页 / 共22页
整理病房呼叫系统带程序.docx_第19页
第19页 / 共22页
整理病房呼叫系统带程序.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

整理病房呼叫系统带程序.docx

《整理病房呼叫系统带程序.docx》由会员分享,可在线阅读,更多相关《整理病房呼叫系统带程序.docx(22页珍藏版)》请在冰点文库上搜索。

整理病房呼叫系统带程序.docx

整理病房呼叫系统带程序

一、环境影响评价的发展与管理体系、相关法律法规体系和技术导则的应用

(2)是否符合国家产业政策和清洁生产标准或要求。

(1)内涵资产定价法

2.规划环境影响报告书的审查内容

4.环境保护地方性法规和地方性规章

(3)环境影响技术评估。

(三)环境标准和环境影响评价技术导则

(1)结合评价对象的特点,阐述编制安全预评价报告的目的。

市场价格在有些情况下(如对市场物品)可以近似地衡量物品的价值,但不能准确度量一个物品的价值。

三者的关系为:

(五)安全预评价方法

燕山大学

课程设计说明书

 

题目:

病房呼叫系统

 

燕山大学课程设计(论文)任务书

院(系):

电气工程学院基层教学单位:

电子实验中心

学号

学生姓名

专业(班级)

设计题目

病房呼叫系统

●用一个数码管显示呼叫信号的号码;

●没信号呼叫时显示0,有多个信号呼叫时,显示优先级最高的呼叫号;

●用5个拨码开关设置功能键,1号优先级最高,1-5号优先级依次降低;

●用指示灯指示对应的病房有呼叫,同时蜂鸣器响3秒。

 

●具有复位功能;

●用动态数码管和双色点阵显示呼叫的病房号。

●学会使用Max+PlusII软件、VerilogHDL语言和实验箱;

●独立完成电路设计,编程下载、连接电路和调试;

●参加答辩并书写任务书。

1.了解EDA的基本知识,学习使用软件Max+PlusII,下发任务书,开始电路设计;

2.学习VerilogHDL语言,用VerilogHDL进行程序设计

3.学习使用实验箱,继续电路设计;

4.完成电路设计;

5.答辩并书写任务书。

《数字电子技术基础》.阎石主编.高等教育出版社.

《EDA课程设计A指导书》.

指导教师签字

李婷郑兆兆

基层教学单位主任签字

李鑫滨

2014年1月10日

 

第1章摘要…………………………………………………………………………………1

第2章引言…………………………………………………………………………………1

第3章基本原理……………………………………………………………………………1

第4章系统设计……………………………………………………………………………1

4.1系统的设计要求……………………………………………………………………1

4.2系统的总体设计……………………………………………………………………2

4.3系统的设计思路……………………………………………………………………2

4.4波形仿真……………………………………………………………………………4

4.5VerilogHDL源程序………………………………………………………………7

4.6管脚锁定及硬件连线………………………………………………………………11

第5章总结………………………………………………………………………………13

参考文献……………………………………………………………………………………13

 

第一章摘要

EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。

 

第二章引言

随着科学技术的发展,越来越多的科技设备应用到生活的方方面面,其中在医疗领域尤其多。

病房呼叫系统这个设计就是应用于医院的一个简单的系统模型,其目的是为了方便医护人员更好地照顾病人,提高工作效率。

病房呼叫系统的优先编码设置可以让相对更需要救助的病人第一时间得到救助,其蜂鸣器和数码管、点阵等设置可以直观的提醒医护人员是否有病房呼叫及呼叫的病房号。

 

第三章基本原理

病房呼叫系统共有五个部分,有病房呼叫及复位部分,动态数码管显示数字部分,双色点阵显示部分,指示灯部分以及蜂鸣器部分。

根据不同的部分定义模块写程序,使系统能够实现预期的功能。

利用EDA技术进行电子系统的设计,是用软件的方式设计硬件。

用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的,在设计过程中可以用相关的软件进行仿真。

最后将程序下载到实验箱中用硬件模拟病房呼叫系统。

 

第四章病房呼叫系统的设计

4.1系统的设计要求

设计一个病房呼叫系统,该系统具有:

5个拨码开关设置功能键,分别编号1~5对应五个病房,1号优先级最高,1~5号优先级依次降低;

一个数码管,显示呼叫信号的号码,当没信号呼叫时显示0,有多个信号呼叫时,显示优先级最高的呼叫号;

双色点阵,显示呼叫的病房号;

5个指示灯,指示对应的病房有呼叫;

警报器(蜂鸣器),有病房呼叫信号时响3秒;

至零端,即复位功能。

4.2系统的总体设计

将该病房呼叫系统命名为top,根据该系统的设计要求,其外部端口如图1.1所示。

图1.1病房呼叫系统的外部端口

各个I/O端口的作用:

(1)CLK为外部时钟信号,R为复位信号,高电平有效。

(2)T是一个5位输入信号,若其中某一位为高电平,表示对应病房发出呼叫信号。

(3)L是一个5位输出信号,当L输出一个高电平时,对应的红色指示灯点亮,表示对应病房有呼叫信号。

(4)ROW是一个8位输出信号,RA和GA都是5位输出信号,控制双色点阵显示呼叫信号标号。

(5)SS是一个3位输出信号,输出数码管位选信号,Q是7位输出信号,输出数码管段选信号,SS、Q控制数码管显示呼叫信号标号。

(6)SPEAKER用于控制扬声器发生,当SPEAKER=“1”时,蜂鸣器发出蜂鸣,

表示有呼叫信号产生。

4.3系统的设计思路

根据设计要求,整个系统分为四个模块:

呼叫模块:

发出呼叫信号,红色发光指示灯指示呼叫信号对应的病房号;

动态数码管模块:

显示对应呼叫的病房号;

双色点阵模块:

显示呼叫信号对应的病房号;

蜂鸣器模块:

有病房呼叫时蜂鸣器响三秒。

设计的总体结构如图1.2所示。

下面再简要说明各组成部分的功能:

图1.2总体结构

(1)呼叫模块(call):

该模块共6个输入信号,8个输出信号,其中T1到T5表示1号到5号病房,优先级从T1到T5依次降低。

高电平表示病房发出呼叫,R为复位键,高电平表示发出复位信号。

L1到L5控制五个红色发光指示灯,当输出高电平时指示灯点亮。

C1到C3为该模块输出的优先编码信号,用于控制其他三个模块。

呼叫模块属于优先编码,真值表如下:

R

T1

T2

T3

T4

T5

C1

C2

C3

1

X

X

X

X

X

0

0

0

0

0

0

0

0

0

0

0

0

0

1

X

X

X

X

0

0

1

0

0

1

X

X

X

0

1

0

0

0

0

1

X

X

0

1

1

0

0

0

0

1

X

1

0

0

0

0

0

0

0

1

1

0

1

(2)动态数码管模块(number):

该模块共4个输入信号,10个输出信号,C1到C3为从呼叫模块接受的信号,通过数码管显示对应病房呼叫号。

CLK为时钟信号,控制位选扫描。

SS0到SS2为输出的位选信号,选中对应的数码管显示呼叫号,在此模块中通过控制SS0、SS1、SS2的值从000到111循环让8端数码管依次循环显示,时钟频率为1KHz,位选信号每ms变化一次,便观察到8位数码管同时显示。

Q1到Q7输出数码管段选信号,控制数码管显示病房呼叫号。

动态数码管段选信号真值表

C1

C2

C3

Q1

Q2

Q3

Q4

Q5

Q6

Q7

NUM

0

0

0

1

1

1

1

1

1

0

0

0

0

1

0

1

1

0

0

0

0

1

0

1

0

1

1

0

1

1

0

1

2

0

1

1

1

1

1

1

0

0

1

3

1

0

0

0

1

1

0

0

1

1

4

1

0

1

1

0

1

1

0

1

1

5

(3)双色点阵模块(matrix):

该模块共4个输入信号,18个输出信号,C1到C3为从呼叫模块接受的信号。

CLK为时钟信号,控制点阵的行列扫描。

在此模块中,CLK信号控制ROW1到ROW8依次为0,频率为1KHz,通过RA1到RA5、GA1到GA5向对应的列输出高电平,控制双色点阵显示呼叫号。

其显示效果如图所示:

W

RA1

RA2

RA3

RA4

RA5

000

0

0

0

0

0

001

0

0

0

0

0

010

0

1

1

1

0

011

0

1

0

1

0

100

0

1

0

1

0

101

0

1

0

1

0

110

0

1

1

1

0

111

0

0

0

0

0

W

GA1

GA2

GA3

GA4

GA5

000

1

1

1

1

1

为了使点阵显示更加美观,在第一行增加五个绿点,当点阵显示数字不为零时,对应绿点变红。

当双色点阵显示“0”时,其RA、GA的赋值如右表所示。

W为控制列循环的中间变量。

(4)蜂鸣器模块(buzzer):

该模块共4个输入信号,1个输出信号,C1到C3为从呼叫模块接受的信号,当信号产生变化且不为0的时候,SPEAKER输出3秒的高电平控制蜂鸣器响三秒。

CLK为1KHz的输入时钟信号,即每毫秒输出一个上升沿,设置变量N初值为3072,每个上升沿减1,当N=0时3s结束时,蜂鸣器不再响。

 

4.4波形仿真

4.4.1呼叫模块的波形仿真如图1.3所示。

当T1为1时,L1输出1,C[1:

3]输出001,;当T2为1时,L2输出1,C[1:

3]输出010,以此类推……

图1.3呼叫模块波形仿真

4.4.2动态数码管模块波形仿真如图1.4所示。

SS[2:

0]为数码管位选信号,随着CLK信号上升沿依次选中8位数码管。

Q[1:

7]为数码管段选信号,当C[1:

3]输入000时,Q[1:

7]输出1111110,数码管显示“0”;当C[1:

3]输入001时,Q[1:

7]输出0110000,数码管显示“1”;以此类推……

图1.4动态数码管模块波形仿真

4.4.3双色点阵波形仿真如图1.5、图1.6所示。

ROW[1:

8]为双色点阵行信号,随着CLK信号上升沿由各位循环为零实现行扫描。当双色点阵显示“0”时:

ROW1=0时,RA[1:

5]=00000、RA[1:

5]=11111;ROW2=0时,RA[1:

5]=00000、GA[1:

5]=00000;ROW3=0时,RA[1:

5]=01110、GA[1:

5]=00000;ROW4=0时,RA[1:

5]=01010、GA[1:

5]=00000;ROW5=0时,RA[1:

5]=01010、GA[1:

5]=00000;ROW6=0时,RA[1:

5]=01010、GA[1:

5]=00000;ROW7=0时,RA[1:

5]=01110、GA[1:

5]=00000;ROW8=0时,RA[1:

5]=00000、GA[1:

5]=00000。当双色点阵显示“1”时,与显示“0”时类似,红色点处列信号RA对应为1,绿色点处列信号GA对应为1。

图1.5双色点阵显示0时的波形仿真

图1.6双色点阵显示1时的波形仿真

 

4.4.4蜂鸣器模块波形仿真如图1.7所示

当输入信号C[1:

3]为001时,SPEAKER输出1并持续3秒,当输入信号变化时SPEAKER继续输出1并持续三秒。

图中忽略了计时用的CLK信号。

图1.7蜂鸣器模块波形仿真

 

4.4.5总体结构波形仿真如图1.8所示

图1.8总体结构波形仿真图

 

4.5VerilogHDL源程序

/*呼叫模块*/

modulecall(R,T,C,L);

inputR;

input[1:

5]T;//对应五个病房

output[1:

3]C;//优先编码输出

output[1:

5]L;//红色发光指示灯

reg[1:

3]C;

reg[1:

5]L;

always@(RorT)

begin

casex({R,T})

'b1XXXXX:

beginC='b000;L='b00000;end

'b000000:

beginC='b000;L='b00000;end

'b01XXXX:

beginC='b001;L='b10000;end

'b001XXX:

beginC='b010;L='b01000;end

'b0001XX:

beginC='b011;L='b00100;end

'b00001X:

beginC='b100;L='b00010;end

'b000001:

beginC='b101;L='b00001;end

endcase

end

endmodule

/*数码管模块*/

modulenumber(SS,C,Q,CLK);

input[1:

3]C;

inputCLK;

output[2:

0]SS;

output[1:

7]Q;

reg[2:

0]SS;//定义位选寄存器

reg[1:

7]Q;//定义数选寄存器

reg[0:

2]WX;

always@(posedgeCLK)

begin

if(WX=='b111)

begin

SS<='b111;//位选赋值

WX<='b000;

end

else

SS<=WX;

WX<=WX+1;

end

always@(C)

begin

case(C)

'b000:

Q='b1111110;

'b001:

Q='b0110000;

'b010:

Q='b1101101;

'b011:

Q='b1111001;

'b100:

Q='b0110011;

'b101:

Q='b1011011;

endcase

end

endmodule

/*双色点阵模块*/

modulematrix(C,ROW,RA,GA,CLK);

input[1:

3]C;

inputCLK;

output[1:

8]ROW;

output[1:

5]RA;

output[1:

5]GA;

reg[1:

8]ROW;

reg[1:

5]RA;

reg[1:

5]GA;

reg[0:

2]S;

reg[0:

2]W;

always@(posedgeCLK)

begin

if(S=='b111)

S='b000;

else

S=S+1;

case(S)

'b000:

ROW='b01111111;

'b001:

ROW='b10111111;

'b010:

ROW='b11011111;

'b011:

ROW='b11101111;

'b100:

ROW='b11110111;

'b101:

ROW='b11111011;

'b110:

ROW='b11111101;

'b111:

ROW='b11111110;

endcase

end

always@(posedgeCLK)

begin

if(W=='b111)

W='b000;

else

W=W+1;

case({C,W})

/*双色点阵显示0*/

'b000000:

beginRA='b00000;GA='b11111;end

'b000001:

beginRA='b00000;GA='b00000;end

'b000010:

beginRA='b01110;GA='b00000;end

'b000011:

beginRA='b01010;GA='b00000;end

'b000100:

beginRA='b01010;GA='b00000;end

'b000101:

beginRA='b01010;GA='b00000;end

'b000110:

beginRA='b01110;GA='b00000;end

'b000111:

beginRA='b00000;GA='b00000;end

/*双色点阵显示1*/

'b001000:

beginRA='b10000;GA='b01111;end

'b001001:

beginRA='b00000;GA='b00000;end

'b001010:

beginRA='b00100;GA='b00000;end

'b001011:

beginRA='b01100;GA='b00000;end

'b001100:

beginRA='b00100;GA='b00000;end

'b001101:

beginRA='b00100;GA='b00000;end

'b001110:

beginRA='b01110;GA='b00000;end

'b001111:

beginRA='b00000;GA='b00000;end

/*双色点阵显示2*/

'b010000:

beginRA='b01000;GA='b10111;end

'b010001:

beginRA='b00000;GA='b00000;end

'b010010:

beginRA='b01110;GA='b00000;end

'b010011:

beginRA='b00010;GA='b00000;end

'b010100:

beginRA='b01110;GA='b00000;end

'b010101:

beginRA='b01000;GA='b00000;end

'b010110:

beginRA='b01110;GA='b00000;end

'b010111:

beginRA='b00000;GA='b00000;end

/*双色点阵显示3*/

'b011000:

beginRA='b00100;GA='b11011;end

'b011001:

beginRA='b00000;GA='b00000;end

'b011010:

beginRA='b01110;GA='b00000;end

'b011011:

beginRA='b00010;GA='b00000;end

'b011100:

beginRA='b01110;GA='b00000;end

'b011101:

beginRA='b00010;GA='b00000;end

'b011110:

beginRA='b01110;GA='b00000;end

'b011111:

beginRA='b00000;GA='b00000;end

/*双色点阵显示4*/

'b100000:

beginRA='b00010;GA='b11101;end

'b100001:

beginRA='b00000;GA='b00000;end

'b100010:

beginRA='b01010;GA='b00000;end

'b100011:

beginRA='b01010;GA='b00000;end

'b100100:

beginRA='b01110;GA='b00000;end

'b100101:

beginRA='b00010;GA='b00000;end

'b100110:

beginRA='b00010;GA='b00000;end

'b100111:

beginRA='b00000;GA='b00000;end

/*双色点阵显示5*/

'b101000:

beginRA='b00001;GA='b11110;end

'b101001:

beginRA='b00000;GA='b00000;end

'b101010:

beginRA='b01110;GA='b00000;end

'b101011:

beginRA='b01000;GA='b00000;end

'b101100:

beginRA='b01110;GA='b00000;end

'b101101:

beginRA='b00010;GA='b00000;end

'b101110:

beginRA='b01110;GA='b00000;end

'b101111:

beginRA='b00000;GA='b00000;end

endcase

end

endmodule

 

/*蜂鸣器模块*/

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

/*顶层模块*/

moduletop(R,T,CLK,L,ROW,RA,GA,SS,Q,SPEAKER);

inputR;

input[1:

5]T;

inputCLK;

output[1:

5]L;

output[1:

8]ROW;

output[1:

5]RA;

output[1:

5]GA;

output[2:

0]SS;

output[1:

7]Q;

outputSPEAKER;

wire[1:

3]X1;

callu1(.R(R),.T(T),.L(L),.C(X1));

numberu2(.CLK(CLK),.C(X1),.SS(SS),.Q(Q));

matrixu3(.CLK(CLK),.C(X1),.ROW(ROW),.RA(RA),.GA(GA));

buzzeru4(.CLK(CLK),.C(X1),.SPEAKER(SPEAKER));

endmodule

4.6管脚锁定及硬件连线

R

PIN46

L1

PIN12

ROW4

PIN176

RA4

PIN193

T1

PIN39

L2

PIN13

ROW5

PIN177

RA5

PIN195

T2

PIN40

L3

PIN14

ROW6

PIN179

GA1

PIN68

T3

PIN41

L4

PIN15

ROW7

PIN187

GA2

PIN70

T4

PIN44

L5

PIN1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2