《最新嵌入式系统课程设计PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新嵌入式系统课程设计PPT课件.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统课程设计嵌入式系统课程设计1.了解基于了解基于ARM7核的单片机核的单片机LPC2106的内部结构和基本工作原理,清楚的内部结构和基本工作原理,清楚LPC2106的管脚分布,重点掌握与输入输出相关以及与中断相关的寄存器设的管脚分布,重点掌握与输入输出相关以及与中断相关的寄存器设置;置;2.掌握掌握ARM7应用系统编程开发方法,能用应用系统编程开发方法,能用C语言编写应用程序;语言编写应用程序;3.了解嵌入式实时操作系统了解嵌入式实时操作系统uC/OS-可移植、可裁剪等性能特点,正确理解实时可移植、可裁剪等性能特点,正确理解实时操作系统中任务、信号、消息、中断等基本概念以及操作系统中任
2、务、信号、消息、中断等基本概念以及uC/OS-多任务管理的多任务管理的调度算法;调度算法;4掌握掌握uC/OS-在在ARM7上移植的方法,能将上移植的方法,能将uC/OS-移植在移植在LPC2106中,中,并根据具体要求创建用户任务,解决实际问题;并根据具体要求创建用户任务,解决实际问题;5熟练掌握熟练掌握ADS1.2软件的使用以及软件的使用以及PROTEUS仿真调试的方法。仿真调试的方法。1.十字路口交通灯控制;十字路口交通灯控制;2.uC/OS-的移植与应用。(实时温度的采集控制)的移植与应用。(实时温度的采集控制)课程设计目的课程设计目的课程设计任务课程设计任务2.4 流水灯程序示例#i
3、nclude config.h#define LED1CON 0 x000003ff /*P0.0p0.9输出输出*/void delay(uint32 n)while(n-);int main(void)uint32 i;while(1)PINSEL0=0 x00000000;PINSEL1=0 x00000000;IODIR=0 x000003ff;for(i=0;i11;i+)IOCLR=0 x000003ff;IOSET=1i;delay(5000);delay(5000);return(0);CODE32AREA vectors,CODE,READONLY ENTRY;interru
4、pt vectors;中断向量表Reset LDR PC,ResetAddr LDR PC,UndefinedAddr LDR PC,SWI_Addr LDR PC,PrefetchAddr LDR PC,DataAbortAddr DCD 0 xb9205f80 LDR PC,PC,#-0 xff0 LDR PC,FIQ_AddrResetAddr DCD ResetInitUndefinedAddr DCD UndefinedSWI_Addr DCD SoftwareInterruptPrefetchAddr DCD PrefetchAbortDataAbortAddr DCD DataA
5、bortNouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_HandlerResetInit BL InitStack BL TargetResetInit B _main 一、基础知识1.1 1.1 操作系统的功能和作用操作系统的功能和作用计算机硬件系统计算机硬件系统操作系统(操作系统(WINDOWS、LUNIX等)等)应用软件(如应用软件(如WORD、PHOTOSHOP等)等)系统软件(如编译程序、系统软件(如编译程序、汇编程序、数据库等)汇编程序、数据库等)图1.1 操作系统在计算机中的地位 操作系统层通常是最靠近硬件层的软件层,主要完成计算机硬件资源的调
6、度和分配、信息的储存和保护以及并发活动的协调和控制。从应用程序员的角度看,操作系统是计算机硬件系统与应用程序的接口,看到和使用的只是一些由操作系统提供的函数。1.2 1.2 嵌入式操作系统的特点嵌入式操作系统的特点嵌入式硬件系统嵌入式硬件系统嵌入式操作系统(嵌入式操作系统(UCOS-、WINCEUCLUNIX等)等)嵌入式系统的应用软件嵌入式系统的应用软件图1.2 嵌入式操作系统在嵌入式系统中的地位 微型化。保证应用的前提下,规模越小越好。可裁剪。嵌入式操作系统提供的各个功能模块可以让用户根据需要选择。易移植。应在不做大量修改的情况下稳定运行在不同的平台。实时性可靠性好。n1、uC/OS-II
7、内核具有可抢占的实时多任务调度实时多任务调度功能n2、提供了许多系统服务,如信号量、消息队列、邮箱、内存管理、时间函数等n3、这些功能可以根据不同的需求进行裁减。n4、可从www.ucos-网站上获得全部源码及其在各种体系结构平台上的移植范例。1.3 uC/OS-II的特点n全世界有数百种产品在应用:n医疗器械n移动电话n路由器n工业控制nGPS 导航系统n智能仪器n更多 二、实际应用(实时温度的采集控制)温度传感器 A/D转换(ADC0808)LPC2106数码管显示外界温度电压信号数字信号2.1 2.1 实时温度采集的硬件框图实时温度采集的硬件框图启动按钮2.2 2.2 实时温度采集的硬件
8、接线图实时温度采集的硬件接线图1、任务、任务1启动按钮(按键识别)启动按钮(按键识别)IO_Init();while(1)while(IOPIN&key)!=0);IO_Init();while(IOPIN&key)=0);IOCLR=0 x0000ffFF;任务切换任务切换转换结束输出信号转换结束输出信号(转换结束标志转换结束标志),高电平有效高电平有效1KHz1KHz时钟信号时钟信号CLOCKCLOCKPOTPOTADC0808ADC0808OE:输出允许信号,高电平有:输出允许信号,高电平有效,即效,即OE=1时,将输出寄存器时,将输出寄存器中的数据放到数据总线上。中的数据放到数据总线上
9、。ALEALE:地址锁:地址锁存允许输入存允许输入信号信号START:启动信号输入端:启动信号输入端IOCLR=adstart;delay(50);IOSET=adstart;delay(50);IOCLR=adstart;delay(50);IO_Init();while(IOPIN&adend)=0);IOSET=111;i=IOPIN;(1)送单次脉冲,启)送单次脉冲,启 动动A/D转换转换IO口设置口设置(2)A/D转换是否结束转换是否结束2、任务、任务2A/D转换转换(3)OE置置1,将,将A/D转转换后的数据读入换后的数据读入3、任务、任务3数码管显示数码管显示 INT32U d,
10、g,s,b;b=i/100;d=i%100;s=d/10;g=d%10;(1)2进制转10进制(2)动态显示 OS_STK Task0StkTASK_STK_SIZE;OS_STK Task1StkTASK_STK_SIZE;OS_STK Task2StkTASK_STK_SIZE;void Task0(void*data);void Task1(void*data);void Task2(void*data);#include config.h“#define TASK_STK_SIZE 642.3 C/OS-的程序结构的程序结构1、创建任务堆栈、创建任务堆栈定义任务堆栈大小定义任务堆栈大小
11、任务声明任务声明/*c语言的主函数,由它启动多任务环境*/int main(void)OSInit();/操作系统初始化操作系统初始化 OSTaskCreate(Task0,(void*)0,&Task0StkTASK_STK_SIZE-1,2);OSTaskCreate(Task1,(void*)0,&Task1StkTASK_STK_SIZE-1,3);OSTaskCreate(Task2,(void*)0,&Task2StkTASK_STK_SIZE-1,4);OSStart();/启动操作系统启动操作系统 return 0;2、创建任务并启动操作系统、创建任务并启动操作系统void Task0(void*p_arg)p_arg=p_arg;/避免编译警告 TargetInit();/初始化 3、具体任务、具体任务OSTaskSuspend(OS_PRIO_SELF)等待状态等待状态运行状态运行状态就绪状态就绪状态OSTaskSuspend(优先级)OSTaskResume(优先级)4、任务切换、任务切换任务的挂起和恢复任务的挂起和恢复
限制150内