当前位置首页 > 计算机 > 嵌入式开发
搜柄,搜必应! 快速导航 | 使用教程

嵌入式系统课程设计课件

文档格式:PPT| 29 页|大小 536KB|2024-12-10 发布|举报 | 版权申诉
第1页
第2页
第3页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 29
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • 单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,2.1 基于ARM核的LPC2106介绍,51单片机内部结构,ARM7TDMI-S 处理器;,128k 字节片内Flash 程序存储器,具有ISP 和IAP 功能Flash 编程时间:1ms 可,编程512 字节,扇区擦除或整片擦除只需400ms64/32/16K 字节静态RAM,(LPC2106/2105/2104),极小封装:TQFP48向量中断控制器控制中断;,双UART,其中一个带有完全的调制解调器接口具有I,2,C串行接口和 SPI 串行接口;,两个定时器,分别具有4 路捕获/比较通道;,多达6 路输出的PWM 单元;,实时时钟;看门狗定时器;,通用I/O 口;,CPU 操作频率可达60MHz;双电源:CPU 操作电压范围:,1.65V1.95V(1.8V8.3%),I/O 电压范围:3.0V3.6V(3.3V10%);,两个低功耗模式:空闲和掉电;,片内PLL 允许CPU 以最大速度运行,可以在超过整个晶振操作频率范围的情况下使用。

    2.2 LPC2106管脚介绍,2.3 LPC2106的I/O端口设置,寄存器PINSEL0和PINSEL1的设置LPC2106的I/O口全都是3功能服用端口,也就是说即可用作普通输入输出端口,又用作第2或第3种功能设计人员可根据需要设置两个32位特殊功能寄存器PINSEL0和PINSEL1PINSEL0对应引脚P0.0P0.15,PINSEL1对应引脚P0.16P0.31都是寄存器中用两位来完成1根引脚的功能设置2)GPIO方向寄存器设置,当管脚配置为GPIO 模式时,可使用该寄存器控制管脚的方向任意管脚的方向位的设置必须与管脚功能一致输出置1寄存器IOSET,当管脚配置为GPIO 输出模式时,可使用该寄存器从管脚输出高电平写入1 使对应管脚输出高电平写入0 无效如果一个管脚被配置为输入或第二功能,写IOSET 无效输出清零寄存器IOCLR,当管脚配置为GPIO 输出模式时,可使用该寄存器从管脚输出低电平写入1 使对应管脚输出低电平写入0 无效如果一个管脚被配置为输入或第二功能,写IOCLR 无效GPIO引脚值寄存器IOPIN,该寄存器提供GPIO引脚的值反映了外部环境对引脚的影响2.4 流水灯程序示例,#include 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);,CODE32,AREA vectors,CODE,READONLY,ENTRY,;interrupt 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_Addr,ResetAddr DCD ResetInit,UndefinedAddr DCD Undefined,SWI_Addr DCD SoftwareInterrupt,PrefetchAddr DCD PrefetchAbort,DataAbortAddr DCD DataAbort,Nouse DCD 0,IRQ_Addr DCD 0,FIQ_Addr DCD FIQ_Handler,ResetInit,BL InitStack,BL TargetResetInit,B _main,一、基础知识,1.1 操作系统的功能和作用,计算机硬件系统,操作系统(WINDOWS、LUNIX等),应用软件(如WORD、,PHOTOSHOP等),系统软件(如编译程序、,汇编程序、数据库等),图1.1 操作系统在计算机中的地位,操作系统层通常是最靠近硬件,层的软件层,主要完成计算机硬件,资源的调度和分配、信息的储存和,保护以及并发活动的协调和控制。

    从应用程序员的角度看,操作,系统是计算机硬件系统与应用程序,的接口,看到和使用的只是一些由,操作系统提供的函数1.2 嵌入式操作系统的特点,嵌入式硬件系统,嵌入式操作系统(UCOS-、WINCE,UCLUNIX等),嵌入式系统的应用软件,图,1.2 嵌入式操作系统在嵌入式系统中的地位,微型化保证应用的前提下,,规模越小越好嵌入式操作系统提供,的各个功能模块可以让用户根据,需要选择应在不做大量修改的,情况下稳定运行在不同的平台实时性可靠性好1、uC/OS-II内核具有可抢占的,实时多任务调度,功能,2、提供了许多系统服务,如信号量、消息队列、邮箱、内存管理、时间函数等,3、这些功能可以根据不同的需求进行裁减4、,可从ucos-ii网站上获得全部源码及其在各种体系结构平台上的移植范例1.3 uC/OS-II的特点,全世界有数百种产品在应用:,医疗器械,移动电话,路由器,工业控制,GPS 导航系统,智能仪器,更多,二、实际应用,(实时温度的采集控制),温度传感器,A/D转换(ADC0808),LPC2106,数码管显示,外界温度,电压信号,数字信号,2.1 实时温度采集的硬件框图,启动按钮,2.2 实时温度采集的硬件接线图,1、任务1启动按钮(按键识别),IO_Init();,while(1),while(IOPIN,IO_Init();,while(IOPIN,IOCLR=0 x0000ffFF;,任务切换,转换结束输出信号(转换结束标志),高电平有效,1KHz时钟信号,CLOCK,POT,ADC0808,OE:输出允许信号,高电平有效,即OE=1时,将输出寄存器中的数据放到数据总线上。

    ALE:地址锁存允许输入信号,START:启动信号输入端,IOCLR=adstart;,delay(50);,IOSET=adstart;,delay(50);,IOCLR=adstart;,delay(50);,IO_Init();,while(IOPIN,IOSET=111;,i=IOPIN;,(1)送单次脉冲,启,动A/D转换,IO口设置,(2)A/D转换是否结束,2、任务2A/D转换,(3)OE置1,将A/D转换后的数据读入,3、任务3数码管显示,INT32U d,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 64,2.3 C/OS-的程序结构,1、创建任务堆栈,定义任务堆栈大小,任务声明,/*c语言的主函数,由它启动多任务环境,*/,int main(void),OSInit();,/操作系统初始化,OSTaskCreate(Task0,(void*)0,OSTaskCreate(Task1,(void*)0,OSTaskCreate(Task2,(void*)0,OSStart();,/启动操作系统,return 0;,2、创建任务并启动操作系统,void Task0(void*p_arg),p_arg=p_arg;,/避免编译警告,TargetInit();,/初始化,3、具体任务,OSTaskSuspend(OS_PRIO_SELF),等待状态,运行状态,就绪状态,OSTaskSuspend(优先级),OSTaskResume(,优先级,),4、任务切换任务的挂起和恢复,。

    点击阅读更多内容
    卖家[上传人]:沈阳哈登
    资质:实名认证
    相关文档
    正为您匹配相似的精品文档