电子科技大学生命科学与技术学院
标准实验报告
(实验)课程名称 医学仪器设计
20##-20##-第1学期
电子科技大学教务处制表
电子科技大学
实 验 报 告
学生姓名:周志洋、易杰瑞、常明、张明
学号:2011092010017、201109101019、2011091010011、2011091030016
指导教师:廖小丽
实验地点:沙河校区
实验时间:20##年 12月 30日
一、实验室名称:主楼西420
二、实验名称:液晶显示实验
三、实验学时:2学时
1.1 液晶显示器概述
1. 概述
日常生活中,人们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通用器件,如计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。
2.主要优势
1、显示质量高。
由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT),那样需要不断刷新亮点。
2、数字式接口。
3、体质小、重量轻。
4、功耗低。
5、辐射小。(可通过屏蔽电路解决)
1.2 LCD液晶显示器原理
1、液晶显示原理
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,控制特定的显示区域就可以得到特定的图形。
2、液晶显示器的分类
按颜色区分:黑白显示、彩色显示。
按显示方式区分:段式、字符式、点阵式等。
按驱动方式区分:静态(Static)驱动、单纯矩阵(simple Matrix)驱动、主动矩阵(Active Matrix)驱动。
3、液晶显示器各种图形的显示原理
1)线段显示
点阵图形式液晶由M*N个显示单元组成,假设LCD显示
屏有64行,每行有128列,每8列对应1Byte(字节)的8位,
即每行有16Byte,共16*8=128个点组成,屏上64*16个显示单
元与显示RAM区1024Byte相对应,每一字节的内容与显示
屏上的亮暗相对应。
2)字符显示
每个字符都是由6*8或8*8点阵组成,既要找到和显示屏
相对应的显示RAM区的8Byte,还要使每字节的不同位置为
1,其他的为0,为1点亮,为0不亮。由此组成某个字符。
内部带字符发生器的控制器的液晶显示器,让控制器工作在文本方式,找出显示RAM对应的地址,设立光标,送上某字符对应的代码即可。
3)汉字的显示
一般采用图形的方式,首先提取汉字的点阵码,每个汉字占32Byte,找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一个字节,光标位置加1,送第二个字节······直到32Byte显示完,就可以在LCD上得到一个完整的汉字。
1.3 点阵式液晶显示器
点阵式液晶显示器简介
相对字符型液晶显示器,功能更多,步进可以显示字符数字还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画、反转、闪烁等功能,用途十分广泛。
按显示点阵数分类:128W*64H、132W*32H、192W*64H、320W*240H等
12864LCD
128×64点阵液晶显示屏有三种控制器,分别是KS0107(KS0108)、T6963C和ST7920,三种控制器主要区别是:KS0107(KS0108)不带任何字库、T6963C带ASCII码,ST7920带国标二级字库(8千多个汉字)。
模块主要硬件构成
模块外部接口说明
12864的DDRAM地址:
XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y(列)地址指针。
X地址计数器没有记数功能,只能用指令设置。Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。
从上图可以看出数据按字节在屏幕上是竖向排列的。上方为低位,下方为高位。因此在横向上(也就是Y)就一共是128列数据。分为CS1和CS2两个64列来写入。在竖方向上(也就是X)一字节数据显示8个点,竖向64个点分为8个字节,称做8页(X=0-7)。了解这些后我们就知道要满屏显示一张图就要从y=0…127、X=0…7一共写128×8=1024个字节的数据。同样在AT89S51中存一张图就要1024个字节的空间。
1.4 单片机与液晶显示器的连接
单片机与液晶显示器的硬件连接
1.5 软件编程
程序编写的流程
1)定义所有总线地址
#define WI1 XBYTE[0xF4FF] //向左半屏写命令
#define WD1 XBYTE[0xF5FF] //向左半屏写数据
#define RI1 XBYTE[0xF6FF] //读左半屏命令
#define RD1 XBYTE[0xF7FF] //读左半屏数据
#define WI2 XBYTE[0xF8FF] //向右半屏写命令
#define WD2 XBYTE[0xF9FF] //向右半屏写数据
#define RI2 XBYTE[0xFAFF] //读右半屏命令
#define RD2 XBYTE[0xFBFF] //读右半屏数据
2)编写底层程序(查忙,写数据,读数据)
查忙(读BF标志即DB7总线,亦即读命令)
BF=1表示模块在内部操作,此时模块不接受外部指令和数据;
BF=0时模块为准备状态,随时可接受外部指令和数据;
b=RI1 或者 b=RI2,观察b中最高位是否为0,否则忙。
写数字a
WD1=a 或者 WD2=a。
读数据到data
data=RD1 或者 data=RD2。
3)LCD初始化
包含开显示(0x3F),起始行(0xC0),设置起始页地址(0xB8)和Y地址(0x40),即分别向LCD的左右半屏写命令。可按括号内的数据进行初始化。具体可查阅12864的PDF资料。
4)清屏(向DDRAM所有地址写0)
显示一幅新图片前必须清屏,否则之前显示的数据仍存在于液晶上。
5)指定位置显示一个ASCII码
1、将起始页地址和起始Y地址设置好,写入ASCII码的上半部分(8个字节数据)
2、重新设置起始页地址和起始Y地址,写入ASCII码的下半部分(另8个字节数据)
6)指定位置显示一个汉字
同显示ASCII码基本相似,只是上下部分分别有16个字
节数据需要写入DDRAM。
7)显示一张图片
对于图片,必然从第0页第0列开始,可以一页一页
(不分左右屏)显示,也可以先写左半屏后写右半屏。所
谓的两种方法差别正在设置的起始页地址和Y地址的不同。
部分程序代码
写数据
void WriteByteToLcm(uchar ch)
{
while( BUSY == 1 ); //等待LCM空闲(BUSY为低)
DB = ch; //向总线送数
REQ = 0; //REQ=0,向LCD发请求命令
while( BUSY == 0 ); //等待LCM相应请求(BUSY为高)
REQ = 1; //复原请求信号
}
查忙程序
while( BUSY == 1 ); //等待LCM空闲(BUSY为低)
初始化程序
//IO口初始化
//********************
void Port_Init(void)
{
REQ = 1;
// PSB=1;//设置传输方式为串口方式 //DISABLE INTERRUPT
// P1M1 = 0X00;
// P1M0 = 0X10;
}
//********************
//UART口初始化
//********************
void Uart_Init(void)
{
TMOD = 0x20; //timer 1 working mode 1
TL1 = 0xfa; // fa=9600 for 1.0592mhz Fosc,and ...
TH1 = 0xfa; //...fd=19200 for 11.0592mhz Fosc
SCON = 0x50;//d8 //uart mode 3,ren==1 1100 1000
PCON = 0x80; //smod=1
TR1 = 1; //start timer1
}
清屏
//*******************
//并口方式写数据
//*******************
void WriteByteToLcm(uchar ch)
{
while( BUSY == 1 ); //等待LCM空闲(BUSY为低)
DB = ch; //向总线送数
REQ = 0; //REQ=0,向LCD发请求命令
while( BUSY == 0 ); //等待LCM相应请求(BUSY为高)
REQ = 1; //复原请求信号
}
void Screen_Clear(void)
{
WriteByteToLcm(SCREEN_CLEAR);
}
延时函数1ms
extern void Delay_1ms(uint j) //对于11.0592MHz时钟延时1ms
{
uchar i,k;
while(j--)
{
for(k=0;k<12;k++)
for(i=0;i<125;i++)
{}
}
}
主程序运行代码
#include <reg51.h>
#include <test.h>
#include <string.H>
void main(void)
{
Delay_1ms(600); //等待LCM内部初始化
Port_Init(); //IO口初始化
Reset_to_lcm(); //对LCM复位
Delay_1ms(1000); //复位后还得等待LCM内部初始化
Back_Toggle(); //打开背光
Cursor_Length(0X10); //设置光标长度
Screen_Onoff(00); //屏幕恢复正常
Str_8x16(0x00,0x00,"电子科技大学");
Delay_1ms(300);
Str_8x16(0x01,0x00,"医学仪器原理"); //显示16*16点阵的中文
Delay_1ms(300);
Str_8x16(0x02,0x00,"姓名:李文涛"); //显示16*16点阵的中文
Delay_1ms(300);
Str_8x16(0x03,0x00,"学号:091010007"); //显示16*16点阵的中文
Delay_1ms(1000);
while(1) //★实现滚屏功能,0.1s向上滚动一格,共64格★
{
Whole_Move_Up();
Delay_1ms(100);
}
}
1.6 实验要求
1、实验目的和任务:
学习液晶驱动与显示的原理,掌握使用单片机控制液晶显示器的方法。
2、实验内容:
利用单片机编程软件Keil uVision4设计编写液晶驱动程序,将指定内容显示在液晶显示器上。
3、实验步骤:
1)利用单片机编程软件Keil uVision4设计编写指定内容的液晶驱动程序。
2)通过Genius G580编程器将软件程序烧写AT89C51单片机中。
3)将LCD12864对应引脚与AT89C51相连,启动电源开关,使LCD显示相应内容。
实验显示结果
电子科技大学生命科学与技术学院
标准实验报告
(实验)课程名称 医学仪器设计
20##-20##-第1学期
电子科技大学教务处制表
电子科技大学
实 验 报 告
学生姓名:周志洋、易杰瑞、常明、张明
学号:2011092010017、201109101019、2011091010011、201109103016
指导教师:廖小丽
实验地点:沙河校区
实验时间:20##年 12月 30日
一、实验室名称:主楼西420
二、实验名称:血压检测
三、实验学时:2学时
1.1 血压概念
u背景和意义
Ø当今社会中学习、工作压力不断增大,心血管疾病呈低龄化趋势,高血压是动脉粥样硬化和冠心病的重要危险因素,也是心力衰竭的重要原因。血压作为最重要的健康指标,若能经常监测,就能掌握健康情况,早期发现问题,得到更好的治疗效果。
u血压监测技术
Ø在电子科学技术与生物医学结合的学科里,血压监测技术既包含了人体结构、心脏工作方式、血管收缩舒张引起的生理信号等生物医学知识又包含利用传感器,A/D转换电路,PC信号处理等电子信息技术。
u什么是血压?
Ø体循环动脉血压简称血压(blood pressure,BP)。血压是血液在血管内流动时,作用于血管壁的压力,它是推动血液在血管内流动的动力。心室收缩,血液从心室流入动脉,此时血液对动脉的压力最高,称为收缩压(systolic blood pressure,SBP)。心室舒张,动脉血管弹性回缩,血液仍慢慢继续向前流动,但血压下降,此时的压力称为舒张压(diastolic blood pressure,DBP)。
u血压的形成机理
Ø心血管系统内血压的形成因素:
ü由心血管系统内充满血液而产生。
n在封闭型循环系统的动物最为明显。当这种动物心搏停止时,心血管系统各部仍有比大气压高 7毫米汞柱的血压。这种由于血液充满心血管系统的压力叫体循环平均压,是一种充盈压.
ü由心脏的射血力产生。
n搏动周期心室肌收缩所释放的能量,一部分成为推动血液迅速流动的动能,另一部分转化为位能,表现为动脉血压,它使主动脉骤行扩张,存储部分输出血量成为心室舒张时继续推动血液流动的动力。
u血压变动的意义与应用
Ø血压升高:血压测值受多种因素的影响,如情绪激动、紧张、运动等。
Ø若在安静、清醒的条件下采用标准测量方法,至少3次非同日血压值达到或超过收缩压140mmHg和(或)舒张压90mmHg,即可认为有高血压。
Ø单纯收缩期高血压:舒张压不高,仅收缩压超出正常范围。
Ø高血压绝大多数是原发性高血压,约5%继发于其他疾病,称为继发性或症状性高血压,如慢性肾炎等。
Ø血压降低:凡血压低于90/60mmHg时称低血压。持续的低血压状态多见于休克、心肌梗死等严重病症。低血压也可有体质的原因,患者自诉一贯血压偏低,患者口唇黏膜局部发白,当心脏收缩和舒张时则发白的局部边缘发生有规律的红、白交替改变即为毛细血管搏动征。
u血压参考值
Ø国家权威机构发布:
正常血压: 收缩压<130 mmHg, 舒张压<85 mmHg
理想血压: 收缩压<120 mmHg, 舒张压<80 mmHg。
u血压测量仪
Ø测量血压的仪器称为血压计。
Ø血压计的测量原理:直接测量法和间接测量法两种
ü直接测量法(有创测量法):是通过穿刺在血管内放置导管后测得的血压,比如在做心脏介入诊断及治疗时就要监测患者的有创血压。
ü间接测量法(无创测量法):不通过穿刺在血管内放置导管而是通过间接测得的血压。分为听诊法、和示波法,是现在主流血压计的测量原理。
弹簧表式血压计
Ø听诊法血压计:基于柯氏音法,专业医生可以用听诊器听到动脉血管的不同声音,来判断收缩压和舒张压的值。(水银血压计、弹簧表式血压计等)
Ø听诊法(柯式音法)的缺点:
ü确定舒张压比较困难;
ü此法凭人的视觉和听觉,带有主观因素,除非专业医生,一般人很难测准血压。
Ø七十年代出现了多种柯式音法电子血压计,试图实现血压的自动检测,但很快发现这类血压计未能克服柯氏法的固有缺点,误差大,重复性差。目前,国外大多数无损自动血压自动检测仪器都采用示波法。
Ø示波法血压计:对捆在手臂上的袖带,自动充气放气。血流通过被挤压的血管产生相应的振荡波,振荡波通过气管传播到压力传感器。提取传感器上的信号,并根据适当的算法计算出人体血压。(臂式、腕式电子血 压计)。
Ø水银血压计、弹簧表式血压计就是早期的人工听诊法血压计,现在的人工听诊法有数显血压计、光柱血压计、光显血压计、液晶血压计等;自动听诊法是最近几年才看到的。
Ø随着电子信息科技的迅猛发展,传统的测量,检测方式都必须更加电子化,信息化。电子血压检测所带来的是使血压测量更加方便,准确,更加便携,甚至可以无需专业人士进行操作进而进入家庭。
Ø电子血压检测仪器是未来血压测量的趋势,因其无创测量加以非常精确快速的特点,必定是市场所希望的仪器。
1.2 基于脉搏波的算法简介
u脉搏波概念
Ø脉搏波是心脏的搏动(振动)沿动脉血管和血流向外周传播而形成的。
Ø人体生理状态决定着脉搏波信号的强度、形态、节律及速率等特征。
Ø脉搏波压力及波形特征变化是评价人体心血管系统生理病理状态的重要依据。
Ø脉搏波血压计采用脉搏波探测方法,替代柯氏音法(耳听为虚,眼见为实),采用多点测量替代单点测量,并利用收缩压和舒张压点附近各点之间的内在联系和变化规律,采用逼近和拟合的计算方法,计算出真正的收缩压和舒张压值,实现不连续事件的连续测量,即可以测出心脏两跳之间的血压值.
u示波法原理
Ø示波法的测量原理,与柯氏法类似,仍采用充气袖套来阻断上臂动脉血流。由于心搏的血液动力学作用,在气袖压力上将重叠与心搏同步的压力波动,即脉搏波。当袖套压力远高于收缩压时,脉搏波消失。随着袖套压力下降,脉搏开始出现。当袖套压力从高于收缩压降到收缩压时,脉搏波会突然增大。到平均压时振幅达到最大值。然后又随袖套压力下降而衰减,当小于舒张压后,动脉管壁的舒张期已充分扩张,管壁刚性增强,而波幅维持比较小的水平。
Ø示波法血压测量是根据脉搏波振幅与气袖压力之间的关系来估计血压的。与脉搏波最大值对应的是平均压,收缩压和舒张压分别对应脉搏波最大振幅的比例来确定。
2. 示波法
基本原理:利用压力传感器观察随着袖带压的变化,血管从开放到闭合时,脉搏波幅度的变化来实现血压测量。
测量方法(1):一开始快速对袖带充气,当袖带内压高于收缩压30mmHg后开始缓慢放气,脉搏波从无到有,其包络呈钟形变化,当检测不到脉搏波时袖带快速放气。
测量方法(2):一开始对袖带快速充气,当检测到第一个脉搏波时,充气变缓,检测到的脉搏波包络呈钟形变化,继续充气直到脉搏波消失,再对袖带快速放气。
血压值的获取:从脉搏波构成的钟形包络中识别特征点。
方法一:固定比率计算法
脉搏波钟形包络的顶点Om对应的袖带压即为平均压,脉搏波钟形包络上升沿的点Os和下降沿的Od分别对应收缩压Ps和舒张压Pd。
方法二:根据脉搏波包络Os、Od点变化陡度较大,Om变化最小的特点,对脉搏波包络进行微分,分别得到对应的收缩压Ps、舒张压Pd和平均压Pm。
① 公式中的固定比率是统计量,由于个体差异会给心率、脉搏波幅度、杨氏模量、粘滞系数等造成较大误差,在老人中常造成血压估值偏高,出现误报“高血压”结果。
② 脉搏波包络的钟形顶部常出现¡°平台化¡±,使平均压的确定并非唯一,特别是心率的简单变化,可造成顶部特征点的较大偏移,造成平均压估值的误差。
Ø示波法血压值判定原则:
根据气袖在减压过程中压力振荡波的振幅变化包络线来判定血压。当气袖压力振荡波的振幅最大时,气袖的压力就是动脉的平均压。动脉的收缩压对应于振幅包络线的第一个拐点,舒张压对应于包络线的第二个拐点。
u示波法测量方法简介
Ø示波法原理测量血压的方法主要有两大类:波形特征法、幅度系数法。
Ø波形特征法是最基本的血压测量方法。它由脉搏波波形入手,寻找收缩压、舒张压处波形的特异性,并由此判别血压。
Ø幅度系数法:幅度系数法又称归一法。它是将脉搏波振动信号的幅值与信号的最大幅值相比较进行归一化处理,通过确定收缩压和舒张压的归一化系数来识别收缩压与舒张压.
1.3 血压测量硬件电路设计
1.系统设计
Ø基于脉搏波的血压检测电路架构如下图 所示,电路分为八大模块,分别为单片机MCU模块,两级放大模块,高通滤波器,直流采样模块,压力传感器模块以及外部的控制器、LCD显示、气泵电机。
Ø
Ø当外部控制器发出指令给单片机,单片机开始接受信号,处理数据。
ü (1 )单片机发出信号给气泵电机,电机启动并对袖套开始充气。
ü (2 )压力传感器对袖套里压力进行实时感应并将信号传输进入前置电路进行处理。
ü (3 )收到压力传感器传来的信号之后,信号先进行直流采样,即压力信号被送到差分放大电路放大,为了增强抗干扰能力,提高测量精度,可采用高输入阻抗、低噪声、低漂移精密仪表放大器。
ü (4 )进行直流采样后的信号进行高通滤波,高通滤波器的截止频率为0.1HZ ,去除直流成分,得到微弱的动脉波动信号。
ü(5)因为此时信号非常微弱,没有达到即将处理的强度,所以进行两级放大,在进行1000倍的放大之后就可以方便地进行MCU中的数据处理。
ü(6)在单片机中,对已经采集的数据处理的第一步为A/D转换,利用片内A/D转换,使原本的电路模拟信号转换为数字信号一边进行数字信号处理。
ü(7)对已有的数字信号进行第二章所论述的算法分析后作出控制气泵的信号,整个过程再次循环直到完全得出收缩压与舒张压。
2.电路原理设计
Ø(1)高通滤波模块
ü高通滤波模块[9]主要由集成运放NE5532构成,如下图
ü电路为二阶高通滤波电路,由公式f=1/(2πRC)可算出其截止频率。其截止频率f=0.1Hz。
Ø(2)两级放大模块
ü两级放大模块由两个OP07集成放大器构成。如下图。
第一级与第二级都是电压串联负反馈电路。由公式(3-2)可知电压放大倍数: A=1+R2/ R1
所以,第一级放大电路放大倍数为1+(20K/1K)=21倍,第二级放大倍数为1+(50K/1K)=51倍。两级放大电路总放大倍数为1071倍。
Ø电路焊接与调试
ü根据PCB电路板图进行PCB的制作,使用前面所选择的电子元器件,在PCB电路板上进行焊接。最终做出电路板
ü
1.4 实验要求
u1、实验目的和任务:
Ø1.学习血压测量的原理。
Ø2.了解使用常用放大芯片搭建放大及滤波方法。
u2、实验原理(此处只做滤波和放大模块)
通过气压传感器芯片将压力参数输入到直流采样模块,通过压力传感器采集到的信号已经包括直流信号与交流信号,此时只是将直流信号单独输出到该模块的ADC0引脚。另一路信号再经过高通滤波和两级放大得到理想的交流信号,输出到模块的ADC1引脚。单片机程序对这两路信号实时检测,处理最终得到收缩压和舒张压。实验人员可以通过示波器观察ADC0、ADC1的引脚输出更加直观的观测到实时的血压情况及脉搏波。
u三、实验内容
Ø搭建滤波和两级放大电路。
u四、实验步骤
Ø1.利用板上的模块测量人体的血压
ü(1) 连接电源线,将血压检测模块和气泵气阀模块都插到实验箱的对应位置,并将袖带的黑色软管与模块上透明软管的接头连接好,绑好袖带,打开电源。
ü(2) 通过显示屏或底板上的按键选择血压测试,通过显示屏观察模块的血压输出值。
Ø2. 自制模块
ü(1)根据实验提供的血压模块电路原理图自制PCB图。
ü(2)经过打印、转印、腐蚀、钻孔,制作出电路板。
ü(3)将电子器件焊接到相应位置。
ü(4)用自制模块取代原有模块重复实验步骤1、2,并与原先结果作比较。
Ø四、注意事项
ü(1)绑袖带时不宜过松,以刚好能放入一支笔的松紧度为宜。
ü(2)严禁在没有绑上袖带的情况下点击血压测试。
ü(3)整个过程中被测人员要保持静止,尤其是上肢不可移动,更不可触碰袖带。充气过程宜尽可能放松手臂,不宜握拳。
ü(4)一次血压检测大约需要80秒左右,完成后袖带自动放气,屏幕显示输出值。
ü(5)本实验箱设定的是自动重复检测,如果不需再次测量可随意点击其它测量选项以停止该项检测,并取下袖带、断开袖带黑色软管与模块上透明接头的连接。
五、实验结果
1.自己设计模块测得血压如下图
2.实验模块连接图