实验二LCD显示控制案例.doc
文本预览下载声明
南昌大学实验报告
学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 ■ 设计 □ 创新 实验日期: 实验成绩:
综合实验二: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((key0xFF00) == 0)
{ key = key0x00FF; }
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的空间,按照从高位到低
显示全部