.
3.2 系统程序设计
3.2.1 LCD 初始化控制端口模块设计
数据和控制端口初始化函数 portinit( ),主要对端口 C 控制寄存器和端口 D 控制寄存器进行配置。从而完成对数据端口 VD[15:0]和控制端口 GPC、GPD 初始化工作。初始化端口模块流程图如图 3-2 所示。
图3-3 端口初始化模块流程图
具体代码如下:
static void Lcd_Port_Init ( void ) {
rGPCUP = 0xffffffff ; // 禁止上拉电阻 rGPDUP = 0xffffffff ; // 禁止上拉电阻 rGPCCON = 0xaaaa02a8 ; // 初始化 VD[7:0] rGPDCON = 0xaaaaaaaa ; // 初始化 VD[15:8] }
3.2.2 LCD 初始化功能模块设计
LCD 要能正常工作,需根据其参数对其进行初始化。LCD 初始化功能模块 Lcd_Init( ),通过配置 LCDCON[5:1]5 个控制寄存器,完成模块初始化工作,主要包括以下 3 个部分:
1. 设定 VCLK 参数、显示模式为 LCD 面板、色彩模式为 16BPP、禁止 LCD
.
.
控制信号和视频输出;
2. 设定 VBPD、VFPD、HBPD、HFPD 参数值;
3. 设置扫描 LCD 时的帧缓冲器开始、结束地址,设定虚拟屏幕的偏移尺寸和结束初始化端口 C 控制寄存器初始化数据端口 VD[15:0]开始初始化端口 D控制寄存器第四章 LCD 全彩显示设计31帧中的视口宽度参数,禁止帧同步、FIFO 中断和临时调色板。初始化模块流程图如图 3-3 所示。
图3-4 初始化功能模块流程图
具体代码如下: void Lcd_Init(void) {
/*CLKVAL=7,16BPP,显示模式:TFT*/
rLCDCON1 = ( LCD_PIXCLOCK << 8 ) | ( 3 << 5 ) | ( 12 << 1 ) ; /*VBPD=20,VFPD=3,VSPW=2*/
rLCDCON2 = ( LCD_UPPER_MARGIN << 24 ) | ( ( LCD_HEIGHT – 1 ) << 14 ) | ( LCD_LOWER_MARGIN << 6 ) | ( LCD_VSYNC_LEN << 0 ) ; /*HBPD=4,HFPD=3*/
rLCDCON3 = ( LCD_RIGHT_MARGIN << 19 ) | ( ( LCD_WIDTH - 1 ) << 8 ) | ( LCD_LEFT_MARGIN << 0 ) ; /*HSPW=18*/ rLCDCON4=0x12 ;
.
.
四、系统调试
4.1 LCD汉字显示实验步骤
1.参照创建好的模板工程dispchar,新建一个工程dispchar,参照dispchar修改dispchar的工程设置,并添加LCD显示函数文件。 2.创建dispchar.c并加入到工程dispchar中。
3.编辑dispchar.c文件,添加Main函数,并在其中执行lcd_init操作。 4.编写一个hzk16显示函数void lcd_disp_hzk16(int x,int y,char *s,int colour),将字符串s以colour颜色显示到LCD的(x,y)处,所使用的汉字库在include\\hzk16.h中以hzk16数组表示。
5.在Main函数中,LCD初始化后,调用lcd_disp_hzk16显示一串汉字。 6.编译dispchar,成功后,下载并运行,观察结果
4.2显示字母和汉字
显示字母‘A’ 显示汉字‘你’
图4-1 显示字母和汉字
.
.
五、总结
在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。课程设计是我们专业课程知识综合应用的实践训练,也是我们迈向社会,从事职业工作前一个必不少的过程。通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。在这次设计过程中,体现出设计ARM驱动程序的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
在此感谢我们的课设老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪。同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持。
.
.
参考文献
【1】TDO35STEBI TFT LED specification[Z].Toppoly Optoelec·tronics Corp,2000.
【2】张蛤.32位嵌入式系统硬件设计与调试[M].北京:机械工业出版社,2005. 【3】孙天泽,袁文菊,张海峰.嵌入式设计及Linux驱动开发设计——基于ARM9处理器[M].北京:电子工业出版社,2005.
【4】Corbet J,Rubini A,et a1.Linux设备驱动程序(第二版)[M].魏永明,骆刚,等译.北京:中国电力出版社,2002.
【5】唐泽圣,周嘉玉,李新友.计算机图形学基础[M].北京:清华大学出版社,1995.
.
嵌入式课程设计报告 - 图文



