嵌入式实验一人机交互接口显示实验.docx

上传人:b****4 文档编号:12160870 上传时间:2023-04-17 格式:DOCX 页数:24 大小:26KB
下载 相关 举报
嵌入式实验一人机交互接口显示实验.docx_第1页
第1页 / 共24页
嵌入式实验一人机交互接口显示实验.docx_第2页
第2页 / 共24页
嵌入式实验一人机交互接口显示实验.docx_第3页
第3页 / 共24页
嵌入式实验一人机交互接口显示实验.docx_第4页
第4页 / 共24页
嵌入式实验一人机交互接口显示实验.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

嵌入式实验一人机交互接口显示实验.docx

《嵌入式实验一人机交互接口显示实验.docx》由会员分享,可在线阅读,更多相关《嵌入式实验一人机交互接口显示实验.docx(24页珍藏版)》请在冰豆网上搜索。

嵌入式实验一人机交互接口显示实验.docx

嵌入式实验一人机交互接口显示实验

实验报告

 

课程名称嵌入式系统设计

实验仪器清华同方辰源嵌入式系统实验箱

实验名称实验一:

人机交互接口-显示实验

 

系别计算机学院

专业计算机科学与技术

班级/学号

学生姓名

实验日期

成绩

指导教师

 

实验一:

人机交互接口-显示实验

1、实验问题回答

(1)介绍以下四个函数的作用、参数涵义及使用方法。

RIT128x96x4StringDraw

RIT128x96x4ImageDraw

RIT128x96x4Clear

RIT128x96x4Init

答:

函数名称

作用

参数含义

使用方法

RIT128x96x4StringDraw

显示一个字符串在OLED显示屏上。

pcStr:

需要显示的字符串

ulX:

显示字符串的横坐标

ulY:

显示字符串的纵坐标

ucLevel:

灰度级

直接调用,参数pcStr为所需显示的字符串。

RIT128x96x4ImageDraw

显示一个位图图形在OLED显示屏上。

pucImage:

所需显示图像的数据

ulX:

显示图像的横坐标

ulY:

显示图像的纵坐标

ulWidth:

明确规定图像所需列数

ulHeight;明确规定图像所需行数

在buf里为所需显示图形赋值

以行为单位显示每个buf里的内容来得到所需图像。

RIT128x96x4Clear

清除OLED屏上的内容。

无参

直接调用。

RIT128x96x4Init

初始化OLED显示

ulFrequency:

指定使用SSI的时钟频率。

直接调用

(2)实验平台OLED显示屏的最大宽度和高度,超出范围会怎么样

答:

最大宽度128,最大高度96,超出范围的部分会无法显示。

(3)比较KeiluVision4上开发嵌入式C程序与VisualC++中开发C程序的异同。

答:

同:

都是生成CPU可执行的二进制文件。

异:

VC生成的程序可在PC机上执行,而Keil上的程序能在pc机上编译但不能执行。

VC一般不考虑内存、字长和ROM的大小等因素,而keil则需要考虑。

(4)描述一下你的项目从开始创建到下载的整个流程

答:

1、新建一个project

2、选择CPU,LuminaryLM3S8962,新建一个Group,加载库文件DriverLib.lib。

3、项目相关配置项修改,修改Target选项单,UserMircoLIB前勾选,修改Output选项单,CreateHEXFile前勾选,修改Debug选项单,选择右侧上栏的Use,选择ULINKCortexDebugger。

加载c程序开发必要的程序,rit128x96x4.h,rit128x96x4.c,startup.s。

4、创建主函数,编写主函数,并调试错误

5、编译、连接,生成可执行程序文件

6、硬件连接

7、联调

(5)每个像素是怎么表示的?

答:

0x00表示最暗,0xff表示最亮。

(6)画线时,为什么要定义数组?

答:

要用数组表示每一行像素的亮暗。

(7)如何使显示的字符变亮?

变暗?

答:

通过改变字符显示函数的最后一个参数灰度级来改变字符的亮度值。

(8)如何使显示的图形变亮?

变暗?

答:

通过改变数组buf的值来使图形变亮变暗,0最暗,f最亮。

(9)如何使显示的图形变宽?

变窄?

变高?

变矮?

答:

改变定义的数组buf中元素的个数同时改变图形显示函数的宽度值来使图形变宽变窄。

改变数组的个数或者改变纵坐标间的距离来使图形变高变矮。

(10)汉字如何显示?

答:

通过图形进行汉字的拼接。

实验问题补充:

(1)本例中,为什么每个buf要设置2*5=20个元素?

答:

因为5*7的比例比较美观且显示的比较清晰。

(2)为什么要画七行线显示字符?

答:

5*7的比例显示字符比较美观。

(3)什么时候赋值为0xff,什么时候赋值为0x00?

答:

0xff表示最亮,0x00表示最暗。

需要显示出来的部分赋值0xff,不需要显示的部分赋值0x00.

(4)RIT128x96x4ImageDraw(buf2,80,60,20,1);中第四个参数为什么是20?

答:

第四个参数表示图形的宽度,因为buf里有20个像素点,所以是20。

2、实验目的和效果

实验目的:

(1)初步学习、理解、掌握OLED字符显示方法

(2)初步学习、理解、掌握OLED图形显示方法

实验截图:

3、实验内容和步骤

实验思路:

首先对OLED进行初始化和清屏操作。

输出学号、日期、姓名拼音等可直接调用RIT128x96x4StringDraw

进行输出,需计算好坐标。

输出字符图形汉字等需要事先设计好,然后在buf里设置好每行亮暗的变化,然后使用RIT128x96x4ImageDraw一行一行的画出图形。

输出最小字符需要缩小buf中元素的个数(六个元素比较合适),RIT128x96x4ImageDraw中纵坐标之间的距离也减小为一。

实验步骤:

1、新建一个project

2、选择CPU,LuminaryLM3S8962,新建一个Group,加载库文件DriverLib.lib。

3、项目相关配置项修改,修改Target选项单,UserMircoLIB前勾选,修改Output选项单,CreateHEXFile前勾选,修改Debug选项单,选择右侧上栏的Use,选择ULINKCortexDebugger。

加载c程序开发必要的程序,rit128x96x4.h,rit128x96x4.c,startup.s。

4、创建主函数,编写主函数,并调试错误

5、编译、连接,生成可执行程序文件

6、硬件连接

7、联调

实验代码:

#include

#include

#include"rit128x96x4.h"

unsignedcharbuf0[]=

{

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

};

unsignedcharbuf1[]=

{

0xff,0xff,

0xff

};

unsignedcharbuf2[]=

{

0xff,0x00,

0x00

};

unsignedcharbuf3[]=

{

0xff,0x00,

0x00

};

unsignedcharbuf4[]=

{

0xff,0xff,

0x00

};

unsignedcharbuf5[]=

{

0xff,0x00,

0x00

};unsignedcharbuf6[]=

{

0xff,0x00,

0x00

};

unsignedcharbuf7[]=

{

0xff,0x00,

0x00

};

unsignedcharbuf8[]=//D?

D?

{

0x00,0x00,

0xff,0xff,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0xff,0xff,

0x00,0x00

};

unsignedcharbuf9[]=

{

0xff,0xff,

0xff,0xff,

0xff,0xff,

0x00,0x00,

0xff,0xff,

0xff,0xff,

0xff,0xff

};

unsignedcharbuf10[]=

{

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff

};

unsignedcharbuf11[]=

{

0x00,0x00,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0x00,0x00

};

unsignedcharbuf12[]=

{

0x00,0x00,

0x00,0x00,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00

};

unsignedcharbuf13[]=

{

0x00,0x00,

0x00,0x00,

0x00,0x00,

0xff,0xff,

0x00,0x00,

0x00,0x00,

0x00,0x00

};

unsignedcharbuf14[]=//D?

?

?

{

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00

};

unsignedcharbuf15[]=

{

0x00,0x00,

0x00,0x00,

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00,

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00

};

unsignedcharbuf16[]=

{

0x00,0x00,

0x00,0x00,

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00,

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00

};

unsignedcharbuf17[]=

{

0x00,0x00,

0x00,0x00,

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00,

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00

};

unsignedcharbuf18[]=

{

0x00,0x00,

0x00,0x00,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff

};

unsignedcharbuf19[]=

{

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0xff,0xff,

0xff,0xff

};

unsignedcharbuf20[]=

{

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff

};

unsignedcharbuf21[]=

{

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff

};

unsignedcharbuf22[]=//êú?

?

{

0xff,0xff,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

};

unsignedcharbuf23[]=

{

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff

};

unsignedcharbuf24[]=

{

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00

};

unsignedcharbuf25[]=

{

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00

};

unsignedcharbuf26[]=

{

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00

};

unsignedcharbuf27[]=

{

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00

};

unsignedcharbuf28[]=

{

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00

};

unsignedcharbuf29[]=

{

0xff,0xff,

0xff,0xff,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00,

0x00,0x00

};

unsignedcharbuf30[]=

{

0xff,

0x00,0xff

 

};

unsignedcharbuf31[]=

{

0xff,

0x00,0xff

 

};

unsignedcharbuf32[]=

{

0xff,

0x00,0xff

 

};

unsignedcharbuf33[]=

{

0xff,

0xff,0xff

 

};

unsignedcharbuf34[]=

{

0xff,

0x00,0xff

};

unsignedcharbuf35[]=

{

0xff,

0x00,0xff

 

};

unsignedcharbuf36[]=

{

0xff,

0x00,0xff

 

};

unsignedcharl1[]={

0x0f,0xff,0xf0

};

unsignedcharl2[]={

0x0f,0x00,0x00

};

unsignedcharl3[]={

0x00,0xf0,0x00

};

unsignedcharl4[]={

0x0f,0xff,0xf0

};

unsignedcharl5[]={

0x00,0x00,0xf0

};

unsignedcharl6[]={

0x0f,0x00,0xf0

};

unsignedcharl7[]={

0x0f,0xff,0xf0

};

/*SettheclockingtorunfromPLLat50MHz*/

intmain(){SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_8MHZ);

RIT128x96x4Init(1000000);

RIT128x96x4Clear();

while

(1){

/*RIT128x96x4StringDraw("20140111111",0,6,15);

RIT128x96x4StringDraw("admin",0,12,15);

RIT128x96x4StringDraw("work1",0,18,15);

RIT128x96x4StringDraw("2016-9-21",50,18,15);

RIT128x96x4ImageDraw(buf0,10,24,20,1);//oá?

?

RIT128x96x4ImageDraw(buf22,3,36,2,5);//êú?

?

?

RIT128x96x4ImageDraw(buf22,3,37,2,5);

RIT128x96x4ImageDraw(buf22,3,38,2,5);

RIT128x96x4ImageDraw(buf22,3,39,2,5);

RIT128x96x4ImageDraw(buf22,3,40,2,5);

RIT128x96x4ImageDraw(buf22,3,41,2,5);

RIT128x96x4ImageDraw(buf22,3,42,2,5);

RIT128x96x4ImageDraw(buf22,3,43,2,5);

RIT128x96x4ImageDraw(buf22,3,44,2,5);

RIT128x96x4ImageDraw(buf22,3,45,2,5);

RIT128x96x4ImageDraw(buf22,3,46,2,5);

RIT128x96x4ImageDraw(buf1,10,30,6,1);//bigF

RIT128x96x4ImageDraw(buf2,10,33,6,1);

RIT128x96x4ImageDraw(buf3,10,36,6,1);

RIT128x96x4ImageDraw(buf4,10,39,6,1);

RIT128x96x4ImageDraw(buf5,10,42,6,1);

RIT128x96x4ImageDraw(buf6,10,45,6,1);

RIT128x96x4ImageDraw(buf7,10,48,6,1);

RIT128x96x4ImageDraw(buf23,65,30,40,2);//middleF

RIT128x96x4ImageDraw(buf24,65,35,40,2);

RIT128x96x4ImageDraw(buf25,65,40,40,2);

RIT128x96x4ImageDraw(buf26,65,45,40,2);

RIT128x96x4ImageDraw(buf27,65,50,40,2);

RIT128x96x4ImageDraw(buf28,65,55,40,2);

RIT128x96x4ImageDraw(buf29,65,60,40,2);

RIT128x96x4ImageDraw(buf1,10,30,20,2);//bigF

RIT128x96x4ImageDraw(buf2,10,35,20,2);

RIT128x96x4ImageDraw(buf3,10,40,20,2);

RIT128x96x4ImageDraw(buf4,10,45,20,2);

RIT128x96x4ImageDraw(buf5,10,50,20,2);

RIT128x96x4ImageDraw(buf6,10,55,20,2);

RIT128x96x4ImageDraw(buf7,10,60,20,2);*/

/*RIT128x96x4ImageDraw(buf8,0,65,28,1);//heart

RIT128x96x4ImageDraw(buf9,0,70,28,1);

RIT128x96x4ImageDraw(buf10,0,75,28,1);

RIT128x96x4ImageDraw(buf11,0,80,28,1);

RIT128x96x4ImageDraw(buf12,0,85,28,1);

RIT128x96x4ImageDraw(buf13,0,90,28,1);

RIT128x96x4ImageDraw(buf14,0,5,40,1);//ma

RIT128x96x4ImageDraw(buf15,0,10,40,1);

RIT128x96x4ImageDraw(buf16,0,15,40,1);

RIT128x96x4ImageDraw(buf17,0,20,40,1);

RIT128x96x4ImageDraw(buf18,0,25,40,1);

RIT128x96x4ImageDraw(buf19,0,30,40,1);

RIT128x96x4ImageDraw(buf20,0,35,40,1);

RIT128x96x4ImageDraw(buf21,0,40,40,1);

/RIT128x96x4StringDraw("h",0,12,15);

RIT128x96x4ImageDraw(b

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1