李青艳嵌入式实验课程设计报告.docx
《李青艳嵌入式实验课程设计报告.docx》由会员分享,可在线阅读,更多相关《李青艳嵌入式实验课程设计报告.docx(12页珍藏版)》请在冰豆网上搜索。
![李青艳嵌入式实验课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-2/6/62f29d69-da29-4f79-a8b5-f735a517aa99/62f29d69-da29-4f79-a8b5-f735a517aa991.gif)
李青艳嵌入式实验课程设计报告
存档资料成绩:
华东交通大学理工学院
课程设计报告书
所属课程:
嵌入式系统基础
设计题目:
触摸屏实验设计
分院:
电信分院
班级:
通信工程2012级2班
姓名:
李青艳
学号:
20120210420207
指导教师:
徐陨基
实验地点:
实验楼五楼(嵌入式实验室517)
2015.12.26
华东交通大学理工学院
课程设计任务书
专业:
通信工程班级:
2班姓名:
李青艳
一、课程设计题目
嵌入式系统基础与开发之触摸屏实验设计
二、课程设计工作:
自2015年12月26日起至2016年1月8日止。
三、课程设计的内容要求:
1、学会如何使用ARM嵌入式开发软件。
2、学会使用.EL-ARM-830+教学实验箱,PentiumII以上的PC机。
3、掌握嵌入式开发板语言编程思想以及它们的基本使用规则。
4、熟练掌握ARM嵌入式开发软件工程的创建及运行。
5、按照创建、编译、调试、运行的正确步骤,并正确进行编译和调试。
6、了解触摸屏工作的基本原理。
学生签名:
李青艳
2015年12月26日
课程设计评阅意见
序号
项目
等 级
优秀
良好
中等
及格
不及格
1
课程设计态度评价
2
出勤情况评价
3
任务难度评价
4
工作量饱满评价
5
任务难度评价
6
设计中创新性评价
7
论文书写规范化评价
8
综合应用能力评价
综合评定等级
评阅人
2015年月日
1实验目的
1.了解触摸屏工作的基本原理。
2.理解LCD如何和触摸屏相配合。
3.通过编程实现对触摸屏的限制。
2实验内容
在320*240的彩色LCD上显示触摸点的坐标。
3实验设备
1.EL-ARM-830+教学实验箱,PentiumII以上的PC机,仿真调试电缆。
2.PC操作系统WIN98或WIN2000或WINXP、ADS1.2集成开发环境,仿真调试驱动程序。
4实验原理及说明
4.1触摸屏原理
触摸屏附着在显示器的表面,与显示器相配合使用,如果能测量出触摸屏上的坐标位置,则可根据显示器屏幕上对应的坐标点显示内容或图符获知触摸者的意图。
触摸屏按其技术原理可分为五类:
矢量压力传感式、电阻式、电容式、红外线式、表面声博式,其中电阻式触摸屏在嵌入式系统中用的较多,电阻触摸屏是一块4层的透明的复合薄膜屏,最下面是玻璃或有机玻璃构成的基层,最上面是一层外表面经过硬化处理从面光滑防刮的塑料层。
中间是两层金属导电层,分别在基层之上和塑料层内表面,在两导电层之间有许多细小的透明隔离点把他们隔开。
当手指触摸屏幕时,两导电层在触摸点处接触。
触摸屏的两个金属导电层是触摸屏的两个工作面,在每个工作面的两端各涂有一条银胶,称为该工作面的一对电极,若给一个工作面的电极对施加一确定的电压,而Y方向电极对不加电压时,在X平行电压场中,触点处的电压值可以在Y+或Y-电极上反映出来,通过测量Y+电极对地的压力大小,通过A/D转换,便可得知触点的X坐标值。
同理,当给Y电极对施加电压,而X电极对不加电压时,通过测量X+电极的电压,通过A/D转换便可得知触点处的Y坐标。
电阻式触摸屏有四线和五线两种,四线式触摸屏的X工作面和Y工作面分别夹加在两个导线层上,共有四根引出线:
X+、X-、Y+、Y-,分别连在触摸屏的X电极对和Y电极对上,五线式触摸屏把X工作面和Y工作面都加在玻璃基层的导电涂层上,但工作时,任然是分别加电压的,即让两个方向的电压场分时工作在同一个工作面上,而外导电层则仅仅是用来充当导体的和电压测量电极,因此,五线式触摸屏的引出线需要五根。
4.2触摸屏的控制
本系统触摸屏的控制是使用的FM7843 芯片。
FM7843 是4 线电阻触摸屏转换接口芯片。
它是一款具有同步串行接口的12 位取样模数转换器。
在125kHz 吞吐速率和2.7V 电压下的功耗为750μW,而在关闭模式下的功耗仅为0.5μW。
因此,ADS7843 以其低功耗和高速率等特性,被广泛应用在采用电池供电的小型手持设备上。
FM7843 采用SSOP-16 引脚封装形式,温度范围是-40~85℃。
为了完成一次电极电压切换和A/D 转换,需要先通过串口往FM 7843 发送控制字,转换完成后再通过串口读出电压转换值。
标准的一次转换需要24 个时钟周期。
由于串口支持双向同时进行传送,并且在一次读数与下一次发控制字之间可以重叠,所以转换速率可以提高到每次16 个时钟周期。
如果条件允许,CPU 可以产生15 个CLK 的话(比如FPGAs 和ASICs),转换速率还可以提高到每次15 个时钟周期。
表2-56 是FM7843 的管脚定义。
5实验源程序
voidMain(void){
intCount=3000;
Target_Init();
GUI_Init();
while
(1){
Set_Color(GUI_GREEN);
Fill_Rect(0,0,639,479);
Delay(Count);
Set_Color(GUI_WHITE);
Fill_Rect(0,0,639,479);
Delay(Count);
Set_Color(GUI_BLACK);
Fill_Rect(0,0,639,479);
Delay(Count);
Set_Color(GUI_YELLOW);
Fill_Rect(0,0,639,479);
Delay(Count);
Set_Color(GUI_BLUE);
Fill_Rect(0,0,639,479);
Delay(Count);
Set_Color(GUI_RED);
Draw_Circle(300,150,100);
Delay(Count);
Draw_Point(100,200);//绘制点API
Delay(Count);
Draw_HLine(300,0,639);//绘制水平线API
Delay(Count);
Draw_VLine(50,50,479);//绘制竖直线API
Delay(Count);
Draw_Line(0,0,639,479);
Delay(Count);
Draw_Line(639,0,0,479);
Delay(Count);
Fill_Circle(80,180,40);
Delay(Count);
Fill_Rect(280,200,300,220);//填充区域API
Delay(Count);
Set_Font(&GUI_Font8x16);//设定字体类型API
Set_Color(GUI_WHITE);
Set_BkColor(GUI_BLUE);
//设定背景颜色API
Fill_Rect(0,0,639,3);
Fill_Rect(0,0,3,479);
Fill_Rect(636,0,639,479);
Fill_Rect(0,476,639,479);
Disp_String("thisisademo",100,70);
Set_Font(&CHINESE_FONT12);
Disp_String(CN_start"这是一个例程"CN_end,70,350);
Set_Font(&CHINESE_FONT16);
Disp_String(CN_start"这是一个例程"CN_end,70,400);
Delay(Count);
}
}
voidHaltUndef(void)
{
Uart_Printf("Undefinedinstructionexception.\n");
while
(1);
}
voidHaltSwi(void)
{
Uart_Printf("SWIexception.\n");
while
(1);
}
voidHaltPabort(void)
{
Uart_Printf("Pabortexception.\n");
while
(1);
}
voidHaltDabort(void)
{
Uart_Printf("Dabortexception.\n");
while
(1);
}
voidIsr_Init(void)
{
pISR_UNDEF=(unsigned)HaltUndef;
pISR_SWI=(unsigned)HaltSwi;
pISR_PABORT=(unsigned)HaltPabort;
pISR_DABORT=(unsigned)HaltDabort;
rINTMOD=0x0;//All=IRQmode
rINTMSK=BIT_ALLMSK;//Allinterruptismasked.
rINTSUBMSK=BIT_SUB_ALLMSK;//Allsub-interruptismasked.<-April01,2002SOP
}
voidTarget_Init(void)
{
MMU_Init();
ChangeClockDivider(1,1);//1:
2:
4
ChangeMPllValue(0xa1,0x3,0x1);//FCLK=202.8MHz
Port_Init();
Isr_Init();
Uart_Init(0,115200);
Uart_Select(0);
Touch_Init();
TouchINT_Init();
Timer1_init();
Timer1INT_Init();
6实验截图
6.1运行结果:
6.2实验现象:
7心得体会
通过这次课程设计,基本达到实验的要求,了解触摸屏基本概念与原理,以及通过编程实现对触摸屏的控制,以及知道如何验证实验结果是否属于预期目标,并了解实验原理,为今后嵌入式的学习打下一定的学习基础。
这次期间我积极亲自实验,用的目标板是s3c2410核心子板,用JTAG仿真器,我学会了很多。
首先我扪主要了解整个设计过程,以及实验环境的建立,这次用的是交叉编译环境,通过这次课设我更清楚搭建嵌入式系统的开发平台,我们用的目标板是s3c2410核心子板,知道了运linux操作系统开发嵌入式与wince操作系统开发嵌入式的区别。
其次是学会vivi,内核,根文件系统的编译与移植(烧写),通过这个过程我熟悉了怎么把软件固化到硬件上,知道了软件怎么控制硬件,这个步骤很重要,要烧写不成功,目标板系统就运行不起来,实验就失败了,这个过程我们练习了好多变呢,大家都很累哦!
再次我们就开始写我们的应用程序,通过以上步骤实验系统搭建好了,只要调试好应用程序,然后再运行成功就行了,为此我又把课本上讲得触摸屏原理那章认真看了,又看了实验指导书,查资料,上网搜索,终于编出应用程序,经过不断的调试才编译成功,这个过程太辛苦了,加上实验板不太好,真是对我们的挑战,不过看到运行的
结果,大家都很高兴,也很有成就感啊!
还看懂了一些s3c2410的驱动程序的源代码,了解了s3c2410一些控制器的使用,以及s3c2410A的一些接口原理与应用。