新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ASCII 8×8點陣字庫生成器

        ASCII 8×8點陣字庫生成器

        作者: 時間:2016-11-29 來源:網絡 收藏
        這個是用來生成ASCII點陣字庫給液晶用的,在12232上測試通過。不過本程序只有倒序輸出這一種功能。

        請自行下載好ASC16文件。或者發郵件到我的信箱:dv.xw@qq.com索取。BYET流量傷不起啊!

        本文引用地址:http://www.104case.com/article/201611/323415.htm

        上代碼(讀取ASC16在別人的代碼上改動完成):

        /**************************************************** FILE qm.c* Write by 萬致遠 * 輸出8x8字體* ************************************************/#include#include#include#include#include#include#include#include#ifdef DEBUG#define debug(fmt, ...) printf(fmt, #__VA_ARGS__)#else#define debug(fmt, ...)#endifvoid display_font_ascii(char *asc){int i, j,k=0;unsigned char outbuf[20];//8*8字體debug("=================");for(i=0;i<20;i++){outbuf[i]=0x00;}for(i=2;i<12;i++){if(i==9 || i == 10) continue;for(j=0;j<8;j++){/* 逐位相與,為1者打印“*”,否則打印空格 */if(asc[i] & (0x80>>j)){if(i==11){k=7;}else{k=i-2;}k=7-k;outbuf[j]=outbuf[j] | (0x80>>k);//printf("j=%d,value=0x%X,k=%d",j,0x80>>k,k);}else{//printf("0");}}//printf("");}printf("{");for(i=0;i<8;i++){if(i!=7){printf("0x%X,",outbuf[i]);}else{printf("0x%X}",outbuf[i]);}}debug("=================");}int main(){int i;unsigned char *p;//unsigned char asciicode[] = "B";unsigned long offset;FILE *asc;char ascii[16];if((asc=fopen("ASC16","rb"))==NULL){perror("Cant Open ASC16");exit(0);}printf("unsigned char __code ASCII[][8]={");/* ASCII字庫文件 */for (i = 32; i < 127; i++){// debug("%c %x", asciicode[i], asciicode[i]); /* 打印數值 */offset = i*16;debug("offset: %x", offset); /* 打印偏移量 */fseek(asc,offset,SEEK_SET);fread(ascii,16,1,asc);              /* 讀取16字節 */display_font_ascii(ascii);        /* 顯示 */if(i==126){printf("};");}else{printf(",");}}fclose(asc);return 0;}


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 宝山区| 淮南市| 得荣县| 广河县| 岐山县| 黄骅市| 开原市| 黄梅县| 大关县| 井陉县| 启东市| 方正县| 樟树市| 广丰县| 明光市| 康平县| 疏勒县| 台南县| 香格里拉县| 阿克苏市| 新和县| 喜德县| 霍邱县| 长岭县| 十堰市| 湟中县| 上思县| 河西区| 泸州市| 新乐市| 明水县| 蒲江县| 金塔县| 襄汾县| 桐柏县| 华坪县| 罗江县| 新野县| 八宿县| 高清| 色达县|