2004年第2期仪表技术与传感器InstmnientTechniqueandSensor2004No.2一种直接驱动字符型LCD的设计方法苏和平I,糟志科2(1.天水师范学院教育技术中心,甘肃天水741000;2,天水师范学院计算机科学系,甘肃天水741000)摘要:介绍了一种简单的直接驱动字符型LCD的设计方法,简化了单片机应用系统的硬件设计。讨论了字符型LCD对驱动电压的要求,单片机与静态、动态LCD的接口原理,并给出了相应的驱动程序。关键词:单片机;字符型LCD;驱动中图分类号:TM930・2文献标识码:A文章编号:1002-1841(2004)02-0035-03DesignTechniqueofDirectlyDrivingLCDforCharacterTypeSuHe-ping\ZAOZlii-ke2(1・EducationaltechnologyCenter,TianshuiNormalUniversity‘Tianshui741000,China;2.ComputerScienceDepartment,TianslmiNormalUniversity,Tianshui741000,China)Abstract:hitroducesaveiysampledesigntechni(jucofdirectlydrivingLCDforcharactertypeindetail.ItmakeshardwaredesignofSCMapplicationsystemsimplc.Moreover,alsomostlydiscussesdrivingvoltageofLCDforcharactertype,intcrGiccprinciplesofSCMwithsialicLCDandSCMwilhdynamicLCD,softwaresimulatedriveandrelevantdrivingprogramsofSCMforstaticanddynamicLCDarealsogiven.KeyWords*SCM;1,C1)forCharacterType;Drive1字符型LCD对驱动电压的要求IQ)与驱动电路的电连接由段电极和背电极两部分组成,当给某段电极与背电极加上大于显示阈值电压的交变信号时,相应的段位将被点亮,如果某段电极与背电极之间所加电压为零(同相或直流)或小于阈值电压,相应的段将不会显示。2单片机与静态LCD的接口89C51与静态LCD的电路如图1行)所示,89051单片机丁共有P0、Pl、P2、P33个I/O口,内部有4kB的程序存储器,128byleRAM,由于没有外扩程序存储器和数据存储器,P0、P2口可作为普通1/0口使用。LCD板上总共有3位字符,它们各由8段构成,背电极和段电极结构如图1(b),3位背电极连在一起作为com相连于89C51P3.5脚,字符1(al、bl、…、dpi)和89C51P0口相连,字符2(a2、b2、…、(1P2)相连于Pl口,字符3(a3、b3、…、dp3)相连于P2口,P3口(除P3.5外)用于系统的其他功能的扩展。89C51(a)89C51与静态LCD的连接电路对于IQ)的一个段,使它点亮的硬件电路如图2⑵,当A为低电位时,〃、C同相位,加在MD两端的电压为零,IC)不显示,如果4为高电位时,“、C反相,LCD两端由于加上交替变化的电压而被点亮。其驱动波形如图3所示。显然,只要在单片机1/0口上模拟出对应波形,即可驱动液晶显示。UA)图2LCD硬件報动原理(挣态)B(COM)J-LrL-TTTC(A='L')_rn_rn_ru"B-C(A^'L)B-C(A=图3静态驱动电压波形89C5I片内RAM中定义了3个8位显示缓冲区buflferhbuffer2>buffer3和3位LCD字符相对应,显示缓冲区的每个位与相应字符的每个段相对应,如图4所示。在LCD板上显示“375”程序如下:\_L厂图4显示缓冲区位.段时应图(1))背电极和段电极结构1静态LCI)与单片机接口原理3单片机对静态LCD的软件模拟驱动收稿日期:2卿另(數胭收修改稿日期:2003-11-13#include<reg51.h>#defineueluirunsignedcharucliarcodeziduan[]=Qx3f,0x06,0x59,0x4f,0x72,0x6(l,0x7d,0x07,0x7f,0x6f,0x00}字符段码表“0”,T,“2”,“3”,“4”,“5”,ucharchtabuffer1,biiffer2,biiffer3;足义显示缓冲区;•••voidinitial()初始化子程序;(TMOI)=0x01;设買定时器TO为定时状态,且为方式1;ETO=1;PTO=1;TH0=-5000/256;定时中断间隔=10ms;TLO=-5000%256;EA=1;TRO=1;}voidsjc1(ucharbl,ucharb2,ucharb3){buffer1=ziduan[bl];将参数映射的十进制数转换成段码;buffer2=ziduan[b21;bufFer3=ziduanLb3];}voidtimeiO()intemiptl[niO=-5000/256;TID=-5000%256;P3.5二!P3.5If(P3.5==1){P0=buffefOxOfF;Pl=l)uffer2/s0x0ff;P2=l)nffer3'0x0ff;}ElseIPO=bufferrOxOO;Pl=buffei^OxOO;P2=lmffer3'OxOO;}}main(){•-initiciK);•••sjcl(3,7,5);4单片机对LCD动态驱动接口虽然静态LCD驱动简单,但它一个字符需要单片机的8个I/O口,如果需要驱动的字符数比较多,用单片机的I/O口直...