欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    实验二心电图机液晶显示系统实验图形部分.docx

    • 资源ID:1986399       资源大小:160.40KB        全文页数:45页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验二心电图机液晶显示系统实验图形部分.docx

    1、实验二心电图机液晶显示系统实验图形部分实验二 心电图机液晶显示系统实验 (图形部分) 李元斌1、 实验目的 了解液晶显示的原理 掌握液晶面板上进行波形显示的原理和方法 掌握单片机编程技巧2、 实验要求 了解80C51单片机及OCMJ4X8C液晶模组的硬件配置及连接方法 掌握80C51单片机的编程语言 掌握波形输出程序的算法和结构 编写程序并调试程序3、 实验设备 单片机仿真器 金鹏OCMJ4X8C液晶模组 稳压电源4、 实验内容4.1实验说明心电图是反映心脏兴奋的电活动过程,它对心脏基本功能及其病理研究方面,具有重要的参考价值。心电图可以分析与鉴别各种心律失常,也可以反映心肌受损的程度、病理发

    2、展过程和心房、心室的功能结构情况,在指导心脏手术进行及指示必要的药物处理上有参考价值。心电图的检查还必须结合多种指标和临床资料,进行全面综合分析,才能对心脏的功能结构做出正确的判断。由此可以看出心电图的显示在临床医疗方面的重要性。液晶显示在心电图机中的应用是将数字技术、计算机技术结合起来,利用单片机和液晶显示模块进行波形显示。系统的主要功能是提供中文界面,对存储的心电图数据进行波形输出。系统使用液晶显示模块,并利用51单片机作为系统控制核心,负责控制、检测、输入/输出显示等一系列的程序动作,使整个系统操作简便并且充满人性化。4.2 OCMJ4X8C液晶模块简介概述C系列中文模块可以显示字母、数

    3、字符号、中文字形及图形,具有绘图及文字画面混合显示功能。提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口。所有的功能,包含显示RAM,字符产生器,都包含在一个芯片里面,只要一个最小的微处理器系统,就可以方便的操作模块。内置2M-位中文字型ROM(CGROM),总共提供8192个中文字型(16*16点阵),16K-位半宽字型ROM(HCGROM)总共提供126个符号字型(16*8点阵),64*16-位字型产生RAM(CGRAM),另外绘图显示画面提供一个64*256点的绘图区域(GDRAM),可以和文字画面混合显示。提供多功能指令:画面清除、光标归位、显示打开/关闭、光标显示

    4、/隐藏、显示字符闪烁、光标移位、显示移位、垂直画面卷动、反白显示、待命模式。主要参数:1、 工作电压(VDD):4.55.5V2、 逻辑电平:2.75.5V3、 LCD驱动电压(Vo):07V4、 工作温度(Ta):055(常温)/-2075(宽温)保存温度(Tstg):-1065(常温)/-3085(宽温)外形尺寸注意:放置液晶时焊盘一侧应放在下侧,此时左上角坐标为(0,0)接口信号:OCMJ4X8C液晶显示模块的接口信号包括8位三态数据线DB0DB7、命令数据线RS、片选信号线E、串并行模式选择线PSB以及读写控制线RW等。详细的接口信号端说明如下表所列。编号符号引脚说明编号符号引脚说明1

    5、VSSGND(0V)11DB4数据42VDD逻辑电平(+5V)12DB5数据53V0LCD供电电压(悬空)13DB6数据64RS1:数据 0:命令14DB7数据75R/W1:读 0:写15PSB1:并行模式 0:串行模式6E使能端(高电平有效)16NC空脚7DB0数据017/RST重启复位(低电平有效)8DB1数据118NC空脚9DB2数据219LEDA背光源正极(+5V)10DB3数据320LEDK背光源负极(0V)备注:上表所示接口功能均为并行模式下功能,串口模式下部分接口功能不同或无效硬件连接图4.3 程序设计(汇编语言编程)4.3.1 发送数据子程序SEND_D: LCALL CHK_

    6、BUSY SETB RS CLR RW MOV P1,A SETB E NOP NOP CLR E RET4.3.2 写指令子程序SEND_I: LCALL CHK_BUSY CLR RS CLR RW MOV P1,A SETB E NOP NOP CLR E RET4.3.3 读数据子程序READ_D: LCALL CHK_BUSY SETB RS SETB RW SETB E NOP MOV A,P1 CLR E MOV STORE,A RET4.3.4 测忙碌子程序CHK_BUSY: MOV P1,#0FFH CLR RS SETB RW SETB E JB P1.7,$ CLR E

    7、RET4.3.5 写坐标子程序WR_ZB: MOV A,#34H LCALL SEND_I MOV A,LCD_Y LCALL SEND_I MOV A,LCD_X LCALL SEND_I MOV A,#30H LCALL SEND_I RET注:程序中出现的NOP指令不能省略,否则数据传送将发生错误,原因请参见时序图。4.3.6 初始化在程序启动时,应先对液晶进行初始化,代码如下:INITIAL:MOV A,#34H ;34H-扩充指令操作 LCALL SEND_I MOV A,#30H ;30H-基本指令操作 LCALL SEND_I MOV A,#01H ;清除显示 LCALL SEN

    8、D_I MOV A,#06H ;指定在资料写入或读取时,光标的移动方向 LCALL SEND_I MOV A,#0CH ;开显示,关光标,不闪烁 LCALL SEND_I RET4.3.7 绘图绘图显示RAM提供64*32个字节的记忆空间,最多可以控制256*64点的二维绘图缓冲空间,在更改绘图RAM时,由扩充指令设定GDRAM地址,先设垂直地址再设水平地址,再写入两个8位的资料到绘图RAM,而地址计数器会自动加1,整个写入绘图RAM的步骤如下:1、 先将垂直的字节坐标(Y)写入绘图RAM地址2、 再将水平的字节坐标(X)写入绘图RAM地址(参见WR_ZB程序)3、 将D15D8写入到RAM中

    9、4、 将D7D0写入到RAM中例如:描记如图示的一组点的程序为:MOV LCD_X,#80HMOV LCD_Y,#80HLCALL WR_ZBMOV A,#0EBHLCALL SEND_DMOV A,#00HLCALL SEND_D4.3.8 波形显示由上面的例子可以看出,绘图时描点的顺序是从左至右,从波形的角度看,横坐标代表时间,则一次要写16个时刻的点,可是我们每次拿到一个数据只能确定它的纵坐标,很难同时得到占用同一横坐标的其他15个时刻的纵坐标并转化为2个字节的数组。因此我们需要对同一坐标连续写16次,方法为:计算得到第一个点的纵坐标,在这个纵坐标上写80H和00H(即将第一个点描记出来

    10、),将80H和00H(字)右环移,计算第二个点的纵坐标,如果与第一个不同,则在此纵坐标上写右环移后的字;如果与第一个相同,则将右环移后的字与8000H取并,再写入这个纵坐标这样,每次循环16次,再增加横坐标,循环16次,增加横坐标流程图如下:参考程序如下:LGS2: MOV R1,#8 MOV LCD_X,#80H MOV DPTR,#TABC2: MOV R0,#16 MOV DH,#80H MOV DL,#00HC1: CLR A MOVC A,A+DPTR INC DPTR MOV B,#4 DIV AB CJNE A,#31,CNEXT LJMP HIGHER ;上半区CNEXT: J

    11、C LOWER ;下半区HIGHER: MOV B,A MOV A,#63 CLR C SUBB A,B ORL A,#80H MOV LCD_Y,A LJMP NEXLOWER: MOV B,A MOV A,#31 CLR C SUBB A,B ORL A,#80H MOV LCD_Y,A MOV A,LCD_X ORL A,#08H MOV LCD_X,ANEX: LCALL WR_ZB LCALL READ_D ;读出的为高8位地址 LCALL READ_D MOV R6,STORE ;高8位 LCALL READ_D MOV R7,STORE ;低8位 LCALL WR_ZB MOV

    12、A,DH ORL A,R6 LCALL SEND_D MOV A,DL ORL A,R7 LCALL SEND_D LCALL RCIR ;对字右环移 MOV A,LCD_X ANL A,#0F7H MOV LCD_X,A ;恢复LCD_X在上半区 DJNZ R0,C1 INC LCD_X DJNZ R1,C2 ;$ MOV A,#36H LCALL SEND_I MOV A,#30H LCALL SEND_I LJMP $;$对字右环移子程序RCIR: MOV A,DH CLR C RRC A MOV DH,A MOV A,DL RRC A JB PSW.7,RNEXT MOV DL,A R

    13、ETRNEXT: ORL A,#80H MOV DL,A RET 4.3.9 波形的移动显示 可以看出,上面的做法得到的波形并不能移动,只能静止的显示,由于数据有256个,而液晶横向只有128个点,因此一半的心电图信息就无法显示,因此,我们希望能够让波形滚动显示,以便看到心电的完整信息。做法为:当描记128个点后,就将写入数据的指针向TAB后移一位,重新写128个点,如此循环128次即可让波形滚动起来。 参考程序二:;*OCM4x8C用上半区域显示波形(半屏)*;将LGS2中的LCD_X改为88H即可在下半区域作图*RS EQU P3.0RW EQU P3.1E EQU P3.2PSB EQU

    14、 P3.3RST EQU P3.4LCD_X EQU 30HLCD_Y EQU 31HCOUNT EQU 32HCOUNT1 EQU 33HCOUNT2 EQU 34HCOUNT3 EQU 35HLCD_DATA EQU 36HLCD_DATA1 EQU 37HLCD_DATA2 EQU 38HSTORE EQU 39HDH EQU 40HDL EQU 41H;* ORG 0000H LJMP MAIN ORG 0100HMAIN: NOP NOP MOV SP,#5FH SETB RST NOP SETB PSB;*初始化*LGS0: MOV A,#34H ;34H-扩充指令操作 LCALL

    15、 SEND_I MOV A,#30H ;30H-基本指令操作 LCALL SEND_I MOV A,#01H ;清除显示 LCALL SEND_I MOV A,#06H ;指定在资料写入或读取时,光标的移动方向 LCALL SEND_I MOV A,#0CH ;开显示,关光标,不闪烁 LCALL SEND_I;*CLRRAM: MOV LCD_DATA1,#00H ;GDRAM写0子程序 MOV LCD_DATA2,#00H LCALL LAT_DISP LJMP LGS2;$LAT_DISP: MOV COUNT3,#02H ;显示点阵子程序 MOV LCD_X,#80HLAT_DISP1:

    16、 MOV LCD_Y,#80H CLR F0 MOV COUNT2,#20HLAT_DISP2: MOV COUNT1,#10H LCALL WR_ZBLAT_DISP3: JB F0,LAT_DISP32 MOV LCD_DATA,LCD_DATA1 AJMP LAT_DISP31LAT_DISP32: MOV LCD_DATA,LCD_DATA2LAT_DISP31: MOV A,LCD_DATA LCALL SEND_D DJNZ COUNT1,LAT_DISP31 INC LCD_Y CPL F0 DJNZ COUNT2,LAT_DISP2 MOV LCD_X,#88H DJNZ CO

    17、UNT3,LAT_DISP1 MOV A,#36H LCALL SEND_I MOV A,#30H LCALL SEND_I RET;*LGS2: MOV R1,#8 MOV LCD_X,#80H MOV DPTR,#TABC2: MOV R0,#16 MOV DH,#80H MOV DL,#00HC1: CLR A MOVC A,A+DPTR INC DPTR MOV B,#8 DIV AB MOV B,A MOV A,#31 CLR C SUBB A,B ORL A,#80H MOV LCD_Y,A LCALL WR_ZB LCALL READ_D;address LCALL READ_D

    18、 MOV R6,STORE;most8 LCALL READ_D MOV R7,STORE;least8 LCALL WR_ZB MOV A,DH ORL A,R6 LCALL SEND_D MOV A,DL ORL A,R7 LCALL SEND_D LCALL RCIR;对字右环移 DJNZ R0,C1 INC LCD_X DJNZ R1,C2 ;$ MOV A,#36H LCALL SEND_I MOV A,#30H LCALL SEND_I LJMP $;*WR_ZB: MOV A,#34H LCALL SEND_I MOV A,LCD_Y LCALL SEND_I MOV A,LCD

    19、_X LCALL SEND_I MOV A,#30H LCALL SEND_I RET;*SEND_D: LCALL CHK_BUSY ;写数据子程序 SETB RS CLR RW MOV P1,A SETB E NOP NOP CLR E RETSEND_I: LCALL CHK_BUSY ;写指令子程序 CLR RS CLR RW MOV P1,A SETB E NOP NOP CLR E RETREAD_D: LCALL CHK_BUSY ;读数据子程序 SETB RS SETB RW SETB E NOP MOV A,P1 CLR E MOV STORE,A RETCHK_BUSY:

    20、MOV P1,#0FFH ;测忙碌子程序 CLR RS SETB RW SETB E JB P1.7,$ CLR E RETRCIR: MOV A,DH CLR C RRC A MOV DH,A MOV A,DL RRC A JB PSW.7,RNEXT MOV DL,A RETRNEXT: ORL A,#80H MOV DL,A RET ;*TAB: DB 72, 72, 72, 72, 71, 71, 70, 70, 69, 69, 68, 67, 67, 66, 66, 66DB 66, 66, 67, 68, 69, 70, 71, 71, 72, 72, 72, 72, 72, 72

    21、, 72, 72DB 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72DB 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72DB 66, 54, 46, 38, 26, 15, 12, 11, 12, 16, 23, 44, 66, 97,122,145DB 156,163,168,176,188,202,210,205,198,188,172,160,146,136,125,113DB 104, 94, 85, 77, 72, 70, 68,

    22、 66, 64, 63, 62, 61, 60, 59, 58, 58DB 57, 56, 55, 55, 54, 53, 53, 52, 52, 51, 51, 50, 50, 49, 49, 48DB 48, 47, 47, 46, 46, 45, 45, 44, 44, 43, 43, 42, 42, 41, 41, 40DB 40, 39, 39, 38, 38, 37, 37, 36, 36, 35, 35, 34, 34, 33, 33, 32DB 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 20, 19, 18, 17, 16DB 15

    23、, 14, 13, 13, 12, 12, 12, 12, 12, 13, 13, 14, 14, 15, 16, 17DB 18, 20, 21, 22, 23, 25, 26, 27, 29, 30, 31, 33, 34, 36, 38, 39DB 41, 43, 45, 47, 48, 50, 51, 53, 54, 55, 56, 58, 59, 60, 61, 62DB 64, 65, 66, 67, 68, 69, 70, 70, 71, 71, 72, 72, 72, 72, 72, 72DB 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72

    24、, 72, 72, 72, 72, 72 END;*OCM4x8C全屏显示波形*RS EQU P3.0RW EQU P3.1E EQU P3.2PSB EQU P3.3RST EQU P3.4LCD_X EQU 30HLCD_Y EQU 31HCOUNT EQU 32HCOUNT1 EQU 33HCOUNT2 EQU 34HCOUNT3 EQU 35HLCD_DATA EQU 36HLCD_DATA1 EQU 37HLCD_DATA2 EQU 38HSTORE EQU 39HDH EQU 40HDL EQU 41H;* ORG 0000H LJMP MAIN ORG 0100HMAIN: NO

    25、P NOP MOV SP,#5FH SETB RST NOP SETB PSB;*初始化*LGS0: MOV A,#34H ;34H-扩充指令操作 LCALL SEND_I MOV A,#30H ;30H-基本指令操作 LCALL SEND_I MOV A,#01H ;清除显示 LCALL SEND_I MOV A,#06H ;指定在资料写入或读取时,光标的移动方向 LCALL SEND_I MOV A,#0CH ;开显示,关光标,不闪烁 LCALL SEND_I;*CLRRAM: MOV LCD_DATA1,#00H ;GDRAM写0子程序 MOV LCD_DATA2,#00H LCALL

    26、LAT_DISP LJMP LGS2;$LAT_DISP: MOV COUNT3,#02H ;显示点阵子程序 MOV LCD_X,#80HLAT_DISP1: MOV LCD_Y,#80H CLR F0 MOV COUNT2,#20HLAT_DISP2: MOV COUNT1,#10H LCALL WR_ZBLAT_DISP3: JB F0,LAT_DISP32 MOV LCD_DATA,LCD_DATA1 AJMP LAT_DISP31LAT_DISP32: MOV LCD_DATA,LCD_DATA2LAT_DISP31: MOV A,LCD_DATA LCALL SEND_D DJNZ COUNT1,LAT_DISP31 INC LCD_Y CPL F0 DJNZ COUNT2,LAT_DISP2 MOV LCD_X,#88H DJNZ COUNT3,LAT_DISP1 MOV A,#36H LCALL SEND_I


    注意事项

    本文(实验二心电图机液晶显示系统实验图形部分.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开