实验报告
学生姓名: 翁 学 号:专业班级: 中兴131 实验类型:□ 验证 ■综合 □ 设计□ 创新 实验日期:实验成绩:
一、实验项目名称:
LCD显示控制
二、 实验目的:
掌握LCD TFT屏驱动初始化程序,并能够控制LCD显示图片、字符
三、实验基本原理及设计思路
通过设置GPIO口及液晶控制器等相关寄存器来控制液晶显示屏来实现液晶屏的显示等功能,其中主要包括指定位置的LCD显示和字符、汉字显示。 (一) LED显示原理
主要寄存器有LCDCON1-LCDCON5、LCDSADDR1-LCDSADDR3。具体可以查看user manual。
LED屏分辨率为0*480,查找对应的时序表
可以根据图上参数对应设置寄存器,可以直接使用别人写好的库lcddrive,查看一下参数设置是否正确即可使用。 (二) 图片显示原理
通过软件(我使用的是Image2Lcd),将图片转换为C语言数组数据,每个数据对应标准16色的一种,再导入到程序中,通过程序将每个像素点的颜色显示出来,从而构成一幅图片。
值得一提的是这个RGB是设置为16色,即使用八位二进制数表示颜色数据,使用工具将图片转换为C语言数组的话应该注意生成的数组不应超过8位。 (三) 汉字显示原理
汉字的显示其实也是图片显示的一种,只是要把通过取字模软件或者字库将汉字转换为C语言数组,每行扫描,根据数组按位右移的结果来判断是否给当前像素点赋颜色(此时只有黑白),行列都扫描完毕后即可构成一个完整的汉字。 部分代码:
DispChinese(20,84,56); //翁晓冬 DispChinese(36,84,57); // DispChinese(52,84,58); //
DispStr(75,84,\"6103113130\"); void DispMyPic(uint16 x,uint16 y) {#if DISP_BGPIC!=0
extern uint16 gImage_kobe[]; // 声明外部图片资源 GUI_DispPic(x,y, 200,150, gImage_kobe); #endif}
__align(4) volatile uint16 FrameBuffer[480][0];
// PNRMODE=3,显示模式--TFT
// VBPD=32,垂直不显示周期为33行(前) // LINEVAL=479,垂直行数为480行 // VFPD=9,垂直不显示周期为10行(后) // VSPW=0,帧信号(Vsync)宽度为1行
rLCDCON2 = (32<<24)|(479<<14)|(9<<6)|(0); // HBPD=47,水平不显示周期为48个VCLK(前) // HOZVAL=639,水平列数为0列
// HFPD=15,水平不显示周期为16个VCLK(后) rLCDCON3 = (47<<19)|(639<<8)|(15); // HSPW=95,行信号(Hsync)宽度为96个VCLK rLCDCON4 = 95;
四、主要仪器设备及耗材
MAGIC2410开发平台,H-JTAG,PC机各一台
五、实验现象
加载程序到SDRAM全速运行: LCD屏上打印个人信息:
按3键控制LCD在指定坐标显示图片:
六、实验总结
EDA课程时做过VGA的显示,所以对LCD图像的显示原理有所了解。要弄明白行列扫描的时序,以及该LCD屏是三基色还是十六基色。通过例程可以知道他这里还引入了一个FrameBuffer的概念,这是要显示图像的像素首地址位置,通过改变指向该地址的指针,可以在显示屏上移动要显示的图像,已经控制要清屏的区域,这对后边示波器屏幕刷新起重要作用。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务