燕大课设 病房呼叫系统程序设计版Word文档下载推荐.docx

上传人:b****5 文档编号:21770087 上传时间:2023-02-01 格式:DOCX 页数:21 大小:184.44KB
下载 相关 举报
燕大课设 病房呼叫系统程序设计版Word文档下载推荐.docx_第1页
第1页 / 共21页
燕大课设 病房呼叫系统程序设计版Word文档下载推荐.docx_第2页
第2页 / 共21页
燕大课设 病房呼叫系统程序设计版Word文档下载推荐.docx_第3页
第3页 / 共21页
燕大课设 病房呼叫系统程序设计版Word文档下载推荐.docx_第4页
第4页 / 共21页
燕大课设 病房呼叫系统程序设计版Word文档下载推荐.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

燕大课设 病房呼叫系统程序设计版Word文档下载推荐.docx

《燕大课设 病房呼叫系统程序设计版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《燕大课设 病房呼叫系统程序设计版Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。

燕大课设 病房呼叫系统程序设计版Word文档下载推荐.docx

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

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

●具有复位功能;

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

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

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

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

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

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

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

4.完成电路设计;

5.编程下载、连接电路、调试和验收;

答辩并书写任务书。

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

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

指导教师签字

基层教学单位主任签字

说明:

此表一式四份,学生、指导教师、基层教学单位、系部各一份。

2011年12月30日

燕山大学课程设计评审意见表

指导教师评语:

①该生学习态度(认真较认真不认真)

②该生迟到、早退现象(有无)

③该生依赖他人进行设计情况(有无)

平时成绩:

指导教师签字:

2012年1月5日

图面及其它成绩:

答辩小组评语:

①设计巧妙,实现设计要求,并有所创新。

②设计合理,实现设计要求。

③实现了大部分设计要求。

④没有完成设计要求,或者只实现了一小部分的设计要求。

答辩成绩:

组长签字:

课程设计综合成绩:

答辩小组成员签字:

2012年1月5日

目录

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

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

第3章课程设计容………………………………………………………………………1

3.1设计要求及说明……………………………………………………………………1

3.2VerilogHD设计源序………………………………………………………………6

3.3波形仿真图…………………………………………………………………………9

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

3.5习题………………………………………………………………………………12

第4章总结………………………………………………………………………………12

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

第一章

摘要

当今社会,随着老龄化的加剧,医院里的病人有增加的趋势,而医务人员的配置则显得原来越来越捉襟见肘。

原本本着服务病人为第一位,但每个床位附带一个医务人员又不现实的。

所以为了更好的服务生病人员,急需要一种紧急呼叫装置,放在床边,在病人需要的时候打开开关,发出紧急呼救信号,召唤不在身边的医生护士。

这样不但病患可以得到的更好的救治,同时也减少了对医护人员数量的需求,减少医院的压力。

第二章

引言

本人设计的为一个小型的紧急呼叫装置,只可以作为一个模型,但却可以完完全全模拟各种现实中的情况。

该呼叫装置有优先级的判断功能,即当不同优先级的开关打开后,只显示其优先级最高的相对应的现象,其他的优先级被屏蔽。

当优先级最高的开关被关掉之后,次优先级被释放,响应端做出相应响应。

第三章

课程设计的内容

3.1设计要求及说明:

3.11设计要求

要求设计一个病房呼叫系统,要求有五个拨码开关设置功能键,要求有置零端。

要求由动态数码管显示呼叫病房号码。

没有呼叫时显示0,还要求有优先功能,1号为最优先,1-5号依次降低。

指示灯也要求在有呼叫时对应的亮起来。

为了提高课设难度还增加了双色点阵与动态晶体管同时显示房间号,而且是八个一起工作。

同时还要求有蜂鸣器在呼叫时响三秒的时间。

3.12设计分析(初步)

①根据要求我们需要R、T1、T2、T3、T4、T5六个输入端。

还要求有双色点阵的响应这包括ROW1-8.LIN1-8,十六个输出端口。

动态晶体管包括位选SS0、SS1、SS2数选Q(1-7)共十个输出端。

再有指示灯的5个输出及一个蜂鸣器的输出,共计38个端口。

进一步分析之后我们发现时钟信号CLK,也是必须的。

②为完成该程序我们需要把任务分成几个部分:

优先编码模块、动态晶体管控制模块、指示灯控制模块、双色点阵控制模块、

蜂鸣器控制模块。

3.13各个模块的逻辑设计与分析

①优先编码模块:

由于只有1-5个拨吗开关,所以实际是5-3优先编码,当然由于有复位功能的要求,所以要求5-3优先编码模块要有复位开关R。

要求T1优先级最高1-5依次次之。

则真知表如下图。

R

T1

T2

T3

T4

T5

C1

C2

C3

1

x

输出信号为C1,C2,C3,值为000-101显示六种状态,数值为0-5,分别表示:

置0态(无优先状态),T1优先态,T2优先态,T3优先态,T4优先态,T5优先态。

②动态晶体管控制电路。

首先必须知道动态晶体管的工作方式,八个动态晶体管公用一组数选输入口,所以在要求所有的晶体管同时工作,这就要求通过位选输入信号端,要有很高的频率来不断地选择这八个动态数码管。

当位选信号分别为000-111时,选中数码管DS8A-DS1A。

为此我们急需要一个八位的计数器重复不断的输出000-111的信号。

在位选的同时,数选输出相应的数字信号。

这又需要对动态数码管进行编译,通过C的六状态写出动态数码管的7位数选信号,真知表见下图。

动态数码管数选信号编译:

Qa

Qb

Qc

Qd

Qe

Qf

Qj

显示

2

3

4

5

动态数码管位选信号编译

W

SS2

SS1

SS0

选中数码管

000

DS8A

001

DS7A

010

DS6A

011

DS5A

100

DS4A

101

DS3A

110

DS2A

111

DS1A

这里的W信号为八进制计数器提供的,由于这八个数不断变化,所以选中的数码管也不断变化,当变化速度足够快时,看起来就是一起工作的了。

③信号灯控制模块。

这一部分很简单,只要C1C2C3的六种不同组合的译出6组五位不同的高电平即可,即3-5译码器。

真值表如下图:

信号灯控制信号编译:

E1

E2

E3

E4

E5

④双色点阵控制模块

首先要了解双色点阵的工作原理,由于设计的要求只使用双的点阵的红色点部分(或绿色点)。

红(绿)灯亮要求这一点所在的这一行必须是低电平,而其所在的列为高电平。

如果要产生图形的话需要不停地轮换的给予1-8行低电平信号,在适时的情况下给予某列高电平。

这跟动态数码管的位选有些相似,不过这次要求的是八个信号,ROW1-8,需要由八位的计数器的输出信号

这个信号同时将对下面的双色点阵显示提供输入扫描信号。

双色矩阵ROW信号编译:

R1

R2

R3

R4

R5

R6

R7

R8

随着8进制计数器的输出信号W的变化,双色点阵依次选中ROW1-ROW8,并提供低电平。

与此同时如果对列施以相应的高电平信号的话,就可以产生想要的图形。

看下图,对LIN信号的编译即可产生0—5。

双色矩阵LIN信号编译:

当C=000,显示图象“0”

L1

L2

L3

L4

L5

L6

L7

L8

当C=001,显示图象“1”

0.

当C=010,显示图象“2”

0

当C=011,显示图象“3”

当C=100,显示图象“4”

当C=101,显示图象“5

⑤蜂鸣器控制模块

蜂鸣器的响应是根据C的变化,由于C的数值为0-5,当C=0时蜂鸣器不响,

开关打开当C第一次大于零,蜂鸣器想响一次,这时有一个优先级,它的大小由C表示,C越大优先级越小。

这时低级优先级,被屏蔽,如果此时有低级优先级被屏蔽,高级优先级被关闭后,次级的应该会被释放显示出来,所以要一直监视C的变化,当C增大时,次级优先级释放,蜂鸣器要再响三秒。

至于蜂鸣器的三秒持续,我们用循环解决,使用1024HZ的频率时钟,计数3072,就可以延时三秒的时间,误差不会超过1ms。

这里蜂鸣模块,没有真值表,功能的实现完全由程序完成。

程序在这里就不再赘述,因为下节将会详细阐明。

3.2VerilogHDL设计源序

以下即为所有程序:

moduleWORK(E,SS,D,ROW,LIN,Q,T,R,CLK);

/**********************初始化标出I/O口及中间变量*************************/

input[1:

5]T;

inputR;

inputCLK;

outputD;

output[1:

5]E;

output[2:

0]SS;

8]ROW;

8]LIN;

7]Q;

regD;

integerA;

integerB;

reg[1:

reg[2:

reg[0:

2]C;

3]W;

3]Q_TIMED;

/********主程序,输出动态?

体管控制信号Q,SS,和指示等信号E,以及控制信C,******/

always@(TorR)

begin

casex({R,T})

'

b1xxxxx:

beginQ='

b1111110;

C='

b000;

E='

b00000;

end

b000000:

b01xxxx:

b0110000;

b001;

b10000;

b001xxx:

b1101101;

b010;

b01000;

b0001xx:

b1111001;

b011;

b00100;

b00001x:

b0110011;

b100;

b00010;

b000001:

b1011011;

b101;

b00001;

endcase

always@(posedgeCLK)

case(W)

b000:

SS='

b001:

b010:

b011:

b100:

b101:

b110:

b110;

b111:

b111;

/******************双色点阵,在C,W控制下实现0—5的图形输出****************/

/************八进制计数程序段,为双色点阵提供扫描信号*************/

if(Q_TIMED<

b111)Q_TIMED=Q_TIMED+1;

elseQ_TIMED='

该处即为八进制计数器的编译程序

W=Q_TIMED;

always@(CorW)

begin

case({C,W})

/********************信号C=0,输出0图象****************************/

beginROW='

b01111111;

LIN='

b00111100;

b10111111;

b01000010;

以下为双色矩阵的程序编译部分

b000010:

b11011111;

b000011:

b11101111;

b000100:

b11110111;

b000101:

b11111011;

b000110:

b11111101;

b000111:

b11111110;

/********************信号C=1,输出1图象****************************/

b001000:

b00001000;

b001001:

b00011000;

b001010:

b00101000;

b001011:

b001100:

b001101:

b001110:

b001111:

/********************信号C=2,输出2图象****************************/

b010000:

b010001:

b010010:

b00000010;

b010011:

b00000100;

b010100:

b010101:

b00010000;

b010110:

b00100000;

b010111:

b01111110;

/*******************信号C=3,输出3图象*****************************/

b011000:

b00111110;

b011001:

b011010:

b011011:

b011100:

b011101:

b011110:

b011111:

b00000000;

/*******************信号C=4,输出4图象*****************************/

b100000:

b100001:

b00001100;

b10

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

当前位置:首页 > 求职职场 > 面试

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

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