LCD字库程序

合集下载

利用LCD1602的自定义字库显示汉字

利用LCD1602的自定义字库显示汉字
DB 0FH,09H,0FH,09H,0FH,09H,11H,00H ;月,代码为02H
DB 1FH,11H,11H,1FH,11H,11H,1FH,00H ;日,代码为03H
DB 1FH,04H,04H,04H,04H,04H,04H,1FH ;工,代码为04H
DB 0AH,0AH,1BH,1BH,0AH,0AH,0AH,1FH ;业,代码为05H
RET
;------------------------------------------- ----------------------------------------
;以下是编写的8个汉字及特殊符号字库表,当然也可以编写其它的8个字库,只是最多同时只能编写8个,若要用更多的汉字只能去选择带有汉字库的显示模块了。
NOP
MOV A,P0
CLR E
JB ACபைடு நூலகம்.7,WR_DATA1 ;确保写数据操作成功
POP ACC
RET

ACALL WR_DATA ;调写显示数据子程序
INC R1
DJNZ R2,LOOP2 ;第二行显示完
AJMP $
TABDIS:
DB '2007',01H,'7',02H,'9',03H,' 26.8',06H ;2007年7月9日 26.8℃,在第一行
DB 'NANJING COLLEGE' , '0' ;以ASCLL码‘0’结束; 在第二行
DB 18H,18H,07H,08H,08H,08H,07H,00H ;℃,代码为06H
DB 04H,0AH,15H,04H,04H,04H,04H,00H ;↑,代码为07H

lcd字库调用实例

lcd字库调用实例

lcd字库调用实例【原创实用版】目录1.LCD 字库概述2.LCD 字库调用方法3.LCD 字库实例应用4.总结正文一、LCD 字库概述LCD 字库,即液晶显示屏字库,是用于显示文字和符号的一种图形字库。

它在电子设备中广泛应用,如计算器、手机、电脑显示器等。

LCD 字库中包含了各种字体、字号和符号,可以根据需要进行调用和显示。

二、LCD 字库调用方法调用 LCD 字库的方法因设备和编程语言的不同而异。

一般来说,可以通过以下几种方式来调用 LCD 字库:1.硬件调用:通过硬件接口直接访问 LCD 字库,如并行接口、串行接口等。

这种方式适用于简单的电子设备,如计算器。

2.软件调用:通过软件驱动程序访问 LCD 字库,如显示驱动程序、打印驱动程序等。

这种方式适用于较复杂的电子设备,如电脑、手机等。

3.编程语言调用:在程序设计中直接使用 LCD 字库函数或库。

这种方式适用于各种编程语言,如 C、C++、Python 等。

三、LCD 字库实例应用以 Python 语言为例,可以使用 Python 的第三方库来调用 LCD 字库。

这里我们使用名为“lcd_driver”的库来实现。

首先,需要安装库:“pip install lcd_driver”。

然后,可以编写如下代码来调用 LCD 字库:```pythonfrom lcd_driver import lcd# 创建 LCD 对象lcd_obj = lcd()# 初始化 LCDlcd_obj.init()# 显示字符串lcd_obj.print("你好,世界!")# 显示数字lcd_obj.print("12345")# 显示字库中的符号lcd_obj.print("→←↑↓")# 关闭 LCDlcd_obj.off()```四、总结LCD 字库是电子设备中常用的一种图形字库,可以通过硬件调用、软件调用和编程语言调用等方式实现。

LCD12864显示屏 带中文字库

LCD12864显示屏 带中文字库

蓝屏LCD12864显示屏带中文字库带背光12864-5V ST7920需要用串口,请把R9上的0欧电阻改到R10带中文字库的,兰屏,白字以下是在液晶模块的第二行第一个字符的位置显示字母“A”的程序: ORG 0000HRS EQU P3.7;确定具体硬件的连接方式RW EQU P3.6 ;确定具体硬件的连接方式E EQU P3.5 ;确定具体硬件的连接方式MOV P1,#00000001B ;清屏并光标复位ACALL ENABLE;调用写入命令子程序MOV P1,#00111000B ;设置显示模式:8位2行5x7点阵ACALL ENABLE ;调用写入命令子程序MOV P1,#00001111B ;显示器开、光标开、光标允许闪烁ACALL ENABLE ;调用写入命令子程序MOV P1,#00000110B ;文字不动,光标自动右移ACALL ENABLE ;调用写入命令子程序MOV P1,#0C0H ;写入显示起始地址(第二行第一个位置)ACALL ENABLE ;调用写入命令子程序MOV P1,#01000001B ;字母A的代码SETB RS ;RS=1CLR RW ;RW=0 ;准备写入数据CLR E ;E=0 ;执行显示命令ACALL DELAY ;判断液晶模块是否忙?SETB E ;E=1 ;显示完成,程序停车AJMP $ENABLE:CLR RS ;写入控制命令的子程序CLR RWCLR EACALL DELAYSETB ERETDELAY:MOV P1,#0FFH ;判断液晶显示器是否忙的子程序CLR RSSETB RWCLR ENOPSETB EJB P1.7,DELAY ;如果P1.7为高电平表示忙就循环等待RETEND程序在开始时对液晶模块功能进行了初始化设置,约定了显示格式。

注意显示字符时光标是自动右移的,无需人工干预,每次输入指令都先调用判断液晶模块是否忙的子程序DELAY,然后输入显示位置的地址0C0H,最后输入要显示的字符A的代码41H。

带中文字库的12864LCD显示程序

带中文字库的12864LCD显示程序
case 2: p = 0x90; break; //第三行
case 3: p = 0x98; break; //第四行
}
p += y;
writeCmd(p);
}
void writeString(uchar * str)
{ uchar i = 0;
//带中文字库的12864LCD显示程序
#include <reg52.H>
#include <intrins.H>
#define uchar unsigned char
#define uint unsigned int
//sbit dula = P2^6;
//sbit wela = P2^7;
RW = 0;
E = 0;
delayUs();
LCD_DATA = dat;
delayUs();
E = 1;
delayUs();
E = 0;
}
//初始化LCD
voi; //并/串接口选择, H并,L串
sbit RET = P3^3; //复位, L有效
uchar code datas1[] = {"长江大学电信学院"};
uchar code datas2[] = {"自动化系李壮 "};
uchar code datas3[] = {"学号200701577 "};
}
void setPosition(uchar x, uchar y)
{ uchar p;
switch(x%4)
{
case 0: p = 0x80; break; //第一行开始地址

LCD1602显示全部字库字符

LCD1602显示全部字库字符

LCD1602显示全部字库字符、看门狗定时器测试LCD1602液晶内含有192个字符字库,这个程序是分6屏进行显示,整个显示过程长约7秒,看门狗定时器设置时间为8.38秒,刚好显示完全部字符,修改看门狗就可以看到在显示中途重启,比较直观LCD_E BIT P3.4 ;LCD片选LCD_RS BIT P3.5 ;指令、数据位LCD_RW BIT P3.6 ;读、写位PORT EQU P0 ;端口定义WDT_COUNT EQU 0E1H ;看门狗START: LCALL LCD_INITLCALL WDT_INITMOV A,#01H ;清屏LCALL WR_CMDDISP_LOOP: MOV R0,#06H ;循环计数器MOV R1,#80H ;LCD地址计数器MOV R2,#00H ;字符表指针计数器MOV DPTR,#TABWR_DAT_LOOP: MOV A,R1 ;地址命令LCALL WR_CMDINC R1 ;地址加一MOV A,R2 ;表指针MOVC A,@A+DPTRLCALL WR_DA TLCALL DELAY100MSINC R2 ;表指针加一CJNE R1,#90H,BIJIAO ;字符是否到16MOV R1,#0C0H ;到16,换地址BIJIAO: CJNE R1,#0D0H,WR_DAT_LOOP ;字符数是否到32MOV R1,#80H ;地址回归LCALL DELAY1SMOV A,#1B ;清屏LCALL WR_CMDDJNZ R0,WR_DA T_LOOPMOV WDT_COUNT,#00110111BLJMP DISP_LOOPLCD_INIT: MOV A,#111000B ;8位总线LCALL WR_CMDMOV A,#10B ;数据指针清零LCALL WR_CMDMOV A,#01H ;清屏LCALL WR_CMDMOV A,#1111B ;显示开,光标开,闪烁开LCALL WR_CMDMOV A,#10000000B ;设置显示地址00HLCALL WR_CMDRETWDT_INIT: MOV WDT_COUNT,#00110111B ;看门狗定时器设置时间1.1秒RETCHK_BUSY: SETB PORT.7CLR LCD_RSSETB LCD_RWWAIT1: SETB LCD_EMOV C,PORT.7JC WAIT1CLR LCD_ERETWR_CMD: LCALL CHK_BUSYCLR LCD_RSCLR LCD_RWSETB LCD_EMOV PORT,ACLR LCD_ERETWR_DAT: LCALL CHK_BUSYSETB LCD_RSCLR LCD_RWSETB LCD_EMOV PORT,ACLR LCD_ERETDELAY100MS: MOV R7,#10DL5: MOV R6,#250DL4: NOPNOPDJNZ R6,DL4DJNZ R7,DL5RETDELAY1S: MOV R7,#10DL1: MOV R6,#200DL2: MOV R5,#248DL3: DJNZ R5,DL3DJNZ R6,DL2DJNZ R7,DL1RETTAB: DB 20H,21H,22H,23H,24H,25H,26H,27H,28H,29H,2AH,2BH,2CH,2DH,2EH,2FHDB30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,3AH,3BH,3CH,3DH,3EH,3FHDB40H,41H,42H,43H,44H,45H,46H,47H,48H,49H,4AH,4BH,4CH,4DH,4EH,4FHDB50H,51H,52H,53H,54H,55H,56H,57H,58H,59H,5AH,5BH,5CH,5DH,5EH,5FHDB60H,61H,62H,63H,64H,65H,66H,67H,68H,69H,6AH,6BH,6CH,6DH,6EH,6FHDB70H,71H,72H,73H,74H,75H,76H,77H,78H,79H,7AH,7BH,7CH,7DH,7EH,7FHDB0A0H,0A1H,0A2H,0A3H,0A4H,0A5H,0A6H,0A7H,0A8H,0A9H,0AAH,0ABH,0ACH,0ADH,0 AEH,0AFHDB0B0H,0B1H,0B2H,0B3H,0B4H,0B5H,0B6H,0B7H,0B8H,0B9H,0BAH,0BBH,0BCH,0BDH,0BE H,0BFHDB0C0H,0C1H,0C2H,0C3H,0C4H,0C5H,0C6H,0C7H,0C8H,0C9H,0CAH,0CBH,0CCH,0CDH,0CE H,0CFHDB0D0H,0D1H,0D2H,0D3H,0D4H,0D5H,0D6H,0D7H,0D8H,0D9H,0DAH,0DBH,0DCH,0DDH,0 DEH,0DFHDB0E0H,0E1H,0E2H,0E3H,0E4H,0E5H,0E6H,0E7H,0E8H,0E9H,0EAH,0EBH,0ECH,0EDH,0EEH ,0EFHDB0F0H,0F1H,0F2H,0F3H,0F4H,0F5H,0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH,0FEH,0 FFHEND。

LCD12864中文字库使用说明

LCD12864中文字库使用说明

( 一 ) ( 一 )概括⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3(二) ( 二)外形尺寸1 方框⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯32 外型尺寸⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4( 三 )( 三 )模的接口⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4( 四 )( 四 )硬件明⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5( 五 )指令明⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯7( 五 )( 五 )写操作序⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯8( 六 )( 六 )沟通参数⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯11( 七 )( 七 )件初始化程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12( 八 )( 八 )用例⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13( 九 )( 九 )附1 半字符表⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯202 字字符表⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯21一、概括FYD12864-0402B是一种拥有 4 位/8 位并行、 2 线或 3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为 128× 64, 内置 8192 个 16*16 点汉字,和 128 个 16*8 点 ASCII 字符集 . 利用该模块灵巧的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。

能够显示 8× 4 行 16× 16 点阵的汉字 . 也可达成图形显示 . 低电压低功耗是其又一明显特色。

由该模块构成的液晶显示方案与同种类的图形点阵液晶显示模块对比,无论硬件电路构造或显示程序都要简短得多,且该模块的价钱也略低于同样点阵的图形液晶模块。

基本特征 :低电源电压( VDD:+3.0--+5.5V)显示分辨率 :128 × 64 点内置汉字字库,供给8192 个 16× 16 点阵汉字 ( 简繁体可选 )内置 128 个 16× 8 点阵字符2MHZ时钟频次显示方式: STN、半透、正显驱动方式: 1/32DUTY, 1/5BIAS视角方向: 6 点背光方式:侧部高亮白色 LED,功耗仅为一般 LED的 1/5 —1/10 通信方式:串行、并口可选内置 DC-DC变换电路,无需外加负压无需片选信号,简化软件设计工作温度 :0 ℃ -+55℃ ,储存温度:-20℃ -+60℃二、方框图3、外形尺寸图三、模块接口说明* 说明 1:如在实质应用中仅使用串口通信模式,可将PSB接固定低电平,也能够将模块上的J8 和“ GND”用焊锡短接。

LCD和字库的解决方案

LCD和字库的解决方案

关于字库和LCD的解决方案(2014.08.21)1.关于汉字显示和字符显示由于本车载系统采用的LCD型号LCM192643本身不带中文字库,所以采用点阵输入显示的方式,整个过程如下:(1)将欲显示在LCM模块上的汉字或字符,输入字模软件,并选择不同的字体及大小,从中提取出该字符或汉字的点阵。

(2)将点阵以数组的形式放入程序的存储区,在程序中以该数组名为实参调用LCM模块的驱动函数,便可将该字符或汉字显示在LCM模块的特定位置上。

Unsigned charda[32]={0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00};DisplayWord(da,1,4);2.关于本车载系统LCD显示的解决方案(1)由于每条公交线路站名固定,且用于报站的汉字和字符都是有限的,所以用字模软件将每一条所有车站以及报站所用的汉字(字符)取出,并以一定的规律(如按照车站的次序)放入程序的存储区中,等到需显示某个汉字或字符时再从中调用。

这样可以极大的节约单片机有限的存储空间,以及减少成本,并方便后续编程。

(2)为了能在LCM模块上显示大小不同的各种字体,我们将提供各种字体的显示提取程序。

比如想在LCM上显示16X12的字体,可以调用DisplayWord1612(),若想显示16X16的字体,可以调用DisplayWord1616()等等。

而不必将不同规范的字库都装入存储器中,以避免不必要的浪费。

(3)在车载系统的使用中,LCD必然有固定的人机界面,且界面一旦确定,所显示的字符大小和内容都是固定不变的,所以事先确定人机界面,然后按照人机界面上固定大小的字符到字模软件中提取点阵,并放入程序的存储区中。

LCD12864液晶的使用之字库型液晶(二)

LCD12864液晶的使用之字库型液晶(二)
Read_H=ReadByte(); //读高8位
Read_L=ReadByte(); //读低8位
write_LCD_command(ROW+0x80); //送入垂直地址
write_LCD_command(xlabel+0x80);//再送入水平地址
if(xlabel_bit<8)
{
switch(color)
address++;//指针地址指向下个位置
}
}
}
还有一点要注意的就是显示图片和显示ASCII码、汉字的初始化函数不同,显示图片用的是扩展指令:
void init_BMP()
{
write_LCD_command(0x36);//CL=1--8位。扩充指令(RE=1),绘图打开(G=1)
delay(100);//适当延时
下面这个显示温度曲线:
这两个的仿真图大家可以做一下!
/echoas/blog/item/525d2f74bc735508b151b92d.html
{
ROW=y;
}
else//显示的是下半屏
{
ROW=y-32;
xlabel+=8; //规定显示在下半屏
}
write_LCD_command(ROW+0x80); //送入垂直地址
write_LCD_command(xlabel+0x80);//再送入水平地址
ReadByte();//读取当前GDRAM数据前腰进行一次空读,接下来就可以读出数据了
break;
default:break;
}
write_LCD_data(Read_H);//将数据写入GDRAM

LCD12864驱动程序(带字库的)

LCD12864驱动程序(带字库的)
{
EA=0;
b=sizeof(a);
num=b;
for(l=0;l<4;l++)
{
for(i=0;i<num;i++)
{
Display_Line(d[l]);
Write_Data(a[);
}
delay(N);
//EA=1;
}
EA=1;
TH0=0x06;
TL0=0x06;
Clear_LCD();
delay(500);
}
void main(void)
{
TMOD=0x01; ///选择定时器模式
TR0=1; //开中断,并允许T0中断
ET0=1;
EA=1; //总开关
Init_LCD();
Clear_LCD();
while(1);
}
void t0(void) interrupt 1 using 0
{
//delay(100);
void Write_Data(uchar Data)
{
Busy();
RS=1;
RW=0;
DataPort=Data;
E=1;
delay(1);
E=0;
}
/***********LCD初始化*******************/
void Init_LCD(void)
{
PSB=0;
delay(1);
void Display_Line(uchar x)
{
uchar c=0;
c=x-0x1; //本函数说明,函数内部的计算公式一定要处在函数的首行
if(i==0) Write_Com(x);

lcd12864带字库经典程序

lcd12864带字库经典程序
ListLength++;
X++;
Delay5Ms();
}
}
}
/***********短延时********************************************************/
voidDelay5Ms(void)
{
unsignedintTempCyc= 5552;
while(TempCyc--);
WriteDataLCD(DData);
}
/***********按指定位置显示一串字符*****************************************/
voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData)
voidWriteDataLCD(unsignedcharWDLCD)
{
ReadStatusLCD();//检测忙
LCD_RS= 1;
LCD_RW= 0;
LCD_Data=WDLCD;
LCD_E= 1;
LCD_E= 1;
LCD_E= 0;
}
/***********写指令********************************************************/
sbitLCD_RS=P1^0;
sbitLCD_RW=P1^1;
sbitLCD_E=P1^2;
sbitPSB=P1^6;//PSB脚为-12系列的串、并通讯功能切换,使用位并行接口,PSB=1
/********宏定义***********************************************************/

lcd显示汉字程序,lcd

lcd显示汉字程序,lcd
#define R65 0x41
#define R66 0x42
#define R67 0x43
#define R68 0x44
#define R69 0x45
#define R70 0x46
#define R21 0x15
#define R22 0x16
#define R23 0x17
#define R24 0x18
#define R25 0x19
#define R26 0x1A
#define R15 0x0F
#define R16 0x10
#define R17 0x11
#define R18 0x12
#define R19 0x13
#define R20 0x14
#define Grey 0xF7DE
#define Blue 0x001F
#define Blue2 0x051F
#define Red 0xF800
#define Magenta 0xF81F
#define R52 0x34
#define R53 0x35
#define R54 0x36
#define R55 0x37
#define R56 0x38
#define R57 0x39
#define R135 0x87
#define R136 0x88
#define R137 0x89
#define R139 0x8B
#define R140 0x8C
#define R141 0x8D
* 定义一些变量-------------------------------------*/

LCD 12864液晶显示汉字程序

LCD 12864液晶显示汉字程序
0x02,0x01,0x00,0xFF,0x00,0x82,0x41,0x22,0x14,0x09,0x14,0x23,0x40,0xC0,0x40,0x00,
/*--文字: --*/
/*--宋体12;此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*--文字: --*/
/*--宋体12;此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x00,
/*--文字: --*/
/*--宋体12;此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x40,0x20,0x10,0x0E,0x10,0x20,0x3F,0x44,0x44,0x44,0x44,0x44,0x40,0x40,0x00,
/*--文字:地--*/
/*--宋体12;此字体下对应的点阵为:宽x高=16x16 --*/

lcd字库调用实例

lcd字库调用实例

lcd字库调用实例LCD字库调用是指在液晶显示屏上显示特定的字符或图形。

下面是一个LCD字库调用的实例:假设我们使用的是Arduino开发板和液晶显示屏,需要显示一个自定义的字符。

首先,我们需要创建一个自定义字符的字模。

字模是一个5x8像素的矩阵,用来描述字符的形状。

下面是一个示例字模:byte customChar[8] = {。

B00000,。

B01010,。

B01010,。

B01010,。

B01010,。

B10001,。

B01110,。

};接下来,我们需要将字模加载到液晶显示屏的内存中。

使用LiquidCrystal库可以轻松实现这一点。

首先,我们需要包含LiquidCrystal库的头文件:#include <LiquidCrystal.h>。

然后,我们需要定义液晶显示屏的引脚连接:LiquidCrystal lcd(12, 11, 5, 4, 3, 2);接下来,在setup()函数中初始化液晶显示屏:void setup() {。

lcd.begin(16, 2); // 设置液晶显示屏的列数和行数。

lcd.createChar(0, customChar); // 将自定义字符加载到内存中。

}。

在loop()函数中,我们可以调用液晶显示屏的print()函数来显示自定义字符:void loop() {。

lcd.setCursor(0, 0); // 设置光标位置为第一列第一行。

lcd.write(byte(0)); // 显示自定义字符。

delay(1000); // 延迟1秒。

}。

这样,液晶显示屏上就会显示出我们定义的自定义字符。

以上是一个简单的LCD字库调用的实例。

在实际应用中,你可以根据需要创建更多的自定义字符,并使用液晶显示屏库提供的函数来控制显示内容和位置。

lcd字库调用实例 -回复

lcd字库调用实例 -回复

lcd字库调用实例-回复如何调用lcd字库。

以下是一步一步的实例,来帮助你了解如何调用lcd 字库。

第一步:确定所需的字库类型在调用LCD字库之前,首先需要确定你所需的字库类型。

目前常见的字库类型有ASCII字库和汉字字库。

ASCII字库包含英文字母、数字、符号等字符,而汉字字库则包含中文字符。

你可以根据自己的需求来选择合适的字库类型。

第二步:获取字库文件在调用LCD字库之前,你需要获取相应的字库文件。

字库文件可以是二进制文件或文本文件,取决于字库厂商的提供方式。

一般来说,你需要向字库厂商购买或下载字库文件,并保存到你的开发环境中。

第三步:导入字库文件在调用LCD字库之前,你需要将字库文件导入到你的开发环境中。

具体的导入方式取决于你所使用的开发环境和字库类型。

以下是两种常见的导入方式:1. 导入ASCII字库:- 如果你的开发环境支持导入二进制文件,则可以直接将ASCII字库文件导入到你的项目文件中。

- 如果你的开发环境支持导入文本文件,则需要将ASCII字库文件转换成特定的格式(如C数组或数组表格),然后再导入到你的项目文件中。

2. 导入汉字字库:- 如果你的开发环境支持导入二进制文件,则可以直接将汉字字库文件导入到你的项目文件中。

- 如果你的开发环境支持导入文本文件,则需要将汉字字库文件转换成特定的格式(如C数组或数组表格),然后再导入到你的项目文件中。

一般来说,你可以使用字库厂商提供的转换工具来完成这个步骤。

第四步:调用字库函数一般来说,调用LCD字库的方式取决于你所使用的开发环境和字库类型。

以下是两种常见的调用方式:1. 调用ASCII字库:- 如果你导入的是二进制格式的ASCII字库文件,则可以使用特定的函数来直接在LCD屏幕上显示字符。

- 如果你导入的是文本格式的ASCII字库文件,则需要将字符的ASCII 码作为参数,传递给特定的函数来显示字符。

2. 调用汉字字库:- 如果你导入的是二进制格式的汉字字库文件,则可以使用特定的函数来直接在LCD屏幕上显示汉字。

lcd汉字程序重要

lcd汉字程序重要

断断续续搞12864两三天了,到今天大概明白是怎么回事了,具体的工作原理,在我另外一篇转载有写,请参看(12864点阵型液晶显示屏的基本原理与使用方法)我感觉这篇写的还是比较详细的,下面我写一下,我在学习过程中碰到的一些问题,或许会对你的学习有点启发。

12864与1602比起来,差别还是很大的,1602的话,基本上,就是写数据,写指令,其它一些清屏,显示设置什么的,看着数据手册是容易搞定的。

12864了,我参考的书是一款带字库的FYD12864,相比PROTEUS里的AMPIRE12864这款就简单多了,直接写汉字的对应的编码就行了,AMPIRE12864的话,是要用取模软件的,有需要的朋友可以BAIDU一下“字模提取V2.2”我要说明的是,我代码参照别人的写好了,然后用取模软件,取了几个字的,COPY到KEILC的时候,在仿真中显示乱码,因为这个问题,耽误了好多时间,解决方法其实很简单,在取模软件中,设置一下参数软件里设置好纵向取膜,字节倒反。

12864学习过程中,还有一个难题,就是页page 行row 列column学过数据库的朋友都知道,数据表就是由行与列组成的,那么12864的行与列也是这个意思12864顾名思义就是128*64的大小,我们看一下屏幕,很容易看到,列是128 也就是所谓的长。

行了就是64,所谓的宽,这是你直观的感受,事实上,它是由两块64*64的液晶屏组成的,这就是数据手册上,CS1 CS2的用处了,正如你所想,CS1 CS2就是选择这两块液晶屏的作用,至于是0或是1这个就要看你所使用液晶手册上面的参数了,PROTEUS里的是低电平,选通。

这个可以在后面我给的代码中看到。

行列说了,下面来说页,学过操作系统的朋友,都知道WINDOWS的虚拟内存就是一页页组成的,同样的,在NAND FLASH中,也有这样的概念,在手册上可以看到页是0-7也就是8页,为什么是8页了。

我们在取模软件看可以看到,一个字是16*16的,而屏幕是64*64不难看出,一屏可以显示4*4个字,那么半个字就是一页。

带字库LCD屏做示波器程序

带字库LCD屏做示波器程序

/////////////////////////////////////// Generated Initialization File ///////////////////////////////////////#include "C8051F410.h"// Peripheral specific initialization functions,// Called from the Init_Device() functionvoid PCA_Init(){PCA0MD &= ~0x40;PCA0MD = 0x00;}void Timer_Init(){TCON = 0x40;TMOD = 0x10;CKCON = 0x08;TL1 = 0xD4;TH1 = 0x30;}void ADC_Init(){ADC0MX = 0x09;ADC0CN = 0x80;}void Voltage_Reference_Init(){REF0CN = 0x0A;}void Port_IO_Init(){// P0.0 - Unassigned, Push-Pull, Digital // P0.1 - Unassigned, Push-Pull, Digital // P0.2 - Unassigned, Push-Pull, Digital // P0.3 - Unassigned, Push-Pull, Digital // P0.4 - Unassigned, Push-Pull, Digital // P0.5 - Unassigned, Push-Pull, Digital // P0.6 - Unassigned, Push-Pull, Digital // P0.7 - Unassigned, Push-Pull, Digital// P1.0 - Skipped, Open-Drain, Analog // P1.1 - Unassigned, Open-Drain, Digital// P1.2 - Unassigned, Open-Drain, Digital// P1.3 - Unassigned, Open-Drain, Digital// P1.4 - Unassigned, Open-Drain, Digital// P1.5 - Unassigned, Open-Drain, Digital// P1.6 - Unassigned, Open-Drain, Digital// P1.7 - Unassigned, Open-Drain, Digital// P2.0 - Unassigned, Push-Pull, Digital// P2.1 - Unassigned, Push-Pull, Digital// P2.2 - Unassigned, Push-Pull, Digital// P2.3 - Unassigned, Open-Drain, Digital// P2.4 - Unassigned, Open-Drain, Digital// P2.5 - Unassigned, Open-Drain, Digital// P2.6 - Unassigned, Open-Drain, Digital// P2.7 - Unassigned, Open-Drain, DigitalP1MDIN = 0xFE;P0MDOUT = 0xFF;P2MDOUT = 0x07;P1SKIP = 0x01;XBR1 = 0x40;}void Oscillator_Init(){OSCICN = 0x87;}void Interrupts_Init(){IE = 0x88;}// Initialization function for device,// Call Init_Device() from your main programvoid Init_Device(void){PCA_Init();Timer_Init();ADC_Init();V oltage_Reference_Init();Port_IO_Init();Oscillator_Init();Interrupts_Init();}#define uchar unsigned char //0~255#define uint unsigned int //0~65535#define ulint unsigned long int //0~4294967295//////////////////////////////////////////////////////////////////////////sbit lcden=P1^5;sbit lcdrw=P1^7;sbit lcdrs=P1^6;sbit LED=P2^0;/////////////////////////////////////////////////////////////////////////uchar num,k1,LCD_X,LCD_Y,LCD_Y0,LCD_X0,m=0,count=0;uchar code tab1[]={0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x1D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x05, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x1D, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x05, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x1D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x1D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x05, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x1D, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x11, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x1D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x09, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x09, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x09, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x09, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x09, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x01, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x01, 0x50, 0x04, 0x01, 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40,0x01, 0x50, 0x04, 0x01, 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40,0x01, 0x5F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,0x01, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x04, 0x03, 0x80, 0xE0, 0x28, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0x0E, 0x05, 0xC0, 0x90,0x00, 0x10, 0x04, 0x00, 0x80, 0x20, 0x28, 0x08, 0x02, 0x00, 0x20, 0x28, 0x0A, 0x05, 0x40, 0x90,0x00, 0x10, 0x04, 0x03, 0x80, 0xE0, 0x38, 0x0E, 0x03, 0x80, 0x20, 0x38, 0x0E, 0x05, 0x40, 0x90,0x00, 0x10, 0x04, 0x02, 0x00, 0x20, 0x08, 0x02, 0x02, 0x80, 0x20, 0x28, 0x02, 0x05, 0x40, 0x90,0x00, 0x10, 0x04, 0x03, 0x80, 0xE0, 0x08, 0x0E, 0x03, 0x80, 0x20, 0x38, 0x0E, 0x05, 0xC0, 0x90,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x05, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x05, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0xC5, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x05, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x05, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x1D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x05, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0xDD, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x11, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x1D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x1D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x05, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0xDD, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x05, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x1D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};uint code tab2[]={0x8000,0x4000,0x2000,0x1000,0x0800,0x0400,0x0200,0x0100,0x0080,0x0040,0x0020, 0x0010,0x0008,0x0004,0x0002,0x0001};uchar xdata buff[112];ulint adz;uint ads;bit flag,flag1;//////////////////////////////////////////////////////////////////////////////void delay(uint z)//9us延时{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}/* mS延时*/void delayms(unsigned int i){ unsigned int j;do{ for(j=0;j!=1000;j++){;}}while(--i);}/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uint adc() //ADC转换函数{AD0BUSY=1;do{ }while(AD0INT==0);AD0INT=0;ads=ADC0H*256+ADC0L;return(ads);}void tem1() interrupt 3//定时10US{TL1 = 0xFF;TH1 = 0x84;adz=adc();adz=156l*adz;m=adz/10000;buff[count++]=m;if(count==112){TCON = 0x00;flag=1;count=0;}}///////////////////////////////////////////////////////////////////////////////////void write_com(uchar com) //写命令函数(在lcden的下降沿写入/读出有效){lcden=0;lcdrs=0;P0=com;delay(1);lcden=1;delay(1);lcden=0;}//////////////////////////////////////////////////////////////////////////////////void write_data(uchar date) //写数据函数(写8位,一个字节){lcden=0;lcdrs=1;P0=date;delay(1);lcden=1;delay(1);lcden=0;}//////////////////////////////////////////////////////////uchar read_data(void)//读数据函数{uchar date;lcdrw=1;lcden=0;lcdrs=1;date=P0;delay(1);lcden=1;delay(1);lcden=0;lcdrw=0;return date;}//////////////////////////////////////////////////////////////////////////////////void init() //初始化函数{lcden=0;write_com(0x30); //基本功能/8位数据并行输入write_com(0x0C); //全屏显示,并显示光标,且光标处不反白//write_com(0x0f); //全屏显示,并显示光标,且光标处反白write_com(0x04); //汉字从行首向右依次显示,且光标跟随显示右移//write_com(0x05); //汉字从行尾显示,并左移。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
=0;
main()
{
unsigned long int i,j,NumBytes,Reen,FileLong;
unsigned int Qu,Wei,m,Word,WordNum,Shzk[500];
}
}
fclose(fp3);
fclose(fp1);
free(FileBuf);
fclose(fp2);
}
点击这里回复这篇贴子>>
_____________________________________________________________________________
Copyright?,C51BBS论坛 2000-2002

/*需要汉字库HZK16在当前目录*/
/*系统提示时输入一个文本汉字文件*/
#include <graphics.h>
#include <stdio.h>
#include <string.h>
#include <dos.h>
unsigned char *WordDot16;
getch();
exit(0);
}
if((fp3=fopen("d:\\sk\\hzk\\hzk16","rb"))==NULL)
{ printf("Can not Open File HZK16\n");
getch();
{ if(Word==Shzk[j])
j=WordNum+2;
}
if(j==WordNum)
{Shzk[WordNum++]=Word;}
}
exit(1);
}
FileLong=filelength(fileno(fp2));
FileBuf=(char *)malloc(FileLong);
for(i=0;i<FileLong;i++)
fscanf(fp2,"%c",&FileBuf[i]);
用【 小 | 中 | 大 】字体浏览
C51编程:请问 从HZK16 提取的汉字字模是什么格式的 [凡非] [18次] 01-10-31 上午 11:19:14
是这样的格式 [smiling21cn] [52次] 01-10-31 下午 02:22:48
byte0 byte1
byte2 byte3
unsigned char PreHalf,BakHalf,Byte,*FileBuf,Dot[32],buf;
FILE *fp1,*fp2,*fp3;
char SouceFile[12],p[500];
WordNum=0;
for(i=0;i<FileLong;i++)
{if(FileBuf[i]>0xa0)
{ Word=FileBuf[i]*256+FileBuf[i+1];
i++;
for(j=0;j<WordNum;j++)
LCD字库程序 [aaa] [23次] 01-11-2 上午 10:13:17
已经发送!
(抱歉)LCD字库程序 [aaa] [42次] 01-11-2 上午 10:45:49
(因为机器故障,只有通过此方式给大家)
/*此程序用于生成汉字的点阵*/
/*输入汉字文本文件生成名为SMCCLIB.DOT的纯点阵字库*/
int driver,mode;
if((fp1 = fopen("smcclib.dot","wb")) == NULL)
{ printf("Lib File Open Error!\n");
getch();
exit(0);
fseek(fp3,NumBytes,SEEK_SET);
fread(Dot,1,32,fp3);
for(m=0;m<32;m++)
{ buf=Dot[m];
fwrite(&buf,1,1,fp1);
多谢,chan_yc@ [凡非] [6次] 01-10-31 下午 06:51:09
我也需要,也可以mail一份吗?zhaojinjun_302@。谢谢! [zhaojinjun_302] [4次] 01-10-31 下午 09:32:05
还没收到呀! [凡非] [0次] 01-11-1 下午 05:59:40
... ...
byte30 byte31
LCD汉字库的建立 [aaa] [77次] 01-10-31 下午 03:32:07
这要看你存的文件是二进制还是ASCII码文件了,本人曾经编写了一段c语言的程序提取汉字
库字模,你是否需要?
我需要,可以mail一份吗?zhangxhliu@ [zhangxhliu] [4次] 01-10-31 下午 05:32:58
fwrite(&PreHalf,1,1,fp1);
fwrite(&BakHalf,1,1,fp1);
Qu=PreHalf-160;
Wei=BakHalf-160;
Reen=(Qu-1)*94+Wei;
NumBytes=(Reen-1)*32;
}
printf("Input Chinese Souce File Name:");
scanf("%s", &SouceFile);
if((fp2 = fopen(SouceFile, "r")) == NULL)
{ printf("Souce File Open File Error \n");
}
for(i=0;i<WordNum-1;i++)
{ PreHalf=Shzk[i]>>8;
BakHalf=Shzk[i]&0x00ff;
/*如果需要加入内码,需要加入以下二句*/
/*否则生成无内码的纯点阵字库*/
相关文档
最新文档