Lm3S811-ND开发板和前辈比起来,精简掉了不少板载模块,最突出的就是屏幕,没有屏幕我们很多状态都不好直接的观察到,很不方便。
而且也丑了很多(这年头,那块板子没LCD啊)。正好手边有块NOKIA5110模块,咱就把他们俩搭起来吧!
为什么选5110呢?
1、它脚位少,节约系统资源。
2、操作方便,普通口都可以模拟驱动。
3、价格便宜,易买。买的时候十几块钱吧。
4、手头没别的模块了
先来看下它网络上的一些资料:
液晶5110由84点*48点组成。
液晶5110的规格书上是这样描述它的写入坐标概念的,首先,每次写入命令是写一个竖着的8个bit即一个字节,这是它的一个最基本的写入元单元。(写入时先写高位)。以这样的元单元为计数,屏幕整个被分成了84*6 个这样的元单元。
读写时序
命令
具体操作流程很简单,网上都有,大致是初始化---写控制字---写数据---实现画点或画线
/*--------------------------------------------
LCD_init: 初始化LCD_init
输入参数:无
----------------------------------------------*/
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_byte: 使用SPI接口写数据到LCD
输入参数:dt:写入的数据;
command :写数据/命令选择;
----------------------------------------------*/
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;
else
sdin=0;
dt=dt<<1;
sclk=0;
sclk=1;
}
dc=1;
sce=1;
sdin=1;
}
网络资源和里程都很多,这里就不罗嗦了。
自己整理了点资料,实现了下面的例程,这是运行图片