为TPμP-T微型打印机增加新的打印功能

🏠 首页 《无线电》杂志 2000年 🔗 第10期 🔗 第31页 赵立康 🔗

TPμP-T系列微型打印机主要应用在高校实验室中,作为一个微型系统的输出端打印出图形、曲线等。此外,在超市及出租车上也可见到它的身影。令人遗憾的是,此类打印机依靠其自带的控打指令只能实现简单函数曲线的打印。为此,笔者通过对其驱动程序的修改为它添加了两个新功能——复杂曲线和照片的打印。

一、新功能的设计过程

(1)打印复杂曲线。此类曲线的特点是对应一个x值(横轴坐标值),有两个以上的点位于曲线上。例如磁滞回线、椭圆等。由于它的打印属于二维打印,因此在实现的步骤上比简单曲线稍显复杂:先将待打印点的坐标(x\(_{i}\),yi)输入,然后按xi值由小到大排列这些点,再将x值相同的点按y值由小到大排列,最后将按此排列顺序打印曲线,程序设计流程见图1。

图1
图1 🔍原图 (483×943)

(2)打印照片。它利用的是“面积调灰”技术,即用一定面积上打印点数的多寡来表征该处一个像素点的灰度值的大小,也就是说用一定面积来表示原照片上的一个像素点。具体操作如图2所示。其程序实现过程中最难处理的环节就是如何根据原照片的灰度分布的直方图来选择一个最为贴切的数学模型,并用它将照片中的256个灰度级转换成针式打印机能接受的32级(或64级)。现根据灰度直方图的实际情况介绍两种数字模型:

图2
图2 🔍原图 (649×951)

①线性模型。使用前提是照片中各像素点的灰度值在0~255内均匀出现,即直方图为一条近似乎行横轴的水平直线。此种模型的函数曲线见图3,其斜率k=31/255(这里打印机的最大分辨率取32级)。此模型的优点是思路清晰易懂,便于编程实现,但是由于此模型对原照片的灰度直方图的要求过于苛刻,所以它不具备一般性。

图3
图3 🔍原图 (570×384)

②简单非线性模型。此类模型的适用范围较宽。照片的直方图中允许部分灰度值没有像素点与之对应,但有像素点与之相对应的灰度值上概率必须均匀分布(类似第一种模型),以图4(a)为例,图中x表示灰度值,[x\(_{1}\),x2]区间内的像素点几乎没有,而在[0,x\(_{1}\)]及[x2,255]区间内像素点出现的概率是呈均匀分布的。模型的函数曲线如图4(b)所示。

图4
图4 🔍原图 (683×575)

其实,此类模型的适用范围也不是最一般的情况,因此用此类模型编程后打印出的照片效果还不是最佳。最一般的也是最为复杂的是采用“自适应非线性灰度变换法”,这里限于篇幅,就不向读者介绍了。

二、新功能的实现过程

本系列微型打印机可通过仿真器接在计算机的串口上,并要注意电平的转换。将仿真器的驱动软件装入计算机后,就可进入汇编程序输入环境并输入源程序,经编译后若一切连接正常,即可实现打印。使用微打前,要按说明书提示预先进行测试程序的打印以检验打印机是否出错,然后再联机打印。若待打印的内容日后需多次使用,为方便起见,可将汇编语言编译后生成的机器代码“烧制”在存储器中,这样在打印的系统中可除去计算机这庞然大物,变得更加便携。出租车和超市里的微打就是按此法制成的。具体的连接框图如图5所示。

图5
图5 🔍原图 (811×178)

笔者衷心希望本文能为广大读者提供帮助,若读者有兴趣就文中未提及的方法或对于汇编的源程序作更深一步的交流,欢迎通过电子邮件与笔者联系:

zhaolikang@263.net。

(赵立康)