图2-2 系统原理框图
2.2 各模块设计
该系统主要包括显示模块,键盘模块,声音模块,接口电路四部分组成。
2.2.1 LED显示模块设计
主要由74HC164和数码管组成的,通过串口输入和串口输出把号码显示到数码管上。通过74HC164来实现,在程序中主要是用循环来实现给一个时钟信号,输入一个数据,当有按键按下时,数码管将显示出是几号床位上的病人呼叫,而且一直在显示,直到有护士发现。
数码管显示
LED发光器件一般常用的有两类:数码管和点阵。7段数码管属于LED发光器件的一种。7段数码管由8个发光二极管LED组成,其中包括7个细长型的LED和1个小数点型的LED,每个LED称为一字段,分别为a、b、c、d、e、f、g、dp共8段,其中dp为小数点,单片机驱动LED数码管有静态显示和动态扫描显示两种方法,其中后者较为常用。
动态扫描方法是用其接口电路把所有显示器的8个笔画字段(a-g和dp)同名端线在一起,而每一个显示器的公共极COM各自独立的接受I/O线控制,CUP向字段输出端口输出字型码时,所有显示器接收到相同的字型码,但究竟使用哪个显示器,则取决于COM端,而这一端是由I/O控制的,由单片机决定何时显示哪一位。动态扫描用分时的方法轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间极为短暂,但由于人的视觉暂留现象及发光二极管的余辉效应, 给人的印象就是一组稳定的显示数据。动态显示需要分时显示,需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多,但使用的硬件少,可以大幅度地降低硬件成本和电源的功耗,还可以节省线路板空间。本设计共使用6位7段数码管,采用动态扫描方式显示。
2.2.2 键盘模块设计
四个按键占用了四个I/O口,分别接在AT89S51单片机最小系统P1口的P1.4-P1.5引脚上。通过不断的扫描 I/O口是高电平还是低电平来判断是否有病人呼叫,是通过循环实现的。同时还需要考虑到一些问题,例如,当有多个病人同时呼叫时,能使互不干扰。
2.2.3 声音模块设计
利用蜂鸣器来实现,蜂鸣器报警占用了四个I/O口, 分别接在P2口的P2.4-P2.7引脚上.蜂鸣器如图2-4所示: