EDA病房呼叫系统.doc_第1页
EDA病房呼叫系统.doc_第2页
EDA病房呼叫系统.doc_第3页
EDA病房呼叫系统.doc_第4页
EDA病房呼叫系统.doc_第5页
免费预览已结束,剩余14页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河北科技大学课程设计报告学生姓名: 张路来 学 号: 08L0704121 专业班级: 电子科学与技术 L081班 课程名称: EDA技术课程设计 学年学期: 2011 2012 学年第 1 学期 指导教师: 武瑞红 寇平勉 2 0 11 年 12 月课程设计成绩评定表学生姓名张路来学 号08L0704121成绩专业班级电科L081起止时间2011.11.212011.12.2设计题目EDA病房呼叫系统指导教师评语指导教师: 年 月 日目 录 一、课程设计的目的及要求 二、 课程设计的任务 三、课程设计的内容及设计思路 四、病床呼叫系统的组成及原理图 五、病房呼叫系统整体程序六、心得体会一、 课程设计的目的及要求EDA技术是电子应用类选修模块的一门重要的技术基础课程,也是应用电子技术、自动控制、计算机应用及通信工程等专业的技术基础课程。课程设计的目的是通过前面对本课程的学习,学生已经掌握了可编程逻辑器件的基本知识、基本结构和工作原理,可编程逻辑器件的设计过程,基本EDA工具软件的使用方法以及初步学会运用VHDL进行数字电子系统描述的方法。但是这种认识是很肤浅很抽象的,需要对课堂讲授的理论知识通过实践和实物予以验证,以便加深对专业学习的理解。本课程设计就是使学生实际动手设计数字电路,熟练掌握VHDL语言的实际应用方法,了解FPGA的基本构成,掌握EDA实验箱的硬件配置及MAX plus II软件平台的使用方法,使学生综合运用所学知识,培养利用EDA技术解决实际问题的初步能力。为今后运用现代化手段从事有关数字电子系统方面的设计和研究开发工作打下基础。二、课程设计的任务1 培养学生综合运用所学专业知识解决实际问题的能力;2 使学生初步掌握开展科学研究的工作步骤和基本方法;3 初步培养学生正确表达技术路线和研究成果的能力;4初步培养学生生探索科学技术前沿问题的兴趣;5基本掌握硬件描述语言,可编程逻辑器件,及其开发环境。三、课程设计的内容及设计思路参数要求:用5个拨码开关设置功能键,1号优先级最高,1-5号优先级依次降低用一个数码管显示呼叫信号的号码,没信号呼叫时显示0;有多个信号呼叫时,显示优先级最高的呼叫号用led灯指示对应的病房有呼叫,用静态数码管显示呼叫的病房号,用蜂鸣器发出蜂鸣,有呼叫时蜂鸣3秒。四、病床呼叫系统的组成及原理图病床呼叫系统由74HC148、反相器及与门构成。8线-3线优先编码器74HC148,允许同时输入两个及两个以上的信号,在设计优先编码器时已经将所有的输入信号按优先顺序排了队,当几个输入信号同时出现时,只对优先级别最高的一个进行编码显示。74HC148器件图及其功能表如下: 输 入 输 出EIN0N 1N 2N 3N 4N 5N 6N 7NA0N A1N A2N EON GSN1000000000X X X X X XX X1 1 1 1 1 1 1 1X X X X X XX 0 X X X X X X0 1 X X X X X 0 1 1 X X X X 0 1 1 1 X X X 0 1 1 1 1 X X 0 1 1 1 1 1 X 0 1 1 1 1 1 10 1 1 1 1 1 1 11 1 11 1 10 0 00 0 1 0 1 00 1 11 0 01 0 11 1 01 1 11 10 11 01 01 01 01 01 01 01 0 正常工作时EIN=0,其中7N0N的优先级依次降低,输出分别对应07,本次设计要求15号病床输入信号时分别显示15,其中1号优先级最高,故15号病床输入分别对应6N2N。又因为74HC148输入低电平有效,因此信号输入端口由反相器和6N2N相连。编码器正常工作,无信号输入时,EON=0,有信号输入时EON=1输出端口A0N,A1N,A2N分别与EON相与后作为编码器的输出信号。这样便可以实现当有病床呼叫时,通过反相器,优先编码器编译成相应的号码;当无信号输入时,EON=0,显示模块显示出000的输出信号。床位呼叫控制系统电路原理图如下: 2、蜂鸣器呼叫时间系统介绍及原理图 在有床位呼叫时,蜂鸣器开始响,三秒钟结束,本设计利用74160十六进制计数器控制时间。74160为同步十六进制计数器,通过时钟信号触发从零开始计数,计到十五,进位端输出高电平同时状态回到零重新计数。芯片有异步置零端,和异步置位,可以接成小于十六进制的任意进制计数器,其芯片图和真值表如下:计数器本次设计用1HZ的时钟频率,用一个74160接成3进制计数器,进位端取反与时钟信号相与,接到74160的时钟信号输入端口。当有进位时,即进位输出为1时,取反即为0,与时钟信号相与后仍然是0。由于没有时钟信号的输入,74160停止工作,即停止计数。从开始计数到停止计数时间为三秒钟。病床控制模块中的三个输出端口,取或,输出为Y,既与74160的CLRN(异步置零端)相连,又和74160进位取反后的输出相与后接蜂鸣器。没有病床呼叫时,Y=0,此时蜂鸣器不响,74160的初态均为零,进位也为零,取反为1;当有病床呼叫时,Y=1与进位取反相与为1,即蜂鸣器开始响。计数器开始工作,三秒钟之后,进位端输出1,取反为0,与时钟信号相与为0,计数器停止工作,同时,蜂鸣器停止蜂鸣。直到下一次病床呼叫再开始工。蜂鸣器呼叫时间控制系统电路图如下:3、系统显示及原理图系统显示包括LED灯显示和数码管显示两部分。 LED灯显示模块LED灯显示模块电路图如下:当有病床呼叫时,通过病床呼叫控制模块输出相应的二进制病床号001101,通过74138 3线8线译码器译出Y1Y5相应的高低电平,控制LED 灯的亮灭。Y1Y5中某个低电平时对应LED15中某个灯亮。74HC138芯片介绍:74HC138为3线-8线译码器,将输入的一组二进制代码转换为一组与输入代码一一对应的高低电平信号74HC138及其功能表如下: 输 入 输 出G1G2AN+G2BNC B AY0N Y1N Y2N Y3N Y4N Y5N Y6N Y7N0X11111111 X 1 0 0 0 0 0 000X X XX X X0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 10 1 1 1 1 1 1 11 0 1 1 1 1 1 11 1 0 1 1 1 1 11 1 1 0 1 1 1 11 1 1 1 0 1 1 11 1 1 1 1 0 1 11 1 1 1 1 1 0 11 1 1 1 1 1 1 0数码管显示模块病床呼叫控制模块的输出端,通过管脚锁定,与试验箱数码管相连接,显示呼叫的病床号码。4、蜂鸣器模块蜂鸣器模块含有一个蜂鸣器和一个线跳器,当使用蜂鸣时,此跳线短接。同时独立扩展下载板CPLD/FPGA的JP2/CF的SPEAKER接高电平时,蜂鸣器工作。将系统输出端口S经管脚锁定到“CPLD/FPGA扩展板”的PIN38号管脚如下图所示。输出端S高电平时蜂鸣器工作。系统原理图连接如下:5、仿真波形图6、管脚锁定连接好的原理图的输入与输出端口必须经过管脚锁定与“CPLD/FPGA扩展板”相连接,下边简要介绍床呼叫系统的管脚锁定输入端口管脚锁定 输入端口15管脚锁定 时钟信号输入管脚锁定输出端口管脚锁定 数码管输出信号管脚锁定 LED灯输出信号管脚锁定 蜂鸣器输出端口管脚锁定第五章 病房呼叫系统整体程序一、锁存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SUOCUNQI IS PORT(REST:IN STD_LOGIC_VECTOR(7 DOWNTO 0); SIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); SOUT1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); SOUT2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); SOUT3:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END SUOCUNQI;ARCHITECTURE bhv OF SUOCUNQI IS SIGNAL SOUT:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(REST,SIN) BEGIN IF REST(0)=1 AND SIN(0)=0 THEN SOUT(0)=1; ELSE SOUT(0)=0; END IF; IF REST(1)=1 AND SIN(1)=0 THEN SOUT(1)=1; ELSE SOUT(1)=0; END IF; IF REST(2)=1 AND SIN(2)=0 THEN SOUT(2)=1; ELSE SOUT(2)=0; END IF; IF REST(3)=1 AND SIN(3)=0 THEN SOUT(3)=1; ELSE SOUT(3)=0; END IF; IF REST(4)=1 AND SIN(4)=0 THEN SOUT(4)=1; ELSE SOUT(4)=0; END IF; IF REST(5)=1 AND SIN(5)=0 THEN SOUT(5)=1; ELSE SOUT(5)=0; END IF; IF REST(6)=1 AND SIN(6)=0 THEN SOUT(6)=1; ELSE SOUT(6)=0; END IF; IF REST(7)=1 AND SIN(7)=0 THEN SOUT(7)=1; ELSE SOUT(7)=0; END IF;END PROCESS;SOUT1=SOUT;SOUT2=SOUT;SOUT3=SOUT;END ARCHITECTURE bhv;二、选优模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY XUANYOU IS PORT(SOUT:IN STD_LOGIC_VECTOR(7 DOWNTO 0); YOU1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); YOU2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END XUANYOU;ARCHITECTURE bhv OF XUANYOU ISSIGNAL YOU:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(SOUT,YOU) BEGIN IF SOUT(0)=1 THEN YOU=0001; ELSE IF SOUT(1)=1 THEN YOU=0010; ELSE IF SOUT(2)=1 THEN YOU=0011; ELSE IF SOUT(3)=1 THEN YOU=0100; ELSE IF SOUT(4)=1 THEN YOU=0101; ELSE IF SOUT(5)=1 THEN YOU=0110; ELSE IF SOUT(6)=1 THEN YOU=0111; ELSE IF SOUT(7)=1 THEN YOU=1000; ELSE YOU1=0000; END IF; END IF; END IF; END IF; END IF; END IF; END IF; END IF;END PROCESS;YOU1=YOU;YOU2=YOU;END ARCHITECTURE bhv;三、计时选优模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY XUANYOU2 IS PORT(REST:IN STD_LOGIC_VECTOR(7 DOWNTO 0); SOUT3:IN STD_LOGIC_VECTOR(7 DOWNTO 0); YOU1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); ZQ:OUT STD_LOGIC; LJ:OUT STD_LOGIC); END XUANYOU2;ARCHITECTURE bhv OF XUANYOU2 ISBEGIN PROCESS(YOU1) BEGIN IF YOU1=0001 THEN LJ=REST(0); ELSE IF YOU1=0010 THEN LJ=REST(1); ELSE IF YOU1=0011 THEN LJ=REST(2); ELSE IF YOU1=0100 THEN LJ=REST(3); ELSE IF YOU1=0101 THEN LJ=REST(4); ELSE IF YOU1=0110 THEN LJ=REST(5); ELSE IF YOU1=0111 THEN LJ=REST(6); ELSE IF YOU1=1000 THEN LJ=REST(7); END IF; END IF; END IF; END IF; END IF; END IF; END IF; END IF; END PROCESS; PROCESS(SOUT3)BEGIN IF YOU1=0001 THEN ZQ=SOUT3(0); ELSE IF YOU1=0010 THEN ZQ=SOUT3(1); ELSE IF YOU1=0011 THEN ZQ=SOUT3(2); ELSE IF YOU1=0100 THEN ZQ=SOUT3(3); ELSE IF YOU1=0101 THEN ZQ=SOUT3(4); ELSE IF YOU1=0110 THEN ZQ=SOUT3(5); ELSE IF YOU1=0111 THEN ZQ=SOUT3(6); ELSE IF YOU1=1000 THEN ZQ=SOUT3(7); END IF; END IF; END IF; END IF; END IF; END IF; END IF; END IF; END PROCESS; END ARCHITECTURE bhv;四、时间模块LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALLUSE IEEE.STD_LOGIC_UNSIGNED.ALLENTITY TIME ISPORT(REST,SP,CLK :IN STD_LOGIC;SECOND1,SECOND2,MINITUE1,MINITUE2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END TIME;ARCHITECTURE ONE OF TIME ISSIGNAL TIMECLK,MINI:STD_LOGIC;SIGNAL SEC1,SEC2:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL MINI1,MINI2:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINMINITUE1(3 DOWNTO 0)=MINI1(3 DOWNTO 0);MINITUE2(3 DOWNTO 0)=MINI2(3 DOWNTO 0);SECOND1(3 DOWNTO 0)PROCESS(CLK,SP)VARIABLE CNT:INTEGER RANGE 0 TO 20000000;-分频 1SBEGINIF CLKEVENT AND CLK=1AND SP=1 THEN CNT:=CNT+1; IF CNT10000000 THEN TIMECLK=1; ELSIF CNT20000000 THEN TIMECLK=0; ELSE CNT:=0;TIMECLK=0; END IF; END IF;END PROCESS;-PROCESS(TIMECLK,REST) -计时部分程序BEGIN IF(REST=0) THEN MINI2 =0000; MINI1 =0000; SEC2=0000; SEC1=0000; ELSIF (TIMECLKEVENT AND TIMECLK=1)THEN -检验时钟上升沿 IF SEC11001THEN SEC1=SEC1+1; ELSE SEC1=0000;IF SEC20101THEN SEC2=SEC2+1; ELSE SEC2=0000;IF MINI11001THEN MINI1=MINI1+1;ELSEMINI1=0000; IF MINI20101THEN MINI2=MINI2+1;ELSEMINI2=0000;END IF;END IF;END IF;END IF;END IF;END PROCESS; END ONE;五、连接模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY SQU ISPORT(SECOND1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); SECOND2:IN STD_LOGIC_VECTOR(3 DOWNTO 0); MINITUE1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); MINITUE2:IN STD_LOGIC_VECTOR(3 DOWNTO 0); JISHI:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END SQU;ARCHITECTURE ONE OF SQU ISBEGINJISHI(15 DOWNTO 12)=SECOND1;JISHI(11 DOWNTO 8)=SECOND2;JISHI(7 DOWNTO 4)=MINITUE1;JISHI(3 DOWNTO 0)=MINITUE2;END ARCHITECTURE ONE; 六、 蜂鸣模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FENGMING IS PORT( BCD:IN STD_LOGIC_VECTOR(15 DOWNTO 0); MING:OUT STD_LOGIC);END FENGMING;ARCHITECTURE bhv OF FENGMING ISSIGNAL ING:STD_LOGIC;BEGINPROCESS(BCD)BEGINIF BCD=0000000000000000 THEN ING=1;ELSE IF BCD=0001000000000000 THEN ING=0;ELSE IF BCD=0010000000000000 THEN ING=0;ELSE IF BCD=0011000000000000 THEN ING=0;ELSE IF BCD=0100000000000000 THEN ING=0;ELSE IF BCD=0101000000000000 THEN ING=0;ELSE ING=1;IF BCD=0000000000110000 THEN ING=0;ELSE IF BCD=0001000000110000 THEN ING=0; ELSE IF BCD=0010000000110000 THEN ING=0;ELSE IF BCD=0011000000110000 THEN ING=0;ELSE IF BCD=0100000000110000 THEN ING=0; END IF; END IF; END IF; END IF; END IF; END IF; END IF; END IF; END IF; END IF; END IF;MING=ING;END PROCESS;END ARCHITECTURE bhv;七、显示模块USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DISPLAY ISPORT( CLK:IN STD_LOGIC; SECOND1,SECOND2,MINITUE1,MINITUE2:IN STD_LOGIC_VECTOR(3 DOWNTO 0); YOU:IN STD_LOGIC_VECTOR(3 DOWNTO 0);-显示病房 DISP:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-显示代码 LEDCS:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)-数码管片选 );END DISPLAY;ARCHITECTURE ONE OF DISPLAY ISSIGNAL CLK_1K:STD_LOGIC; SIGNAL DATA:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINCLK_1KHZ:PROCESS(CLK)-产生1k的扫描信号 VARIABLE CNT:INTEGER RANGE 0 TO 20000; BEGIN IF RISING_EDGE(CLK)THEN CNT:=CNT+1; IF CNT10000THEN CLK_1K=1; ELSIF CNT20000THEN CLK_1K=0; ELSE CNT:=0;CLK_1K=0; END IF; END IF; END PROCESS;PROCESS (CLK_1K) -显示 VARIABLE CNT2:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE CNT3:INTEGER RANGE 0 TO 2; VARIABLE CNT:INTEGER RANGE 0 TO 2500000;BEGINIF CLK_1KEVENT AND CLK_1K=1THEN CNT2:=CNT2+1;IF CNT2=0001THEN LEDCS=00010000; DATA=MINITUE2; ELSIF CNT2=0010 THENLEDCS=00001000;DATA=MINITUE1; ELSIF CNT2=0011 THENLEDCS=00000100;DATA=1010; ELSIF CNT2=0100 THEN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论