12点阵汉字在HD系列机型中的应用-屏幕显示-打印.doc_第1页
12点阵汉字在HD系列机型中的应用-屏幕显示-打印.doc_第2页
12点阵汉字在HD系列机型中的应用-屏幕显示-打印.doc_第3页
12点阵汉字在HD系列机型中的应用-屏幕显示-打印.doc_第4页
12点阵汉字在HD系列机型中的应用-屏幕显示-打印.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

12点阵汉字在HD系列机型中的应用在设备屏幕上显示输出在III型机打印输出一、 加载字库通常加载字库有两种方式:内嵌常量式,外部参数文件形式内嵌变量式是指将字库点阵的内容以常量的形式写在程序源码中,如下文unsigned char FontPattern = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,0x00, 0x6C, 0x48, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x21, 0x00, 0x79, 0x00, 0x49, 0x40, 0x7B, 0xE0, 0x49, 0x40, 0xFD, 0x40, 0x95, 0x40, 0xFD, 0x40, 0x01, 0x40, 0xFD, 0x50, 0x2A, 0x50, 0xCC, 0x70,0x10, 0x00, 0x3D, 0xF0, 0x24, 0x40, 0x3C, 0x40, 0x24, 0x40, 0x7F, 0xF0, 0x52, 0x40, 0x7E, 0x40, 0x00, 0x40, 0xFF, 0x40, 0x24, 0x40, 0xC4, 0x40,0x20, 0x80, 0x7B, 0xF0, 0x49, 0xC0, 0x7A, 0xA0, 0x4C, 0x90, 0xFB, 0xE0, 0xAA, 0x20, 0xFB, 0xE0, 0x02, 0x20, 0xFF, 0xE0, 0x48, 0x00, 0x8B, 0xF0;显示函数在调用时直接使用该参数即可,程序下载到手持机即可直接使用。外部参数文件形式是指将字库文件要外部基本参数的形式下载到手持机中,需要手持机程序在开机的时候检查该参数文件是否存在,如果不存在,则提示下载该参数文件,如果存在,则加载该内容。unsigned char * FontPattern;typedef unionunsigned chars_char4;unsigned longl_word; typ_long2char;/*以下部分为字库程序启动时检测加载*/unsigned char tmpbuffer16;typ_long2char tmplc;memcpy(tmpbuffer, (char *)Font12Addr, 8);if (memcmp(tmpbuffer, xf0x0fx00xff, 4) = 0) memcpy(tmplc.s_char, tmpbuffer + 4, 4); Font12Length = tmplc.l_word;/获得字库长度 FontPattern = malloc(Font12Length);if (FontPattern = NULL) /提示内存分配失败,程序将无法正常运行memcpy(FontPattern, (char *)(Font12Addr + 8), Font12Length);else /提示字库文件未下载/*加载完成*/*以下部分为字库文件下载*/void down_font(void)unsigned char * frwBuffer;long DataLength;int tcnt;frwBuffer = malloc(0x40000);if (frwBuffer = NULL)DispStr_CE(0, 1, 内存分配失败, DISP_POSITION | DISP_CLRSCR);DispStr_CE(0, 6, 按任意键返回, DISP_POSITION);PressAnyKey();elseDataLength = DownLoadData(font12, frwBuffer + 8, 0x40000);if (DataLength 0) memcpy(frwBuffer, xf0x0fx00xff, 4); tmplc.l_word = DataLength; memcpy(frwBuffer + 4, tmplc.s_char, 4);if (DataLength % 2) != 0)DataLength +; DataLenght += 8;for(tcnt = 0; tcnt = 32 & ascii 128 )location = (ascii - 32) * 12L;memcpy(buffer, FontPattern + location, 12);for(i = 0; i 12; i +)for(k = 0; k (7 - k) & 0x1)put_pixel(x + k, y + i, r1, DISP_PUT_MODE_PUT);elseput_pixel(x + k, y + i, r2, DISP_PUT_MODE_PUT);s += 1;x += 6;elseqh = *(s) - 0xa0;wh = *(s + 1) - 0xa0;location = (94 * (qh - 1) + (wh - 1) * 24L + 1140L;memcpy(buffer, FontPattern + location, 24);for(i = 0; i 12; i +)for(j = 0; j 2; j+)for(k = 0; k (7 - k) & 0x1)put_pixel(x + 8 * j + k, y + i, r1, DISP_PUT_MODE_PUT);elseput_pixel(x + 8 * j + k, y + i, r2, DISP_PUT_MODE_PUT);s += 2;x += 13;三、 打印输出void mtclprn_font12line_buffer(unsigned char * pbuffer, unsigned char * charlinestr, int verticaldot, int dx, int dy, unsigned char templetchar)unsigned char * s, chwid;int m = 0, n = 0, i = 0, j = 0, k = 0;unsigned char qh, wh, buffer40, ascii, pagebuffer32768;unsigned long location, poffset, testmask, vertical;s = charlinestr;poffset = 0;memset(pagebuffer, 0, 32768);while(*s)ascii = *(s);if (ascii = 32 & ascii 128 )location = (ascii - 32) * 12L;memcpy(buffer, templetchar + location, 12);for(i = 0; i 12; i +)/yfor(k = 0; k (7 - k) & 0x1)pagebufferpoffset + k * 2 + i * 2 * verticaldot = 1;/原点pagebufferpoffset + k * 2 + i * 2 * verticaldot + verticaldot = 1;/下移一位pagebufferpoffset + k * 2 + 1 + i * 2 * verticaldot = 1;/右移一位pagebufferpoffset + k * 2 + 1 + i * 2 * verticaldot + verticaldot = 1;/右下移一位s += 1;chwid = 6;elseqh = *(s) - 0xa0;wh = *(s + 1) - 0xa0;location = (94 * (qh - 1) + (wh - 1) * 24L + 1140L;memcpy(buffer, templetchar + location, 24);for(i = 0; i 12; i +)for(j = 0; j 2; j+)for(k = 0; k (7 - k) & 0x1)pagebufferpoffset + (8 * j + k) * 2 + i * 2 * verticaldot = 1;/原点pagebufferpoffset + (8 * j + k) * 2 + i * 2 * verticaldot + verticaldot = 1;/下移一位pagebufferpoffset + (8 * j + k) * 2 + 1 + i * 2 * verticaldot = 1;/右移一位pagebufferpoffset + (8 * j + k) * 2 + 1 + i * 2 * verticaldot + verticaldot = 1;/右下移一位s += 2;chwid = 12;poffset += chwid * 2 + 1;for (i = 0; i poffset; i +)for (j = 0; j 3; j +)asci

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论