原创 51单片机和图形LCD接口技术的实现

2009-8-15 00:07 1770 5 5 分类: MCU/ 嵌入式

发布: 2009-4-05 00:42 |  作者: 李伟 王应吉 孙淑 |   查看: 266次


LCD 近年来越来越多地应用在单片机控制的仪器仪表中。仪表显示时良好的人机界面始终是人们的追求。近日用单片机控制成功地在EDM240128 图形LCD 上显示出图片。
1n(r!Na Q8q-m0
*F#cE}O&Os01、液晶模块的特点:
)` i] H5eOU,BV0电子园51单片机学习网 C.KDt2G%c2j&FY
  EDM240128 图形LCD 是大连神迅信息股份有限公司生产的240*128 点阵式LCD。 内置8K 的数据存储器,液晶显示控制芯片为东芝公司生产的T6963C。它的总线可以直接适配MCS51 总线。允许单片机随时访问显示缓冲区,甚至可以进行位操作,直接控制某一点。同时这款液晶还有读/写地址自动加/减1 的功能,为大量数据的传送编程提供了方便。电子园51单片机学习网 OF,y.SpJVn V

Sg"s4f9KR9YW D02、硬件实现:
i_!o JhQc0电子园51单片机学习网;{J Mr*
  • 'Dd
      采用89S52 单片机,其内部有8K的FLASH ROM,将需要显示的图片数据和程序直接存储在里面,使得此电路功能实现十分简单。
    z"k0@3@:w0
    (Ly+o b ? o |:ZR;L0  图1 是89S52 与LCD 显示器模块的并口方式下的接口电路。
    m2?8}Z1r$` [)Z!P0

    点击看大图

    di?? c-Y%` t0p }0

      P1.0 接LCD 的复位,VEE用来调节显示屏灰度,手册中给出电压范围是 8V~ -23V,在使用中发现超过 -15V显示颜色已经过深而看不清了。实际测试得到合适电压范围为-13.8V~-14.8V,调节该点电压可改变显示屏字符图形颜色的深浅。由于该点电流极小,用一个普通的电位器调节即可。
    7j4\q I}0W/P0
    ZR1g(o.d'z`03、图片数据的提取
    +?#O+Om#] o.L~&y0
    CW-Ujh;X%E\ur0  图片转化成字节类型的数据可采用专用的程序,文中采用PICtoCODE【图片数据生成器】V1.0,设计为 hy_zhangwang,此软件可从互联网上免费下载。电子园51单片机学习网 k!z/NkA&M
    电子园51单片机学习网)f"Go6F"wEq\}
      PICtoCODE 可以将黑白单色图片(支持BMP、JPEG、JPG、GIF 等格式)转换为A51、C51、HEX 等格式的数据文件。数据生成的顺序为从上至下,从左到右,左上角象素对应第1 个字节,右下脚对应最后一个字节。软件要求图片宽度必须为8 的整数倍,如果待处理的图片宽度不是8 的整数倍,需要先用图形编辑软件(如windows 系统自带的画图程序)作预处理。
    "{ k{'R0D+D0q0电子园51单片机学习网t`-kd5S6x
      如果图片不是黑白单色图片,可以用“彩色>>黑白...”功能将图片转换为黑白图片,然后再导出数据或代码。
    ;r K&J"Y2\ b W~h{{0
    ZQ@_#{5M8w04、软件设计电子园51单片机学习网&SSFx;b ]

    H)[:v E ~/S0JIN0  EDM240128 的控制指令可带两个参数、一个参数或者无参数。每条指令都是先送入参数,再送入指令代码。如果所送参数多于规定个数,最后送入的有效。每次操作前必须检测其状态字。由于状态位作用不同,因此执行不同的指令应检测不同的状态位。显示器上的240*128 点,每8 个点为一个字节的数据,都 一 一对应显示缓冲区的数据。一点对应一个bit ,bit=1 该点显示黑点,bit=0则该点消失。
    0h3xnXd{(]1p3\O0
    *v$`vGQx7}0  LCD 有一条display ON/OFF 指令,display ON 时显示缓冲区的数据对应显示画面,display OFF时则画面消失,但缓冲区的数据仍然存在,并没有丢失。有关命令请详细查阅T6963C使用手册。
    K!po#n8WZ}0

    G3h't8JR \0

    电子园51单片机学习网%u,Z!v0B5kaT?


      软件采用C51 编写,大大提高了开发效率电子园51单片机学习网O!|C w#d8@o%ee M

    t$AP6N a \;MH0  单片机程序:电子园51单片机学习网)@%Rf4y5k"p1]$XW
    电子园51单片机学习网(C4c]]6F z IL)U
    #define ming 0x4000 //指令口地址电子园51单片机学习网i9v:c3N5u
    #define shuju 0x0000 //数据口地址
    p%MS%aOq0#include<at89x52.h>
    JN6^}|W"tw0void delay(unsigned int i) //延时电子园51单片机学习网B\ue4l3NA6K8nDT
    {/*-----------*/}
    \.l*Wyak0void writed(char a) // 写数据子程序
    2QFjaj%o&g0{/*----------*/}
    {!T!X:\P0void writec(char a) //写指令子程序电子园51单片机学习网B qz9z,F6Y'm!j,b7cV
    {/*-----------*/}电子园51单片机学习网D7O.r0sh4q
    void busy() //判断标志位是否忙
    v;r%z4I0J c{0{*/-----------*/}
    ~P'm5|%n0l#Ym0main()电子园51单片机学习网SVcR9d;g2B`(j
    { unsigned char ji="0";
    nU!I+A(B D0code char seg[3840]={/*-----------*/};///要显示的图片数据
    0]&fG"M)c'?&o0P1_0=0;
    o#j7Q$]2|D.t-~0delay(100);电子园51单片机学习网2t+nP:Xx
    P1_0=1;电子园51单片机学习网6~gej%SO6|.`0O ~
    busy();
    6W `$t$W,b'X0writed(0x00);
    dVh t9q N0busy();
    u_:V\.W$N9c YU0writec(0x24);电子园51单片机学习网 V ~ yZ| z#cDX
    busy();电子园51单片机学习网n7[h%]sS4u
    writec(0xb0); /////设置自动写,地址加一电子园51单片机学习网!~ o2}?)o(N7T9g V4X
    busy();电子园51单片机学习网%z"Y)`2K Rr1x
    for(ji=0;ji<3840;ji++)电子园51单片机学习网5GIt+u:eVp/W
    { writed(seg[ji]);电子园51单片机学习网]/d[J n
    busy();电子园51单片机学习网hI2Wefl%b
    }
    -R-b"[rK4F,Xj0writec(0xb3); // 自动写结束
    Q0\ CM*nC~0busy();
    Sa#i6W_N k0writec(0x98); // 开显示电子园51单片机学习网i0?1_S4o!d$q
    //-----------------------------------电子园51单片机学习网{9o:n9F%m3i*y1r1s
    }
    )Qf ^x1nF0电子园51单片机学习网Q1b)[y Al,^
    5、结束语
    4v8JT#n]\7Z z3ny0
    6n-J"H Wqc5Wj0  T6963C 控制芯片广泛应用在各种图形点阵LCD 上,除了大连神迅公司的EDM240128和EDM12864 图形LCD 采用此芯片外,金鹏奥可拉公司的OCM128*64、OCM240*128、深圳松山公司的CA12864A、信利公司的MPG240128A 等均采用这款芯片。我们可以很方便地作出各种友好的人机界面。电子园51单片机学习网 }tb PT0T

  • PARTNER CONTENT

    文章评论0条评论)

    登录后参与讨论
    EE直播间
    更多
    我要评论
    0
    5
    关闭 站长推荐上一条 /3 下一条