您好,欢迎访问三七文档
河南理工大学自动化2015级卓越班华清远见嵌入式系统实训报告华清远见嵌入式系统实训报告(2017—2018学年第一学期)姓名:******专业班级:************学号:**************学院:电气工程与自动化学院带队教师:乔美英,胡伟2017年9月25日河南理工大学自动化2015级卓越班华清远见嵌入式系统实训报告1华清远见嵌入式系统实训报告一、实习时间2017.9.25--2017.9.299月25日(周一)上午实习动员与项目介绍9月25日(周一)下午Keil安装及新建工程9月26日(周二)上午LED点灯与esc按键9月26日(周二)下午PWM蜂鸣器9月27日(周三)上午Timer定时器和WDT定时器9月27日(周三)下午SysTick定时器9月28日(周四)上午OLED显示屏及ADC电压转换9月28日(周四)下午光线传感器实验9月29日(周五)上午温湿度采集实验9月29日(周五)下午项目整合及验收河南理工大学自动化2015级卓越班华清远见嵌入式系统实训报告2二、实习的性质、目的2.1实习性质虽然嵌入式系统是近几年才开始真正风靡起来的,但事实上嵌入式这个概念却很早就已经存在了。从上个世纪70年代单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了近30年的历史。从嵌入式系统的构成上看,嵌入式系统是集软硬件于一体的、可独立工作的计算机系统。从外观上看,嵌入式系统像是一个“可编程”的电子“器件”从功能上看。它是对宿主对象进行控制,使其具有“智能”的控制器。从应用的角度看,嵌入式系统与通用计算机系统相比,有如下一些特点:(1)专用性强由于嵌入式系统通常是面向某个特定应用的,所以嵌入式系统的硬件和软件,尤其是软件,都是为特定用户群来设计的,它通常都具有某种专用性的特点。(2)实时性好目前,嵌入式系统广泛应用于生产过程控制、数据采集、传输通信等场合,主要用来对宿主对象进行控制。所以都对嵌入式系统有或多或少的实时性。例如,对嵌入在武器装各中的嵌入式系统、在火箭中的嵌入式系统、一些工业控制装置中的控制系统等应用中的实时性要求就极高。也正因为这种要求,在硬件上嵌入式系统极少使用存取速度慢的磁盘等存储器。在软件上更是加以精心设计,从而可使嵌入式系统快速地响应外部事件。当然,随着嵌入式系统应用的扩展,有些系统对实时性要求也并不是很高,例如近年来发展速度比较快的手持式计算机、掌上电脑等。但总体来说,实时性是对嵌入式系统的普遍要求,是设计者和用户重点考虑的一个重要指标。(3)可裁剪性好从嵌入式系统专用性的特点来看,作为嵌入式系统的供应者,理应提供各式各样的硬件和软件以各选用。但是,这样做势必会提高产品的成本。为了既不提高成本,又满足专用性的需要,嵌入式系统的供应者必须采取相应措施使产品在通用和专用之间进行某种平衡。目前的做法是把嵌人式系统硬件和操作系统设计成可裁剪的,以便使嵌入式系统开发人员根据实际应用需要来量体裁衣,去除冗余,从而使系统在满足应用要求的前提下达到最精简的配置。(4)可靠性高由于有些嵌入式系统所承担的计算任务涉及产品质量、人身设备安全、国家机密等重大事务,加之有些嵌入式系统的宿主对象要工作在无人值守的场合。例如危险性高的工业环境中、内嵌有嵌入式系统的仪器仪中、在人际罕至的气象检测系统中以及为侦察敌方行动的小型智能装置中等。所以与普通系统相比较,对嵌入式系统可靠性的要求极高。(5)功耗低有很多嵌入式系统的宿主对象都是一些小型应用系统。例如移动电话、PDA、MP3、飞机、舰船、数码相机等。这些设备不可能配各容量较大的电源,因此低功耗一直是嵌入式系统最求的目标。当然也是为了降低系统的功耗,嵌入式系统中的软件一般不存储于磁盘等载体中,而都固化在存储器芯片或单片系统的存储器之中。河南理工大学自动化2015级卓越班华清远见嵌入式系统实训报告3这个是我们实习用到的恩智浦公司的一款开发板,其芯片采用Cortex-M0处理器。2.2实习目的学习和了解了嵌入式在生活中的重要作用和发展过程,熟练掌握ARM硬件体系结构,熟悉NXPLPC11C14下的嵌入式编程流程,积累自己的软件编写经验。能够参与并实现一个真实和完整的嵌入式项目,为今后的学习和将从事的技术工作打下坚实的基础。1、复习与巩固C语言编程基础,熟练使用keil软件及其编程环境。2、学习嵌入式系统,将书本上的知识与实际相结合,通过真实的实训,巩固书本知道,以达到可以运用的目的。3、学习将各个学科的知识融合运用的技能,通过培训,增强自己的计算机技术、动手实践能力,以及计算机开发等一定的实际技术。4、通过实训可以提前了解当前市场需求,以及社会需要的人才类型,以便可以为自己的以后就业方向做出一个较为客观的导向。河南理工大学自动化2015级卓越班华清远见嵌入式系统实训报告4三、实习内容3.1实习动员与项目介绍(9月25日上午)今天上午主要就是老师与我们互相认识了一下,活跃一下气氛,然后规划了未来一周的实习内容,好让我们有所准备。知道学习的大致方向。3.2Keil安装及新建工程(9月25日下午)3.2.1软件安装1.打开从计算机下载或者从其他计算机上Copy过来的文件夹,选择setup安装程序。2.在接下来的提示框中选择FULL(完全版)点击安装。3.在提示框中输入程序序列号。4.选择disk(钥匙盘)——其地址在安装文件夹的其他文件当中,可手动搜索找到。5.点击完成,结束安装过程河南理工大学自动化2015级卓越班华清远见嵌入式系统实训报告53.2.2新建工程1.点击“projectNewProjecy…”菜单,出现一个对话框,要求给将要建立的工程起一个名字,在编辑框中那个输入一个名字,不需要扩展,点击保存。2.选择目标器件,我们使用的是选择nxplpc11c14,点击确定回到主界面。3.在工程窗口的文件页中,出现了“Target1”,前面有+号,点击+号展开,可以看到下一层是“SourceGroupl”,这是的工程还是一个空的工程,里面什么文件都没有,需要动手把写好的源程序加入。4.点击SourceGroupl使用其反白显示,然后点击鼠标右键,出现一个下拉菜单,加入刚刚编辑好的源程序。河南理工大学自动化2015级卓越班华清远见嵌入式系统实训报告63.3LED点灯与esc按键实验(9月26日上午)程序源码及注释:#includeLPC11xx.h#includeled1.h#includesw.hintmain(void){led1_init();//led灯初始化sw_init();//按键初始化while(1){if(!sw_status()){delay(10);//延迟函数led1_change();//改变led的状态delay(100);//延迟函数led1_close();//关闭led灯delay(100);}}}河南理工大学自动化2015级卓越班华清远见嵌入式系统实训报告7上图为led与芯片连接图,只需配置所需寄存器即可。GPIO数据寄存器和GPIO数据方向寄存器。Led初始化步骤:1.选择IO功能:配置IOCON【2:0】=02.将PI03_0引脚设置为输出:DIR[0]=13.开灯:DATA[0]=03.4PWM蜂鸣器实验(9月26日下午)程序源码及注释:#includeLPC11xx.h#includebuzzer.hvoidbuzzer_open(intpwm){LPC_IOCON-R_PIO1_1=0X3;LPC_SYSCON-SYSAHBCLKCTRL|=110;LPC_SYSCON-SYSAHBCLKCTRL|=116;LPC_TMR32B1-PR=0X7F;LPC_TMR32B1-MR0=pwm;LPC_TMR32B1-MR3=1500;LPC_TMR32B1-MCR|=110;LPC_TMR32B1-PWMC|=1;LPC_TMR32B1-PWMC|=13;LPC_TMR32B1-TCR|=1;}intmain(){河南理工大学自动化2015级卓越班华清远见嵌入式系统实训报告8while(1){buzzer_open(750);}}3.5Timer定时器和WDT定时器(9月27日上午)实验名称:timer定时器实现呼吸灯实验目的:掌握定时器的定时中断用法实验步骤:1.初始化LED1voidled1_init(void){(1)I/O配置(选择GPIO功能)(2)GPIO数据方向选择(输入/输出功能)}2.完成定时器中断处理函数voidTIMER32_0_IRQHandler(void){(1)判断是不是由定时器定时产生的中断LPC_TMR32B0-IR[0]=0(2)是的话就切换LED灯状态led1_change();(3)清除timer中断(为下一次产生中断准备)LPC_TMR32B0-IR=1;(写1清0)}河南理工大学自动化2015级卓越班华清远见嵌入式系统实训报告94.初始化配置32bit的timer0,实现定时间隔为1S(每隔1S产生一次定时器中断)voidtimer32B0_init(void){(1)使能定时器0时钟LPC_SYSCON-SYSAHBCLKCTRL[9]=1(2)定时器中断间隔设置(这里使用的是MR0输出通道)LPC_TMR32B0-MR0=12000000-1;(定时时间为1S)(3)匹配寄存器=TC(计数器)时,采取的方式为:产生中断LPC_TMR32B0-MCR[0]=1;//产生中断LPC_TMR32B0-MCR[1]=1;//循环产生中断:TC清0,重新计数(4)使能定时器中断NVIC_EnableIRQ(TIMER_32_0_IRQn);//向core(内核)注册定时器0中断5.设置定时器0的中断优先级NVIC_SetPriority(TIMER_32_0_IRQn,3);6.使能定时器LPC_TMR32B0-TCR=1;}实验名称:看门狗定时器中断实验目的:掌握看门狗定时器的用法:(1)普通定时器中断(2)复位中断从喂狗和不喂狗的现象比较入手实验分析:(1)看门狗定时器是SOC内部的功能模块,没有使用外设引脚(2)看门狗定时器的实质也是一个定时器:a.要有时钟信号源b.针对时钟信号源进行分频操作c.定时计数:向下减计数d.输出中断:普通中断和复位中断e.产生中断不是通过比较,而是减到0的时候自动产生实验步骤(如果自己的startup_LPC11xx.s中没有在main之前调用SystemInit,记得要在main函数里调用下):1.初始化看门狗定时器(1)系统配置(时钟源选择和使能)a.使能看门狗定时器时钟LPC_SYSCON-SYSAHBCLKCTRL[15]=1b.看门狗振荡器时钟源配置LPC_SYSCON-WDTOSCCTRL=0x03F;//配置看门狗振荡器输出时钟频率河南理工大学自动化2015级卓越班华清远见嵌入式系统实训报告10LPC_SYSCON-PDRUNCFG&=~(0x16);//掉电配置寄存器对看门狗振荡器上电c.选择看门狗定时器时钟源LPC_SYSCON-WDTCLKSEL=0x02;//选择看门狗时钟源:看门狗振荡器LPC_SYSCON-WDTCLKUEN=0x01;//允许更换新的时钟源LPC_SYSCON-WDTCLKUEN=0x00;//使更新的时钟源生效:必须先写0后写1LPC_SYSCON-WDTCLKUEN=0x01;d.等待更新的时钟源正式生效循环判断LPC_SYSCON-WDTCLKUEN[0]=1的时候表示正式生效(在对更新时钟源生效的时候,状态位已经自动清0了)while(!(LPC_SYSCON-WDTCLKUEN&0x01));//等待时钟源正式生效e.看门狗时钟分频LPC_SYSCON-WDTCLKDIV=2;(2)看门狗定时器相关配置a.看门狗定时时间设置LPC_WDT-TC=0x000002FF;//每次看门狗都是
本文标题:华清远见实习报告
链接地址:https://www.777doc.com/doc-4829913 .html