基于FPGA的病房环境监测系统-精品 联系客服

发布时间 : 星期五 文章基于FPGA的病房环境监测系统-精品更新完毕开始阅读c6fbd3ab0b4c2e3f56276384

内蒙古科技大学毕业设计说明书(毕业论文)

开始配置AD模块采集模拟输入通道等待N数据有效?Y读取通道标志和转换结果根据通道标志处理数据输出数据结束

图5.4 A/D模块的程序设计

5.5 时钟芯片DS1302的程序设计

DS1302工作时为了对任何数据传送进行初始化,需要将复位脚置为高电平,将8位地址和命令信息装入移位寄存器,数据在时钟的上升沿串行输入,之后的时钟周期开始读操作,将8位地址发送到DS1302,然后数据在时钟的下降沿串行输出。关于时间的寄存器共有7个,分别为秒、分、时、日、月、周、年寄存器。

开始变量初始化使DS1302不具备写保护复位端产生高电平复位端产生高电平写DS1302地址延时一段时间写DS1302地址延时一段时间从该地址读数据地址增加向该地址写数据N数据读完?地址增加YN输出数据数据写完?Y结束

图5.5 时钟芯片DS1302的程序设计

34

内蒙古科技大学毕业设计说明书(毕业论文)

5.6 LCD显示程序设计

LCD1602使用首先调用清屏命令,将LCD上的数据清除掉,再设置LCD的显示模式为8位2行点阵,显示器开、光标不闪烁、文字不动,光标自动右移。设置结束后,检测显示模式键是否按下,若按下更改显示模式。按键检测完毕后,读取显示数据,每行的显示数据长度均为16位,第一行写完16个后,接着进行第二行的数据的显示。LCD显示的内容有温度数据、湿度数据、光照数据、时间数据等。LCD显示程序流程图如图5.6所示。

开始清屏、光标复位、计数器清零设置显示模式显示器开、光标不显示文字不动、光标自动右移N读取显示数据显示第一行数据NN显示完毕?Y显示第二行数据显示模式按键是否按下Y更改显示模式值读取显示模式值结束显示完毕?Y 图5.6 LCD的显示程序示意图

5.7 请求信息的程序设计

请求信息的核心是红外发射和接收部分。当人体进入红外发射和接收之间的通道,就阻挡了红外线的发射,红外接收部分的输出电平将会发生变化,人体的某个部分移出红外发射和接收部分,红外接收部分的输出电平将恢复为原来的电平。请求信息的程序设计如图5.7所示。红外接收部分的输出电平连接到FPGA的I/O端口,FPGA通过检测I/O端口的电平变化就可以得知是否有请求信息。有请求信息,FPGA根据I/O端口产生相应的信息,将LED服务指示灯点亮,将请求信息发送到信息传输模块。

35

内蒙古科技大学毕业设计说明书(毕业论文)

开始检测IO口状态LED请求指示灯熄灭N是请求 信息?Y产生请求信息LED请求指示灯点亮发送请求信息结束

图5.7 请求信息的程序设计

5.8 串口发送程序设计

病房的测量数据通过串口将数据上传到上位机。串口发送程序的设计如图5.8所示。FPGA将温湿度传感器测量的信号,以及光照传感器测量的信号,通过RS-232将数据传输到上位机。检测允许发送标志位,若为1则启动串口发送,否则一直检测发送标志位。为了上位机能够正确的接收数据,加上了开始标识符,然后是温度数据、湿度数据、光照数据、温度上限、温度下限、湿度上限、湿度下限、光照上限、光照下限、服务信息。每次数据组成一个数据包,数据包的长度为76,开始标识符为ABCD,数据包的格式如表5.1所示。在系统的设计中,设计了4个房间。房间1和房间2的数据都有温度、湿度、光照。房间3和房间4的数据只有温度数据。

表5.1 串口数据包格式

开始标房间1房间1房间1房间2房间2房间2房间3房间3识符

温度 湿度 光照 温度 湿度 光照 温度 温度 36

内蒙古科技大学毕业设计说明书(毕业论文) 开始N发送数据允许发送Y发送标识符读取光照数据读取温度数据发送数据发送数据读取温度、湿度、光照报警数据读取湿度数据发送数据结束读取光照数据 图5.8 串口的程序设计

5.9 本章小结

本章对下位机的主要程序进行了分析和设计,给出了程序的流程图。设计使用的方法是自上向下,逐步分解,分而治之。模块化设计控制了程序设计的复杂性,设计的系统易于维护和功能扩充。

将下位机的程序按功能分割成一些小模块,这些模块有温度模块、湿度模块、AD转换模块、DS1302的时钟模块、请求信息模块、按键控制模块、显示模块、通信模块。这些模块如果只有程序内部的改动、输入输出端口没有改动,那么不用重新改动连线。所以程序的设计要尽量采用模块化设计的方法。

37