嵌入式系统课程设计报告

时间:2024.4.21


嵌入式系统

课程设计报告

 

设计任务一 十字路口交通灯控制

一、设计目的:

1.了解基于ARM7核的LPC2106的管脚功能和特点,掌握I/O控制寄存器的设置方法;

2.掌握ARM7应用系统编程开发方法,能用C语言编写应用程序;

3.熟练掌握ADS1.2软件的使用以及PROTEUS仿真调试的方法;

二、具体任务:

1.采用PROTEUS完成十字路口交通灯控制的硬件电路设计,要求单片机选型为飞利浦公司的LPC2106,东西南北方向分别设置红黄绿3个指示灯,东西方向和南北方向各用1个数码管显示通行时间;

2.用ADS1.2编写C语言应用程序,完成十字路口交通灯控制;

3.采用PROTEUS将应用程序装载在LPC2106中,进行仿真验证。要求东西方向和南北方向的数码管显示通行时间并倒计时,可以设置成一样,例如都是9秒倒计时;每当倒计时时间到,完成红黄绿指示灯的状态切换,模拟实现十字路口的交通灯管理控制。

三、硬件电路设计。(参考下图完成硬件电路设计,用屏幕抓图的方式将自己设计的PROTEUS电路图粘贴在下面,并用文字对所设计的电路功能、原理进一步说明)

附图:

硬件电路说明:

复位电路,

时钟电路(仿真可略),

ARM7微处理器LPC2106,

南北、东西道路交通灯,

交通计时显示数码管。

四、源程序。(只将C语言应用程序附在后面,其它项目文档不要提供,C语言应用程序要有一定的注释说明)

源程序:

#include "config.h"

#define ledcon 0x00007FFF//led接口

#define ctr1 0x00000081 //南北数码管

#define ctr2 0x00000100 //东西数码管

#define light1 0x00004200//东西红灯南北绿灯亮

#define close1 0x00003c00//东西黄绿南北红黄灭

#define light2 0x00002400//东西南北黄灯亮

#define close2 0x00004200//东西红灯南北绿灯灭

#define light3 0x00001800//东西绿灯南北红灯亮

#define close3 0x00002400//东西南北黄灯灭

#define close4 0x0000007F//消影

const uint8  led_code[16]=  //共阴极段码

{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,

0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

           

uint32 p,i;

void delay(uint32 n) //延时

{

 while(n--);

}

void display()  //交通灯、数码管显示

{

uint32 count=10;

while(count--)

 {

      IOCLR=i|ctr1;

      IOSET=p|led_code[count]; //输出显示

      delay(5000000);//延时

     IOCLR=close4;   //消影

 

  }

}

int main()

{

    /*初始化IO*/

    PINSEL0=0x00000000;

    PINSEL1=0x00000000;

    IODIR=ledcon;   //输出

    while(1)

    {

         p=light1;//东西红灯南北绿灯亮

         i=close1;//东西黄绿南北红黄灭

        display();

       

        p=light2;//东西南北黄灯亮

         i=close2;//东西红灯南北绿灯灭

        display();

       

        p=light3;//东西绿灯南北红灯亮

         i=close3;//东西南北黄灯灭

        display();

    }

    return(0);

}

五、仿真效果。(用屏幕抓图的方式将PROTEUS运行仿真效果图粘贴在下面)

设计任务二 uC/OS-Ⅱ的移植与应用

一、设计目的:

1.了解嵌入式实时操作系统uC/OS-Ⅱ可移植、可裁剪等性能特点,正确理解实时操作系统中任务、信号、消息、中断等基本概念以及uC/OS-Ⅱ多任务管理的调度算法;

2.掌握uC/OS-Ⅱ在ARM7上移植的方法;

3.能将uC/OS-Ⅱ移植在LPC2106中,并根据具体要求创建用户任务,解决实际问题;

二、具体任务:

1.uC/OS-Ⅱ移植在LPC2106中。

2.编写用户任务程序,完成实时温度的采集控制。硬件电路见参考硬件电路图,图中用滑动变阻器代替温度传感器转换后的电压,用ADC0809完成A/D转换,并用数码管显示出来。

三、参考硬件电路。(用文字对所设计的电路功能、原理做详细说明)

附图:

硬件电路说明:

复位电路,

时钟电路(仿真可略),

ARM7微处理器LPC2106,

温度电压值输入电路,

A/D转换器ADC0808(8bit),

按键电路SW,

四位数码管显示电路。

四、源程序。(只将C语言应用程序附在后面,其它项目文档不要提供,C语言应用程序要有一定的注释说明)

五、 

源程序:

/************************************************************/

#include "config.h"

#define  TASK_STK_SIZE         64

#define  con        0x00001fff

#define  key       0x00001000

#define  adstart        0x00002000

#define  adend        0x00004000

const uint32  led_code[]=

{0x0000003F,0x00000006,0x0000005B,0x0000004F,0x00000066,

0x0000006D,0x0000007D,0x00000007,0x0000007F,0x00000006F,};

  

OS_STK     Task0Stk[TASK_STK_SIZE];

OS_STK       Task1Stk[TASK_STK_SIZE];

OS_STK       Task2Stk[TASK_STK_SIZE];

INT32U i;

 

void  Task0(void *data);

void  Task1(void *data);

void  Task2(void *data);

/*********************************************************

** 函数名称: main

** 功能描述: c语言的主函数,由它启动多任务环境

*********************************************************/

        int main (void)

{

  OSInit();

   OSTaskCreate(Task0, (void *)0, &Task0Stk[TASK_STK_SIZE - 1], 2);

    OSTaskCreate(Task1, (void *)0, &Task1Stk[TASK_STK_SIZE - 1],3);

   OSTaskCreate(Task2, (void *)0, &Task2Stk[TASK_STK_SIZE - 1],4);

 OSStart();

    return 0;

}

void  delay(INT32U t) //延时

{while(t--);}

void  L_Init (void)

{

      PINSEL0=0x00000000;   //GPIO

      PINSEL1=0x00000000;   //GPIO                 

      IODIR|= 0x00002fFF;   //输入、输出        

                              

}

/********************************************************************

** 函数名称:Task0

** 功能描述: μCOS-II的第一个任务,通常由它初始化目标板和建立其它任务

*********************************************************************/

  void  Task0(void *p_arg)

    p_arg = p_arg;                                                

     TargetInit();                      //调用目标板初始化                                       

    L_Init();                        //调用IO初始化                                  

                                

    for(;;)

    {

    

    while((IOPIN&key)!=0);   //等待按键

       L_Init();               //调用IO初始化

      while((IOPIN&key)==0);  //等待放开按键

    IOCLR= 0x0000ffFF;

      

   //      OSTimeDlyHMSM(0,0,0,8);

    // IOSET=adstart;

      // OSTimeDlyHMSM(0,0,0,1);

     //  IOCLR=adstart;

      // OSTimeDlyHMSM(0,0,0,1);

     //  IOSET=adstart;

    OSTaskSuspend(OS_PRIO_SELF);

    }

}

/******************************************************************

** 函数名称:Task1

** 功能描述: μCOS-II的第2个任务,AD转换

*******************************************************************/

 void  Task1(void *p_arg)

    p_arg = p_arg;                                                  

                                                

    L_Init();            //调用IO初始化                                    

               

    for(;;)

    {IOCLR=adstart;      //一下产生启动脉冲

   delay(50);

      IOSET=adstart;

     delay(50);

     IOCLR=adstart;

   delay(50);

  

    L_Init();             //调用IO初始化

    while((IOPIN&adend)==0); //等待转换完成

    IOSET=1<<11;         //使能输出

  // OSTimeDlyHMSM(0,0,0,50);

   i=IOPIN;        //读取转换值

   i=i>>15;

      OSTaskSuspend(OS_PRIO_SELF);  //完成转换挂起任务

       }

}

/**************************************************************

** 函数名称:Task2

** 功能描述: μCOS-II的第3个任务,LED显示

***************************************************************/

  void  Task2(void *p_arg)

{  INT32U d,g,s,b;

    p_arg = p_arg;                                              

    L_Init();            //调用IO初始化                                  

  

    

   //求取各位数   

   b=i/100;

     d=i %100;

    s=d/10;

  g=d%10;

  //循环显示数码管                          

  while(1)

    {

     

    IOSET=(1<<10)|led_code[g]; //显示个位

   

    delay(30);

    IOCLR=0x00000fff;     //消影

     IOSET=1<<10;

     IOCLR=1<<10;

 IOSET=(1<<9)|led_code[s];   //显示十位

 delay(30);

    IOCLR=0x00000fff;     //消影

     IOSET=1<<9;

     IOCLR=1<<9;

    

IOSET=(1<<8)|led_code[b];   //显示百位

delay(30);

     IOCLR=0x00000fff;     //消影

     IOSET=1<<8;

     IOCLR=1<<8;

       }OSTaskResume(0);

}

五、仿真效果。(用屏幕抓图的方式将PROTEUS运行仿真效果图粘贴在下面)


第二篇:嵌入式系统课程设计报告


“嵌入式系统课程设计”报告要求

1、学生应独立完成不少于15页5000字以上的设计报告,A、B两同学报告雷同超过60%都设计成绩均记不及格

2、课程设计报告要求用A4纸打印。题目:2号黑体;一级标题:3号宋体;二级标题:小3号宋体;三级标题:4号宋体;正文:小4号宋体,1.5倍行距。页边距:上下左2.5cm、右2.0cm。图表要规范,清晰,有图名及表名。

3、封面格式统一(见最后一页)。

4、报告要求包含下列内容:

设计题目设计要求设计的作用目的设计方案系统硬件设计、系统软件设计(硬件设计要分模块电路设计及分析、软件设计要有程序流程图)、系统仿真与调试(调试过程中出现的问题及解决方法)、心得体会参考文献,以上不分章节,每一点作为一级标题。

5、课程设计报告(打印稿)应在设计结束后的下周一前交指导教师批阅,延迟不交者成绩记不及格。课程设计成绩应按教学大纲基本要求和相应评分细则进行评定和记载。成绩分为优秀、良好、中等、及格、不及格五个等级,优秀率一般不超过学生人数的15%。对不及格学生,应严格按照学院学分制与学籍管理实施细则的有关规定处理。

报告雷同者、报告内容文不对题者、格式混乱者,成绩记不及格!!!

                                     

报告内容提纲

    

一、设计题目

二、设计要求(包括设计内容描述)

三、设计作用与目的

四、所用设备及软件

五、系统设计方案

1系统总体设计(要有系统总体结构框图)

2.简要阐述系统工作原理

六、系统硬件设计(包含系统总体结构电路原理图及各部分电路原理图)

1.系统整体设计

2.各单元电路设计

七、系统软件设计(要有程序流程图)

1.主程序流程设计

2.子程序设计

八、仿真调试分析(仿真调试工具、方法、运行效果)

九、设计中的问题及解决方法

十、嵌入式系统学习心得

十一、参考文献

湖南文理学院

课程设计报告

课程名称:     嵌入式系统课程设计      

专业班级: 自动化12101班 学号(2位)

学生姓名:                           

指导教师:                          

完成时间:      20##年  月 日   

报告成绩:                           

        

 

湖南文理学院制

更多相关推荐:
嵌入式课程设计报告

福建工程学院嵌入式系统课程设计报告书题目基于S3C2440设备驱动及其界面设计班级姓名学号指导老师陈靖张平均李光炀2目录一设计课题4二设计目的4三设计任务及要求4四设计内容5五操作界面的生成7六操作界面调试9七...

嵌入式系统课程设计报告

嵌入式系统课程设计报告基于ARM的楼宇对讲系统设计摘要采用模块化设计方法设计出一款基于ARM微控制芯片和Linux操作系统的楼宇对讲系统,该对讲系统通过以太网与楼宇间的各室内机相连,实现了安装在楼道门口的终端机…

嵌入式系统课程设计报告模版

XXXX课程设计报告课程名称嵌入式系统设计题目专业班级学生姓名学生学号指导老师二一三年一月八日目录1概述111背景112设计目标213开发环境314关键技术52概要设计821软件结构822各功能模块设计103详...

嵌入式系统课程设计实验报告

7嵌入式系统课程设计必做部分学院电控学院专业通信工程设计名称IIC同步串行通讯1设计的目的1掌握S3C44B0IIC控制器的编程方法2编程实现串行EEPROM存储器24C16的数据存储和访问2设计的内容1学习S...

嵌入式课程设计报告(范例,含排版要求)

湘南学院华文行楷小初课程设计报告华文行楷60号字课程名称嵌入式系统原理二号楷体GB2312实验题目嵌入式操作系统的内存管理模拟专业09级网络工程班级2班姓名学号20xx141602指导老师钟梁院系湘南学院计算机...

嵌入式系统课程设计报告

广东工业大学华立学院课程设计论文课程名称嵌入式系统原理及应用教程题目名称IO控制及LED显示实验学生学部系艺术设计与计算机学部专业班级xxxxxxxxxxxxx学号xxxxxxxxxxxxx学生姓名xxxxxx...

嵌入式课程设计报告

嵌入式系统开发课程设计专周报告题目:具有日历功能的电子时钟系别及专业:计算机工程系计算机应用技术班级:10511学生姓名:XXX指导老师:XX完成时间:20XX-12-24/20XX-12-28目录前言....…

嵌入式系统课程设计报告

嵌入式系统课程设计报告一、课程设计目的本课程设计是在《嵌入式系统原理与应用》课程的基础上,通过软件编程及仿真调试的实践,进一步掌握嵌入式系统的原理和应用方法,是毕业设计前的一次重要实践,为今后从事嵌入式系统相关…

嵌入式系统课程报告

广东工业大学嵌入式系统课程报告嵌入式系统及基于ARMCORTEX的串口中断通信/程序查询通信学院:计算机学院专业:计算机科学与技术班级:计科四班姓名:***学号:**成绩:20XX年4月24日1、嵌入式系统定义…

嵌入式系统课程报告

广东工业大学嵌入式系统课程报告嵌入式系统及基于ARMCORTEX的串口中断通信程序查询通信学院自动化学院专业电力系统及其自动化班级13电力1班姓名蔡韪丞学号3113001056成绩20xx年4月24日目录1嵌入...

嵌入式课程报告

嵌入式系统及应用设计报告题目嵌入式Linux系统移植专业电子与通信工程姓名王文平学号1320xx0012一硬件设备介绍此次实验用的板子是友善之臂的Mini2440Mini2440是一款基于ARM9的开发板采用S...

嵌入式系统课程报告

华北水利水电学院课程报告课程名称嵌入式系统姓名学号班级专业日期智能手机上的嵌入式操作系统IOS系统和Android系统的对比摘要近年来智能手机已经完全普及在众多智能手机操作系统中IOS系统和Android系统无...

嵌入式系统课程设计报告(27篇)