置于两个偏振片之间,改变偏振片相对位置就可以得到白底黑子或黑底白字的显示形式。结合以上知识具体显示原理如下:
( 1 ) 线段的显示
( 2 ) 字符的显示
用LCD显示一个字符时比较复杂,因为一个字符由6*8或8*8点阵组成,既要找到和显示屏上某几个位置对应的显示RAM区的8字节,还要使每字节的不同的位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮,这样一来就组成某个字符。但对于内带字符发生器的控制器 (如HD61202)来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。
( 3 ) 汉字的显示
汉字的显示一般采用图形方式,事先从微机中提取要显示的汉字的点阵码,每个汉字占32B,分左右两半部,各占16B,左边为1、3、5…右边为2、4、6…根据在LCD上开始显示的行列号及每行的列数可找到显示RAM对应的地址,设立光标,送上要显示的汉字的一字节,光标位置加1,送第二字节,按行按列对齐,送第三字节……直到32B显示完就可在LCD上得到一个完整的汉字。
3.3 LCD模块的指令说明
要完成显示程序的设计,必须了解LCD液晶模块的指令系统。这里采用的LCD是北京精电蓬远显示技术公司生产的MGLS系列图形液晶显示模块,其内藏KS0108B/HD61202控制器。
KS0108B及其兼容控制驱动器( HD61202 )的指令系统比较简单,一共只有7条指令,从作用上可分为两类。第一条指令和第二条指令为显示状态设置类;其余指令为数据读/写操作指令。下面是各个指令的功能:
1. 读状态指令
R/W RS |
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
1 0 |
BUSY 0 ON/OFF REST 0 0 0 0 |
状态字是计算机了解HD61202及其兼容控制驱动器当前状态,或是HD61202及其兼容控制驱动器向计算机提供其内部状态的唯一的信息渠道。状态字为一字节,其中仅有3位有效位,它们是:
BUSY表示当前HD61202接口控制电路运行状态。BUSY=1表示HD61202正在处理计算机发来的指令或数据。此时接口电路被封锁,不能接受除读状态字以外的任何操作。BUSY=0表示HD61202接口电路已处于“准备好”状态,等待计算机的访问。
ON/OFF表示当前的显示状态。ON/OFF=1表示关显示状态;ON/OFF=0表示开显示状态。
RESET表示当前HD61202的工作状态,即反映RST端的电平状态。当RST为低电平状态时,HD61202处于复位工作状态,RESET=1;当RST为高电平状态时,HD61202为正常工作状态,RESET=0。
在指令设置和数据读写时要注意状态字中的BUSY标志。只有在BUSY=0时,计算机对HD61202的操作才能有效,因此计算机在每次对HD61202操作之前,都要读出状态字以判断BUSY是不为“0”。若不为“0”,则计算机需要等待,直至BUSY=0为止。
2. 显示开关指令
R/W RS |
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 |
0 0 1 1 1 1 1 1/0 |
该指令设置显示开/关触发器的状态,由此控制显示数据锁存器的工作方式,从而控制显示屏上的显示状态。D位为显示开/关控制位。当D=1为开显示设置,显示数据锁存器正常工作,显示屏上呈现所需的显示效果。此时在状态字中ON/OFF=0;当D=0为关显示设置,显示数据锁存器被置零,显示屏呈不显示状态,但显示存储器并没有被破坏,在状态字中ON/OFF=1。
3. 显示起始行设置指令
R/W RS |
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 |
1 1 显示起始行( 0-63 ) |
该指令设置了显示起始行寄存器的内容。HD61202有64行显示的管理能力,该指令中L5~L0为显示起始行的地址,取值在0~3FH( 1~64行)范围内,它规定了显示屏上最顶一行所对应的显示存储器的行地址。如果定时间隔地,等间距地修改( 如加1或减1)显示起始行寄存器的内容,则显示屏将呈现显示内容向上或向下平滑滚动的显示效果。
4. 页面地址设置指令
R/W RS |
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 |
1 0 1 1 1 页号( 0~7 ) |
该指令设置了页面地址——X地址寄存器的内容。HD61202将显示存储器分成8页,指令代码中P2-P0就是要确定当前所要选择的页面地址,取值范围为0-7H,代表第1-8页。该指令规定了以后的读/写操作将在哪一个页面上进行。
5. 列地址设置指令
R/W RS |
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 |
0 1 显示列地址( 0~63 ) |
该指令设置了Y地址计数器的内容,C5~C0=0~3FH( 1~64 )代表了某一页面上的某一个单元地址,随后的一次读或写数据将在这个单元上进行。Y地址计数器具有自动加1功能,在每上次读/写数据后它将自动加1,所以在连续进行读/写数据时,Y地址计数器不必每次都设置一次。
页面地址的设置和列地址的设置将显示存储器单元唯一的确定下来,为后来的显示数据的读/写作了地址的选通。
6. 写数据指令
R/W RS |
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 1 |
写 数 据 |
该操作将8位数据写入先前已确定的显示存储器的单元内。操作完成后列地址计数器自动加1。
7. 读数据指令
R/W RS |
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
1 1 |
读 显 示 数 据 |
该操作将HD61202接口部的输出寄存器内容读出,然后列地址计数器自动加一。必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。
3.4 液晶显示界面
本着简单明了的基本思想前面提到,结合液晶显示模块的相关知识,设计出如下界面:
图3-1 LCD界面显示
这次设计采用的液晶显示模块本是由北京精电公司所造的图形式的MGLS-12864芯片,其用一片KS0107B或兼容驱动器( HD61203 )作为行驱动器和三片KS0108B或兼容驱动器(HD61203) 作为列驱动器组成的。
液晶显示的第一行为“智能型充电器”,由左起第四列开始显示,这样正好左右平均分配。第二行左起顶格显示“电池”,表示对充电电池的选择,可进行“锂电、镍镉、镍氢、铅酸”四种电池的选取,第三行显示电池的节数,第四行显示状态,可以在“快充、涓充、充满、放电”四个选项间进行选取,第二行到第四行左起分别显示电压、电流和温度数值。由此可见,左边的两选项在充放电的过程中是不变的,而右边的三个参数在充电过程中随时发生变化。
3.5 系统程序流程图
为了方便程序的设计,使自己在设计过程中做到思路清晰,设计起来游刃有余。这里首先画出了程序流程图,后面根据次流程图具体设计程序,现具体分析如下:
(一)主程序流程图
这次设计课题的主要内容是在充电器的充电过程中,采集参数,进行电压、电流、温度的实时显示。其主流程图设计如下:若图片无法显示请联系QQ752018766
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>