《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 简单实用的四线点阵液晶驱动方式
简单实用的四线点阵液晶驱动方式
晋建秀 吴运昌 甘伟明
摘要: 介绍了点阵液晶的一种四线驱动方法,该方法使用四线控制,连接简单、成本较低,可以用于各种汉字及图形点阵液晶的显示。
Abstract:
Key words :

  摘  要: 介绍了点阵液晶的一种四线驱动方法,该方法使用四线控制,连接简单、成本较低,可以用于各种汉字及图形点阵液晶的显示。 

  关键词: 点阵液晶显示屏  四线控制电路  汉字显示 

   随着科学技术的飞速发展,电子产品越来越向智能化、小型化、人性化、低功耗等方面发展。而液晶显示屏的兴起,为上述要求的实现提供了可能。液晶显示屏大致可分为段式、字符式、点阵式,或者单色、彩色等。大多液晶显示屏都实现了标准化和模块化,采用通用的控制芯片(例如SED1330、SED1520、HD61202等)实现与单片机等的简单连接,但此类液晶显示模块多采用并行的数据线和控制线连接。在实际应用中,考虑到产品的成本和体积,采用并行的数据线和控制线连接,使用起来不是很方便。因此希望采用标准的工业总线I2C、SPI等连接,而这类产品却很少见。本文巧妙地利用液晶显示模块的特点,采用一片74LS164实现液晶的四线控制,电路简单实用。 

1 点阵液晶显示模块简介 

  本文介绍的是一种采用SED1520芯片控制的122×32图形点阵液晶显示屏,它主要由行驱动/列驱动及122×32全点阵液晶显示器组成,可完成图形显示,也可显示七个半(16×16点阵)汉字。主要技术参数和显示特性如下: 

  ·电源:VDD为+3V~+5V;LCD外接驱动电压VDD-VLCD=5.0V。 

  ·显示内容:122(列)×32(行)点。 

  ·显示颜色:黄绿底蓝字。 

  ·显示角度:6点钟直视。 

  ·STN正视反射模式。 

  ·驱动方式:1/32 Duty,1/6 Bias。 

  ·驱动电流:最大240μA。 

    液晶显示模块驱动原理图如图1所示。

 

 

  液晶显示模块引脚特性如表1所示。 

 

 

  部分传送指令表如表2所示。 

 

 

2 四线点阵液晶显示屏驱动电路 

  四线点阵液晶显示屏驱动电路如图2所示。 

 

 

  系统采用一片74LS164以串入并出方式与点阵液晶显示模块FM12232C连接,通过四条信号线(SDA串行数据线、CLK/A0串行时钟线即液晶显示模块的A0数据/指令控制线、E1主驱动芯片使能线、E2从驱动芯片使能线)实现点阵液晶显示屏的驱动。与液晶显示模块所提供的电路连接方式相比,四条线与单片机2051连接至少减少7根口线,这样大大节省了小型电子产品中宝贵的单片机口线资源,使产品更加人性化和智能化。 

  根据液晶显示屏的控制指令及时序可知,只要在对模块写入数据的同时保证模块指令操作延时足够,就可以不检查模块状态,达到直接控制的目的。点阵液晶显示屏的一个点对应存储器中的一位,置位则显示,清除则不显示,因此只要控制相应的数据位就可控制液晶显示屏的显示。液晶显示模块的显示数据采用分页方式存储(存储器的划分请参阅相关资料)。 

  数据传送时,首先选择使能端“E1”或“E2”,送数据到74LS164,然后送指令/数据选择信号“A0”,关闭使能端,实现数据和指令的传送,使液晶显示屏显示图形或汉字等。 

3 相关软件 

  相关软件采用汇编语言编写。由于篇幅限制,只提供传送指令和数据到液晶显示模块的子程序,并通过初始化程序和显示汉字程序介绍如何使用上述子程序。关于显示汉字子程序、其它显示字符串、动画、图形以及在Windows下提取字库和图形库相关程序,如有需要请与作者联系。 

  源程序如下: 

    sda     bit     p1.7    ;定义sda线 

    clk     bit     p1.6    ;定义clk线 

    e1      bit     p1.5    ;定义master 使能 

    e2      bit     p1.4    ;定义slave使能 

    a0      bit     p1.6    ;定义数据/指令选择线 

    outmi:                  ;送显示指令到master SED1520 

        setb    e1      ;master使能 

        clr     e2      ;slave关闭 

        lcall   trndata     ;传送一个字节 

    clr     a0  ;设置此字节为指令 

    clr     e1  ;master关闭 

    ret 

    outsi:      ;送显示指令到slave  SED1520 

        setb    e2 

        clr     e1 

        lcall   trndata 

        clr     a0 

        clr     e2 

        ret 

    outmd:      ;送显示数据到master     SED1520 

        setb    e1 

        clr     e2 

        lcall   trndata 

        setb    a0 

        clr     e1 

        ret 

    outsd:      ;送显示数据到slave SED1520 

        setb    e2      ;slave使能 

        clr     e1      ;master关闭 

        lcall   trndata ;传送一个字节 

        setb    a0      ;设置此字节为显示数据 

        clr     e2      ;slave关闭 

        ret 

    trndata:                ;传送一个字节到液晶显示模块 

        push        a       ;保存原始数据 

        setb        sda     ;sda线置位 

        setb        clk     ;clk线置位 

        mov         r7,#08h 

    trn_loop:    

        rlc     a 

        clr     clk 

        mov     sda,C 

        setb    clk 

        djnz    r7,trn_loop 

        pop     a   ;恢复原始数据 

        ret 

    init:               ;初始化液晶显示模块 

        mov    a,#0e3h ;LCD复位 

        lcall   outmi 

        lcall   outsi 

        mov    a,#0aeh  ;关显示 

        lcall   outmi 

        lcall   outsi 

        mov    a,#0a4h  ;动态驱动  

        lcall   outmi 

        lcall   outsi 

        mov   a,#0a9h  ;刷新率选择1/32 

        lcall   outmi 

        lcall   outsi 

        mov   a,#0a0h   ;ADC选择右移 

        lcall   outmi 

        lcall   outsi 

        mov   a,#0eeh   ;结束读写 

        lcall   outmi 

        lcall   outsi 

        mov   a,#00h    ;设置列地址0 

        lcall   outmi 

        lcall   outsi 

        mov   a,#0c0h   ;设置显示开始行0 

        lcall   outmi 

        lcall   outsi 

        mov   a,#0afh          ;开显示 

        lcall   outmi 

        lcall   outsi 

        ;下面为汉字显示 

            mov  r1,#20            ;汉字显示的起始为第 20列 

        mov     dptr,#tian     ;“天”字字库地址 

        clr     10h        ;10h=‘0’显示在第一行 

        mov     1fh,#10h      ;1fh=‘10h’表示为16×16 点阵 

        lcall       dishz          ;调用显示汉字子程序 

    ;子程序名称:    dishz     

    ;dptr:          对应字库的起始地址 

    ;r1:        显示数据在122列中的起始列 

    ;位10h:    0——显示在第一行,1——显示在第二行 

    ;1fh:       显示汉字16×16=10h,显示字符16×8=8h 

参考文献 

1 何立民. 单片机应用系统设计. 北京: 北京航空航天大学出版社,1990 

2 李维言是,郭 强.液晶显示应用技术. 北京:电子工业出版社,2000 

3 孙德和,袁 钺.常用集成电路芯片IC参考大全. 北京:海洋出版社,1992

此内容为AET网站原创,未经授权禁止转载。