首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 电子技术 > 光电应用
LCD显示模块并行接口驱动程序设计
来源:本站整理  作者:佚名  2009-12-14 11:14:54




    函数display_word功能:把字体写入到控制器缓冲区指定位置中,并控制字体是否显示。函数参数意义:
    word:显示字体字库的首地址;
    word_line,word_row:字库行数和列数(列数等于字模的列数/8);
    word1,word2:字体显示的颜色的16进制表示;
    backdrop1,backdrop2:字体和背景的颜色其他参数含义同clear_region。函数原型和参数如下:


2.3 其他主要函数编写说明
    清屏程序:可以通过draw_point函数编写得到,建议清屏函数具有清理任何缓存页中的数据并控制数据显示的功能。如函数及参数列表如下:
void clear_region(char word_which_display,char
    word_which_write,int word_x,int word_y,
    unsigned int word_row,unsigned int
    word_line,unsigned char with_color)
在这个函数中,参数word_row:清理的矩形区域距离word_x的长度;参数word_line:清理的矩形区域距离word_y的长度;参数with color:清理区域的颜色。此函数所清理的是矩形区域。函数改写可以采用连续置点的方法,通过draw_piont函数连续的向清屏区域内置入一定颜色的点。由于篇幅所限,本文不给出程序清单。
    画线程序:把LCD上任意两点连接成直线。设LCD上两点坐标M(x1,y1)和N(x2,y2),得斜率由于x方向地增量△x=1,则△y=k。通过循环置点就可以得到直线。
    本文所用的函数如下:
void draw_line(char word_which_display,char word_which_write,unsigned int x1,unsigned int y1,int x2,int y2,char colour)
参数功能:x1,y1:LCD上任意一点M的坐标
    x2,y2:LCD上任意一点N的坐标
    colour:连线的颜色
    同种LCD驱动器可应用在不同的MCU上,如果采用I/O模拟时序的方法,需改动管脚设置并注意读写的时间要求。如本文的程序在8051单片机上运行时候基本程序中的不需要加延时,在C8051F单片机(晶振48MHz)上需要加延时。另外MCU和LCD驱动器必须共地处理,否则可能会产生不必要的干扰。
    对驱动器的控制还可以采用直接访问外部存储器的方法,这个时候相当于向固定的寄存器写数据和控制字,接口程序如下:

   
    如果向外部存储器写数据,采用dlcd=0x04的形式,它的含义是把数0x04存储到外部地址为0x0000中。使用此方法要注意MCU的EMIF的接口读写时序。有一些控制器的功能更丰富一些,如clcd1=0x81,驱动器会执行0x81所代表的功能。本文使用的是C8051F340单片机,这款单片机有自带的EMIF接口,在使用之前需要对其进行配置:
    P1SKIP=0x80;//跳过WR和RD引脚
    XBR1=0x41;//Enable crossbar and enable
//EMIF工作在地址/数据复用方式
//只用外部存储器
//ALE高和ALE低脉冲宽度=4个SYSCLK周期EMI0CF=0x0c;
//地址建立时间=0个SYSCLK周期。
///WR和/RD脉冲宽度=2个SYSCLK周期。
//地址保持时间=1个SYSCLK周期
    EMI0TC=0X05;


3 使用举例及显示效果
    如图4是使用本文程序设计的飞机操纵性能检测评估仪操作使用界面,界面中左边的箭头可以通过按键控制下上下移动,并进入到相应的操作界面。

    首先要了解,LCD显示图像的实质是在屏幕上置入一定颜色的点,曲线y=f(x)也基于这个原理产生,当x轴连续时且函数值y幅度很小的时候在LCD上显示的图形是连续的,当幅度很大时会产生幅度离散的图形,如果可以把两个离散的点用一条线连上,那么离散图形可以变得连续,图4中有正弦函数显示的事例。程序实例如下:
for(i=0;i<640;i++)
    {y1=200*sin(0.05*i);y2=200*sin(0.05*(i+1));
    draw_line(0,0,0,240,y1,y1-y2,i,’g’);}


4 结束语
    上述控制程序是当今通用的使用方法。控制驱动器的函数如显示字体、清屏幕和置点等都要人为编写,但这更有助于对LCD显示的过程的理解。现如今市场上LCD驱动器的品种多,且有很大一部分控制起来要优于本文所使用的驱动器,本文的目的旨在给予大家一种通用有效的方法,希望在以后遇到LCD驱动器的时候能快速入门,缩短开发周期,节约成本。本文中所有列举出来的函数都经过C8051F340单片机的测试和伟福的硬件仿真。

上一页  [1] [2] [3] [4]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:291,976.60000 毫秒