实验报告二LCD显示控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌大学实验报告
学生姓名:学号:专业班级:
实验类型:□验证□综合■设计□创新实验日期:实验成绩:
综合实验二:LCD显示控制
一、实验目的
1. 进一步了解实验GPIO口的初始化设置,并熟悉实验箱各个模块的功能
2. 掌握LCD TFT屏驱动初始化程序,并能够控制LCD显示图片,汉字字符等
3. 掌握ZLG7290键盘读取及使用方法。
二、实验基本原理
通过设置GPIO口及液晶控制器等相关寄存器来控制液晶显示屏来实现液晶屏的显示等功能,其中主要包括LCD图片显示、颜色测试、矩形填充、汉字显示和ZLG7290键盘等模块。实验主要将所有功能模块按一定的顺序调用,并通过超级终端和液晶同步来显示调试的信息即测试功能显示。
在综合实验一的基础上,参考并研究实验箱配带的LCD显示源代码及相关资料,作适当修改,实现下列功能:
1、首先使用以下语句调用LCD汉字显示程序在LCD液晶屏上显示主屏幕,即启动程序。
DispDesktop();
UART_SendStr("THE CURRENT TIME FOLLOWS:\n");
Rtc_uart();
GUI_RectangleFill(120, 80,520,380,LGRAY );
LCD_PutStringGB24_kt(250,120, "系统当前时间",RED ,LGRAY);
Rtc_lcd(200,200);
LCD_PutStringGB16_st(250,300, "按任意键继续!",WHITE, BLACK);
UART_SendStr("PLEASE INPUT ANYKEY TO CONTINUE! \n");
2、使用实验箱上小键盘输入一个(x,y)坐标,以此坐标作为图片的顶点位置,显示个人图片。
使用以下语句发送坐标数据:
LCD_PutStringGB16_st(250,150, "请进入主菜单:", WHITE,BLUE);
UART_SendStr("flag1 \n");
key=0;
while(key==0)
{DelayNS(1);
key = ZLG7290_GetKey();
if((key&0xFF00) == 0)
{ key = key&0x00FF; }
DelayNS(10); }
m=key;
UART_SendStr("flag2 \n");
3、在超级终端上显示年月日及当前时间。
根据RTC实验的实验原理设置当前时间,并通过超级终端的提示输入当前时间,从而在液晶屏上同步显示时间。先初始化串口和RTC,然后接收输入字符并按照时:分:秒星期月/日/年显示,并使用下面几条语句每隔一秒读取一次时间并显示在LCD 液晶屏上:
RTC_Read(0); // 读时间
DispRTC(); // 输出时间显示
LCD_DispStringChar(140,350,disp_buf,BLACK,WHITE)
4、LCD液晶显示屏汉字显示原理
对于LCD汉字显示,先用LCD汉字取模软件将汉字转换成C语言数据表,再通过液晶屏显示程序将汉字显示到LCD液晶屏上,例如:要在LCD上显示宋体体汉字“实验二”,可以使用语句LCD_PutStringGB24_ (90,10, "实验二",BLACK,WHITE);调用汉字显示程序,其中,GB24_st表示字体为24点宋体,90和10分别为汉字显示的顶点的X 坐标和Y坐标,BLACK和WHITE分别为字体颜色和背景颜色。汉字显示程序如下所示:
void LCD_PutStringGB24_st(unsigned short x, unsigned short y, unsigned char *s, uint16 fColor, uint16 bColor)
{unsigned char l=0;
while(*s)
{PutGB24_kt(x+l*8,y,(signed char*)s,fColor,bColor);
s+=2;l+=3; }}
LCD汉字取模的原理是:每个汉字在字库中是以点阵字模形式存储的,如采用24×24点阵形式,每个点用一个二进制bit位表示,bit=1的点,当显示时,就可以在LCD 屏显示一个亮点,bit=0的点,则在LCD屏不显示,对于某个字的24×24点阵汉字取模,规则如下:把每一行分成三个8bit的空间,按照从高位到低位的规律,当有亮点时,该位值为1,没有亮点的位置为0。
5、随机矩形程序设计
随机矩形模块最重要的设计是要达到随机显示,即矩形的起点坐标(矩形左上角)
和终点坐标(矩形右下脚)需要随机化,因此采用随机取值函数random(uint16 seed),直接调用该函数取两个点即可,然后调用函数GUI_RectangleFill(uint32 x0, uint32 y0,uint32 x1, uint32 y1, TCOLOR color)。为了实现酷炫矩形的效果,矩形的填充颜色也采用随机颜色。
其中,随机取值语句为:x0 = random(640);y0 = random(480);color = random(15)+1;括号内的位取值的最大值范围,颜色随机选取时加 1 的目的为不显示黑色。填充矩形函数实现原理主要是以x0 为起点,x1 为终点,画一行水平线,然后y0自加 1 行依次画,直到y0=y1 时最终给人的视觉效果就是一个矩形。
6、图片显示模块
调用函数DispMyPic(uint16 x,uint16 y)实现指定坐标显示图片,其中x 和y 坐标值是调用键盘检测函数获取的,图片显示调用GUI_DispPic(x,y, 150,200, gImage_hua);,150,200 两个数值表示图片的宽度和高度,而对图片进行取模得到的数组即存放在gImage_yinhun 即可实现图片数据的调用。
7、程序返回
本实验中通过按键进行选择相应的功能进行测试,同时在进入一个功能时能再次退出到主页面进行重新的功能选择,通过以下程序实现:
llcd_disp_hz16(20,400, "按'C'键返回",WHITE, BLACK);
llcd_disp_hz16(20,380, "按'F'键继续",WHITE, BLACK);
UART_SendStr("按'C'键继续\n");
UART_SendStr("按'F'键返回\n");
三、主要仪器设备及耗材
1、硬件:PC机一台 MagicARM2410教学实验开发平台一套
2、软件:Windows98/XP/2000系统,ADS1.2集成开发环境,超级终端(Windows 系统自带)
四、实验步骤
1、打开图片转换软件Img2Lcd.exe,转换图片。如下图所示:
2、在下载的汉字取模软件所带的记事本“ee”文件中输入所需要转换的文字。打开LCD 汉字取模软件LcmZimo.exe,在“ASC/汉字选择”中选择“汉字”,然后在“字库选择”中选择“宋体24点阵”字体,点击“确认参数”。然后打开“ee”文件,再保存即可获得所需的.h文件。