“嵌入式系统”实验
教案
中职数学基础模块教案 下载北师大版¥1.2次方程的根与系数的关系的教案关于坚持的教案初中数学教案下载电子教案下载
实验三 彩色LCD显示实验
一、实验目的
1.了解 LCD 控制原理
2. 了解 S3C2410 处理器的 LCD 控制器及原理
3. 掌握 ARM 处理器 LCD 底层驱动的编程方法
4. 在显示屏上画红绿蓝三条直线,通过编程完成
二、 实验设备
1.PC 微机一台;
2.Super ARM 实验箱一台;
3.U-Link2 仿真器一只。
三、实验原理
1. S3C2410 处理器的 LCD 控制器
S3C2410 处理器的 LCD 控制器主要功能是传送视频数据和产生必要的控制信号,视频数
据构成在 LCD 上显示的图像映像,控制信号则用来控制前面介绍的各种参数。
z REGBANK 是寄存器组的英文缩写,它包括 17 个可编程的寄存器,正是通过这些寄存器的
设置来控制 LCD 控制器的。
z LCDCDMA 是专为传送视频数据的专用 DMA,它自动实现将视频缓冲区中的数据传送到
LCD 驱动器中。由于有了这个专用的 DMA,视频数据可以不用 CPU 的干涉在 LCD 上显
示,这极大的减轻了数理器的负担。
VD[23:0]是数据引脚,是用来传送视频数据。其他的引脚则是传送
控制信号的。
2. 彩色 LCD 显示编程方法
彩色 LCD 显示编程软件
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
如右图:
四、 实验步骤
1、建立工程文件夹、启动RealView MDK、工程创建和启动代码配置
z 在E:盘目录下建立工程文件夹(e:\exp3)。并将“嵌入式系统实验三”文
件夹内的“2410addr.h”;“option.h”;“SDRAM.ini”;“lcdlib.c”;
“2410lib.c”等八个文件全部拷贝至工程文件夹(e:\exp3)内。
z 启动RealView MDK,选择菜单Project->New uVision Project,指定工程的保存路径
(e:\exp3),并给新工程命名为LCD.uvproj,单击“保存”按钮。
z 在自动弹出的器件选择窗口(Select Device for Target ‘Target 1’)中选择该工
程所对应的处理器型号(实验箱中处理器为Samsung 公司的S3C2410A),并单击“确
定”按钮,。在弹出启动代码生成对话框时,选择 “是”按钮,此时将在LED 工程中
自动生成S3C2410A 的启动代码。
z 对启动代码进行配置,全部除去勾选项(否则可能导致调试时不稳定)
2、 编辑代码,将其另存为 LCD.c 文件,并将 LCD.c,2410lib.c 和 lcdlib.c 都加到工程中
选择菜单 File->New…创建新文件(缺省为 text1*,保存时应修改文件名及文件类型),
编辑代码:
/* -----LCD.c begin------ */
#include "2410addr.h"
Administrator
高亮
Administrator
高亮
Administrator
线条
Administrator
高亮
Administrator
高亮
Administrator
高亮
Administrator
高亮
Administrator
高亮
#include "2410lib.h"
#include "lcdlib.h"
int main()
{
unsigned int i;
int x,y;
ChangeClockDivider(1,1); // 1:2:4
ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHz
Port_Init();
rGPFDAT= rGPFDAT &0x0f;
LCD_Init();
clrsrc(RGB(0,0,0));
/*
for(x=0,y=0;y<320;x++,y++)
{
setpixel(x,y,0x7e0);
}*/
line( 0, 0,g_xMax,g_yMax,RGB(0xff,0,0));
line(100, 0,100,g_yMax,RGB(0,0xff,0));
line( 0,100,g_xMax,100,RGB(0,0,0xff));
rGPFCON= (rGPFCON&0x00ff)|0x5500 ;
while (1){
rGPFDAT = rGPFDAT & 0x0f;
for (i = 0; i < 200000; i++);
rGPFDAT = rGPFDAT|0xf0;
for (i = 0; i < 200000; i++);
}
}
/* -----LCD.c end------ */
将代码另存为 LCD.c 文件;并将工程文件夹内的 LCD.c,2410lib.c 和 lcdlib.c 添加到工程中
(4)对工程属性进行设置(必须在编译 Build Project 之前配置,否则报错!)
选择菜单Project->Options for target ‘target 1’或单击工程属性快捷键,打
开工程属性设置窗口,
z 设置 Target 项:
Administrator
高亮
Administrator
高亮
Administrator
线条
SDRAM 起始地址为 0x3000 0000,大小 64MByte(0x400 0000),本实验中 0x3000000 被使用。
见 def.h 中:
#define VideoAddrStart (0x30000000)
#define VideoAddrEnd ((0x30000000+240*320*16/8))
因此在 Target 选项卡中设置:
设置 ROM1: Start=0x3100000;Size=0x1000000; 并选中 Startup
设置 RAM1: Start=0x3200000;Size=0x1000000;
z 设置工程属性的Debug 项
设置仿真调试等控制和指定装载调试脚本文件。Use:ULink ARM Debugger (注:
Initialization File 项的SDRAM.ini 文件为调试脚本,最好将其置于该工程目录下)。
工程属性的其它选项为默认设置。
Administrator
矩形
Administrator
高亮
Administrator
高亮
Administrator
高亮
选择菜单 Project->Build all target file 或快捷键,对整个工程进行编译链接
(6)仿真调试
选择菜单Debug->Start/Stop Debug Session,或者点击快捷键,如果顺利将进入如下图所
示的调试窗口。切换到混合模式查看时,将出现如图所示的汇编模式窗口,此时应特别关注PC 指
向的地址(0x30000xxx)在SDRAM 内存区域
(7)观察运行结果
单步 step 、运行 run 和停止 stop 观察 LCD 屏幕的图形状况(为红绿蓝三条直
线)。
(8) 修改代码实验
看懂 lcdlib.c 文件中的 setpixel()函数,并应用它修改 main()函数,使数码管显现不同的
显示效果。
提示:int setpixel(int x,int y,unsigned short pencolor);
参数:
int x,int y 分别为 X 轴,Y 轴显示像素点坐标,
unsigned short pencolor,为显示像素点的颜色(12 位)
(a)在屏幕中间显示正弦曲线 LCD_Sin.c:
#include "2410addr.h"
#include "2410lib.h"
#include "lcdlib.h"
Administrator
矩形
Administrator
矩形
#include "math.h"
int main()
{
unsigned int i;
int x,y;
ChangeClockDivider(1,1); // 1:2:4
ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHz
Port_Init();
rGPFDAT= rGPFDAT &0x0f;
LCD_Init();
clrsrc(RGB(0,0,0));
//绘制正弦曲线簇
for(y=0;y<320;y++)
{
x=120+40*sin(y*5); //正弦函数
setpixel(x,y,0x7e0);
}
line( 0, 0,g_xMax,g_yMax,RGB(0xff,0,0));
line(100, 0,100,g_yMax,RGB(0,0xff,0));
line( 0,100,g_xMax,100,RGB(0,0,0xff));
while (1){
rGPFDAT = rGPFDAT & 0x0f; // GPF[7:4]=0x0;LED??
for (i = 0; i < 200000; i++); //??
rGPFDAT = rGPFDAT| 0xf0; // GPF[7:4]=0xf;LED??
for (i = 0; i < 200000; i++); //??
}
}
(b)在屏幕中间显示一个圆环 LCD_Cir.c:
修改:
设圆心在(120,120)处,半径为 90;
//(x-120)^2+(y-120)^2=90^2;
在 LCD_Sin.c 文件 main()函数 Sin 函数基础上修改添加:
for(y=30;y<210;y++)
{
x=120-sqrt(8100-(y-120)*(y-120)); //下半圆
setpixel(x,y,0x7e0);
x=120+sqrt(8100-(y-120)*(y-120)); //上半圆
setpixel(x,y,0x7e0);
}
Administrator
矩形
Administrator
矩形
Administrator
线条
(c)自行
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
LCD 显示程序,如在屏幕中间显示同圆心多圆环;显示颜色渐变的
直线;显示加粗实线与虚线等。
五、 实验结果与分析
1、写出参考代码运行的现象
(1)运行成功与否,出现问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
原因(如语法错误,配置不当)
(2)运行成功后实验现象,并解释
2、自行设计的程序,描述其功能,运行现象,并写出其关键代码(加以注释)
(1)自行设计的程序原理及其分析。
(2)运行成功后实验现象,并解释。
Administrator
高亮
Administrator
线条
Administrator
线条
Administrator
线条
Administrator
线条
“嵌入式系统”实验教案
实验三 彩色LCD显示实验
一、实验目的
二、 实验设备
三、实验原理
四、 实验步骤
五、 实验结果与分析