诺基亚5110/3310液晶屏(如图6-24所示)的驱动控制器为PCD8544,它可以驱动48行×84列的图形显示,3310液晶的工作电压为2.7~3.3V,所以在上面的电路图中我们使用了3.3V的稳压管(7133a-1)。另外由于单片机系统采用的是5V工作电压,并且LCD与单片机之间的连线都串接了电阻,整个系统上电后,测量电阻两端电压,会发现电阻两端有压降,这是因为单片机I/O口出来的是5V电压信号,而LCD上只能接受3.3V电压,所以电阻上产生压降。
图6-24 诺基亚5110/3310液晶模块实物图
诺基亚5110/3310液晶模块有8个引脚,由于购买厂家不同,引脚的排列也有差别,8个引脚分别是:管脚排列为从左至右(有的屏为双排,则上下两排引脚功能相同)。
1)VCC电源输入5/3.3V均可。
2)GND。
3)SCESPI片选。
4)RST复位引脚,给液晶提供有效的复位。
5)D/C数据/指令。
6)DINSPI数据。
7)CLKSPI时钟。
8)BL背光输入。
诺基亚5110/3310液晶支持SPI功能,可以直接使用AVR单片机的SPI来驱动5110液晶显示。本实例中采用模拟SPI功能实现ATmega16单片机驱动5110液晶显示器,如图6-25所示。
图6-25 诺基亚5510液晶显示器连接电路
程序详解
●目的:诺基亚5510液晶显示。
●功能:诺基亚5510液晶显示。
●时钟频率:内部1MHz。
●编译环境:ICC-AVR6.31。
●使用硬件:诺基亚5510液晶。
●结果:诺基亚5510液晶显示“山东科技大我爱你”
●操作要求:无。
本实例的程序流程图如图6-26所示。
程序说明如下(详细程序请参考光盘内容)。
1)头文件部分。
程序中包含了特定头文件iom16v.h和macros.h,这两个头文件都在ICC程序安装文件夹下的一个include目录中,iom16v.h和用户选择的芯片相对应,如果选择的是ATmega16,那么这个文件就是iom16v.h,在这样的文件中定义了对应芯片的各个硬件地址。macros.h文件中定义了一些宏命令和一些老版的语言写法。通常每一个程序都要包含这个头文件。关于iom16v.h和macros.h读者可以在安装目录下的include文件夹里找到。
图6-26 5110液晶屏显示程序流程图
2)宏定义部分。
在本程序以及随后用到5110液晶显示屏作为显示的程序中,都将出现这条语句:(www.xing528.com)
该条语句的作用是定义程序中凡是出现pgm_read_byte(a)的地方,都要用(*(a))代替,主要因为本程序在ICCAVR中调试通过的,为了让程序在WINAVR中方便移植,所以采用该表示方法,当在WINAVR中调试本程序时,可将该语句注释掉。
3)定义程序中将要使用的汉字的点阵码。
4)写数据到LCD。
本程序段主要实现模拟SPI接口将数据写到LCD中去,其中参数dt表示写入的数据;command为1时,写入的是数据;command为0时,写入的是命令。
5)对5110LCD进行初始化函数。
6)对5110LCD设置坐标函数。
7)对5110LCD设置清屏函数。
8)显示英文字符函数。
本函数模块主要对5110LCD液晶屏显示英文字符进行处理的函数,函数参数c表示显示的字符在font6x8表格中的位置。
9)英文字符串显示函数。
本函数模块主要是在5110LCD液晶屏上显示英文字符串,函数中的参数*s表示英文字符串指针。X、Y为字符串在液晶屏上显示的位置。
10)写一个字符到LCD函数。
本函数模块实现写一个字符到LCD函数(8×16点阵),函数中的参数row、page为写入字符的地址;c为写入字符在shuzi表格中的位置。
11)写一个汉字到LCD函数。
本函数实现写一个汉字到LCD,函数中的参数x、y为写入汉字的地址;而参数address为写入汉字在han表格中的位置。
12)主处理函数。
5110屏幕的最佳工作电压是3~3.6V,如果电压过高,会导致灰度加重,从而影响显示效果,如果电压过低会显示不清晰(数据口的逻辑电平可以是5V)。
5110屏的背光电压为3~3.2V,如果电压过高可使用串联电阻分压的形式给背光降压。超过电压背光LED会烧掉。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。