- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验5 LCD显示实验
实验目的
熟悉UPTECH 2410-S实验箱的LCD外设。
掌握基于framebuffer的图形点阵LCD编程的方法。
二、原理说明
LCD编程参考lcd目录下的程序,重点掌握framebuffer的编程方法。
三、 实验设备
PC机。
UPTECH 2410-S实验箱。
四.实验内容
1.认真阅读并理解LCD显示示例程序,示例程序见附录。
2.读出三个电位器的电压信号,在LCD上以数字的形式实时显示出来。
3.将采集的电压数据与罐状图关联起来,实现数据的图形化显示,如下图所示:
五.实验报告要求
1.画出程序的流程图。
2.附上源代码,并作适当的注释。
3.把程序执行界面抓图,LCD显示拍照,拷贝到实验报告中。
4.实验报告以电子文档的方式在多模式教学网提交。
附:LCD显示示例程序
#include stdio.h
#include fcntl.h
#include sys/mman.h
#include linux/fb.h
#include font.h
#define FBDEV /dev/fb0
#define FBSIZE (width*height*bpp/8)
#define RED 0xf800
#define GREEN 0x07f0
#define BLUE 0x001f
#define WHITE 0xffff
int width=0,height=0,bpp=0;
/*
函数名:draw_background
功能:改变整个LCD的颜色
参数:unsigned char* mem - 指向LCD映射内存的指针
int color:希望改成的颜色,16位数字,是RGB三种颜色混合在一起的数字,RGB分别占5、6、5个bits,共16bits
*/
static void draw_background(unsigned char* mem, int color)
{
int i, j;
unsigned short *p=(unsigned short *)mem;
color = 0xffff;
for(i=0;iwidth*height;i++, p++)
*p=color;
}
/*
draw_rect
功能:画一个矩形,但不填充
参数:unsigned char* mem - 指向LCD映射内存的指针
int color:希望改成的颜色,16位数字,是RGB三种颜色混合在一起的数字,RGB分别占5、6、5个bits,共16bits
short x1,y1,x2,y2:左上角和右下角坐标
*/
static void draw_rect(unsigned char* mem, int color, short x1, short y1, short x2, short y2)
{
int i, j;
unsigned short *p=(unsigned short *)mem;
short m,left,right,top,bottom;
left = x1;
right = x2;
top = y1;
bottom = y2;
for(m=left;mright;m++)
{
*(p + top*width + m) = color;
*(p + bottom*width + m) = color;
}
for(m=top;mbottom;m++)
{
*(p + m*width + left) = color;
*(p + m*width + right) = color;
}
}
/*
draw_char
功能:显示一个字符
参数:unsigned char* mem - 指向LCD映射内存的指针
int color:希望改成的颜色,16位数字,是RGB三种颜色混合在一起的数字,RGB分别占5、6、5个bits,共16bits
short x,y:字符的坐标
char ch:要显示的数字,0~9,数字10代表小数点
*/
static void draw_char(unsigned char *mem, int color, short x, short y, char ch)
{
int i, j;
unsigned short
文档评论(0)