1、输入输出X13.2 模五计数器以及灯闪烁五秒的模拟 模五计数器电路图如图2所示。图2 模五计数器电路图如图先将74193接成模五计数器,当有病房呼叫时CLR为0,计数器计数,当没有病房呼叫时计数器清零,通过调节clock输入脉冲的频率来实现闪烁五秒的控制。3.3 显示病房号功能 显示病房号功能的电路图如图3所示。图3 显示病房号的电路图说明:该模块的输入为74148的输入,通过7447七段字形译码器进译码,将结果输出到半导体数码管进行显示。3.4 设计总图 设计总图如图4所示。图4 设计总图护士将action调节为1,表示工作。当有病人呼叫时,数码管显示优先级高的病房号,所有的指示灯均亮。74
2、193和脉冲输入clock来控制灯闪烁5秒。该设计基本上实现了病房呼叫系统的基本要求。4 仿真结果图5 3号床位呼叫仿真图3号床位呼叫仿真图如图5所示。开始时,7447输出编码为0000001,相应的半导体数码管显示为0.当3号病房呼叫,闪烁灯开始闪烁5秒,out3指示灯亮,7447输出编码为:0000110,对应的显示数字符号为3.护士按下action使其为0,实现复位。图6 2、3、4号床位同时呼叫仿真图2,3,4病房同时呼叫的仿真图如图6所示。2、3、4同时呼叫时闪烁灯开始闪烁5秒,out2,out3,out4指示灯亮,7447输出编码为:0010010,对应的数码显示为2.图7 复位后
3、新一轮的呼叫仿真图复位后新一轮的呼叫仿真图如图7所示。护士复位后,开始新一轮的病房呼叫。图8 优先级高的呼叫仿真图优先级高的呼叫仿真图如图8所示。优先级高的呼叫时,在还没处理低的优先级时,有高优先级呼叫,数码显示会变成高优先级病房号的显示。设计总结本设计是为在病人紧急需要时能很快进行救治的呼叫系统,增强医护人员更好的监护病人。此系统的优点特色在于可以设立呼叫优先等级而不是单纯的病人呼叫,这样避免在有多个病人同时呼叫时,医护人员不知道应该先救治哪个。 在设计初期我不知道当有多个病人同时发出信号呼叫时,优先信号被优先编码器编码后,再经过译码显示后,医护人员处理完高级别信号,按下清零键;怎么样认其他
4、病人的信号按照优先级别先后显示?当多信号同时呼叫时,对较低等级的呼叫信号不知道怎么处理,才能保证当高级别的信号被清零后,低级别的信号能及时的由系统自动呼出,而不再需要人为的控制输出的问题始终没有能找到合适有效的方法。还有就是如何实现在医护人员已处理完毕当前呼叫的病人后,系统对当前呼叫信号的清零以保证其他呼叫信号能够及时的呼出以便医护人员能及时的对其他病人进行救治,从而避免因系统对病人呼叫信号的延迟导致病人不能及时接受护理而产生的严重后果。特别是控制清零这个问题苦恼了我很长的时间,后来才在我翻阅相关书籍和浏览相关网站时找到了解决问题的办法,才知道这些问题可以通过对锁存器的合理使用来一一解决。这也
5、使我对学习的认识有了更深入的了解,对理论联系实际有了更加深刻的体会。参考文献1 Mark Zwolinski.Digital System Design with VHDL.电子工业出版社,20022 汪国强.SOPC技术与应用.机械工业出版社,20063 范忠.实用数字电子技术.电子工业出版社,19984 刘延飞.数字电子技术实验与仿真.西北工业大学出版社,20105 侯建军,郭勇.SOPC技术基础教程.清华大学出版社,2008附录 设计程序1:非门library ieee;use ieee.std_logic_1164.all;entity as_not isport(a:in std_l
6、ogic; f:out std_logic);end as_not;architecture behave of as_not isbegin f=not a;end behave;2:2输入与非门entity as_nand2 is b:end as_nand2;architecture behave of as_nand2 is=a nand b;3:2输入与门entity as_and2 isend as_and2;architecture behave of as_and2 is=a AND b;4:优先编码器74148entity as_74148 is port(D:in std_
7、logic_vector(7 downto 0); E1: Q:out std_logic_vector(2 downto 0); GS:out std_logic; E0:end as_74148;architecture rtl of as_74148 is process(E1,D) begin if(e1=1) then Q=111; GS= E0 elsif(D=11111111 and E1=0 elsif(D(7)=)then000 elsif(D(6)=001 elsif(D(5)=010 elsif(D(4)=011 elsif(D(3)=100 elsif(D(2)=101
8、 elsif(D(1)=110 elsif(D(0)= else end if; end process;end rtl;5:7447数码显示:use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity as_7447 is port(num:in std_logic_vector(3 downto 0);dout:out std_logic_vector(6 downto 0);end as_7447;architecture a1 of as_7447 iswith num selectdout1111110 when 0000, 0110000000111011010010111100100110110011010010110110101101111101101110000011111111111000111101110010000000 when others;end a1; 6:D触发器entity as_d is CP: R: QB:end as_d;architecture rtl of as_d is process(CP,R) if(CP event and cp= if(R= QB ELSE=D;=not D; end if;end process;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1