微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于便携式微电脑的多参数生理监护仪研制

基于便携式微电脑的多参数生理监护仪研制

时间:07-28 来源:中电网 点击:

模块化为软件设计模式。系统开发采用了结构化的,从上到下的模块划分及从底到上的硬件功能封装的软件开发设计方法。本系统采用C96语言进行软件系统开发。

(1)数据采集程序

数据采集到整个系统最重要的问题。如何实现数据采集,保证数据采集的实时性,并且能高效率地进行数据采集,尽可能少的时间占用少的系统资源,对于多参数同时监护的情况下,是确保系统处理的实时性的重要因素。

在软件设计中,我们利用硬件定时器及软件定时器,进行定时中断,进行多通道、多采样点的数据采集流程设计。由于人体生理信号的变化较缓慢,采用此种方法已经可以确保高精度、实时性的数据采集。

(2)液晶显示控制

系统显示功能的实现,实际上是对显示控制器SED1330的编程控制。SED1330控制器具有系统控制、显示操作、绘制操作、存储操作等共15条指令。

在进行系统显示模块的编程时,我们利用C96语言对SED1330的指令功能进行分类组合、封装,编制了一个基本的显示控制图函数库。通过对子函数的调用,非常方便地实现了复杂的人机界面程序设计。

设计的子函数如下:

lnitCD(); /*初始化SED1330*/
ClearDispBufffer(); /*对显示缓存区清零*/
ChooseScreen(screen); /*选择显示缓存区*/
SetCsrAbsAddr(addr); /*设置光标绝对位置*/
SetCsrDir(dir); /*设置光标移动方向*/
PutChar16xy(x,y,data); /*显示点阵为16×16的字体*/
SetPutPixel(x,y); /*在显示屏上显示一点*/
H_line(x1,x2,y,linestyle); /*画水平线*/
V_line(x1,y1,x2,y2); /*画垂直线*/
lnvert(x1,y1,x2,y2); /*对矩形区域反显*/
Clear(left,top,right,bottom); /*清除矩形区域*/
部分液晶显示子程序示例如下:
# include "80c196.h"
# include "data.dat"
# include "init.c"
# define UP 0x4e
# define DOWN 0x4f
# define LEFT 0x4d
# define RIGHT 0x4c
# define AP 80
# define SA1 0
# define SAD2 0x3e80
# define Max_X 640
# define Max_Y 200
# define ECQ_Y 128
# define PLUSE_Y 50
# define NORMAL ox4f
# define DOT_1 0xaa
# define DOT_2 0x66
unsigned char * comm_reg;
unsigned char * pram_reg;
unsigned int_sad;
/************************/
/* var screensvalue is:1 or 2.*/
ChooseScreen(screen)
Unsigned char screen;
{
switch(screen){
case 1:
_sad=SAD1;break;
case 2:
_sad=SAD2;break;
defaulf:
_sad=SAD1;}
}
/*************************/
lnitl_CD()
{
* comm_reg=0x40; /*SYSTEM SET */
* pram_reg=0x34;/P1 CGRAM FONT dot array(now is:8x16)*/
* pram_reg=0x87; /*P2 */
* pram_reg=0x07;
* pram_reg=80;
* pram_reg=93; /*P5 93 */
* pram_reg=200;
* pram_reg=80; /*P7 */
* pram_reg=0; /*P8 */
* comm_reg=0x44; /*SetSooll() */
/*set SAD1 */
* pram_reg=0x0; /*P1 */
* pram_reg=200; /*P3 */
/* set SAD2 */
* pram_reg=0x80; /*P4 */
* pram_reg=0x3e;
* pram_reg=200; /*P6 */
/*set SAD3 */
* pram_reg=0x00; /*P7 */
* pram_reg=0x7d; /*P8 */
/*set SAD4 */

* comm_reg=0xf58; /*Set Display(OFF)*/
/* *pram_reg=0; */
* comm_reg=0x5d; /*SetCsrForm()*/
* pram_reg=6;
* pram_reg=0x86;
* comm_reg=0x5a; /*set HDOT SCR*/
* pram_reg=0; /*must be clear*/
* comm_reg=0x4c; /*set csr dis is:RIGHT*/
* comm_reg=0x5b; /*SetOvlay */
* pram_reg=0x1c; /*three graphics display zone*/
* comm_reg=0x5c; /*SetCGRAM(addr)*/
* pram_reg=0xf0; /*turn off the CGAM */
* pram_reg=0;
* comm_reg=0x59; /*SetDisplay(ON)*/
* pram_reg=0x16;
ClearDispBuffer();
}
………………
利用LCD显示屏进行显示时,需要解决的问题是清除图形间断现象。模拟波形是连续图形,但显示屏是以离散点加以显示的,这样会造成波形快速升降沿间断的现象。

为此,我们设计了一比较子程序。当相邻两列的点的幅值差大于2时,就将两点间的所有点"点亮",使显示的图形连续。

(3)中断系统的应用

本系统功能的实现,主要由中断程序程序实现。如采用键盘输入中断、数据采集中断、双机通信、上下位机间的通信等中断服务。中断服务在整个系统软件中起着不可缺少的作用。

本系统还利用PC机功能强,处理信息量大的特点,把监护仪采集到的数据通过RS-232串行口传送到PC机。由PC机进行数据的存储和数据的进一步处理,并采用各种图表等形式显示参数、趋势图画面,为操作者提供了非常友好的软件界面

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top