⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch8-5hz.c

📁 单片机接口技术(C51版)例程源代码
💻 C
字号:
/*单个汉字库字摸提取程序,tc2.0编译*/
#include "stdio.h"
#include "dos.h"
#include "process.h"
#include "string.h"


void main(void) {
    long int num_bytes,qm,wm;
    unsigned char d,i,j,k,a[132],b[132];
    unsigned char * data;
    unsigned char * hz;
    static unsigned  char dd[103];
    FILE *fp;

    if ((fp=fopen("hzk16f","rb"))==NULL) {
        printf("can't open hzk16\n");
        exit(1);
    }
    clrscr();
    while (1) {

        data=(unsigned char *) malloc(33);
        printf("please input:\n");
        scanf("%s",dd); /*输入一个汉字*/

        qm=* dd;        /*通过区位码计算其在hzk16f文件中的偏移地址*/
        qm=qm-161;
        if (qm>87) exit(0);
        wm=* (dd+1);
        wm=wm-161;
        if (wm>94) exit(0);
        num_bytes=((long)qm*94+wm)*32;
        fseek(fp,num_bytes,SEEK_SET);
        fgets(data,33,fp);
        for (i=0;i<32;i++) b[i]=* data++;
        for (i=0;i<32;i+=2) a[i/2]=b[i];
        for (i=0;i<32;i+=2) a[i/2+16]=b[i+1];
        for (i=8;i<16;i++) b[i]=a[i];
        for (i=8;i<16;i++) a[i]=a[i+8];
        for (i=8;i<16;i++) a[i+8]=b[i];

        /*转换,hzf16f在电脑的储存格式是以行为字节计算的,一般的lcd都采用以列为字节计算*/
        for (k=0;k<32;k+=8) {
            for (j=0;j<8;j++) {
        		d=0;
                for (i=0;i<8;i++) {
                    if (a[i+k]>=0x80) {
                    	switch (i) {
                        case 0:d+=1;break;
                        case 1:d+=2;break;
                        case 2:d+=4;break;
                        case 3:d+=8;break;
                        case 4:d+=0x10;break;
                        case 5:d+=0x20;break;
                        case 6:d+=0x40;break;
                        case 7:d+=0x80;break;
        				}
        			}
        		}
                for (i=0;i<8;i++) a[i+k]<<=1;
                b[j+k]=d;
    		}
    	}
        clrscr();
        printf("/*%s:*/\n",dd);     /*输出0x00格式的16进制数*/
        for (k=0;k<32;k+=8) {
            for (j=0;j<8;j++) printf("0x%x,",b[j+k]);
            printf("\n");
    	}
        getch();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -