嵌入式实训11文档格式.docx
- 文档编号:20067544
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:15
- 大小:134.30KB
嵌入式实训11文档格式.docx
《嵌入式实训11文档格式.docx》由会员分享,可在线阅读,更多相关《嵌入式实训11文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
如果电流通过液晶,所有的分子将会按照电流的方向进行排列,这样就会消除光线的扭转。
如图2-33所示,如果将一个偏振滤光器放置在液晶层的上表面,扭转的光线通过(如A),而没有发生扭转的光线(如B)将被阻碍。
因此可以通过电流的通断改变LCD中的液晶排列,使光线在加电时射出,而不加电时被阻断。
也有某些设计为了省电的需要,有电流时,光线不能通过,没有电流时,光线通过。
A加电时B不加电时
图2-33光线穿过与阻断示意图
LCD显示器的基本原理就是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的(维信科技,太原最好的IT培训)。
因此,LCD的驱动控制归于对每个液晶单元的通断电的控制,每个液晶单元都对应着一个电极,对其通电,便可使光线通过(也有刚好相反的,即不通电时光线通过,通电时光线不通过)。
2.电致发光
LCD的发光原理是通过控制加电与否来使光线通过或挡住,从而显示图形。
光源的提供方式有两种:
透射式和反射式。
笔记本电脑的LCD显示屏即为透射式,屏后面有一个光源,(维信科技,太原最好的IT培训)因此外界环境可以不需要光源。
而一般微控制器上使用的LCD为反射式,需要外界提供光源,靠反射光来工作。
电致发光(EL)是液晶屏提供光源的一种方式。
电致发光的特点是低功耗,与二极管发光比较而言体积小。
电致发光(EL)是将电能直接转换为光能的一种发光现象。
电致发光片是利用此原理经过加工制作而成的一种发光薄片,如图3-34所示。
其特点是:
超薄、高亮度、高效率、低功耗、低热量、可弯曲、抗冲击、长寿命、多种颜色选择等。
因此,电致发光片被广泛应用于各种领域。
图2-34电致发光片的基本结构
3.LCD的驱动控制
市面上出售的LCD有两种类型:
一种是带有驱动电路的LCD显示模块,这种LCD可以方便地与各种低档单片机进行接口,如8051系列单片机,但是由于硬件驱动电路的存在,体积比较大。
这种模式常常使用总线方式来驱动。
另一种是LCD显示屏,没有驱动电路,需要与驱动电路配合使用,如图2-35所示。
特点是体积小,但却需要另外的驱动芯片。
也可以使用带有LCD驱动能力的高档MCU驱动,如ARM系列的S3C44B0X。
图2-35不带驱动电路的LCD结构
(1) 总线驱动方式
一般带有驱动模块的LCD显示屏使用这种驱动方式,由于LCD已经带有驱动硬件电路,因此模块给出的是总线接口,(维信科技,太原最好的IT培训)便于与单片机的总线进行接口。
驱动模块具有八位数据总线,外加一些电源接口和控制信号。
而且自带显示缓存,只需要将要显示的内容送到显示缓存中就可以实现内容的显示。
由于只有八条数据线,因此常常通过引脚信号来实现地址与数据线复用,以达到把相应数据送到相应显示缓存的目的。
表2-41为一个典型的显示模块(HY-12864B)提供的总线接口。
表2-41典型带驱动液晶模块的总线接口
(2) 控制器扫描方式
S3C44B0X中具有内置的LCD控制器,它具有将显示缓存(在系统存储器中)中的LCD图象数据传输到外部LCD驱动电路的逻辑功能。
S3C44B0X中内置的LCD控制器可支持灰度LCD和彩色LCD。
在灰度LCD上,使用基于时间的抖动算法(time-basedditheringalgorithm)和FRC(FrameRateControl)方法,可以支持单色、4级灰度和16级灰度模式的灰度LCD。
在彩色LCD上,可以支持256级彩色(维信科技,太原最好的IT培训)。
对于不同尺寸的LCD,具有不同数量的垂直和水平象素、数据接口的数据宽度、接口时间及刷新率,而LCD控制器可以进行编程控制相应的寄存器值,以适应不同的LCD显示板。
内置的LCD控制器提供了下列外部接口信号:
VFRAME:
LCD控制器和LCD驱动器之间的帧同步信号。
它通知LCD屏新的一帧的显示,LCD控制器在一个完整帧的显示后发出VFRAME信号。
VLINE:
LCD控制器和LCD驱动器间的同步脉冲信号,LCD驱动器通过它来将水平移位寄存器中的内容显示到LCD屏上。
LCD控制器在一整行数据全部传输到LCD驱动器后发出VLINE信号(维信科技,太原最好的IT培训)。
VCLK:
此信号为LCD控制器和LCD驱动器之间的象素时钟信号,LCD控制器在VCLK的上升沿发送数据,LCD驱动器在VCLK的下降沿采样数据。
VM:
LCD驱动器所使用的交流信号。
LCD驱动器使用VM信号改变用于打开或关闭象素的行和列电压的极性。
VM信号可在每一帧触发,也可在数量可编程的一些VLINE信号后触发。
VD[3:
0]:
LCD象素数据输出端口。
VD[7:
4]:
图2-36LCD控制器逻辑框图
图2-36为S3C44B0X中内置的LCD控制器的逻辑框图,它用于传输显示数据并产生必要的控制信号,如VFRAME,VLINE,VCLK,和VM。
除了控制信号,还有显示数据的数据端口VD[7:
0]。
LCD控制器包含REGBANK,LCDCDMA,VIDPRCS,和TIMEGEN(维信科技,太原最好的IT培训)。
REGBANK具有18个可编程寄存器,用于配置LCD控制器。
LCDCDMA为专用DMA,它可以自动地将显示数据从帧内存中传送到LCD驱动器中。
通过专用DMA,可以实现在不需要CPU介入的情况下显示数据。
VIDPRCS从LCDCDMA接收数据,变换为合适的数据格式(比如4/8位单一扫描和4位双扫描显示模式)后通过VD[7:
0]发送到LCD驱动器。
TIMEGEN包含可编程的逻辑,以支持常见LCD驱动器所需要的不同的接口时间、速率要求。
TIMEGEN部分产生VFRAME,VLINE,VCLK,VM等信号。
(3)与ARM自带LCD驱动器有关的寄存器如表2-42所示,其中PCOND为端口D的引脚配置寄存器,PDATD为端口D的数据寄存器,PUPD为端口D的上拉禁止寄存器。
表2-43、表2-44、表2-45分别为PCOND、PDATD、PUPD寄存器的位描述。
表2-42端口D寄存器
寄存器
地址
R/W
描述
复位值
PCOND
0x01D2001C
配置端口D的管脚
0x0000
PDATD
0x01D20020
端口D的数据寄存器
Undef.
PUPD
0x01D20024
端口D的上拉寄存器
0x0
表2-43PCOND寄存器的位描述
位
PD0
[1:
0]
00=输入10=VD0
01=输出11=保留
PD1
[3:
2]
00=输入10=VD1
PD2
[5:
4]
00=输入10=VD2
PD3
[7:
6]
00=输入10=VD3
PD4
[9:
8]
00=输入10=VCLK
PD5
[11:
10]
00=输入10=VLINE
PD6
[13:
12]
00=输入10=VM
PD7
[15:
14]
00=输入10=VFRAME
表2-44PDATD寄存器的位描述
PD[7:
当端口被设置为一个输入端口,相应的位成为管脚状态。
当端口被设置为一个输出端口,管脚状态与相应的位一样。
当端口被设置成一个功能管脚,将会读到一个不确定的值。
表2-45PUPD寄存器的位描述
0:
附在相应端口管脚的上拉电阻使能
1:
上拉电阻禁用。
LCD驱动控制端口与ARM的端口4是共用的,因此,要设置相应的寄存器,将其定义为功能端口,即LCD驱动控制端口(维信科技,太原最好的IT培训)。
表2-46为LCD控制寄存器LCDCON1的设置值,表2-47为LCDCON1的位描述。
表2-46LCDCON1的设置
LCDCON1
0x01F00000
R/W
LCD控制1寄存器
0x00000000
表2-47LCDCON1的位描述
初始化状态
LINECNT(只读)
[31:
22]
这些位提供行计数器状态。
从LINEVAL降值到0
0000000000
CLKVAL
[21:
这些位决定了VCLK的速度频率。
CLKVAL[9:
0].VCLK=MCLK/(CLKVALx2)(CLKVAL³
2)
WLH
这些位通过计算系统时钟的数量来决定VLINE脉冲的高电平宽度。
00=4个时钟,01=8个时钟,10=12个时钟,11=16个时钟
00
WDLY
这些位通过计算系统时钟的数量来决定VLINE和VCLK之间的延时。
MMODE
[7]
该位决定了VM的翻转频率。
.
0=每帧,1=MVAL定义的频率。
DISMODE
[6:
5]
由这些位选择显示模式。
00=4字节双扫描显示模式
01=4字节单扫描显示模式
10=8字节单扫描模式
11=不使用
INVCLK
[4]
该位控制VCLK有效边沿的极性。
0=显示数据从VCLK的下降沿得到。
1=显示数据从VCLK的上升沿得到
INVLINE
[3]
该位说明了行脉冲的极性。
0=标准1=反相
INVFRAME
[2]
该位说明了帧脉冲极性。
0=标准1=反相
INVVD
[1]
该位说明了显示数据(VD[7:
0])极性
0=标准1=VD[7:
0]输出反相
ENVID
[0]
LCD显示输出和逻辑使能/禁止。
0=显示输出和逻辑禁止
1=显示输出和逻辑使能
显示方式设为8位单扫方式,VLINE和VCLK之间的时滞设为16倍系统时钟,VLINE高电平为16倍系统时钟,CLKVAL设为20。
LCDCON2寄存器的设置和位描述如表2-48和表2-49所示。
表2-48LCDCON2的设置
寄存器
地址
描述
LCDCON2
0x01F00004
LCD控制2寄存器
0x00000000
表2-49LCDCON2的设置
LCDCON2
LINEBLANK
21]
这些位说明了在一个水平线持续时间内的空白时间,它们能够对VLINE的速度进行微调。
LINEBLANK的单位是MCLK。
如果LINEBLANK的值是10,10个系统时钟内,空白时间插入到VCLK中。
0x000
HOZVAL
[20:
10]
这些位决定了LCD面板的水平范围。
HOZVAL要先被确定以满足第一行的字节数是162n个字节的条件。
如果在单音色模式下LCD的x范围大小是120dot象素,x=120是不支持的,因为一行由1615个字节组成。
改为在单音色模式下,x=128是支持的,因为一行由16个字节组成。
多出的8dot象素将会被LCD面板驱动丢掉。
LINEVAL
这些位决定了LCD屏幕的水平范围
LCD的分辨率为320×
240,根据下面的公式可以计算出HOZVAL和LINEVAL的值,LINEBLANK设为15(维信科技,太原最好的IT培训)。
HOZVAL=(水平显示范围/有效显示数据行数量)-1
在彩色模式下:
水平显示范围=3*水平像素数量
LINEVAL=(垂直显示范围)-1;
如果是在单扫描显示形式下。
LCDSADDR1寄存器的设置和位描述如表2-50和表2-51所示。
表2-50LCDSADDR1寄存器的设置
LCDSADDR1
0x01F00008
帧缓冲开始地址1寄存器
0x000000
表2-51LCDSADDR1寄存器的位描述
MODESEL
[28:
27]
这些位选择黑白,灰度,或彩色模式。
00=黑白模式01=4级灰度模式
10=16级灰度模式11=彩色模式
LCDBANK
[26:
21]
这些位说明在系统存储器中,显示缓冲区的BANK位置A[27:
22]。
LCD帧缓冲要按4MB对齐,因为当移动视频端口时,该值不会改变。
所以,使用malloc函数时要注意。
0x00
LCDBASEU
这些位说明高端地址计数器的起始地址的A[21:
1],它是用于双扫描LCD的高端帧存储器或者单扫描LCD的帧存储器。
设置为彩色模式,LCDBANK=0xc000000,LCDBASEU=0x0。
LCDSADDR2寄存器的设置和位描述如表2-52和表2-53所示(维信科技,太原最好的IT培训)。
表2-52LCDSADDR2寄存器的设置
LCDSADDR2
0x01F0000C
帧缓冲起始地址2寄存器
表2-53LCDSADDR2寄存器的位描述
BSWP
[29]
字节交换控制位
1:
交换使能0:
交换禁止
DMALCD通过4字猝发访问得到帧存储数据。
在小端模式下,帧存储数据在BSWP=0时按4n+3th,4n+2th,4n+1th,4n-thdata的序列显示。
如果BSWP=1,顺序是4n-th,4n+1th,4n+2th,4n+3th。
如果CPU是一个小端模式,帧缓冲只能用字节访问模式访问,因为BSEP是1,在小端模式下按字节访问的数据可以正确的显示。
其它情况下,BSWP必须是0。
MVAL
如果MMODE位设为逻辑‘1’,这些位定义了VM信号的翻转频率。
LCDBASEL
这些位说明了低端地址计数器的起始地址的A[21:
1],它用于双扫描LCD的低帧存储器。
LCDBASEL=LCDBASEU+(PAGEWIDTH+OFFSIZE)x(LINEVAL+1)
LCDSADDR3寄存器的设置和位描述如表2-54和表2-55所示。
表2-54LCDSADDR3寄存器的设置
LCDSADDR3
0x01F00010
虚拟屏幕地址设置
表2-55LCDSADDR3寄存器的位描述
OFFSIZE
[19:
9]
虚拟屏幕偏移尺寸(半字数量)。
这个值定义了前面一个LCD线上最后显示的半字的地址,与在下一个LCD线上最先显示的半字地址的差。
PAGEWIDTH
[8:
虚拟屏幕页宽(半字数量)。
这个值定义了帧内可视窗口的宽度。
OFFSIZE=0,PAGEWIDTH=320/2。
六、实验步骤
1.新建工程,将“Exp7LCD驱动控制实验”中的文件添加到工程中。
2.定义有关常量与宏(lcd320.h,lcd320.c)
#defineLCDWIDTH320
#defineLCDHEIGHT240
U32*pLCDBuffer16=(U32*)0xc000000;
//一级缓存指针
U32LCDBuffer[LCDHEIGHT][LCDWIDTH];
//二级缓存
将其定义为32位是为了与RGB颜色兼容。
3.编写LCD初始化函数(lcd320.c)。
设置各功能寄存器,清空显示缓存区。
4.编写LCD刷新函数(lcd320.c)。
此函数主要是将二级缓存LCDBuffer的数据由32位彩色图形信息转换成8位256色的图形信息(维信科技,太原最好的IT培训),然后放到pLCDBuffer16指向的一级缓存。
转换公式:
pixcolor=(pbuf[0]&
0xe0)|((pbuf[1]>
>
3)&
0x1c)|(pbuf[2]>
6)。
其中,pbuf[0]、pbuf[1]、pbuf[2]是一个象素的32位彩色数据的前24位,分别代表R、G、B。
编写主函数(main.c)
在LCD上显示256色图形的关键是填充二级显示缓冲,将显示象素的24位颜色信息写入LCDBuffer。
将RGB三种基本颜色按一定比例混合即可构成更复杂的颜色,每个象素的三种基本颜色分别占一个字节,可以方便的在程序里改写各基本颜色的数值,从而改变该象素的混合颜色。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 11