首页 理论教育 硬件设计、程序流程图、5110LCD设置坐标函数

硬件设计、程序流程图、5110LCD设置坐标函数

时间:2023-10-17 理论教育 版权反馈
【摘要】:本实例的程序流程图如图6-26所示。程序中包含了特定头文件iom16v.h和macros.h,这两个头文件都在ICC程序安装文件夹下的一个include目录中,iom16v.h和用户选择的芯片相对应,如果选择的是ATmega16,那么这个文件就是iom16v.h,在这样的文件中定义了对应芯片的各个硬件地址。关于iom16v.h和macros.h读者可以在安装目录下的include文件夹里找到。6)对5110LCD设置坐标函数。本函数模块主要对5110LCD液晶屏显示英文字符进行处理的函数,函数参数c表示显示的字符在font6x8表格中的位置。

硬件设计、程序流程图、5110LCD设置坐标函数

诺基亚5110/3310液晶屏(如图6-24所示)的驱动控制器为PCD8544,它可以驱动48行×84列的图形显示,3310液晶的工作电压为2.7~3.3V,所以在上面的电路图中我们使用了3.3V的稳压管(7133a-1)。另外由于单片机系统采用的是5V工作电压,并且LCD与单片机之间的连线都串接了电阻,整个系统上电后,测量电阻两端电压,会发现电阻两端有压降,这是因为单片机I/O口出来的是5V电压信号,而LCD上只能接受3.3V电压,所以电阻上产生压降。

978-7-111-35161-0-Chapter06-61.jpg

图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所示。

978-7-111-35161-0-Chapter06-62.jpg

图6-25 诺基亚5510液晶显示器连接电路

程序详解

●目的:诺基亚5510液晶显示。

●功能:诺基亚5510液晶显示。

●时钟频率:内部1MHz。

●编译环境:ICC-AVR6.31。

●使用硬件:诺基亚5510液晶。

●结果:诺基亚5510液晶显示“山东科技大我爱你”

●操作要求:无。

本实例的程序流程图如图6-26所示。

程序说明如下(详细程序请参考光盘内容)。

1)头文件部分。

978-7-111-35161-0-Chapter06-63.jpg

程序中包含了特定头文件iom16v.h和macros.h,这两个头文件都在ICC程序安装文件夹下的一个include目录中,iom16v.h和用户选择的芯片相对应,如果选择的是ATmega16,那么这个文件就是iom16v.h,在这样的文件中定义了对应芯片的各个硬件地址。macros.h文件中定义了一些宏命令和一些老版的语言写法。通常每一个程序都要包含这个头文件。关于iom16v.h和macros.h读者可以在安装目录下的include文件夹里找到。

978-7-111-35161-0-Chapter06-64.jpg

图6-26 5110液晶屏显示程序流程图

2)宏定义部分。

在本程序以及随后用到5110液晶显示屏作为显示的程序中,都将出现这条语句:(www.xing528.com)

978-7-111-35161-0-Chapter06-65.jpg

该条语句的作用是定义程序中凡是出现pgm_read_byte(a)的地方,都要用(*(a))代替,主要因为本程序在ICCAVR中调试通过的,为了让程序在WINAVR中方便移植,所以采用该表示方法,当在WINAVR中调试本程序时,可将该语句注释掉。

3)定义程序中将要使用的汉字的点阵码。

4)写数据到LCD。

本程序段主要实现模拟SPI接口将数据写到LCD中去,其中参数dt表示写入的数据;command为1时,写入的是数据;command为0时,写入的是命令。

978-7-111-35161-0-Chapter06-66.jpg

5)对5110LCD进行初始化函数。

978-7-111-35161-0-Chapter06-67.jpg

978-7-111-35161-0-Chapter06-68.jpg

6)对5110LCD设置坐标函数。

978-7-111-35161-0-Chapter06-69.jpg

7)对5110LCD设置清屏函数。

978-7-111-35161-0-Chapter06-70.jpg

8)显示英文字符函数。

本函数模块主要对5110LCD液晶屏显示英文字符进行处理的函数,函数参数c表示显示的字符在font6x8表格中的位置。

978-7-111-35161-0-Chapter06-71.jpg

978-7-111-35161-0-Chapter06-72.jpg

9)英文字符串显示函数。

本函数模块主要是在5110LCD液晶屏上显示英文字符串,函数中的参数*s表示英文字符串指针。X、Y为字符串在液晶屏上显示的位置。

978-7-111-35161-0-Chapter06-73.jpg

10)写一个字符到LCD函数。

本函数模块实现写一个字符到LCD函数(8×16点阵),函数中的参数row、page为写入字符的地址;c为写入字符在shuzi表格中的位置。

978-7-111-35161-0-Chapter06-74.jpg

11)写一个汉字到LCD函数。

本函数实现写一个汉字到LCD,函数中的参数x、y为写入汉字的地址;而参数address为写入汉字在han表格中的位置。

978-7-111-35161-0-Chapter06-75.jpg

12)主处理函数。

978-7-111-35161-0-Chapter06-76.jpg

5110屏幕的最佳工作电压是3~3.6V,如果电压过高,会导致灰度加重,从而影响显示效果,如果电压过低会显示不清晰(数据口的逻辑电平可以是5V)。

5110屏的背光电压为3~3.2V,如果电压过高可使用串联电阻分压的形式给背光降压。超过电压背光LED会烧掉。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈