段码LCD液晶屏驱动方法

合集下载

LCD显示器驱动方式

LCD显示器驱动方式

图6-12为液晶模块与单片机的并行连接原理图,表6-4为其引脚功能描述。

引脚名称 电平 功能描述

1
VSS
0V
电源地
2
VCC
+5V 电源正
3
VEE
4
RS
5
R/W
6
E
0~5 液晶显示器驱动电压,用来调整液晶显示的对
V
比度
H/L RS=“H”,表示D7-D0为显示数据,RS=“L”,表示 D7-D0为控制指令
液晶显示模块12864主要由行/列驱动器及128×64全点阵 液晶显示器组成。内部含有国标一级、二级简体中文字库和 128个16×8点的ASCII字符集。可以同时显示8×4个(16×16 点阵)汉字和图形显示。它与CPU的接口连线可采用并行或串 行两种方式。
1、液晶模块接线原理
图6-12 液晶模块与单片机并行连接原理图
字节的低4位依次存放要显示的4位BCD码,相应的显示驱动子
程序如下:
DISP: MOV R0,#20H ;显示缓冲单元首址送R0
MOV R3,#00H
;位选码(左边第1位)送R3
MOV R4,#06H
;位数(6位)送R4
LOOP: MOV A,R3 ;位选码送A
SWAP A
;位选码转为高4位
MOV R2,A
;保存位选码(在高4位)
MOV A,@R0
;取显示BCD码
ORL A,R2 ;位选码(高4位)与BCD码(低4位)组合
ORL A,#80H
;ACC·7置1
MOV P1,A
;输出组合码
ANL P1,#7FH
;清零P1.7位
ORL P1,#80H ;P1.7再置1 INC R3 ;指向下一位显示数 INC R0 ;指向下一位显示缓冲单元 DJNZ R4,LOOP ;6位未显示完返回

LCD段码液晶屏

LCD段码液晶屏

LT-GM08 SPEC1. 介绍IntroductionLT-GM08是力通威公司专门针对3~16串动力电池包而设计的智能电量管理方案;适用于不同化学性质的锂电芯,如锂离子、锂聚合物、磷酸铁锂等,甚至经过一定改造,也可以用于NiMH 等其他材料的化学电池的电量计量和管理。

此智能电量管理板,预留了一个标准的UART (异步串行)接口。

同时我们还专门开发了对应的上位机应用软件。

通过电平转换板,上位机软件可用来设置各种计量参数,如设计容量、制造商信息、当前电压、电流等,灵活性很强。

并且其他MCU 或者控制器也可以直接通过此端口获得剩余电量(RM )、相对剩余电量百分比(RSOC )以及绝对剩余电量百分比(ASOC )、电池电压、电流等电池相关信息. 通过调整电阻分压网络和电流取样电阻,可以调节串联电池的节数和电流的测量范围及分辨率,以适应不同的应用环境。

2. 特点Features● 为多串锂电池设计,并可用于更多节数锂电池 ● 从3串到16串均可支持 ● 电流测量范围、分辨率可调 ● 标准RS232接口 ● 设定参数灵活● 上位机软件可根据客户需求更改● 多种工作模式可灵活控制静态电流的消耗 ● 睡眠模式● 驱动LCD 显示电量、百分比等信息●根据温度和自放电率对剩余容量进行补偿3. 实物图Views图1:电量计量测量板 图2: 电量计量显示板图Figure1:The Bottom view of the GasGauge PCB Figure2: The Top view of the GasGauge PCB4. 电气参数Electrical Characteristic (Ta = 25 ℃.)Details Min. Typ. Max Error UnitBattery gas LiFePO4 Battery links7SAbsolute Maximum Rating Input Charging Voltage 25.55 ±1% V Input Charging Current 0 2 10 A Discharging Current 0 40 50 A Ambient Condition Operating Temperature -5 60 ℃Humidity (No Water-Drop) 0% RH Storage Temperature-40 85 ℃Humidity (No Water-Drop)0% RH RS232UART BandRate18816 19200 195842% Bps5. UART通信协议读取寄存器内容通过UART接口发送0x02,0x00,0xa6,将依次返回9个参数的值。

笔段式液晶驱动方法

笔段式液晶驱动方法

LED数码管的驱动是比较简单也容易理解的,多位数码管一般是LED阵列的形式,每个数字使用一个公共端,不同数字的对应同笔段使用一个控制端;驱动采用分时扫描没个数字位,动态显示。

但是LED比较费电,我想做一个用电池供电的钟,用发光管电池就撑不了多久了。

于是我考虑用液晶。

在这边的电子市场我买到一个4位笔段式液晶屏,4个数字最中间有冒号,边上还有几个箭头符号,一共有15个引脚,正合适用AVR来驱动做一个钟。

笔段式LCD屏的结构与LED数码管很相似,但是由于是液晶,工作机理上不同,驱动方式也有很大差异:(1) LED有正负之分,液晶笔划没有。

(2) LED在直流电压下工作,液晶需要交流电压,防止电解效应。

(3) LED需要电流提供发光的能量,液晶笔划显示状态下电流非常微弱。

(4) LED对微小电流不反应,液晶则很敏感。

不难看出,用LED的驱动方式来对待LCD屏是行不通的。

我在买回来测试这块屏之前没有意识到,于是走了不少的弯路。

与LED驱动不同的是需要给每个笔划加上一个交流电压。

一般用30-60Hz的方波就可以了,频率再低显示会有所波动,频率高了功耗也会增加,因为LCD对电路呈现容性。

而且,正负电压都可以“点亮”液晶。

好在AVR的I/O口可以三态输出,也就是除了高/低电平,还可以呈现高阻抗,相当于断开连接。

于是我想到了这样的办法:不需要显示的那一组笔划对应的公共端悬空(I/O口选择三态),那么就不会加上电压了。

照这个思路,我的实验电路焊好,出来的显示却是一团糟:笔划都黑了看不清。

我这才考虑到液晶本身的问题:阻抗高,而且有电容,是不可一边悬空的!这个道理也许跟CMOS输入端差不多。

查找了一些关于液晶的资料,大致知道LCD屏不是那么简单的,驱动方式通常是1/N, 也就是电压不止高低两档。

可是单片机I/O没有那么多输出状态可以选择。

1/2 Bias驱动不显示的液晶笔划两端电压相等,显示的不等。

这样一个要求在扫描方式下不能满足,于是改为电压等级不同。

LCD的原理及驱动方法简介和应用

LCD的原理及驱动方法简介和应用

LCD 原理及驱动方法简介1、LCD 显示器原理LCD 是一种被动式显示器,其本身不发光,只是调节光的亮度。

LCD 利用液晶的扭曲-向列效应制成,这是一种电场效应,夹在两片导电玻璃电极间的液晶经过一定的处理,它内部的分子呈90°的扭曲,当线性偏振光透过时其偏振面便会旋转90。

当在玻璃电极上加上电压后,在电场作用上,液晶的扭曲结构消失,其旋光作用也消失,偏振光便可直接通过。

当去掉电场后,液晶分子又恢复其扭曲结构。

把这样的液晶置于两偏振片之间,改变偏振相对位置就可得到字的显示形式。

LCD 七段显示器有a~g 七段外,还有一个公共极COM 。

可用静态方式驱动,也可用动态方式驱动。

前者加直流信号,后者加交流信号。

今天所讲的LCD 驱动也是用动态方式驱动的。

当加在a~g 七段中的某一电极的方波与公共电极COM 上的方波信号同相时,相对电压为0,则该段不显示;当加在某段电极上的方波与公共电极COM 的非选通点上加只有选通点电压的少交叉效应的影响,这就是上面仅仅是COM口的驱动波形,那么SEG口的驱动波形又是怎样的呢?对应上面的6个时段,在COM口为高电平时,如果该段需要显示,则对应的SEG口输出低电平;反之,则输出高电平。

根据同LED的有关段显示的规则,得出如下表所示的段码表。

段码表:L C D码表(4位半-18.8.8.8)com1 seg1com2seg2c o m3s e g3com1seg4com2seg5c o m3s e g6digit f a b e g c dp d s f a b e g c d dp s 0000010101111101100 1110110111001001000 2100001101011110100 3100100101011011100 40101001111010110005001100101110011100 6001000101110111100 7100110111011001000 8000000101111111100 9000100101111011100a000000111111111000b011000101100111100c001011101110110100d110000101001111100e111111111000000000不显示f111101111000010000显示“-”3、程式流程图如下图所示:4、程式如下1;title:通用I/O口驱动LCD范例程式2;MCU:EM78P447BS,clock:2,crystal:4MHz3;LCD规格:1/2Bias,1/3duty4;writer:RenBin5;date:2005-5-2311:276;*****************************************************************7;程式说明:本程式是用通用I/O口驱动LCD的程式,用一个I/O口作COM口及SEG口8;9;-------------------10;port611;port64com112;port65com213;port66com314;port515;port504b/4c16;port514a/4g/4d17;port524f/4e/dp318;port543b/3c/s219;port553a/3g/3d20;port563f/3e/dp221;port722;port702b/2c/s123;port712a/2g/2d24;port722f/2e/dp125;port741b/1c/1h26;port751a/1g/1d27;port761f/1e28;---------------------------------29include<em78p447.inc>1C;*****************************************************;2C;Tilte:EM78447include file;3C;Description:The Definition of EM78x447Registers;4C;Company:ELAN MICROELECTRONICS(SZ)LTD.;5C;Author:YouFang.Bao;6C;Date:5/14/2004;7C;Version:v1.0;8C;******************************************************;9C;10C;======================================================;11C;Operational Registers Define;12C;======================================================;13C;14C;======================================================;15C;Registers R0~R3F;16C;======================================================;17C;18C;R0/IAR:Indirect Address Register19C;200000C R0==0x00210000C IAR==0x0022C;23C;R1/TCC:Time Clock/Counter24C;250001C R1==0x01260001C TCC==0x01270001C RTCC==0x0128C;29C;R2/PC:Program Counter&Stack30C;310002C R2==0x02320002C PC==0x0233C;34C;R3/PSR:Process Status Register35C;360003C R3==0x03370003C PSR==0x03380003C STATUS==0x0339C;{400007C GP==0x07;General read/write bit410006C PS1==0x06;420005C PS0==0x05;(PS0~PS1):Page Select Bits43C;----------------------------------------;44C;PS1PS0Program memory page [Address];45C;00Page0[000-3FF];46C;01Page1[400-7FF];47C;10Page2[800-BFF];48C;11Page3[C00-FFF];49C;----------------------------------------;500004C T==0x04;Time-out bit510003C P==0x03;Power down bit520002C Z==0x02;Zero flag530001C DC==0x01;Auxiliary carry flag540000C C==0x00;Carry flag550000C cy==056C;57C;R4/RSR:RAM Select Register58C;590004C R4==0x04600004C RSR==0x0461C;{620007C RS1==0x07;RAM-Bank Select Bit1630006C RS0==0x06;RAM-Bank Select Bit064C;65C;R5~R7:I/O Port Address66C;670005C PORT5==0x05680006C PORT6==0x06690007C PORT7==0x0770C;710005C P5==0x05720006C P6==0x06730007C P7==0x0774C;750005C R5==0x05760006C R6==0x06770007C R7==0x0778C;79C;R3F/ISR:Interrupt Status Register80C;81003F C R3F==0x3F82003F C ISR==0x3F83C;{840003C EXIF==0x03;External interrupt flag850000C TCIF==0x00;TCC overflow interrupt flag86C870008C mEXIF==0x08;External interrupt flag880001C mTCIF==0x01;TCC overflow interupt flag89C;}90C;91C;92C;======================================================; 93C;Special Purpose Registers Define;94C;======================================================;95C;96C;IOC5~IOC7:I/O Port Control Register97C;980005C IOC5==0x05;Bit[n]=1,Set P5[n]as input pin,n=0~7 99C;Bit[n]=0,Set P5[n]as output pin, n=0~7100C;1010006C IOC6==0x06;Bit[n]=1,Set P6[n]as input pin, n=0~7102C;Bit[n]=0,Set P6[n]as output pin, n=0~7103C;1040007C IOC7==0x07;Bit[n]=1,Set P7[n]as input pin, n=0~7105C;Bit[n]=0,Set P7[n]as output pin, n=0~7106C;107C;108C;IOCB/WCR:Wake-up Control Register for PORT6109C;110000B C IOCB==0x0B111000B C WCR==0x0B112C;{1130007C WUE7==0x07;Control bit is used to enable the wake-up function of P67pin1140006C WUE6==0x06;Control bit is used to enable the wake-up function of P66pin1150005C WUE5==0x05;Control bit is used to enable the wake-up function of P65pin1160004C WUE4==0x04;Control bit is used to enable the wake-up function of P64pin1170003C WUE3==0x03;Control bit is used to enable the wake-up function of P63pin1180002C WUE2==0x02;Control bit is used to enable the wake-up function of P62pin1190001C WUE1==0x01;Control bit is used to enable the wake-up function of P61pin1200000C WUE0==0x00;Control bit is used to enable the wake-up function of P60pin121C;0:Enable internal wake-up122C;1:Disable internal wake-up123C;124C;IOCE/WDTCON:WDT Control Register125C;126000E C IOCE==0x0E127000E C WDTCON==0x0E128C;129C;IOCF/IMR:Interrupt Mask Register130C;131000F C IOCF==0x0F132000F C IMR==0x0F133C;{1340008C mEXIE==0x08;EXIF Interrupt enable bit135C;0:Disable EXIF interrupt136C;1:Enable EXIF interrupt 1370001C mTCIE==0x01;TCIF Interrupt enable bit138C;0:Disable TCC interrupt139C;1:Enable TCC interrupt140C;141C;======================================================; 142C;Others Define;143C;======================================================; 144C;145C;Bit set use BC or BS146C;1470000C B0==0x001480001C B1==0x011490002C B2==0x021500003C B3==0x031510004C B4==0x041520005C B5==0x051530006C B6==0x061540007C B7==0x07155C;======================================================; 156C;Macros Define;157C;======================================================; 158C;----------------------------159C;160C Page0MACRO161C;162C BC PSR,PS0163C BC PSR,PS1164C;165C ENDM166C;167C;----------------------------168C;169C Page1MACRO170C;171C BS PSR,PS0 172C BC PSR,PS1 173C;174C ENDM175C;176C;----------------------------177C;178C Page2MACRO179C;180C BC PSR,PS0 181C BS PSR,PS1 182C;183C ENDM184C;185C;----------------------------186C;187C Page3MACRO188C;189C BS PSR,PS0 190C BS PSR,PS1 191C;192C ENDM193C;194C;----------------------------195C;196C Bank0MACRO197C;198C BC RSR,RS0 199C BC RSR,RS1 200C;201C ENDM202C;203C;----------------------------204C;205C Bank1MACRO206C;207C BS RSR,RS0208C BC RSR,RS1209C;210C ENDM211C;212C;----------------------------213C;214C Bank2MACRO215C;216C BC RSR,RS0217C BS RSR,RS1218C;219C ENDM220C;221C;----------------------------222C;223C Bank3MACRO224C;225C BS RSR,RS0226C BS RSR,RS1227C;228C ENDM229C;----------------------------230C;231C;************************************************; 232C;Clear EM78P447General Register Macro Program; 233C;; 234C;************************************************; 235C;236C m447clrrambank macro237C;238C mov a,@0x10239C mov rsr,a240C$_Clrloop:241C clr r0242C inc rsr243C jbc rsr,6244C bs rsr,5245C jbc rsr,7246C bs rsr,5247C jbs status,z248C jmp$_clrloop249C endm30include"e:\lcd\lcddriverram.inc"1C;title:lcddriver register define2C;mcu:em78p447sb3C;---------------------------------------4C;50010C reg_acc1==0x1060011C reg_acc2==0x1170012C reg_acc3==0x1280017C temp_value==0x17;温度寄存器90019C humi_value==0x19;湿度寄存器10001B C sysstatus==0x1b;标志寄存器11C;--------------------------------------12C;bank1130020C mstimer==0x20140021C stimerlow==0x21150022C stimerhigh==0x22160023C cont==0x2317C;180024C commondata==0x24;common数据寄存器190025C segdata==0x25;segment数据寄存器20C;210026C temp1==0x26;中间变量寄存器220027C temp2==0x27;中间变量寄存器230028C temp3==0x28;中间变量寄存器240029C temp4==0x2925C;26002A C tempL==0x2a;温度bcd码低位寄存器27002B C tempH==0x2b;高位28002C C humiL==0x2c;湿度bcd低位码寄存器29002D C humih==0x2d;高位30C;31002E C timer05s==0x2e;0.5s寄存器32C;temp_value==0x2f;分钟寄存器33C;humi_value==0x30;小时寄存器34C;---------------------------------------------35C;register bit define36C;sysstatus register define370003C timer500ms==3;500ms标志380004C LCDdsp==4;LCD显示标志390005C datachange==5;数据更新标志400006C timer==6;定时标志410007C am==7;上下午标志42C;常数定义4300B2C tcc_5ms==178;tcc5ms timer4400C8C kmstimer==200;1000ms timer45000C C segment==12;define LCD segment data 460002C duty==2470003C common==3;2;define LCD common data 480002C bias==231;32org0xfff3300FFF0000nop34org035000001408jmp start36org137000010000nop3800002083F bc r3f,tcif39000030B1B bs sysstatus,lcddsp40000040B9B bs sysstatus,timer41000051886mov a,@(256-122)42000060041mov tcc,a43000070013reti4400008start:45M m447clrrambank;清寄存器0000818101MOV A,@(16)0000900441MOV RSR,A0000A1??0001$_CLRLOOP:0000A00C01CLR R0,0000B05441INC RSR,0000C0D841JBC RSR,60000D0B441BS RSR,50000E0DC41JBC RSR,70000F0B441BS RSR,5000100E831JBS STATUS,Z00011140A1JMP??0001$_CLRLOOP,46000121800mov a,@0x047000130045mov port5,a48000141800mov a,@0x049000150005iow ioc550;51000161800mov a,@0x052000170046mov p6,a53000181800mov a,@0x054000190006iow ioc655;560001A1800mov a,@0x0570001B0047mov p7,a580001C1800mov a,@0x0590001D0007iow ioc760;610001E1804mov a,@0b00000100;TCC=1:32,4.096ms 620001F0002contw63000201811mov a,@0x116400021000E iow ioce65000221801mov a,@0x016600023000F iow iocf67000241886mov a,@(256-122)68000250041mov tcc,a69;7000026183F mov a,@63;12;59;11;88;00;88;2371000270057mov temp_value,a7200028184A mov a,@74;34;11;11;88;00;88;30 73000290059mov humi_value,a;74;750002A1806mov a,@(common*2)760002B0064mov commondata,a770002C0010eni78;****************************************7980;****************************************810002D main:820002D0004wdtc830002E1096call lcddisplay840002F142D jmp main85;**************************************** 8600030LCD1_table:;段码表87000300020TBL88000311C00RETL@0B00000000;089000321C06RETL@0B00000110;190000331C04RETL@0B00000100;2 91000341C04RETL@0B00000100;3 92000351C02RETL@0B00000010;4 93000361C01RETL@0B00000001;5 94000371C01RETL@0B00000001;6 95000381C04RETL@0B00000100;7 96000391C00RETL@0B00000000;8 970003A1C00RETL@0B00000000;9 98;990003B1C00RETL@0B00000000;A 1000003C1C03RETL@0B00000011;b 1010003D1C01RETL@0B00000001;c 1020003E1C06RETL@0B00000110;d 1030003F1C01RETL@0B00000001;E 104000401C0F RETL@0B00001111;F105106;--------------------------------------------------------------10700041LCD2_table:108000410020TBL109000421C02RETL@0B00000010;0 110000431C06RETL@0B00000110;1 111000441C01RETL@0B00000001;2 112000451C04RETL@0B00000100;3 113000461C04RETL@0B00000100;4 114000471C04RETL@0B00000100;5 115000481C00RETL@0B00000000;6 116000491C06RETL@0B00000110;7 1170004A1C00RETL@0B00000000;8 1180004B1C04RETL@0B00000100;9 119;1200004C1C00RETL@0B00000000;A 1210004D1C00RETL@0B00000000;b 1220004E1C03RETL@0B00000011;c 1230004F1C00RETL@0B00000000;d 124000501C01RETL@0B00000001;E 125000511C05RETL@0B00000101;F 126;--------------------------------------------------------------12700052LCD3_table:128000520020TBL129000531C05RETL@0B00000101;0 130000541C07RETL@0B00000111;1131000551C05RETL@0B00000101;2 132000561C05RETL@0B00000101;3 133000571C07RETL@0B00000111;4 134000581C05RETL@0B00000101;5 135000591C05RETL@0B00000101;6 1360005A1C07RETL@0B00000111;7 1370005B1C05RETL@0B00000101;8 1380005C1C05RETL@0B00000101;9 139;1400005D1C07RETL@0B00000111;A 1410005E1C05RETL@0B00000101;b 1420005F1C05RETL@0B00000101;c 143000601C05RETL@0B00000101;d 144000611C05RETL@0B00000101;E 145000621C07RETL@0B00000111;F 146;--------------------------------------------------------------14700063LCD4_table:148000630020TBL149000641C07RETL@0B00000111;0 150000651C01RETL@0B00000001;1 151000661C03RETL@0B00000011;2 152000671C03RETL@0B00000011;3 153000681C05RETL@0B00000101;4 154000691C06RETL@0B00000110;5 1550006A1C06RETL@0B00000110;6 1560006B1C03RETL@0B00000011;7 1570006C1C07RETL@0B00000111;8 1580006D1C07RETL@0B00000111;9 159;1600006E1C07RETL@0B00000111;A 1610006F1C04RETL@0B00000100;b 162000701C06RETL@0B00000110;c 163000711C01RETL@0B00000001;d 164000721C06RETL@0B00000110;E 165000731C00RETL@0B00000000;F 166;------------------------------------16700074LCD5_table:168000740020TBL169000751C05RETL@0B00000101;0 170000761C01RETL@0B00000001;1 171000771C06RETL@0B00000110;2172000781C03RETL@0B00000011;3 173000791C03RETL@0B00000011;4 1740007A1C03RETL@0B00000011;5 1750007B1C07RETL@0B00000111;6 1760007C1C01RETL@0B00000001;7 1770007D1C07RETL@0B00000111;8 1780007E1C03RETL@0B00000011;9179;1800007F1C07RETL@0B00000111;A 181000801C07RETL@0B00000111;b 182000811C04RETL@0B00000100;c 183000821C07RETL@0B00000111;d 184000831C06RETL@0B00000110;E 185000841C06RETL@0B00000110;F186;---------------------------------------------18700085LCD6_table:188000850020TBL189000861C02RETL@0B00000010;0 190000871C00RETL@0B00000000;1 191000881C02RETL@0B00000010;2 192000891C02RETL@0B00000010;3 1930008A1C00RETL@0B00000000;4 1940008B1C02RETL@0B00000010;5 1950008C1C02RETL@0B00000010;6 1960008D1C00RETL@0B00000000;7 1970008E1C02RETL@0B00000010;8 1980008F1C02RETL@0B00000010;9199;200000901C00RETL@0B00000000;A 201000911C02RETL@0B00000010;b 202000921C02RETL@0B00000010;c 203000931C02RETL@0B00000010;d 204000941C02RETL@0B00000010;E 205000951C00RETL@0B00000000;F206;******************************************* 20700096Lcddisplay:208000960F1B jbs sysstatus,lcddsp2090009714B4jmp lcddisplayret21000098091B bc sysstatus,lcddsp211;212000990417mov a,temp_value;2130009A0050mov reg_acc1,a2140009B117B call sub_bintobcd2150009C0412mov a,reg_acc32160009D006B mov temph,a2170009E0411mov a,reg_acc22180009F006A mov tempL,a219;220000A00419mov a,humi_value221000A10050mov reg_acc1,a222000A2117B call sub_bintobcd223000A30412mov a,reg_acc3224000A4006D mov humih,a225000A50411mov a,reg_acc2226000A6006C mov humiL,a227;228000A705E4djz commondata229000A814AB JMP lcddisplay1;$+3 230000A91806MOV a,@(common*2) 231000AA0064MOV commondata,a 232000AB lcddisplay1:233000AB0424MOV a,commondata 234000AC0020TBL235000AD0000NOP236000AE14B5jmp Lcd1display237000AF14D6jmp Lcd2display238000B014F7jmp Lcd3display239000B11518jmp Lcd4display240000B21539jmp lcd5display241000B3155A jmp lcd6display242000B4lcddisplayret:243000B40012ret244;-----------------------------------------------245;显示LCD1246000B5LCD1display:247000B5042A mov a,tempL;温度个位248000B61030call lcd1_table249000B70066mov temp1,a250;251000B8042B mov a,tempH;温度十位252000B91030call lcd1_table253000BA0067mov temp2,a254000BB0727swapa temp2255000BC0226or a,temp1256000BD0066mov temp1,a257000BE0766swap temp1258;259000BF042C mov a,humiL;湿度个位,260000C01030call lcd1_table261000C10068mov temp3,a262;263000C2042D mov a,humiH;湿度十位264000C31030call lcd1_table265000C40069mov temp4,a266000C50729swapa temp4267000C60228or a,temp3268000C70068mov temp3,a269000C80768swap temp3270;271000C90428mov a,temp3272000CA0047mov port7,a273000CB0426mov a,temp1274000CC0045mov port5,a275;276000CD0016ior ioc6277000CE1A0F and a,@0x0f278000CF1960or a,@0b01100000279000D00006iow ioc6;com1:2:3:2.5v 280000D10406mov a,port6281000D21A0F and a,@0x0f282000D31910or a,@0b00010000283000D40046mov port6,a284000D50012ret285;--------------------------------------------286000D6lcd2display:287000D6042A mov a,tempL;温度个位288000D71041call LCD2_table289000D80066mov temp1,a290;291000D9042B mov a,temph;温度十位292000DA1041call LCD2_table293000DB0067mov temp2,a294000DC0727swapa temp2295000DD0226or a,temp1296000DE0066mov temp1,a297000DF0766swap temp1298;299000E0042C mov a,humiL;湿度个位,300000E11041call LCD2_table301000E20068mov temp3,a302;303000E3042D mov a,humih;湿度十位304000E41041call LCD2_table305000E50069mov temp4,a306000E60729swapa temp4307000E70228or a,temp3308000E80068mov temp3,a309000E90768swap temp3310;311000EA0428mov a,temp3312000EB0047mov port7,a313000EC0426mov a,temp1314000ED0045mov port5,a315;316000EE0016ior ioc6317000EF1A0F and a,@0x0f318000F01950or a,@0b01010000319000F10006iow ioc6;com1:2:3:2.5v 320000F20406mov a,port6321000F31A0F and a,@0x0f322000F41920or a,@0b00100000323000F50046mov port6,a324000F60012ret325;-------326000F7lcd3display:327000F7042A mov a,tempL;温度个位328000F81052call LCD3_table329000F90066mov temp1,a330;331000FA042B mov a,temph;温度十位332000FB1052call LCD3_table333000FC0067mov temp2,a334000FD0727swapa temp2335000FE0226or a,temp1336000FF0066mov temp1,a337001000766swap temp1338;33900101042C mov a,humiL;湿度个位,340001021052call LCD3_table341001030068mov temp3,a342;34300104042D mov a,humih;湿度十位344001051052call LCD3_table345001060069mov temp4,a346001070729swapa temp4347001080228or a,temp3348001090068mov temp3,a3490010A0768swap temp3350;3510010B0428mov a,temp33520010C0047mov port7,a3530010D0426mov a,temp13540010E0045mov port5,a355;3560010F0016ior ioc6357001101A0F and a,@0x0f358001111930or a,@0b00110000359001120006iow ioc6;com1:2:3:5v 360001130406mov a,port6361001141A0F and a,@0x0f362001151940or a,@0b01000000363001160046mov port6,a364001170012ret365;------36600118lcd4display:36700118042A mov a,tempL;温度个位368001191063call lcd4_table3690011A0066mov temp1,a370;3710011B042B mov a,temph;温度十位3720011C1063call lcd4_table3730011D0067mov temp2,a3740011E0727swapa temp23750011F0226or a,temp1376001200066mov temp1,a377001210766swap temp1378;37900122042C mov a,humiL;湿度个位,380001231063call lcd4_table381001240068mov temp3,a382;38300125042D mov a,humih;湿度十位384001261063call lcd4_table385001270069mov temp4,a386001280729swapa temp4387001290228or a,temp33880012A0068mov temp3,a3890012B0768swap temp3390;3910012C0428mov a,temp33920012D0047mov port7,a3930012E0426mov a,temp13940012F0045mov port5,a395;396001300016ior ioc6397001311A0F and a,@0x0f398001321960or a,@0b01100000399001330006iow ioc6;com1:2:2.5v,com:2.5V 400001340406mov a,port6401001351A0F and a,@0x0f402001361900or a,@0b00000000403001370046mov port6,a404001380012ret405;--------------40600139lcd5display:40700139042A mov a,tempL;温度个位4080013A1074call lcd5_table4090013B0066mov temp1,a410;4110013C042B mov a,temph;温度十位4120013D1074call lcd5_table4130013E0067mov temp2,a4140013F0727swapa temp2415001400226or a,temp1416001410066mov temp1,a417001420766swap temp1418;41900143042C mov a,humiL;湿度个位,420001441074call lcd5_table421001450068mov temp3,a422;42300146042D mov a,humih;湿度十位424001471074call lcd5_table425001480069mov temp4,a426001490729swapa temp44270014A0228or a,temp34280014B0068mov temp3,a4290014C0768swap temp3430;4310014D0428mov a,temp34320014E0047mov port7,a4330014F0426mov a,temp1434001500045mov port5,a435;436001510016ior ioc6437001521A0F and a,@0x0f438001531950or a,@0b01010000439001540006iow ioc6;com1:2:0v,com:2.5V 440001550406mov a,port6441001561A0F and a,@0x0f442001571900or a,@0b00000000443001580046mov port6,a444001590012ret445;----------------------------4460015A lcd6display:4470015A042A mov a,tempL;温度个位4480015B1085call lcd6_table4490015C0066mov temp1,a450;4510015D042B mov a,temph;温度十位4520015E1085call lcd6_table4530015F0067mov temp2,a454001600727swapa temp2455001610226or a,temp1456001620066mov temp1,a457001630766swap temp1458;45900164042C mov a,humiL;湿度个位,460001651085call lcd6_table461001660068mov temp3,a462;46300167042D mov a,humih;湿度十位464001681085call lcd6_table465001690069mov temp4,a4660016A0729swapa temp44670016B0228or a,temp34680016C0068mov temp3,a4690016D0768swap temp3470;4710016E0428mov a,temp34720016F0047mov port7,a473001700426mov a,temp1474001710045mov port5,a475;476001720016ior ioc6477001731A0F and a,@0x0f478001741930or a,@0b00110000479001750006iow ioc6;com1:2:2.5v,com:0V 480001760406mov a,port6481001771A0F and a,@0x0f482001781900or a,@0b00000000483001790046mov port6,a4840017A0012ret485;------------------------------------------486;--------------------------------------487;此程式是将小于100的数(reg_acc1)转换为BCD码,488;将高位存放于reg_acc2,低位存入于reg_acc3中。

段码液晶屏驱动原理

段码液晶屏驱动原理

段码液晶屏驱动原理
液晶屏是在数字时代应用最广泛的显示器件之一,尤其是在移动设备、电视和电脑上。

液晶屏驱动原理是如何让屏幕上显示出图像和文字的关键,是电子技术中的重要知识点。

液晶屏幕基本原理
液晶是一种特殊的材料,具有类似晶体的性质,既能传导又能隔绝电流,但在普通状态下是不会发生变化的。

当液晶材料加上电场,分子会重新排列,从而改变分子间的空隙大小。

这种排列的方式可以控制液晶所产生的光线的传递和反射,从而在屏幕上呈现出图像和文字。

液晶屏幕构造
液晶屏由若干层材料组成,其中关键的部分是液晶分子及其控制电路和背光源。

液晶分子分为向列型和散列型两种,它们的结构和特性决定了屏幕的显示效果。

控制电路是将输入的信号解析后,将电流传递到液晶分子上,从而影响液晶的显示效果。

背光源是液晶屏幕的光源,它是让液晶显示的能量来源。

液晶屏幕驱动原理
液晶屏驱动是通过控制信号的变化、背光源的控制和图像信号的处理来实现的。

具体来说,这个过程包括以下几个方面:主控芯片解码输入信号,驱动液晶分子,施加特定的电场,从而使液晶分子根据电场的方向变化,进而使液晶屏显示出图像和文字。

在驱动过程中,背光源也起着非常重要的作用,通过光源的亮度控制来使液晶屏的亮度和对比度达到最佳状态。

总之,液晶屏驱动原理是利用控制电路、背光源和图像信号处理等技术实现的,它将电子信号转化为生动的图像和文字,广泛应用于各种电子产品当中,是现代生活中不可或缺的一部分。

段码LCD液晶屏驱动方法

段码LCD液晶屏驱动方法

TFT液晶屏:段码LCD液晶屏驱动方法段码LCD液晶屏驱动方法首先,不要以为用单片机来驱动就以为段码屏是直流驱动的,其实,段码屏是交流驱动,什么是交流?矩形波,正弦波等。

大家可能会经常用驱动芯片来玩,例如HT1621等,但是有些段式屏IO口比较少,或者说IO口充足的情况下,也可以省去写控制器的驱动了。

与单片机接口方便,而后者驱动电流小,功耗低、寿命长、字形美观、显示清晰、视角大、驱动方式灵活、应用广泛。

但在控制上LCD较复杂,因为LCD 电极之间的相对电压直流平均值必须为0,否则易引起LCD氧化,因此LCD不能简单地用电平信号控制,而要用一定波形的方波序列来控制。

LCD显示有静态和时分割两种方式,前者简单,但是需要较多的口线;后者复杂,但所需口线较少,这两种方式由电极引线的选择方式确定。

下面以电子表的液晶显示为例,小时的高位同时灭或亮,分钟的高位在显示数码1~5时,其顶部和底部也是同时灭或亮,两个dot点也是同时亮或灭,其驱动方式是偏置比为1/2的时分割驱动,共有11个段电极和两个公共电极。

但是,IO模拟驱动段式液晶有一个前提条件,就是IO必须是三态,为什么?下面我们一起细细道来:第一步,段码式液晶屏的重要参数:工作电压,占空比,偏压比。

这三个参数非常重要,必须都要满足。

第二步,驱动方式:根据LCD的驱动原理可知,LCD像素点上只能加上AC电压,LCD显示器的对比度由COM脚上的电压值减去SEG脚上的电压值决定,当这个电压差大于LCD的饱和电压就能打开像素点,小于LCD阈值电压就能关闭像素点,LCD型MCU已经由内建的LCD驱动电路自动产生LCD驱动信号,因此只要I/O口能仿真输出该驱动信号,就能完成LCD的驱动。

段码式液晶屏幕主要有两种引脚,COM,SEG,跟数码管很像,但是,压差必须是交替变化,例如第一时刻是正向的3V,那么第二时刻必须是反向的3V,注意一点,如果给段码式液晶屏通直流电,不用多久屏幕就会废了,所以千万注意。

如何使用普通IO口驱动LCD 单片机直接驱动 LCD 段码液晶 低成本 宁波北仑恒晶电子科技有限公司

如何使用普通IO口驱动LCD 单片机直接驱动 LCD 段码液晶 低成本 宁波北仑恒晶电子科技有限公司

如何使用普通I/O口驱动LCD一些特定环境,为了节省成本,又保证其性能。

在控制I/O口需求较少,但芯片本身的I/O口又较多的情况下,客户往往希望用普通I/O口驱动LCD显示,所以下面简单介绍一下,以供参考。

1、LCD简介:目前,市面主流LCD(液晶显示器)分成以下几大类:TN(扭曲阵列型)、STN(超扭曲阵列型)、DSTN(双层超扭曲阵列)、HPA(高性能定址或快速DSTN)、TFT(薄膜场效应晶体管)等。

由于成本因素,目前大多数采用的是TN型单色液晶显示器,它的原理是把液晶灌入两个列有细槽的平面之间。

这两个平面上的槽互相垂直(相交成90°),也就是说,若一个平面上的分子南北向排列,则另一平面上的分子东西向排列,而位于两个平面之间的分子被强迫进入一种90°扭转的状态。

由于光线顺着分子的排列方向传播,所以光线经过液晶时也被扭转90°。

当液晶上加一个电压时,分子便会重新垂直排列,使光线能直射出去,而不发生任何扭转。

LCD正是由这样两个相互垂直的极化滤光器构成的,所以在正常情况下应该阻断所有试图穿透的光线。

但是,由于两个滤光器之间充满了扭曲液晶,所以在光线穿出第一个滤光器后,会被液晶分子扭转90°,最后从第二个滤光器中穿出。

另一方面,若为液晶加一个电压,分子又会重新排列并完全平行,使光线不再扭转,所以正好被第二个滤光器挡住。

总之,加电将光线阻断,不加电则使光线射出。

LCD模型可以把其看成一个电容器,一个电极连接着公共极板,另一个连接着字符段。

LCD受电压的均方根值控制,当施加在LCD上的电压为零时,LCD呈透明状态。

当施加在字符段与公共极的电压大于LCD的阀值电压,则该字符段就显示出来。

如果用直流驱动LCD,将会引起显示单元永久性的损坏。

为了防止不可逆转的电化学反应使LCD损坏,加在所有字符段上的电压必须周期性翻转极性,以使加在字符段上的平均电压为0。

2、I/O口直接驱动LCD的实现方法下面介绍多路复用显示驱动方法。

实验五 笔段型LCD的静态驱动

实验五  笔段型LCD的静态驱动

实验五笔段型LCD的静态驱动一、实验目的1.掌握LCD的显示原理;2.掌握单片机驱动笔段型LCD的方法;3.掌握笔段型LCD的静态驱动技术4.理解笔段型LCD静态驱动波形对像素点灰度的影响。

二、实验仪器用具笔段式LCD显示模块EDS801A,单片机开发板,电脑三、实验原理液晶显示器是常用的一种被动发光型显示器件,以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用如图5-1。

显示原理是液晶面板上下两面的导电玻璃上有电极;段电极与背电极呈正交带状分布,液晶位于正交的带状电极间。

有电场的地方液晶透光;无电场不透光;液晶面板底部背光电源。

液晶显示像素可以分为段形和点矩阵两大类,段形显示的电极连接可分为静态驱动连接和动态驱动连接。

静态驱动电极的每个显示段都单独引出。

所有各位显示的段全都公用一个背电极如图5-2所示。

图5-1 液晶显示模块图5-2 静态驱动连接静态驱动法是获得最佳显示质量的最基本的方法,静态驱动法的电路实现见图5-3(b)。

振荡器的脉冲信号经分频后直接施加在液晶显示器件的背电极BP上,而段电极的脉冲信号是由显示选择信号A与时序脉冲通过逻辑异或合成产生,异或逻辑的真值表如表5-1所示。

当某位显示像素被显示选择时,A=1,该显示像素上两电极的脉冲电压相位相差180°,在显示像素上产生2V 的电压脉冲序列,使该显示像素呈现显示特性;当某位显示像素为非显示选择时,A=0,该显示像素上两电极的脉冲电压相位相等,在显示像素上合成电压脉冲为0V ,从而实现显示效果。

这就是静态驱动法,驱动波形如图5-3(C )。

为了提高显示的对比度,适当地调整脉冲的电压即可。

图5-3 静态驱动法原理本次实验所用液晶显示模块为大连东显EDS801A ,实物图如图5-4,图5-5为引脚图及结构图,液晶必须采用交流驱动方式。

当液晶显示器的字符笔划电极与背电极(BP )呈等电位时,液晶不显示(消隐);当二者存在电位差时,液晶方可显示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

段码LCD液晶屏驱动方法
生活中小电器见到最多的lcd模组就是段码lcd液晶屏,段码lcd有普通的数码管的特征,又有点阵LCD的特征,固定的图形,优点是省成本而有好看,那么段码LCD液晶屏是怎么驱动的呢?下面我们就来简单了解一下:
首先,不要以为用单片机来驱动就以为段码屏是直流驱动的,其实,段码屏是交流驱动,什么是交流?矩形波,正弦波等。

大家可能会经常用驱动芯片来玩,例
如HT1621等,但是有些段式屏IO口比较少,或者说IO口充足的情况下,也可以省去写控制器的驱动了。

与单片机接口方便,而后者驱动电流小,功耗低、寿命长、字形美观、显示清晰、视角大、驱动方式灵活、应用广泛【1】。

但在控制上LCD较复杂,因为LCD电极之间的相对电压直流平均值必须为0【2】,否则易引起LCD氧化,因此LCD不能简单地用电平信号控制,而要用一定波形的方波序列来控制。

LCD显示有静态和时分割两种方式,前者简单,但是需要较多的口线;后者复杂,但所需口线较少,这两种方式由电极引线的选择方式确定。

下面以电子表的液晶显示为例,小时的高位同时灭或亮,分钟的高位在显示数码1~5时,其顶部和底部也是同时灭或亮,两个dot点也是同时亮或灭,其驱动方式是偏置比为1/2的时分割驱动,共有11个段电极和两个公共电极。

但是,IO模拟驱动段式液晶有一个前提条件,就是IO必须是三态,
为什么?下面我们一起细细道来:
第一步,段码式液晶屏的重要参数:工作电压,占空比,偏压比。

这三个参数非常重要,必须都要满足。

第二步,驱动方式:根据LCD 的驱动原理可知,LCD 像素点上只能加上AC 电压,LCD 显示器的对比度由COM脚上的电压值减去SEG 脚上的电压值决定,当这个电压
差大于 LCD 的饱和电压就能打开像素点,小于LCD 阈值电压就能关闭像素点,LCD 型MCU 已经由内建的LCD 驱动电路自动产生LCD 驱动信号,因此只要I/O 口能仿真输出该驱动信号,就能完成 LCD 的驱动。

段码式液晶屏幕主要有两种引脚,COM,SEG,跟数码管很像,但是,压差必须是交替变化,例如第一时刻是正向的3V,那么第二时刻必须是反向的3V,注意一点,如果
给段码式液晶屏通直流电,不用多久屏幕就会废了,所以千万注意。

下面我们来考虑如何模拟COM口的波形,以1/4D,1/2B为例子:
只要模拟出以上波形,液晶屏已经成功了一大半了。

1. void display_sub(u8 y) //lcd display subroutine
2. {
3. switch(y) //4*com,VDD and -VDD LCD display,so 8 timebase interrupt one sacn period
4. {
5. case 1:
6. {com1_output_high();break;}
7. case 2:
8. {com1_output_low();break;}
9. case 3:
10. {com2_output_high();break;}
11. case 4:
12. {com2_output_low();break;}
13. case 5:
14. {com3_output_high();break;}
15. case 6:
16. {com3_output_low();break;}
17. case 7:
18. {com4_output_high();break;}
19. case 8:
20. {com4_output_low();break;}
21. default:
22. {LCDPluseStep=0;
23. get_display_code(AD_Value,KeyScanRetVal);
24. break;}
25. }
26. }
入以上代码所示,定时2ms,让4个COM交替输出波形即可。

同时我们要注意,在COM输出高的时候,如果要屏幕亮,SEG就要输出低,那么在COM 输出低的时候,SEG就要输出高,保证COM和SEG的压差大于1/2B工作电压就可以显示了
下面我们看其中一个com口输出时的函数
1. static void seg1_output(void) //seg1 output subroutine
2. {
3. if(1 == (LCDPluseStep%2)) //com_pulse is odd,com output high (VDD)
4. {
5. if(0 == (DisplayCode1&0x10))
6. {SEG1=1;}
7. else
8. {SEG1=0;}
9. }
10. else //com_pulse is even,com output low (VSS)
11. {
12. if(0 == (DisplayCode1&0x10))
13. {SEG1=0;}
14. else
15. {SEG1=1;}
16. }
17. }
时刻让SEG电平跟COM的电平反向,那么驱动段式液晶就基本上成功了。

相关文档
最新文档