[重点]5110液晶显示
- 格式:doc
- 大小:153.00 KB
- 文档页数:11
Nokia5110 液晶应用
贴子发表于:2007/5/9 21:09:15
欢迎参与调查
背景:Nokia5110 的电路板在寒假回家的时候就已经画了一个版本了,当时是抄板,抄basic-avr上阿贵的板子,但是由于5110是导电胶模式的接口,测量有点失误,导致失败了,回来后不甘心,联系阿贵问怎么回事,没想到阿贵把5110的lib文件给我了,在此表示感谢,重新绘制电路板,终于搞定了!
综述:Nokia5110 是一款我认为很有市场和性价比很好的液晶产品,他是Nokia手机上的液晶屏,3.3v电压供电,唯一的缺点是没有背光,需要自己加LED作为背光,价格上绝对有优势,LCD1602 市场价格20~25元不等,而5110的裸屏价格为12元,(basic-avr上有卖)自己做一个电路板接口,再加上2个背光LED,估计也就20元左右,虽然没有字库,但是作为点阵型的液晶还是比字符的要好很多,起码做一个字符的字符浪费不了多少资源的,还可以显示开机图片动画或者中文菜单提示等等,介绍就到这里吧。
看看我的电路板图片,糟了,画的8个板子都焊接上了,没有pcb板子了,直接上传最终的效果吧!
第一张,用Study-3 开发板调试现象
第二张,来个近镜头
第三张,没有背光的效果
打算移植到msp430单片机上,板子上一共有8跟线,5跟接口线,电源、地、背光。
LED显示屏基础知识介绍发布来源:发布时间:2010-1-4 17:44:16第一:什么是led显示屏?LED显示屏(LED panel):LED就是light emitting diode ,发光二极管的英文缩写,简称LED。
它是一种通过控制半导体发光二极管的显示方式,其大概的样子就是由很多个通常是红色的小灯组成,靠灯的亮灭来显示字符。
用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。
LED显示屏分为图文显示屏和视频显示屏,均由LED矩阵块组成。
图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。
LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于金融、税务、工商、邮电、体育、广告、厂矿企业、交通运输、教育系统、车站、码头等等.LED显示屏可以显示变化的数字、文字、图形图像;不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点。
LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。
这些优点概括起来是:亮度高、工作电压低、功耗LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。
第二:LED显示屏的分类:1、按颜色基色可以分为单基色显示屏:单一颜色(红色或绿色)。
双基色显示屏:红和绿双基色,256级灰度、可以显示65536种颜色。
全彩色显示屏:红、绿、蓝三基色,256级灰度的全彩色显示屏可以显示一千六百多万种颜色。
2、按显示器件分类LED数码显示屏:显示器件为7段码数码管,适于制作时钟屏、利率屏等,显示数字的电子显示屏。
LED点阵图文显示屏:显示器件是由许多均匀排列的发光二极管组成的点阵显示模块,适于播放文字、图像信息。
LCD1602液晶显示器简介一概述液晶(Liquid Crystal)是一种高分子材料,因其特殊的物理、化学、光学特性,广泛应用轻薄显示器上。
液晶显示器(Liquid Crystal Display,LCD)的主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。
各种型号的液晶通常是按照显示字符的行数或液晶点阵的行、列数来命名。
例如,1602表示每行显示16个字符,一共可以显示两行。
这类液晶通常称为字符型液晶,只能显示ASCII码字符。
12232表示液晶显示画面由122列、32行组成,共有122*32个点来显示各种图形。
用户可以通过程序控制这些点中任何一个点显示或不显示,从而构成各种图形画面。
因此,12232称为图形型液晶。
液晶体积小,功耗低,显示操作简单。
但其有致命的弱点,即使用温度范围很窄。
通用型液晶工作温度为0到+55摄氏度,存储温度为-20到+60摄氏度。
二 LCD16021 1602的外形尺寸(毫米)2 主要技术参数3接口信号说明4 基本操作时序4RAM地址映射图控制器内部带有80B的RAM缓冲区。
对应关系如下图所示。
向图中的00~0F、40~4F地址中的任意处写入显示数据时,液晶可立即显示出来;当写入到10~27或50~67地址时,必须通过移屏指令将他们一移入可显示区域方可正常显示。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示。
这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
6状态字说明说明:原则上每次对控制器进行读写操作前,都必须进行读写检测,确保STA7为0。
实际上,由于单片机的操作速度慢于液晶控制器的反应速度,因此可以不进行检测,或只进行简短的延时即可。
一、概述NHR-5100系列单回路数字显示控制仪采用全自动贴片封装工艺,具有很强的抗干扰能力。
设计了双屏LED数码显示,显示内容更丰富。
可与各类传感器、变送器配合使用,实现对温度、压力、液位、速度、力等物理量的测量显示,输出功能包括:报警控制、模拟变送、485/232通讯等等,比传统的数显仪表还新增加了还原出厂默认参数,操作更简便,适用更广泛。
二、技术规格备注:外形尺寸为D、E、H的仪表继电器输出时允许负载能力为AC125V/0.6A,DC24V/0.6A三、仪表的面板及显示功能2)显示窗PV显示窗:显示测量;在参数设定状态下, 显示参数符号SV显示窗:显示输入分度号、报警值等,可根据要求自行选择显示;在参数设定状态下,显示设定参数值3)面板指示灯4) 操作按键从上至下依次为:从上至下依次:AL1:第一报警指示灯确认键:数字和参数修改后的确认.AL2:第二报警指示灯翻页键:参数设置下翻键AL3:第三报警指示灯位移键:按一次数据向左移动一位AL4:第四报警指示灯返回键:长按2秒可返回上一级参数减少键:用于减少数值增加键:用于增加数值5)标准配线仪表在现场布线注意事项:PV 输入(过程输入)1. 减小电气干扰,低压直流信号和传感器输入的连线应远离强电走线。
如果做不到应采用屏蔽导线,并在一点接地。
2. 在传感器与端子之间接入的任何装置,都有可能由于电阻或漏流而影响测量精度。
热偶或高温计输入应采用与热偶对应的补偿导线作为延长线,最好有屏蔽RTD(铂电阻)输入三根导线的电阻必须相同,导线电阻不能超过15Ω四、仪表型谱及接线图1、 仪表型谱NHR-5100—)— )(1) (2) (3)(4) (5)(6) (7) (8) (9)2、 仪表接线图注: 外形代码为F的电压、电流输入必须通过短路环切换外形代码为F的主板示意图如下:J1、J2为第一路输入信号切换位置J3、J4为第二路输入信号切换位置五、通电设置仪表接通电源后,即进入自检状态,自检完毕后,仪表自动转入工作状态,在工作状态下,按压键显示LOC,LOC参数设置有如下:1、1)Loc等于任意参数可进入一级菜单(LOC=00;132时无禁锁);2) Loc=132,可进入二级菜单;3) Loc=130,可进入时间设置菜单;对于带打印功能的表。
5110LCD程序在综合版提供的程序中void LCD_init(void){PORTB &= ~LCD_RST; // 产生一个让LCD复位的低电平脉冲delay_1us();PORTB |= LCD_RST;PORTB &= ~LCD_CE ; // 关闭LCDdelay_1us();PORTB |= LCD_CE; // 使能LCDdelay_1us();LCD_write_byte(0x21, 0); // 使用扩展命令设置LCD模式LCD_write_byte(0xc8, 0); // 设置偏置电压LCD_write_byte(0x06, 0); // 温度校正LCD_write_byte(0x13, 0); // 1:48LCD_write_byte(0x20, 0); // 使用基本命令LCD_clear(); // 清屏LCD_write_byte(0x0c, 0); // 设定显示模式,正常显示PORTB &= ~LCD_CE ; // 关闭LCD}根据datasheet,LCD_write_byte(0xc8, 0);是写Vop到寄存器,但是改变它的值也看不出对程序的影响,不知道Vop6~Vop0各个值的设置对程序有什么影响?代表什么意思?谢谢!偏置电压改变它的对比度,不同批号的5110可能出厂偏置电压不同导致对比度不同,这就是为什么同样的程序有些5110没有显示(对比度太低),有些显示全黑(对比度太高)。
这种情况可以通过程序修改对比度调整。
这个程序是从一个国外网站的例程改过来的,去掉了很多东西,有助于大家理解5110的工作原理和基本显示实现,在家其他显示函数相对简单一些;原例程里的一些东西不好理解。
///////////////////////////以下是代码/////////////////////////////////////////////////////////////////ICC-AVR application builder : 2007-5-3 4:45:38// T arget : M16// Crystal: 1.0000Mhz#include <iom16v.h>#include <macros.h>#define LCD_DC_PIN 0x04 // PB2#define LCD_CE_PIN 0x02 // PB1#define SPI_MOSI_PIN 0x20 // PB5#define LCD_RST_PIN 0x01 // PB0#define SPI_CLK_PIN 0x80 // PB7#define X_Length 45#define X_Init 2#define Y_Init 2/*--------------------------------------------------------------------------------------------------Global Variables0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,10个--------------------------------------------------------------------------------------------------*///字模"FUCK JAPAN"unsigned char const X_TAB[] ={0x7E,0x0A,0x0A,0x0A,0x00,0x7E,0x40,0x40,0x7E,0x00,0x7E,0x42,0x42,0x42,0 x00,0x7E,0x18,0x24,0x42,0x00,0x00,0x00,0x42,0x7E,0x02,0x00,0x7C,0x12,0x1 2,0x7C,0x00,0x7E,0x0A,0x0A,0x0E,0x00,0x7C,0x12,0x12,0x7C,0x00,0x7E,0x08,0x10,0x 7E};/*--------------------------------------------------------------------------------------------------Public function prototypes--------------------------------------------------------------------------------------------------*/void LcdInit ( void );void LcdClear ( void );static void LcdSend ( unsigned char, unsigned char);static void Delay ( void );void LcdGotoXY ( unsigned char, unsigned char );/////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //////////*--------------------------------------------------------------------------------------------------Name : LcdInitDescription : Performs MCU SPI & LCD controller initialization.Argument(s) : None.Return value : None.--------------------------------------------------------------------------------------------------*/void LcdInit( void ){//unsigned char Clear;// Pull-up on reset pin,上电复位端口,此时为高,不复位;PORTB |= LCD_RST_PIN;// Set output bits on port B,设置输出口;DDRB |= LCD_RST_PIN | LCD_DC_PIN | LCD_CE_PIN | SPI_MOSI_PIN | SPI_CLK_PIN;Delay();// Toggle display reset pin.PORTB &= ~LCD_RST_PIN; //上电复位;Delay();PORTB |= LCD_RST_PIN; //复位完;// SPI初始化;Enable SPI port: No interrupt, MSBit first, Master mode, CPOL->0, CPHA->0, Clk/4SPCR = BIT(SPE)|BIT(MSTR); //使能SPI,主机模式;//SPSR = 0x00; //似乎不用这几句也能正常运行;//Clear= SPSR;//Clear= SPDR;// Disable LCD controllerPORTB |= LCD_CE_PIN;LcdSend( 0x21, 0 ); // LCD Extended Commands.LcdSend( 0xC8, 0 ); // Set LCD Vop (Contrast).LcdSend( 0x06, 0 ); // Set Temp coefficent.LcdSend( 0x13, 0 ); // LCD bias mode 1:48.LcdSend( 0x20, 0 ); // LCD Standard Commands, Horizontal addressing mode. LcdSend( 0x0C, 0 ); // LCD in normal mode.LcdClear();}/*--------------------------------------------------------------------------------------------------Name : LcdClearDescription : Clears the display.Argument(s) : None.Return value : None.--------------------------------------------------------------------------------------------------*/void LcdClear(void){unsigned int i;LcdSend(0x0c, 0);LcdSend(0x80, 0); //此时默认操作为清屏for (i=0; i<504; i++)LcdSend(0, 1);}/*--------------------------------------------------------------------------------------------------Name : LcdGotoXY 设置块坐标Description : Sets cursor location to xy location corresponding to basic font size. Argument(s) : x, y -> Coordinate for new cursor position. Range: 1,1 .. 14,6 Return value : None.--------------------------------------------------------------------------------------------------*/void LcdGotoXY(unsigned char X, unsigned char Y){LcdSend(0x40 | Y, 0); // columnLcdSend(0x80 | X, 0); // row}/*--------------------------------------------------------------------------------------------------Name : LcdSendDescription : Sends data to display controller.Argument(s) : data -> Data to be sentcd -> Command or data (see/use enum)Return value : None.--------------------------------------------------------------------------------------------------*/static void LcdSend (unsigned char data, unsigned char command){PORTB &= ~LCD_CE_PIN ; // 使能LCDif (command == 0)PORTB &= ~LCD_DC_PIN ; // 传送命令elsePORTB |= LCD_DC_PIN ; // 传送数据SPDR = data; // 传送数据到SPI寄存器while ((SPSR & 0x80) == 0); // 等待数据传送完毕PORTB |= LCD_CE_PIN ; // 关闭LCD}/*--------------------------------------------------------------------------------------------------Name : DelayDescription : Uncalibrated delay for LCD init routine.Argument(s) : None.Return value : None.--------------------------------------------------------------------------------------------------*/static void Delay ( void ){int i;for ( i = -12000; i < 12000; i++ );}/*--------------------------------------------------------------------------------------------------Name : mainDescription :Argument(s) :Return value : None.--------------------------------------------------------------------------------------------------*/void main(void){ unsigned char X; //v=0,按行显示,x对应某个bank(0~83) LcdInit();while(1){LcdGotoXY(X_Init,Y_Init);for(X=0;X<X_Length;X++)LcdSend(X_TAB[X],1);}}。
第一节:了解LCD液晶显示屏作者:尘封往事文章来源:本站原创点击数:2097更新时间:2005-11-14 10:43:40一:字符型点阵式LCD液晶显示屏:LCD的应用很广泛,简单如手表上的液晶显示屏,仪表仪器上的液晶显示器或者是电脑笔记本上的液晶显示器,都使用了LCD。
在一般的办公设备上也很常见,如传真机,复印机,以及一些娱乐器材玩具等也常常见到LCD的足迹。
本站要介绍的LCD为字符型点阵式LCD模块(liquid Crystal Display Module)简称LCM,或者是字符型LCD。
字符型液晶显示模块是一种专门用于显示字母,数字,符号等的点阵式液晶显示模块。
在显示器件上的电极图型设计,它是由若干个5*7或5*11等点阵符位组成。
每一个点阵字符位都可以显示一个字符。
点阵字符位之间有一空点距的间隔起到了字符间距和行距的作用。
目前市面上常用的有16字*1行,16字*2行,20字*2行和40字*2行等的字符模块组。
这些LCM虽然显示字数各不相同,但是都具有相同的输入输出界面。
上图为1602LCD在本站2004学习套件上显示一个字母A的运行图片本章将以16*2字符型液晶显示模块RT-1602C为例,详细介绍字符型晶显示模块的应用技术。
一般字符LCD模块的控制器为日本日立公司的HD44780及其替代集成电路,驱动器为HD44100及其替代的集成电路以下将会略做介绍。
一般初学者由字符型LCD入手比较简单,学完之后,再进一步控制图案型LCD模块。
图1.1所示为16*2地的外观,表1.2为LCM的接脚及功能。
二、1602的外形尺寸三、1602的接口信号说明:表1.4:液晶显示模块RT-1602C 的接脚及功能第二节:LCD 液晶显示屏的内部结构作者:尘封往事 文章来源:本站原创 点击数:1722 更新时间:2005-11-14 10:51:20液晶显示模块WM-C1602N 的内部结构可以分成三部份:一为LCD 控制器,二为LCD 驱动器,三为LCD 显示装置,如图示2.1所示:地址计数器 AC用户自定义的字符发生器CGRAMCGRAM 为可自编数据区 DDRAM 为显示缓冲区;内藏的字符发生存储器(CGROM)图2.1:LCM内部方块图目前大多数的LCD液晶显示器的控制器都有采用一颗型号为HD44780的集成电路作控制器。
[重点]5110液晶显示一、硬件链接:首先,看一下硬件,仅供参考,读者已对自己的硬件很熟悉,可以直接跳过。
,:说明:图1: 排针从左至右1到8位。
图2: 5110接口在板子中的区域。
图3: 8位排针对应连接5110液晶屏相应的引脚。
图4: 5110液晶显示屏对应8位排针JP19的插入方向。
再看一下我的板子的原理图:图5中,显示了8位排针JP19,即5110液晶屏的引脚,其中的5根不51单片机,本人的为STC89C516RD+,的PB I/O口的连接方式:5110_RST <---> PB2(P1.2)5110_SCE <---> PB3(P1.3)MOSI(sdin) <---> PB5(P1.5)MISO(dc) <---> PB6(P1.6)SCK <---> PB7(P1.7)这样,我们知道了用51单片机中的I/O口和5110引脚的链接方式。
二、引脚接线图请根据程序里的定义连接,51的程序默认接线为:sbit sce = P1^3; //片选sbit res = P1^2; //复位,0复位sbit dc = P1^6; //1写数据,0写指令sbit sdin = P1^5; //数据sbit sclk = P1^7; //时钟看了这些默认接线,可能有个疑问:“这些位变量(引脚)究竟有什么用呢?”,带着这个疑问,请看5110芯片手册中的引脚说明,重点看红色区域,:从这个引脚说明中,我们知道了不同的引脚,对应的功能。
那么,如何使用这些引脚来控制5110工作呢?三、指令5110液晶显示屏,PCD8544芯片,,是通过发送指令和写入数据RAM来控制和显示数据的。
指令格式分为两种模式:1、如果D/C,模式选择,置为低(为0),即位变量 dc = 0,为发送指令模式,那么接下来发送的8位字节解释为命令字节。
2、如果D/C置为高,即dc = 1; 为写入数据RAM模式,接下来的字节将存储到显示数据RAM。
注意:1、每一个数据字节存入之后, 地址计数自动递增。
在数据字节最后一位期间会读取D/C信号的电平。
2、每一条指令可用任意次序发送到PCD8544。
首先传送的是字节的MSB,高位,。
指令集:结合表1和表2, 指令集不难读懂。
现在以红色横线所标识的指令来举例说明: 第一条,红色横线1,,功能设置指令: 首先,D/C为0, 表示现在是指令模式,然后从表2看:若要“使用基本指令集”,则PD = 0, V = 0, H = 0,那么相应地DB7~DB0分别为 00100000b,即0x20。
也就是说,发送0x20就能设置液晶“使用基本指令集”。
0x 是16进制打头标志同理,使用“使用扩展指令集”,指令值为0x21。
第二条,红色横线2,,显示控制:显示模式有4种,分别是:显示空白,普通模式,开所有显示段,反转映象模式。
这些模式分别使用D and E来组合控制。
这样,我们控制显示为“普通模式”, 那么D要为1,E要为0, 这时DB7~DB0分别为 0000 1100b,即指令值为0x0C。
第三条,红色横线3,,写入数据指令: 写入数据,首先D/C必须为1,表示现在是写入数据RAM模式,DB7~DB0就是相应的数据值。
到这里,我们知道了5110液晶屏是使用这样的指令集来控制和显示数据的。
那么,我们如何把指令值写进去呢?四、时序图没错,要向液晶屏写入数据,我们需要通过模拟一个串行总线协议来写入数据。
先来看看传送一个字节,指令,的时序图:如果能看懂时这些序图的兄弟,就不要听我废话啦。
请飘过~~从时序图1看出:1. SCE片选为0时开始发送数据。
2. 时钟信号SCLK仅在SCE片选为0时有效。
3. SDIN数据输入,需要在时钟信号SCLK有效时开始发送数据,且在SCLK的正边缘取样, 注意,数据是从高位开始发送的。
知道了传送数据的时序,我们需要使用程序来模拟这个时序,从而发送指令控制液晶屏。
接下来,看看实例。
五、程序实例代码一:/*--------------------------------------------LCD_write_byte: 使用SPI接口写数据到LCD 输入参数:dt:写入的数据; command :写数据/命令选择; 编写日期:20080918----------------------------------------------*/void LCD_write_byte(unsigned char dt, unsigned char command){unsigned char i;sce=0;dc=command;for(i=0;i<8;i++){if(dt&0x80)sdin=1;elsesdin=0;dt=dt<<1;sclk=0;sclk=1;}dc=1;sce=1;sdin=1;}代码分析:这个是一个写入一个字节数据的模拟时序函数,具有两个参数,dt为要写入的字节,command为数据/命令选择。
首先,需要sce拉低电平,开始发送数据。
i循环8次,写入8位数据,现以“设置扩展指令集”,即写入0x21,全过程如下: , i = 0:dt = 0x21 = 0010 0001 bdt & 0x80:0010 00011000 0000 &0000 0000 = 0,则sdin = 0 (DB7),dt左移1位,dt<<1 = 0100 0010 b,模拟时钟信号sclk = 0, sclk = 1,以使采样, i = 1: dt = 0100 0010bdt & 0x80:0100 00101000 0000 &0000 0000 = 0, 则sdin = 0 (DB6),dt左移1位,dt<<1 = 1000 0100 b,模拟时钟信号sclk = 0, sclk = 1,以使采样, i = 2: dt = 1000 0100bdt & 0x80:1000 01001000 0000 &1000 0000 != 0,则sdin = 1 (DB5), dt左移1位,dt<<1 = 0000 1000 b, 模拟时钟信号sclk = 0, sclk = 1,以使采样, i = 3:dt = 0000 1000bdt & 0x80:0000 10001000 0000 &0000 0000 = 0,则sdin = 0 (DB4), dt左移1位,dt<<1 = 0001 0000 b, 模拟时钟信号sclk = 0, sclk = 1,以使采样, i = 4:dt = 0001 0000bdt & 0x80:0001 00001000 0000 &0000 0000 = 0,则sdin = 0 (DB3), dt左移1位,dt<<1 = 0010 0000 b, 模拟时钟信号sclk = 0, sclk = 1,以使采样, i = 5:dt = 0010 0000bdt & 0x80:0010 00001000 0000 &0000 0000 = 0,则sdin = 0 (DB2),dt左移1位,dt<<1 = 0100 0000 b,模拟时钟信号sclk = 0, sclk = 1,以使采样, i = 6:dt = 0100 0000bdt & 0x80:0100 00001000 0000 &0000 0000 = 0,则sdin = 0 (DB1),dt左移1位,dt<<1 = 1000 0000 b,模拟时钟信号sclk = 0, sclk = 1,以使采样, i = 7:dt = 1000 0000bdt & 0x80:1000 00001000 0000 &1000 0000 != 0,则sdin = 1 (DB0),dt左移1位,dt<<1 = 0000 0000 b,模拟时钟信号sclk = 0, sclk = 1,以使采样过程很罗嗦,不过很简单,呵呵~~可见,这样循环8次,写入了8位数,DB7~DB0 = 0010 0001b = 0x20,正是“扩展指令集”的指令值。
代码二:/*-------------------------------------------- LCD_init: 初始化LCD_init输入参数:无编写日期:20080918----------------------------------------------*/ void LCD_init(void) {res=0;delayms(10);res=1;LCD_write_byte(0x21,0);//1、初始化Lcd,功能设定使用扩充指令LCD_write_byte(0xd0,0);//2、设定液晶偏置电压LCD_write_byte(0x20,0);//3、使用基本指令LCD_write_byte(0x0C,0);//4、设定显示模式,正常显示 }代码分析:初始化步骤可以参照芯片手册中的编程示例:代码三:/*-----------------------------------------------------------------------LCD_write_char : 显示英文字符输入参数:c :显示的字符;编写日期 :2004-8-10最后修改日期 :2004-8-10-----------------------------------------------------------------------*/void LCD_write_char_my(unsigned char *font){unsigned char i;for (i=0; i<6; i++)LCD_write_byte(font[i], 1);}代码分析:我们可以使用字模软件,求出一个6*8大小的字符“A”,该组值为: unsigned char A[6] = {0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C}; 这些很容易理解,还原看一下:上面的矩阵,就是一个字母"A",可见只要把这组值写入即可以显示“A”。
最后,到这里,我们已经学会了Nokia 5110液晶屏的原理和基本控制。
是不是觉得很简单。
呵呵~~~希望帮到大家,写得不好,请见谅,写的不对,望指正。