|
移植之前 必須保證 成功移植了文件系統(tǒng),這是在VS2008上運(yùn)行通過(guò)的;
//移植的時(shí)候要修改printf 函數(shù)為L(zhǎng)CD的打印一個(gè)點(diǎn)的函數(shù),與文件系統(tǒng)相關(guān)的函數(shù) 酌情修改

這是顯示效果,16*16 的GBK字庫(kù) 字庫(kù)的文件名是 "font.DZK"
- #include "stdio.h"
- #define FONT_SIZE 32//定義單個(gè)漢字所占的字節(jié)數(shù)
- void Display(FILE *f,char *str);
- void Displays(FILE *f,char *str,unsigned char count);
- int main(void)
- {
- FILE *f;
- f=fopen("font.DZK",r");
- if(f==NULL)
- {
- printf("error..");
- return 0;
- }
- Displays(f,"您好",2);
- fclose(f);
- return 0;
- }
- void GetFont(FILE *f,char *str,unsigned char *buff)
- {
- unsigned char High=*str;
- unsigned char Low=*(str+1);
- unsigned long offset;
- High-=0x81;
- if(Low<0x7f)
- Low-=0x40;
- else
- Low-=0x41;
- offset=(unsigned long)(High*190+Low)*FONT_SIZE;
- fseek(f,offset,0);
- fread(buff,FONT_SIZE,1,f);
- }
- void Display(FILE *f,char *str)
- {
- char i,j;
- unsigned char buff[FONT_SIZE],temp;
- GetFont(f,str,buff);
- for(i=0;i<32;i+=2)
- {
- temp=buff[i];
- for(j=0;j<8;j++)
- {
- if(temp&0x80)
- printf("*");
- else
- printf(" ");
- temp<<=1;
- }
- temp=buff[i+1];
- for(j=0;j<8;j++)
- {
- if(temp&0x80)
- printf("*");
- else
- printf(" ");
- temp<<=1;
- }
- printf("\n");
- }
- }
- void printblank(void)
- {
- unsigned char i;
- for(i=0;i<16;i++)
- printf(" ");
- }
- void Displays(FILE *f,char *str,unsigned char count)
- {
- unsigned char i;
- for(i=0;i<count;i++,str+=2)
- {
- Display(f,str);
- printblank();
- }
- }
復(fù)制代碼
|
|