機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
DOS下為單片機(jī)漢字字模提取源代碼
DOS下為單片機(jī)漢字字模提取源代碼
 更新時間:2010-1-29 16:23:17  點(diǎn)擊數(shù):0
【字體: 字體顏色

/*單個漢字庫字摸提取程序,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;  /*通過區(qū)位碼計算其在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];

  /*轉(zhuǎn)換,hzf16f在電腦的儲存格式是以行為字節(jié)計算的,一般的lcd都采用以列為字節(jié)計算*/
  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進(jìn)制數(shù)*/
  for (k=0;k<32;k+=8) {
   for (j=0;j<8;j++) printf("0x%x,",b[j+k]);
   printf("\n");
  }
  getch();
 }
}

  • 上一篇: IR發(fā)射C語言驅(qū)動程序
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1