医疗仪器设计实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
屏有64行,每行有128列,每8列对应1Byte(字节)的8位,
即每行有16Byte,共16*8=128个点组成,屏上64*16个显示单
元与显示RAM区1024Byte相对应,每一字节的内容与显示
屏上的亮暗相对应。
2)字符显示
每个字符都是由6*8或8*8点阵组成,既要找到和显示屏
相对应的显示RAM区的8Byte,还要使每字节的不同位置为
#include <string.H>
void main(void)
{
Delay_1ms(600); //等待LCM内部初始化
Port_Init(); //IO口初始化
Reset_to_lcm(); //对LCM复位
Delay_1ms(1000); //复位后还得等待LCM内部初始化
Back_Toggle();//打开背光
背景和意义
当今社会中学习、工作压力不断增大,心血管疾病呈低龄化趋势,高血压是动脉粥样硬化和冠心病的重要危险因素,也是心力衰竭的重要原因。血压作为最重要的健康指标,若能经常监测,就能掌握健康情况,早期发现问题,得到更好的治疗效果。
血压监测技术
在电子科学技术与生物医学结合的学科里,血压监测技术既包含了人体结构、心脏工作方式、血管收缩舒张引起的生理信号等生物医学知识又包含利用传感器,A/D转换电路,PC信号处理等电子信息技术。
1.4单片机与液晶显示器的连接
单片机与液晶显示器的硬件连接
1.5软件编程
程序编写的流程
1)定义所有总线地址
#define WI1 XBYTE[0xF4FF]//向左半屏写命令
#define WD1 XBYTE[0xF5FF]//向左半屏写数据
#define RI1 XBYTE[0xF6FF]//读左半屏命令
对于图片,必然从第0页第0列开始,可以一页一页
(不分左右屏)显示,也可以先写左半屏后写右半屏。所
谓的两种方法差别正在设置的起始页地址和Y地址的不同。
部分程序代码
写数据
void WriteByteToLcm(uchar ch)
{
while( BUSY == 1 );//等待LCM空闲(BUSY为低)
DB = ch;//向总线送数
data=RD1或者data=RD2。
3)LCD初始化
包含开显示(0x3F),起始行(0xC0),设置起始页地址(0xB8)和Y地址(0x40),即分别向LCD的左右半屏写命令。可按括号内的数据进行初始化。具体可查阅12864的PDF资料。
4)清屏(向DDRAM所有地址写0)
显示一幅新图片前必须清屏,否则之前显示的数据仍存在于液晶上。
2.主要优势
1、显示质量高。
由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT),那样需要不断刷新亮点。
2、数字式接口。
3、体质小、重量轻。
4、功耗低。
5、辐射小。(可通过屏蔽电路解决)
1.2 LCD液晶显示器原理
1、液晶显示原理
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,控制特定的显示区域就可以得到特定的图形。
1.3点阵式液晶显示器
点阵式液晶显示器简介
相对字符型液晶显示器,功能更多,步进可以显示字符数字还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画、反转、闪烁等功能,用途十分广泛。
按显示点阵数分类:128W*64H、132W*32H、192W*64H、320W*240H等
12864LCD
2)编写底层程序(查忙,写数据,读数据)
查忙(读BF标志即DB7总线,亦即读命令)
BF=1表示模块在内部操作,此时模块不接受外部指令和数据;
BF=0时模块为准备状态,随时可接受外部指令和数据;
b=RI1或者b=RI2,观察b中最高位是否为0,否则忙。
写数字a
WD1=a或者WD2=a。
读数据到data
DB = ch;//向总线送数
REQ = 0;//REQ=0,向LCD发请求命令
while( BUSY == 0 );//等待LCM相应请求(BUSY为高)
REQ = 1;//复原请求信号
}
void Screen_Clear(void)
{
WriteByteToLcm(SCREEN_CLEAR);
}
延时函数1ms
2、液晶显示器的分类
按颜色区分:黑白显示、彩色显示。
按显示方式区分:段式、字符式、点阵式等。
按驱动方式区分:静态(Static)驱动、单纯矩阵(simple Matrix)驱动、主动矩阵(Active Matrix)驱动。
3、液晶显示器各种图形的显示原理
1)线段显示
点阵图形式液晶由M*N个显示单元组成,假设LCD显示
void Port_Init(void)
{
REQ = 1;
//PSB=1;//设置传输方式为串口方式//DISABLE INTERRUPT
//P1M1 = 0X00;
//P1M0 = 0X10;
}
//********************
//UART口初始化
//********************
5)指定位置显示一个ASCII码
1、将起始页地址和起始Y地址设置好,写入ASCII码的上半部分(8个字节数据)
2、重新设置起始页地址和起始Y地址,写入ASCII码的下半部分(另8个字节数据)
6)指定位置显示一个汉字
同显示ASCII码基本相似,只是上下部分分别有16个字
节数据需要写入DDRAM。
7)显示一张图片
REQ = 0;//REQ=0,向LCD发请求命令
while( BUSY == 0 );//等待LCM相应请求(BUSY为高)
REQ = 1;//复原请求信号
}
查忙程序
while( BUSY == 1 );//等待LCM空闲(BUSY为低)
初始化程序
//IO口初始化
//********************
{
Whole_Move_Up();
Delay_1ms(100);
}
}
1.6实验要求
1、实验目的和任务:
学习液晶驱动与显示的原理,掌握使用单片机控制液晶显示器的方法。
2、实验内容:
利用单片机编程软件Keil uVision4设计编写液晶驱动程序,将指定内容显示在液晶显示器上。
3、实验步骤:
1)利用单片机编程软件Keil uVision4设计编写指定内容的液晶驱动程序。
Str_8x16(0x02,0x00,"姓名:李文涛"); //显示16*16点阵的中文
Delay_1ms(300);
Str_8x16(0x03,0x00,"学号:091010007"); //显示16*16点阵的中文
Delay_1ms(1000);
while(1)//★实现滚屏功能,0.1s向上滚动一格,共64格★
实验报告
学生姓名:周志洋、易杰瑞、常明、张明
学号:2011092010017、201109101019、2011091010011、201109103016
指导教师:廖小丽
实验地点:沙河校区
实验时间:2014年12月30日
一、实验室名称:主楼西420
二、实验名称:血压检测
三、实验学时:2学时
1.1血压概念
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=பைடு நூலகம்024个字节的数据。同样在AT89S51中存一张图就要1024个字节的空间。
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
2)通过Genius G580编程器将软件程序烧写AT89C51单片机中。
3)将LCD12864对应引脚与AT89C51相连,启动电源开关,使LCD显示相应内容。
实验显示结果
电子科技大学生命科学与技术学院
标准实验报告
(实验)课程名称医学仪器设计
2014-2015-第1学期
电子科技大学教务处制表
电子科技大学
128×64点阵液晶显示屏有三种控制器,分别是KS0107(KS0108)、T6963C和ST7920,三种控制器主要区别是:KS0107(KS0108)不带任何字库、T6963C带ASCII码,ST7920带国标二级字库(8千多个汉字)。
模块主要硬件构成
模块外部接口说明
12864的DDRAM地址:
Cursor_Length(0X10); //设置光标长度
Screen_Onoff(00);//屏幕恢复正常
Str_8x16(0x00,0x00,"电子科技大学");
Delay_1ms(300);
Str_8x16(0x01,0x00,"医学仪器原理"); //显示16*16点阵的中文
Delay_1ms(300);
实验地点:沙河校区
实验时间:2014年12月30日
一、实验室名称:主楼西420
二、实验名称:液晶显示实验
三、实验学时:2学时
1.1液晶显示器概述
1.概述
日常生活中,人们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通用器件,如计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。
1,其他的为0,为1点亮,为0不亮。由此组成某个字符。
内部带字符发生器的控制器的液晶显示器,让控制器工作在文本方式,找出显示RAM对应的地址,设立光标,送上某字符对应的代码即可。
3)汉字的显示
一般采用图形的方式,首先提取汉字的点阵码,每个汉字占32Byte,找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一个字节,光标位置加1,送第二个字节······直到32Byte显示完,就可以在LCD上得到一个完整的汉字。
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>
电子科技大学生命科学与技术学院
标准实验报告
(实验)课程名称医学仪器设计
2014-2015-第1学期
电子科技大学教务处制表
电子科技大学
实验报告
学生姓名:周志洋、易杰瑞、常明、张明
学号:2011092010017、201109101019、2011091010011、2011091030016
指导教师:廖小丽
什么是血压?
体循环动脉血压简称血压(blood pressure,BP)。血压是血液在血管内流动时,作用于血管壁的压力,它是推动血液在血管内流动的动力。心室收缩,血液从心室流入动脉,此时血液对动脉的压力最高,称为收缩压(systolic blood pressure,SBP)。心室舒张,动脉血管弹性回缩,血液仍慢慢继续向前流动,但血压下降,此时的压力称为舒张压(diastolic blood pressure,DBP)。
PCON = 0x80;//smod=1
TR1 = 1;//start timer1
}
清屏
//*******************
//并口方式写数据
//*******************
void WriteByteToLcm(uchar ch)
{
while( BUSY == 1 );//等待LCM空闲(BUSY为低)
#define RD1 XBYTE[0xF7FF]//读左半屏数据
#define WI2 XBYTE[0xF8FF]//向右半屏写命令
#define WD2 XBYTE[0xF9FF]//向右半屏写数据
#define RI2 XBYTE[0xFAFF]//读右半屏命令
#define RD2 XBYTE[0xFBFF]//读右半屏数据
即每行有16Byte,共16*8=128个点组成,屏上64*16个显示单
元与显示RAM区1024Byte相对应,每一字节的内容与显示
屏上的亮暗相对应。
2)字符显示
每个字符都是由6*8或8*8点阵组成,既要找到和显示屏
相对应的显示RAM区的8Byte,还要使每字节的不同位置为
#include <string.H>
void main(void)
{
Delay_1ms(600); //等待LCM内部初始化
Port_Init(); //IO口初始化
Reset_to_lcm(); //对LCM复位
Delay_1ms(1000); //复位后还得等待LCM内部初始化
Back_Toggle();//打开背光
背景和意义
当今社会中学习、工作压力不断增大,心血管疾病呈低龄化趋势,高血压是动脉粥样硬化和冠心病的重要危险因素,也是心力衰竭的重要原因。血压作为最重要的健康指标,若能经常监测,就能掌握健康情况,早期发现问题,得到更好的治疗效果。
血压监测技术
在电子科学技术与生物医学结合的学科里,血压监测技术既包含了人体结构、心脏工作方式、血管收缩舒张引起的生理信号等生物医学知识又包含利用传感器,A/D转换电路,PC信号处理等电子信息技术。
1.4单片机与液晶显示器的连接
单片机与液晶显示器的硬件连接
1.5软件编程
程序编写的流程
1)定义所有总线地址
#define WI1 XBYTE[0xF4FF]//向左半屏写命令
#define WD1 XBYTE[0xF5FF]//向左半屏写数据
#define RI1 XBYTE[0xF6FF]//读左半屏命令
对于图片,必然从第0页第0列开始,可以一页一页
(不分左右屏)显示,也可以先写左半屏后写右半屏。所
谓的两种方法差别正在设置的起始页地址和Y地址的不同。
部分程序代码
写数据
void WriteByteToLcm(uchar ch)
{
while( BUSY == 1 );//等待LCM空闲(BUSY为低)
DB = ch;//向总线送数
data=RD1或者data=RD2。
3)LCD初始化
包含开显示(0x3F),起始行(0xC0),设置起始页地址(0xB8)和Y地址(0x40),即分别向LCD的左右半屏写命令。可按括号内的数据进行初始化。具体可查阅12864的PDF资料。
4)清屏(向DDRAM所有地址写0)
显示一幅新图片前必须清屏,否则之前显示的数据仍存在于液晶上。
2.主要优势
1、显示质量高。
由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT),那样需要不断刷新亮点。
2、数字式接口。
3、体质小、重量轻。
4、功耗低。
5、辐射小。(可通过屏蔽电路解决)
1.2 LCD液晶显示器原理
1、液晶显示原理
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,控制特定的显示区域就可以得到特定的图形。
1.3点阵式液晶显示器
点阵式液晶显示器简介
相对字符型液晶显示器,功能更多,步进可以显示字符数字还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画、反转、闪烁等功能,用途十分广泛。
按显示点阵数分类:128W*64H、132W*32H、192W*64H、320W*240H等
12864LCD
2)编写底层程序(查忙,写数据,读数据)
查忙(读BF标志即DB7总线,亦即读命令)
BF=1表示模块在内部操作,此时模块不接受外部指令和数据;
BF=0时模块为准备状态,随时可接受外部指令和数据;
b=RI1或者b=RI2,观察b中最高位是否为0,否则忙。
写数字a
WD1=a或者WD2=a。
读数据到data
DB = ch;//向总线送数
REQ = 0;//REQ=0,向LCD发请求命令
while( BUSY == 0 );//等待LCM相应请求(BUSY为高)
REQ = 1;//复原请求信号
}
void Screen_Clear(void)
{
WriteByteToLcm(SCREEN_CLEAR);
}
延时函数1ms
2、液晶显示器的分类
按颜色区分:黑白显示、彩色显示。
按显示方式区分:段式、字符式、点阵式等。
按驱动方式区分:静态(Static)驱动、单纯矩阵(simple Matrix)驱动、主动矩阵(Active Matrix)驱动。
3、液晶显示器各种图形的显示原理
1)线段显示
点阵图形式液晶由M*N个显示单元组成,假设LCD显示
void Port_Init(void)
{
REQ = 1;
//PSB=1;//设置传输方式为串口方式//DISABLE INTERRUPT
//P1M1 = 0X00;
//P1M0 = 0X10;
}
//********************
//UART口初始化
//********************
5)指定位置显示一个ASCII码
1、将起始页地址和起始Y地址设置好,写入ASCII码的上半部分(8个字节数据)
2、重新设置起始页地址和起始Y地址,写入ASCII码的下半部分(另8个字节数据)
6)指定位置显示一个汉字
同显示ASCII码基本相似,只是上下部分分别有16个字
节数据需要写入DDRAM。
7)显示一张图片
REQ = 0;//REQ=0,向LCD发请求命令
while( BUSY == 0 );//等待LCM相应请求(BUSY为高)
REQ = 1;//复原请求信号
}
查忙程序
while( BUSY == 1 );//等待LCM空闲(BUSY为低)
初始化程序
//IO口初始化
//********************
{
Whole_Move_Up();
Delay_1ms(100);
}
}
1.6实验要求
1、实验目的和任务:
学习液晶驱动与显示的原理,掌握使用单片机控制液晶显示器的方法。
2、实验内容:
利用单片机编程软件Keil uVision4设计编写液晶驱动程序,将指定内容显示在液晶显示器上。
3、实验步骤:
1)利用单片机编程软件Keil uVision4设计编写指定内容的液晶驱动程序。
Str_8x16(0x02,0x00,"姓名:李文涛"); //显示16*16点阵的中文
Delay_1ms(300);
Str_8x16(0x03,0x00,"学号:091010007"); //显示16*16点阵的中文
Delay_1ms(1000);
while(1)//★实现滚屏功能,0.1s向上滚动一格,共64格★
实验报告
学生姓名:周志洋、易杰瑞、常明、张明
学号:2011092010017、201109101019、2011091010011、201109103016
指导教师:廖小丽
实验地点:沙河校区
实验时间:2014年12月30日
一、实验室名称:主楼西420
二、实验名称:血压检测
三、实验学时:2学时
1.1血压概念
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=பைடு நூலகம்024个字节的数据。同样在AT89S51中存一张图就要1024个字节的空间。
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
2)通过Genius G580编程器将软件程序烧写AT89C51单片机中。
3)将LCD12864对应引脚与AT89C51相连,启动电源开关,使LCD显示相应内容。
实验显示结果
电子科技大学生命科学与技术学院
标准实验报告
(实验)课程名称医学仪器设计
2014-2015-第1学期
电子科技大学教务处制表
电子科技大学
128×64点阵液晶显示屏有三种控制器,分别是KS0107(KS0108)、T6963C和ST7920,三种控制器主要区别是:KS0107(KS0108)不带任何字库、T6963C带ASCII码,ST7920带国标二级字库(8千多个汉字)。
模块主要硬件构成
模块外部接口说明
12864的DDRAM地址:
Cursor_Length(0X10); //设置光标长度
Screen_Onoff(00);//屏幕恢复正常
Str_8x16(0x00,0x00,"电子科技大学");
Delay_1ms(300);
Str_8x16(0x01,0x00,"医学仪器原理"); //显示16*16点阵的中文
Delay_1ms(300);
实验地点:沙河校区
实验时间:2014年12月30日
一、实验室名称:主楼西420
二、实验名称:液晶显示实验
三、实验学时:2学时
1.1液晶显示器概述
1.概述
日常生活中,人们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通用器件,如计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。
1,其他的为0,为1点亮,为0不亮。由此组成某个字符。
内部带字符发生器的控制器的液晶显示器,让控制器工作在文本方式,找出显示RAM对应的地址,设立光标,送上某字符对应的代码即可。
3)汉字的显示
一般采用图形的方式,首先提取汉字的点阵码,每个汉字占32Byte,找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一个字节,光标位置加1,送第二个字节······直到32Byte显示完,就可以在LCD上得到一个完整的汉字。
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>
电子科技大学生命科学与技术学院
标准实验报告
(实验)课程名称医学仪器设计
2014-2015-第1学期
电子科技大学教务处制表
电子科技大学
实验报告
学生姓名:周志洋、易杰瑞、常明、张明
学号:2011092010017、201109101019、2011091010011、2011091030016
指导教师:廖小丽
什么是血压?
体循环动脉血压简称血压(blood pressure,BP)。血压是血液在血管内流动时,作用于血管壁的压力,它是推动血液在血管内流动的动力。心室收缩,血液从心室流入动脉,此时血液对动脉的压力最高,称为收缩压(systolic blood pressure,SBP)。心室舒张,动脉血管弹性回缩,血液仍慢慢继续向前流动,但血压下降,此时的压力称为舒张压(diastolic blood pressure,DBP)。
PCON = 0x80;//smod=1
TR1 = 1;//start timer1
}
清屏
//*******************
//并口方式写数据
//*******************
void WriteByteToLcm(uchar ch)
{
while( BUSY == 1 );//等待LCM空闲(BUSY为低)
#define RD1 XBYTE[0xF7FF]//读左半屏数据
#define WI2 XBYTE[0xF8FF]//向右半屏写命令
#define WD2 XBYTE[0xF9FF]//向右半屏写数据
#define RI2 XBYTE[0xFAFF]//读右半屏命令
#define RD2 XBYTE[0xFBFF]//读右半屏数据