基于热敏打印机的心电图形快速打印方法的研究及应用实例
存信号和打印头加热脉冲STROBE,从而在热敏打印纸打印出一线心电图形,驱动步进电机向前走纸即可以连续打印。SPI口模拟程序如下:
OUTPUT:
现场保护
LCALL INTRAM ;初始化内部打印缓冲区
MOV R0,#Dat_Buff ;初始化R0为缓冲区末位地址
DAT_OUT:
MOV A,@R0 ;从缓冲区读数据
MOV R7,#08H ;初始化R7控制并/串数据转换
CONT_CHG:
RRC A ;对ACC循环右移实现并-串转换
MOV P1.3,C 将串行数据送至打印机
SETB P1.1 ;模拟SPI时钟
NOP
CLR P1.1
DJNZ R7,CONT_CHG ;判断1字节数据是否转换完
DEC R0 ;寻址下一字节
CJNE R0,#15H,DAT_OUT;判断数据是否全部转换完
CLR P1.2 ;产生数据锁存信号
NOP
SETB P1.2
NOP
CLR P1.0 ;产生加热脉冲
LCALL HEATDLY ;调用加热延时程序
SETB P1.1
LCALL MOTOR_RUN ;步进电机走纸
恢复现场
RET
2.2 打印算法
数字打印机实质上实现了数据与打印点的对应,也就是说8位心电数据数值范围为0~255,对应于热敏打印纸上的256点,通过加热敏单元使纸上某点变黑显示数据的大小。这就需要将表征实际心电大小的数据(以下称为原始数据)转换成能够指示加热点位置的数据(以下称为位置数据),通过位置数据的控制将心电数据对应的点依次打印出来,就可获得心电图。但是由于系统模数转换器获得的心电数据是离散的,如果仅将它们对应的点打印出来,得到只是一些离散的点,要想获得连续的心电图形,需要将相邻的离散点按照一定的算法将它们连接起来,对于纵向打印方式和横向打印方式,离散点连线算法是不同的。限于篇幅,在下面介绍打印方式的实现中,仅对横向12导同步打印和纵向打印进行详细阐述,而对6导联打印仅介绍其实现思想。
2.2.1 横向6导联打印
心电图纸长度为216mm,为每一导联心电信号分配32mm,对应于打印缓冲区中连续
《基于热敏打印机的心电图形快速打印方法的研究及应用实例(第2页)》