东北大学嵌入式课程设计报告_第1页
东北大学嵌入式课程设计报告_第2页
东北大学嵌入式课程设计报告_第3页
东北大学嵌入式课程设计报告_第4页
东北大学嵌入式课程设计报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息学院2009级电子信息工程嵌入式系统课程设计报告东北大学信息学院2009级电子信息工程专业嵌入式系统课程设计报告姓名: 吴戈林学号:班级:电子0901电话:Email:2012年7月10日目录1. 内容提要12. 正文-嵌入式应用系统设计12.1题目的意义、特点,本人所做的工作及系统的主要功能12.2系统功能设计22.2.1硬件设计及描述22.2.2软件设计及描述42.2.3源程序代码53. 课程设计体会144. 参考文献14 1. 内容提要本课程设计题目为基于W90P710处理器的数码相册设计 。众所周知,ARM处理器核以其高性能、低功耗、低成本的巨大优势得到了众多半导体厂家和整机厂商的大力支持。优良的性能和广泛的市场定位也使得ARM资源得到了极大地丰富,加速了基于ARM处理器的面向各种应用的系统芯片的开发和发展,使得ARM技术获得了更广泛的应用,确立了ARM技术的市场领先地位。本课程设计所用的W90P710处理器正是基于ARM7TDMI内核的处理器,它提供了4K的指令缓存和4K的数据缓存,并具有强大的外设资源,包括一个USB1.1主控制器,一个SD/SDIO主控制器,4个独立的UART接口,一个看门狗定时器,71个可编程I/O口,PS/2键盘控制器和高级中断控制器AIC,同时具有一个AC97控制器,一个双向通道GDMA,一个LCD控制器,两个24位定时器,它的外部总线接口控制器支持SDRAM、ROM/SRAM、FLASH存储器和I/O设备的方便接入,还具有串行通信和以太网接口,以适应通信网关和其他的应用场合。随着电子产品的日益普及,数码相册以其美观、方便、易于保存等突出特点逐渐开始取代传统相册,受到越来越多人的欢迎,市场上各色各样的电子相册也铺天盖地的涌现。出于对电子相册的喜爱,本课程设计主要利用W90P710处理器上的彩色LCD显示控制模块以及键盘扫描接口KPI模块对数码相册实现输入、循环显示、选择图片等数码相册的基本操作和控制。本课程设计所用ARM软件开发工具是ARM ADS集成开发环境。2. 正文-嵌入式应用系统设计2.1 题目的意义、特点,本人所做的工作及系统的主要功能课程设计题目:基于W90P710处理器的数码相册设计课题意义:电子相册相比传统相册而言,具有存储容量大、操作简单方便、外形美观、能够动态显示图片、易于长期保存等突出特点,因此受到越来越多的人群的喜爱,包括一些商家也在运用这些数码产品当做产品,比如婚纱摄影的公司把电子相册当做产品开始加在套系中。这种既新潮又方便携带的数码产品发展速度很快,更新内存大小和外观、速度等方面也越来越快,而且价格不是很贵,性价比很高。其主要适用人群也有很多,家庭或者单位都可以。观赏性很强,而且性价比很高,同时这个产业有较强的发展势头。因此数码相册设计课题能够使我结合课本知识了解数码相册的基本工作模块和基本原理,做到课本知识与社会需求紧密结合,活学活用所学知识,紧跟时代潮流的意义。本人所做工作:1、 前期准备阶段:查阅电子相册相关功能、需求信息,结合实验硬件条件设计出合理的产品功能版块;熟悉W90P710 LCD控制器显示、预处理、颜色等功能以及对应的控制、状态寄存器映射表,通用输入输出口GPIO,键盘接口KPI,W90P710的高级中断控制AIC,以及常用版块的程序模块;复习嵌入式C语言的编程。2、流程设计阶段:根据需求和开发环境的软硬件条件设计硬件电路图,软件程序流程图。3、编写代码阶段:在ARM集成开发环境ADS下编写程序代码,下载到W90P710开发板,调试运行程序,验证功能实现情况。4、程序优化和报告总结阶段:对程序和硬件功能进行检查,优化,如删除冗余代码,优化程序结构,完善硬件附加功能等。最后,完成课程设计报告,总结课程设计过程中的得失。系统主要功能:数码相册开机后循环显示存入内部的图片,每张图片显示大约3秒钟,在键盘上按18键选择可以跳到对应图片进行显示,显示大约6秒钟,也可按F键显示下一张图片。2.2 系统功能设计2.2.1 硬件设计及描述本课程设计选题主要涉及到的硬件模块有LCD显示模块,键盘接口KPI模块。硬件连接图如下图所示: 图1:LCD硬件连接图 图2:键盘接口KPI硬件图2.2.2 软件设计及描述主程序主要完成键盘接口初始化,LCD初始化工作,以及8幅图片的循环显示功能。主程序流程图: KPI中断程序主要完成根据按键值选择图片并显示的功能。KPI中断程序流程图:2.2.3 源程序代码主程序代码:#include #include 710defs.h#include HB_it.h#include main.h#include lcd_pattern.hU32 temp = 0;U32 i = 0x3c0;int main(void) LCD_IMAGE_T LCD_Size; LCD_LOCATION_T LCD_Location;/定义大小,显示位置 LCD_Size.width = 480; LCD_Size.height = 240;/ LCD显示大小 LCD_Location.StartX = 0; LCD_Location.StartY = 0; LCD_Location.EndX = 960; LCD_Location.EndY = 240;/ 设置LCD显示起始,终止位置 LCDInit();/ 初始化LCD LCDShow(LCD_Size, LCD_Location); KPIInit();/ 初始化KPI while(1) / 循环显示8幅图片 LCDFIFOBufferSet(image_NEU); LCDDisplayOn();/ 显示第1幅图片 Delay(); LCDFIFOBufferSet(image_a); LCDDisplayOn();/ 显示第2幅图片 Delay(); LCDFIFOBufferSet(image_b); LCDDisplayOn();/ 显示第3幅图片 Delay(); LCDFIFOBufferSet(image_c); LCDDisplayOn();/ 显示第4幅图片 Delay(); LCDFIFOBufferSet(image_d); LCDDisplayOn();/ 显示第5幅图片 Delay(); LCDFIFOBufferSet(image_e); LCDDisplayOn();/ 显示第6幅图片 Delay(); LCDFIFOBufferSet(image_f); LCDDisplayOn();/ 显示第7幅图片 Delay(); LCDFIFOBufferSet(image_g); LCDDisplayOn();/ 显示第8幅图片 Delay(); return 0;/* Function Name : LCDInit* Description : LCD初始化* Input : None* Output : None* Return : None*/void LCDInit(void) REG_GPIO_CFG6 = 0x; REG_LCD_LCDCON = 0x30c05; REG_LCD_FIFO1PRM = 0xa; REG_LCD_F1DREQCNT = 0x1e000f0; REG_LCD_FIFO1RELACOLCNT = 0x1e0; /LCD CLK REG_LCD_LCDTCON1 = 0x3b166; REG_LCD_LCDTCON2 = 0x3bf00f1; REG_LCD_LCDTCON3 = 0x; REG_LCD_LCDTCON4 = 0x20101; REG_LCD_LCDTCON5 = 0xe;/* Function Name : LCDShow* Description : 设置LCD显示位置* Input : None* Output : None* Return : None*/void LCDShow(LCD_IMAGE_T Size, LCD_LOCATION_T Location) REG_LCD_F1DREQCNT = (Size.width 1); REG_LCD_DISPWINS = (Location.StartY 16) + Location.StartX; REG_LCD_DISPWINE = (Location.EndY 0x7) & (tem 0x3) & (tem 0x8) KeyValue = tem + 4; else KeyValue = tem; printf(KPI interrupts. %xn, KeyValue); /将按键值发送到控制台 switch (KeyValue) case 0: LCDFIFOBufferSet(image_NEU); LCDDisplayOn(); Delay(); break; case 1: LCDFIFOBufferSet(image_a); LCDDisplayOn(); Delay(); break; case 2: LCDFIFOBufferSet(image_b); LCDDisplayOn(); Delay(); break; case 3: LCDFIFOBufferSet(image_c); LCDDisplayOn(); Delay(); break; case 4: LCDFIFOBufferSet(image_d); LCDDisplayOn(); Delay(); break; case 5: LCDFIFOBufferSet(image_e); LCDDisplayOn(); Delay(); break; case 6: LCDFIFOBufferSet(image_f); LCDDisplayOn(); Delay(); break; case 7: LCDFIFOBufferSet(image_g); LCDDisplayOn(); Delay(); break; 3. 课程设计体会为期近4天的课程设计结束了,这次课程设计首先给我的第一感觉就是十分有趣,贴近实际。我们生活中接触了不少的电子产品,MP3、MP4、数码相册等等,以前觉得这些东西我们会享受就行了,不太可能知道它们具体内部怎么回事。通过这次嵌入式课程设计,我改变了这一想法,再复杂的数码产品也是一个一个模块搭建起来。其次,课程设计让我对课本上很多以前觉得抽象的知识具有了更加感性、直观的认识。比如GPIO工作在键盘方式下具体是怎么执行的,这不再是课本上一句一句的说教,而是切切实实的执行!由于课本上我们主要是学习汇编语言进行程序设计,而课程设计是以C语言来编写的,这对于我这个当初C语言就学得不怎么样,而且隔了一年多没用的人来说的确是个不小的挑战,为了顺利完成课程设计,我硬着头皮把C语言的课本翻出来“温故而知新”了一遍。再加上课程设计中不断地调试程序,我竟然逐渐找到了C语言的感觉!这也算是这次课程设计给我带来的意外收获吧。在程序设计过程中我也犯了不少的错误,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论