欢迎来到天天文库
浏览记录
ID:49053311
大小:57.80 KB
页数:7页
时间:2020-02-27
《实验七LCD控制实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验七LCD的驱动控制实验08通信(2)班王文龙E08680222一、实验目的1.了解LCD基本概念与原理。2.理解LCD的驱动控制。3.熟悉用总线方式驱动LCD模块。4.熟悉用ARM内置的LCD控制器驱动LCD。二、实验内容学习LCD显示器的基本原理,理解其驱动控制方法。掌握两种LCD驱动方式的基本原理和方法。并用编程实现:1.用总线方式直接驱动带有驱动模块的LCD。2.用ARM内置的LCD控制器来驱动LCD。三、实验设备及工具硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上。软件:PC机操作系统win98、Win2
2、000或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序.四、实验步骤1.新建工程,将“Exp7LCD驱动控制实验”中的文件添加到工程中。2.定义有关常量与宏(lcd320.h,lcd320.c)#defineLCDWIDTH320#defineLCDHEIGHT240U32*pLCDBuffer16=(U32*)0xc000000;//一级缓存指针U32LCDBuffer[LCDHEIGHT][LCDWIDTH];//二级缓存将其定义为32位是为了与RGB颜色兼容。lcd320.h文件中的内容:#include"def.
3、h"#defineLCDDisplayPin0x0010//GPB4#defineLCDWIDTH320#defineLCDHEIGHT240voidLCD_Refresh(void);voidLCD_Init(void);voidLCDDisplayOpen(U8isOpen);lcd320.c中的内容:#include#include#include"def.h"#include"44b.h"#include"LCD320.h"#defineLCDCON1_ENVID(1)#defineLCDCON1_INVVD(1<<1)
4、#defineLCDCON1_INVFRAME(1<<2)#defineLCDCON1_INVLINE(1<<3)#defineLCDCON1_INVCLK(1<<4)#defineLCDCON1_MMODE(1<<7)#defineL248(8)#defineCLKVAL(20)//60Mhz,fr=100Hz(CLKVAL=38.6)//#defineM5D(n)((n)&0x1fffff)U32*pLCDBuffer16=(U32*)0xc000000;U32LCDBuffer[LCDHEIGHT][LCDWIDTH];voidLCD_Init(){inti;
5、U32LCDBASEU,LCDBASEL,LCDBANK;LCDDisplayOpen(FALSE);rLCDCON1=(0);//disablerLCDCON2=(239)
6、(119<<10)
7、(15<<21);//320x240LCDLINEBLANK=15(withoutanycalculation)LCDBANK=0xc000000>>22;//((U32)LCDBuffer16)>>22;LCDBASEU=0x0;//((U32)LCDBuffer16)&0x3fffff;LCDBASEL=LCDBASEU+(160)*240;rLCDSADDR1=(0x
8、3<<27)
9、(LCDBANK<<21)
10、LCDBASEU;//
11、((((U32)LCDBuffer16)>>1)&0x7ffffff);//color_mode,LCDBANK,LCDBASEUrLCDSADDR2=(0<<29)
12、(0<<21)
13、LCDBASEL;rLCDSADDR3=(320/2)
14、(0<<9);//Novirtualscreen.//rREDLUT=0xfca86420;//rGREENLUT=0xfca86420;//rBLUELUT=0xfffff840;rREDLUT=0xfca86420;rGREENLUT=0xfca86420;rB
15、LUELUT=0xfffffa50;rLCDCON1=LCDCON1_ENVID
16、0<<1
17、0<<2
18、0<<3
19、(2<<5)
20、1<<7
21、(0x3<<8)
22、(0x3<<10)
23、(CLKVAL<<12);//
24、LCDCON1_MMODE;//enable,8B_SNGL_SCAN,WDLY=16clk,WLH=16clk,CLKVAL=?for(i=0;i<80*240;i++)*(pLCDBuffer16+i)=0x0;Delay(5000);LCDDisplayOpen(TRUE);}voidLCDDisplayOpen(U8isOpen){if(isOpen)
此文档下载收益归作者所有