嵌入式系统的设计报告

嵌入式系统的设计报告
嵌入式系统的设计报告

嵌入式操作系统报告学院

专业

题目LED、按键、LCD、MPU6050任务切换姓名学号

指导教师

日期2016 年12月10日

摘要

随着电子技术的发展,嵌入式技术成为当今计算机应的主流技术,嵌入式操作系统是嵌入式系统发展到一定阶段的产物,是为了满足日益复杂的嵌入式系统设计的要求而产生的。随着微处理器功能的不断提升,嵌入式操作系统的应用范围也变得越来越强大。对基于特定嵌入式操作系统上的软件设计研究己成为了近年来的热点,井且对于嵌入式操作系统在实际工程中的推广应用有着重要的意义。

本文使用蒲公英STM32F103开发板,利用Keil软件创建工程。移植UCOS系统内核,应用C语言编写程序。完成了四个任务的创建和相互调度:LED灯、按键、LCD屏幕显示、MPU6050加速度传感器数据采集,通过按键更改LED灯的显示效果、通过实时采集MUP6050传感器的数据,显示在LCD上,并用信号量和消息邮箱进行任务之间的信息传递。

关键词:UCOS-ii、嵌入式系统、STM32F103、keil

ABSTRACT

With the development of electronic technology, embedded technology has become the mainstream technology in the computer, the embedded operating system is the product of a certain stage of development of embedded system, is produced in order to meet the design requirements of the embedded system is becoming more complicated. With the continuous improvement of the function of the microprocessor, the application of embedded operating system becomes more and more powerful. The research of software design based on specific embedded operating system has become a hot spot in recent years, and it has important significance for the application of embedded operating system in practical engineering.

In this paper, the use of dandelion STM32F103 development board, the use of Keil software to create the project. Transplant UCOS system kernel, the application of C language program. Complete the construction of four tasks and scheduling: LED lights, buttons, LCD display screen, MPU6050 acceleration sensor data acquisition, change the LED lamp through the button display, through real-time acquisition of MUP6050 sensor data, display on the LCD, and the task of transmission of information between signal and message mailbox.

Key words: UCOS-ii, embedded system, STM32F103, Keil

Key words:

目录

1 绪论 (1)

1.1 研究的目的与意义 (1)

1.2 嵌入式系统概述 (1)

1.3 嵌入式操作系统特征及发展现状 (2)

2 u C/OS-II简介 (3)

2.1 u C/OS-II特点 (3)

2.2 u C/OS-II内核分析 (3)

2.2.1 临界段 (3)

2.2.2 任务定义及状态 (4)

2.2.3 任务控制块(OS TCB) (5)

2.2.4 任务调度 (5)

3 开发环境 (7)

3.1 开发环境 (7)

3.1.1 Keil简介 (7)

3.1.2 keil特点 (7)

3.2 硬件环境 (8)

3.2.1 蒲公英32F平台简介 (8)

3.2.2 32F103引脚图 (8)

3.2.3 蒲公英32F103开发板特点 (9)

4 程序分析 (10)

4.1 程序流程图 (10)

4.2 代码分析 (11)

4.2.1 lcd显示功能 (11)

4.2.2 按键功能 (11)

4.2.3 LED灯控制功能 (12)

4.2.4 加速度传感功能 (13)

4.2.5 在屏幕上显示传感数字 (13)

5 5运行结果 (14)

5.1 程序代码截图 (14)

5.2 实物图 (15)

6 心得体会 (15)

参考文献 (16)

致谢 (16)

1绪论

1.1 研究的目的与意义

随着单片机技术的普及和日益成熟,嵌入式系统已经无处不在、无时不刻地影响着人们的生活了。各种嵌入式产品的功能不断增强、精确程度不断提高、响应时间逐渐缩短,可靠性不断提高且成本不断降低。嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。简言之,嵌入式系统是根据应用的要求,将操作系统和功能软件集成于计算机硬件系统之中,从而实现了软件和硬件一体化的计算机系统。嵌入式系统一般不提供与终端用户交互的手段,具有小巧、高度自动化和响应速度快等特点。从7年代第一台微处理器的出现到现在,嵌入式系统的发展己经有二十几年的历史了,随着以计算机技术,通讯技术为主的信息技术的迅速发展和互联网技术的广泛应用,嵌入式系统的发展己显示出微型化和专业化的趋势。正是由于嵌入式系统的种种优越性,嵌入式系统自产生那天起便开始迅速的发展,如今嵌入式系统己成为计算机领域的一个重要的组成部分。

1.2 嵌入式系统概述

嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会( U.K. Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。

嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。

嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为“固件”。

1.3 嵌入式操作系统特征及发展现状

嵌入式操作系统井不是简单嵌入的操作系统,它与通常意义上的操作系统有一定的区别。嵌入式操作系统负责嵌入式系统的全部软、硬资源的分配、调度工作,控制井协调井发活动,它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。与通用的操作系统相比,

嵌入式操作系统具有如下一些特征:

(1)良好的移植性。由于嵌入式设备硬件平台的多样性,CPU芯片的快速更新,嵌入式操作系统要求具有更好的硬件适应性。嵌入式操作系统一般都支持广泛的运行平台,同时对每种微处理器都提供相应的编译器、连接器、调试器和加载工具以及性能测试工具等一系列工具链,从而形成从开发、调试到运行的一体化支持;

(2)小巧,要求占用更小的硬件资源。嵌入式系统所能提供的资源有限,所以嵌入式操作系统必须做的小巧以满足嵌入式系统硬件的限制。况且由于嵌入式系统自身的特点,它所需要的模块和功能更小巧,一些在桌面操作系统中的功能在嵌入式操作系统也就不适用了;

(3)实时性。大多数嵌入式系统工作在实时性要求很高的环境中,这就要求嵌入式操作系统必须将实时性作为一个很重要的方面来考虑。在信息时代,人们必须在有效的时间内对到来的信息进行处理,从而为进一步的决策分析争取时间。所以嵌入式操作系统必须体现一定的实时性;

(4)可装载和卸载。由于嵌入式系统需要根据应用的要求进行装卸,所以嵌入式操作系统也必须能够适应应用的需要进行装卸,对嵌入式操作系统的各个部分进行优化和删除。

(5)固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中使用的很少,因此嵌入式操作系统的文件管理功能应该被拆卸,取而代之的是各种内存文件系统;

(6)弱交互性。大多数嵌入式系统的工作过程不需要人的干预。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统调用命令向用户程序提供服务。

(7)强稳定性。嵌入式系统一旦开始运行就不需要人的过多干预。井且很多的嵌入式系统工作在很恶劣的工业生产的环境下。在这种条件下,要求嵌入式操作系统具有较高的稳定性;

(8)统一的接口。随着各种各样的嵌入式操作系统的出现人们有必要为嵌入式系统提供的接口进行约定,从而为嵌入式应用软件的设计者提供统一的服务接口,为嵌入式软件的运行提供平台的无关性。正是由于嵌入式操作系统所具有的这些鲜明的特点才使得其在嵌入式系统的开发中得到了广泛的应用,近年来全球嵌入式操作系统的发展空间更是正随着互联网、通讯和计算机市场的飞速增长而不断的扩大。但另一个方面,尽管国外许多公司也有对此类系统几十年的开发经验,可到目前为止在嵌入式系统上井无一个统一的国际标准,这就使得市场上出现了各种不同种类的嵌入式操作系统,这些操作系统各有特色,其采用的体系结构和技术手段也各有优点,应用范围也不尽相同。

2u C/OS-II简介

2.1u C/OS-II特点

u C/OS- II是由美国人Jean J. Labrosse编写的一个公开源代码的,微内核嵌入式实时操作系统,其实时性能和内核的健壮性早已经在大量的实际应用中得到了证实。它是由u C/OS升级而来的,并且做了很大的改进。下面简单介绍一下它的特点:

(1)公开源代码,且源代码中有详细的注释,源代码清晰易读且结构协调、组织有序,对实时操作系统的基本原理做了非常详细的解释,简单易懂。

(2)移植性好,u C/OS- II的源代码绝大部分是用ANSI C编写的,与微处理器相关的部分是用汇编语言写的,使得u C/OS- II便于移植到其它处理器上。

(3)可裁剪,用户可以根据自己的寄存器空间的大小和实际需要,只保留u C/OS- II 中应用程序需要的那些系统服务。

(4)稳定性和可靠性高,抗干扰能力强。

(5) u C/OS- II完全是占先式的实时内核。这意味着u C/OS- II总是运行就绪状态下优先级最高的任务。

(6) u C/OS- II每个任务的优先级必须是不同的,这意味着} C/OS- II不支持时间片轮转调度法(Round-robin Scheduling ) }Z} o

(7) u C/OS- II的函数调用与服务的执行时间具有其可确定性。

(8)u C/OS- II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。

2.2u C/OS-II内核分析

u C/OS- II内核负责管理各个任务,或者说为每一个任务分配CPU时间及其相关的资源,并且负责任务之间的通信。内核提供的基本服务是任务切换。使用实时内核可以大大简化应用系统的设计,因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。接下来从几方面对u C/OS-II的内核作出介绍:

2.2.1临界段

代码的临界段也称为临界区,指处理时不可分割的一段代码。一旦这部分代码开始执行,则不允许任何中断。为确保临界段代码的执行,在进入临界段之前要关中断,而临界段代码执行完以后要立即开中断。

和其它内核一样,u C/OS- II为了处理临界段代码需要关中断,处理完毕后再开中断。这使得u C/OS- II能够避免同时有其它任务或中断服务进入临界段代码。关中断的时间是实时内核开发商应提供的最重要的指标之一,因为这个指标影响用户系统对实时事件的响应性。u C/OS- II努力使关中断时间降至最短,但就使用u C/OS- II而言,关中断的时间很大程度上取决于微处理器的架构以及编译器所生成的代码质量。微处理

器一般都有关中断/开中断指令,用户使用的C语言编译器必须有某种机制能够在C中直接实现关中断/开中断地操作。u C/OS- II定义两个宏来关中断和开中断,以便避开不同C编译器厂商选择不同的方法来处理关中断和开中断。u C/OS- II中的这两个宏调用分别是:OS ENTER CRITICAL()和OS_ EXITes CRITICAL() 。

2.2.2任务定义及状态

u C/OS- II的任务是一个无限的循环,也称作一个线程,是一个简单的程序,该程序可以认为CPU完全只属该程序自己。一个任务可以有返回类型,有形式参数变量,但是任务是绝不会返回的。当任务完成以后,任务可以自我“删除”,即u C/OS- II不理会这个任务了,这个任务的代码也不会再运行。实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。u C/OS- II可以管理多达64个任务,其中空任务(IDLE)和统计任务(STATISTICS)被系统占用。任务在建立时必须被赋予不同的优先级,优先级的数值越小,则表示任务的优先级越高。u C/OS- II总是运行进入就绪状态的优先级最高的任务。

多任务运行的实现是靠CPU在许多任务之间转换、调度,CPU只有一个,轮番服务于一系列任务中的某一个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。在实时应用中,多任务化的最大特点是,开发人员可以将很复杂的应用程序层次化。使用多任务,应用程序将更容易设计与维护。u C/OS- II中任务的状态包括运行态、就绪态、等待状态、睡眠态和中断服务态。图2-1是u C/OS- II控制下的任务状态转换过程。在任一给定的时刻,任务的状态一定是这五种状态之一。

2.2.3任务控制块(OS TCB)

任务控制块(OS TCB)是一个数据结构,是用来描述任务的一些属性,包括任务标识号、任务优先级、任务状态信息、任务控制信息以及堆栈信息等。u C/OS- II中是采用任务控制块的方式对任务进行管理的。任务控制块在任务被建立时被初始化,当任务的CPU 使用权被剥夺时,u C/OS- II用任务控制块来保存该任务的状态。而当任务重新得到CPU使用权时,任务控制块能恢复任务到被中断前的状态,确保任务从中断的那一点继续执行下去。任务控制块全部驻留在RAM中。应用程序中可以有的最多任务数(OS一AXes TASKS )是在文件OS一FCzH中定义的。这个最多任务数也是u C/OS- II分配给用户程序的最多任务控制块的数目。将OS MAX TASKS的数目设置为用户应用程序实际需要的任务数可以减小RAM的需求量。所有的任务控制块都是放在任务控制块列表数组OSTCBTbI中的。在} u C/OS- II初始化的时候,所有任务控制块OS一CBs被链接成单向空任

务链表。当任务一旦建立,空任务控制块指针OSTCBFreeList指向的任务控制块便赋给了该任务,然后OSTCBFreeList的值调整为指向下链表中下一个空的任务控制块。一旦任务被删除,任务控制块就还给空任务链表。

2.2.4任务调度

在u C/OS- II中,最多支持63个任务,每个任务只能有独立的优先级,即不能有2个相同优先级的任务,系统也不支持时间片轮番调度。因此,Rhealstone方法的定义,uC/OS- II的实时性主要体现在抢占(Preemption)按照时间和中断等待时间(Latency ) u C/OS- II是一种基于优先级调度的占先式内核。在系统运行的过程中,可能发生任务调度的时机有:

(1)对任务操作的时候,包括:创建或者删除任务,挂起或者恢复任务,改变任务优先级。

(2)任务主动使用OSTimeDly函数延时的时候。

(3)发送(或者等待)信号量、邮箱、消息的时候。

(4)中断函数返回的时候。中断往往会使一个更高优先级任务处于就绪状态,包括使用信号量等或者直接恢复某个任务。所以,在系统退出中断的时候,就需要判断是否有更高优先级的任务处于就绪状态,如果有,则需要进行任务调度。

(5)给系统的任务调度器解锁的时候。在大多数情况下,u C/OS- II中断级的任务调度是按照如图2-2所示的流程进行的。其中Tr为系统的中断等待时间。Tp为系统的抢占时间。Ts为系统的中断响应与查找的时间,主要包括中断入口程序的执行,注册在系统中的中断向量的查找等。Td为执行中断处理所用的时间。Tw为系统判断并查找处于就绪状态下优先级最高的任务和中断级任务切换的时间。而Tc则可以认为满足:0≦Tc≦成系统的最长关中断时间。

当有多个中断产生的时候,如果因为中断的优先级低或者系统不允许中断嵌套,则u c/os- II的中断级任务调度将按照如图2-3所示的流程进行。

u C/OS- II是一个实时性比较强的多任务操作系统,很容易评估出系统调度的最长响应时间。每一个任务都是一个死循环。u C/OS-II V2.86 可以扩展至支持256个任务,除去系统自带的优先级被设置为最低的空闲任务

OSTask Idle()和一个u C/OS-II提供的统计任务,用户可以自己制定的任务多达254个。u C/OS-II内核通过一个被称为任务控制块(OS_TCB)的数据结构来完成任务的建立、调度、执行和删除操作。

u C/OS-II中每个任务都具备五种状态,当内核进行一次调度或者发生相关的事件时,任务就会在这五种状态之间转换,如图2-4所示。

图2.4uC/OS-II的任务就绪表

3开发环境

3.1 开发环境

3.1.1K eil简介

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。

3.1.2k eil特点

⒈Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

⒉与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,更为便捷。

3.2 硬件环境

3.2.1蒲公英32F平台简介

STM32F1系列属于中低端的32位ARM微控制器,该系列芯片是意法半导体(ST)公司出品,其内核是Cortex-M3。

该系列芯片按片内Flash的大小可分为三大类:小容量(16K和32K)、中容量(64K 和128K)、大容量(256K、384K和512K)。

芯片集成定时器,CAN,ADC,SPI,I2C,USB,UART,等多种功能。

其结构和硬件框图如图3-1,3-2所示:

图3-1蒲公英32F103开发板图3-2 32F103硬件框图

3.2.232F103引脚图

(1)LED灯电路

图3.3 LED输出端口图3.4 LED电路

(2)按键电路

图3.5按键输出端口图3.6按键电路

(3)LCD电路

图3.7 LCD输出电路图3.8LCD外围电路

(4)MPU6050电路

图3.9 MPU6050外围电路

3.2.3蒲公英32F103开发板特点

1、ARM最新的Cortex-M3内核。优先级抢占的中断控制器,支持中断自动嵌套,硬件完成现场保护与恢复,中断嵌套时,只需保护和恢复一次现场,即使在恢复现场的时候再次中断也不需要再次保护现场,只需6个clk的调整时间。

2、外设的引脚居然可以重影射

3、RAM可以通过位绑定技术按位来访问

4程序分析

4.1 程序流程图

4-1程序整体流程图

4.2 代码分析

4.2.1l cd显示功能

void TaskMessageLCD(void *pParam)

{

err=OS_ERR_NONE;定义异常,为传参数做准备

PUTword8x16(0,0,23,1);//x

PUTchar16x16(0,1,2); //轴

PUTword8x16(1,0,24,1);//y

PUTchar16x16(1,1,2); //轴

PUTword8x16(2,0,25,1);//z

PUTchar16x16(2,1,2); //轴

PUTword8x16(3,0,6,0);//g

PUTword8x16(3,1,18,0);//s

PUTword8x16(3,2,25,0);//z

PUTword8x16(3,3,25,0);//z

PUTchar16x16(3,3,0); //高

PUTchar16x16(3,4,1);//尚

代码解析:通过PUTchar16x16(a,b,c)定义字符,通过改变a,b的数值来改变数据在LCD 显示屏上的位置(a为X轴坐标,b为Y轴坐标)。改变C的排位。

PUTword8x16(a,b,c,d)为定义字母,通过改变A,B 的数据来改变在LCD显示屏上的位置,通过改变C的数值来获取A-Z的26个英文字母字模并显示,改变D在决定数据的大小写,0为小写字母,1为大写字母。

4.2.2按键功能

void UserTaskKEY(void *pParam)

{

key_i=0;//把按键置0

MyEventSem=OSSemCreate(0);//创建信号量,为了信号之间的通信做准备

while(1)

{

OSTimeDly(wait1); //延时为1个时钟滴答

if(!GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_15))//按下按键来控制pin=15

北京科技大学 嵌入式课程设计报告

《嵌入式控制系统》课程设计报告 学院 专业班级 姓名 学号 指导教师 _

目录 摘要 (4)

Abstract (4) 引言 (5) 带中断LED数码管驱动程序设计 (6) 1.设计内容 (6) 1.1 基本功能 (6) 1.2 扩展功能 (6) 1.3创新功能 (6) 2.实验设备 (6) 3.设计功能块说明 (6) 4.设计原理 (7) 4.1 LED发光原理 (7) 4.2 八位LED显示器 (8) 5. 实验步骤 (8) 5.1 驱动程序加载 (8) 5.2 添加控件 (8) 5.3基本功能的实现 (9) 5.4 使用指南 (10) 6. 实验结果 (10) 6.1 基本功能实现结果 (10) 6.2 LED数码管清零功能实现结果 (11) 6.3 中断计数功能实现结果 (12) 6.4 频率设置功能实现结果 (13) 7. 心得体会 (14) 附录 (16)

摘要 通过嵌入式控制系统课程的学习并结合本次课程设计,了解嵌入式系统的开发方法和流程,熟悉Intel XScale硬件平台及其应用处理机的使用方法,熟悉Windows CE嵌入式系统的基本原理、概念。能针对Intel XScale硬件平台、应用需求自行定制、优化WinCE操作系统,并独立编写可在Intel XScale嵌入式设备上运行的应用程序。 本课程设计主要实现了LED数码管的驱动程序,中断计数功能、LED显示清零功能、LED 数字显示频率设置的功能。 关键字:WINCE 中断数码管驱动 Abstract Learning Embedded Control Systems and combining the curriculum design can help us understand the Embedded Control Sy stems’ development methods and processes, and be familiar with Intel XScale Hardware platform and its usage. Know well the basic principles and concepts about WINCE. Design and optimize Windows Embedded Compact and compose Application software program that can operate on the Intel XScale Hardware platform. The main achievement of the curriculum design are drivers for LED, Interrupt Count, clean the results of the LED and set up the display frequency of the LED. Key words: WINCE Interrupt Digital Driving

ARM课程设计报告

摘要 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。 定时器是对外设时钟(PCLK)进行计数,根据4个匹配寄存器的设定,可以设置为匹配时产生中断或执行其他动作。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器的当前值,并可选择产生中断。 关键字:单片机 LPC2106 GPIO 定时器timer 实时时钟外部中断Int 目录 第一章原理与总体方案 (4) 1.1单片机简介 (4) 1.2 LPC2106简介 (5) 1.3单片机的选择 (7) 1.4 LPC2106芯片的选择及设计原理 (8) 第二章硬件设计 (9) 2.1 LED显示电路 (9) 2.2电路图整体设计 (9) 第三章调试 (12) 3.1调试及处理 (12) 第四章测试与分析 (14)

4.1Proteus软件介绍 (14) 4.2仿真结果 (15) 第五章结束语 (16) 5.1结束语 (16) 第1章原理与总体方案 本章阐述了本课题研究的背景,表述了单片机的发展、功能以及LPC2114的简单介绍。阐述了单片机的选择原理以及LPC2106的设计原理。 1.1数字单片机简介 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。 近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。 单片机的另外一个名称就是嵌入式微控制器,原因在于它可以嵌入到任何微型或小型仪器或设备中。目前,把单片机嵌入式系统和Internet连接已是一种趋势。但是,Internet一向是一种采用肥服务器,瘦用户机的技术。这种技术在互联上存储及访问大量数据是合适的,但对于控制嵌入式器件就成了"杀鸡用牛刀"了。要实现嵌入式设备和Int ernet连接,就需要把传统的Internet理论和嵌入式设备的实践都颠倒过来。为了使复杂的或简单的嵌入式设备,例如单片机控制的机床、单片机控制的门锁,能切实可行地和Internet连接,就要求专门为嵌入式微控制器设备设计网络服务器,使嵌入式设备可以和Internet相连,并通过标准网络浏览器进行过程控制。

嵌入式课程设计报告

嵌入式课程设计报告设计题目:电子密码锁

、 摘要 随着科技和人们的生活水平的提高,实现防盗的问题也变得尤为突出,传统机械锁构造简单,电子锁的保密性高,使用灵活性好。根据需要设计运用W90P170开发板,制作一款电子密码锁,密码锁通过键盘输入密码,通过在LCD的文字和图片显示当前密码锁的状态。实现设置密码,密码验证,错误密码自锁、图片显示的功能。 目录

一、选题意义及系统功能 (3) 二、硬件设计及描述 (4) 三、软件设计及描述 (5) 四、程序代码 (6) 五、课程设计体会 (11) 六、运行结果 (12) 七、心得体会 (12) 八、参考文献 (13) 九、附录 (13) 一、选题意义及功能描述 1、选题意义 电子密码锁是通过密码输入来控制电路或是芯片工作,从而控制机械的开关闭合、开锁的电子产品。随着科技提高和人们生活水平的提高,对电子密码锁的需求增加。电子密码做较传统的机械锁安全性能更高。 特点如下: (1)保密性好,编程量大,随机开锁的成功率几乎为零。

(2)密码可变,用户可以随时改变密码,防止密码被盗,同时也可以避免人员的更替而使锁的密级下降。 (3)误码输入保护,输入密码多次错误是,系统进行自锁。 (4)无活动零件,不会磨损,寿命长。 (5)使用灵活性好,无需佩戴钥匙,操作简单。 2、功能描述 基本功能: (1)从键盘输入任意6位数字作为密码,将这六位数字经过USI总线存储到Flash芯片中,设置密码完成。 (2)从键盘输入密码,比较键盘输入的密码与Flash中存储的密码是否相同。 (3)如果密码正确,则LED灯点亮;如果密码不正确,则LED灯闪烁,而且如果连续三次输入密码错误则系统锁定,不允许再次输入密码。 扩展功能: (1)首先显示“请输入密码:”,显示密码锁背景图片1。 (2)如果密码正确则显示“密码正确”,显示成功进入系统的背景图片2。 (3)如果密码不正确则显示“密码不正确,请重新输入:” (4)如果连续三次输入密码错误则显示“对不起,您已经连续三次输入密码错误,系统锁定”,显示图片1。

《嵌入式系统开发技术》设计报告

嵌入式系统开发技术 设计报告 组长: 成员: 中国石油大学(华东)计算机与通信工程学院计算机科学系 二0 年12 月

一、引言 OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列C 函数和少量C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。它的应用领域非常广泛,包括人机互动、物体识别、图像分割、人脸识别、机器视觉、汽车安全驾驶等。随着手机性能的不断提高,OpenCV往安卓上移植已经成为可能,安卓设备移植上OpenCV之后将能够进行复杂的图像处理和视频分析工作,人们不必拘泥于使用固定的设备进行图像以及视频的处理,从而增加了处理的灵活性。 本课程设计实现的就是OpenCV到安卓的移植以及在安卓上实现一个简单的图像处理应用。Android应用程序是通过Android SDK(Software Development Kit)利用Java编程语言进行开发,同时也可以通过JNI调用C动态库,不过这种开发方式存在技术障碍,伴随着Android NDK(Native Development Kit)的问世,使得“JA V A+C”的开发方式走向成熟。 二、总体设计 1、功能描述 本课程设计分为以下四个模块,各模块功能介绍如下: Android-OpenCV项目: OpenCV中大部分重要API在该项目中已经封装成了JA V A接口,为安卓上的OpenCV开发提供C、C++函数支持。 Android NDK: 它包括从C / C++生成原生代码库所需要的工具和build files,能够将一致的原生库嵌入可以在Android设备上部署的应用程序包文件(application packages files ,即.apk文件)中,支持所有未来Android平台的一些列原生系统头文件和库。在本课程设计中担任重要角色,包括交叉编译OpenCV源代码、编译测试程序等。 Cygwin: Windows下模拟Linux操作环境,在其中执行NDK编译。 Eclipse: Android开发环境,开发android程序,生成可执行的.apk文件,连接真机或虚拟机进行调试。 2、设计特色 本课程设计的特色在于成功的将android-opencv移植到eclipse开发环境中去,实现了在android设备开发图像处理、视频分析应用,提高了android设备的使用价值。编译环境采用Android NDK+Cygwin,方便开发者在windows环境下开发“java+c”程序。 3、体系结构

ARM课程设计报告GPIO—流水灯

目录 一、设计目的 (3) 二、设计原理 1、GPIO—流水灯 (3) 2、SPI (7) 3、定时器 (10) 4、实时时钟 (12) 三、所用仪器 (18) 四、EasyARM2131开发套件功能介绍 (18) 五、设计内容:万年历-定时器-流水灯-SPI 1、功能描述 (21) 2、流程图 (22) 3、程序设计 (22) 六、心得体会 (28) 七、参考文献 (29)

一、设计目的 1、根据要求,复习巩固ARM的基础知识。 2、掌握ARM系统的设计方法,特别是熟悉模块化的设计思想。 3、熟练掌握ARM软件和2131开发板的使用。 4、提高综合运用所学的理论知识独立分析和解决问题的能力; 二、设计原理 1、GPIO—流水灯 (1)LPC2131具有多达47个通用I/O 口(GPIO,General Purpose I/O ports),分别为P0[31:0]、 P1[31:16],其中,P0.24未用,P0.31仅为输出口。由于口线与其它功能复用,因而需要进行相关的管脚连接模块(PINSEL0、PINSEL1、PINSEL2)选择连接GPIO,然后通过IODIR进行输入/输出属性设置后才能操作。 当管脚选择GPIO 功能时,有IOSET、IOCLR和IOPIN 3 个寄存器用于控制GPIO 的使用。IOSET 用于口线置位,而IOCLR 则用于口线清零,IOPIN 则反映当前IO口的状态,读回IOSET 则反映当前IO口设定状态。 (2)GPIO的特性和应用 特性: 单个位的方向控制; 单独控制输出的置位和清零; 所有I/O口在复位后默认为输入。 应用: 通用I/O口 驱动LED或其它指示器 控制片外器件 检测数字输入 (3)GPIO引脚描述 GPIO管脚描述见表4.1。 表4.1 GPIO 管脚描述

嵌入式实验心得体会

嵌入式实验心得体会 嵌入式实验心得体会是计算机专业应该具备的常用知识,以下这篇范文整理个人对嵌入式系统的认识,和进行操作之后的个人体会,对操作的疑难的反思。下面是这篇嵌入式实验心得体会 嵌入式实验心得体会 学期开始,我们开始学习《嵌入式系统及应用》,由于初次接触嵌入式系统,感觉蛮难的,所以收获不是很大,很多的概念都比较模糊,等到学期结束开始做嵌入式课程设计时,真是茫然无从下手,自,从拿到设计主题后,我就从像热锅像上的蚂蚁,一个字“急”。最后实在没有办“法,逼着自己去学法 习,查资料,总算对嵌入式有了资浅层理解。浅 嵌入式系统本本身是一个相对模糊的定义义,一个手持的mp3和一个一pc104的微型工业业控制计算机都可以认为是嵌入是式系统。总体来说,嵌入式系统是“用于控,制,监视或者辅制 助操作机器器和设备的装备”。一个典典型的桌面linux系统统包括3个主要的软件层---linux-内核、cc库和应用程序代码。内核核是唯一可以完全控制硬件的层,内核驱动程序代件表应用程表序与硬件之间进行行会话。内核之上是c 库,,负责把posixapii转换为内核可以识别的形形式,然后调用内核,从应应用程序向内核传递参数。应用程序依靠驱动内核。来完成特定的任务。来在了解了基础知识之后,我了开始进行上机操作,当然开,,其中遇到很多的难题,很多东西都是第一次接触很,又没有别,人在旁边指导操作,完全凭借自己去摸操索索练习。其中的困难可想而知。然而坚持就是胜利而,,牙一咬眼一闭坚持做下去去,而通过本次实验,我感觉收获还是蛮多的。可感能我对于嵌入能式的知识学习的还是不太多,但是这习之外的东西收获颇丰。之

嵌入式系统设计课设报告分析解析

福州大学 《嵌入式系统设计课设》 报告书 题目:基于28027的虚拟系统 姓名: 学号: 学院:电气工程与自动化学院 专业:电气工程与自动化 年级: 起讫日期: 指导教师:

目录 1、课程设计目的 (1) 2、课程设计题目和实现目标 (1) 3、设计方案 (1) 4、程序流程图 (1) 5、程序代码 (1) 6、调试总结 (1) 7、设计心得体会 (1) 8、参考文献 (1)

1、课程设计目的 《嵌入式系统设计课设》是与《嵌入式系统设计》课程相配套的实践教学环节。《嵌入式系统设计》是一门实践性很强的专业基础课,通过课程设计,达到进一步理解嵌入式芯片的硬件、软件和综合应用方面的知识,培养实践能力和综合应用能力,开拓学习积极性、主动性,学会灵活运用已经学过的知识,并能不断接受新的知识。培养大胆发明创造的设计理念,为今后就业打下良好的基础。 通过课程设计,掌握以下知识和技能: 1.嵌入式应用系统的总体方案的设计; 2.嵌入式应用系统的硬件设计; 3.嵌入式应用系统的软件程序设计; 4.嵌入式开发系统的应用和调试能力 2、课程设计题目和实现目标 课程设计题目:基于28027的虚拟系统 任务要求: A、利用28027的片上温度传感器,检测当前温度; B、通过PWM过零中断作为温度检测A/D的触发,在PWM中断时 完成温度采样和下一周期PWM占空比的修正;PWM频率为1K; C、利用按键作为温度给定;温度给定变化从10度到40度。 D、当检测温度超过给定时,PWM占空比增减小(减小幅度自己设 定);当检测温度小于给定时,PWM占空比增大(增大幅度自己 设定); E、把PWM输出接到捕获口,利用捕获口测量当前PWM的占空比; F、把E测量的PWM占空比通过串口通信发送给上位机; 3、设计方案-----介绍系统实现方案和系统原理图 ①系统实现方案: 任务A:利用ADC模块通道A5获取当前环境温度。 任务B:PWM过零触发ADC模块,在PWM中断服务函数中,将当前环境温度和按键设定温度进行比较,并按照任务D的要求修订PWM占空比。

arm嵌入式linux安装课程设计心得

arm嵌入式linux安装课程设计心得 篇一:116709047陈俊松嵌入式Linux课程设计 福建农林大学金山学院电子信息类课程设计 课程名称:设计题目:姓名: 系: 专业:年级:学号:指导教师:职称: 嵌入式linux应用开发课程设计嵌入式linux Web服务器的设计 陈俊松信息与机电工程系电子信息工程2011级116709047 朱仕浪讲师 2014年11 月24 日 福建农林大学金山学院电子信息类 课程设计结果评定 目录 设计的目的

-------------------------------------------------------- 1 设计要求---------------------------------------------------------- 1 主要仪器设备(软硬件环境)---------------------------------------- 1 设计内容---------------------------------------------------------- 1 设计原理---------------------------------------------------- 1 总体方案设计------------------------------------------------- 3 程序设计---------------------------------------------------- 3 程序的调试和运行结果---------------------------------------- 7 总结-------------------------------------------------------------- 8 参考文献---------------------------------------------------------- 9 嵌入式linux Web服务器的设计 1. 设计的目的

嵌入式系统课程设计报告

湖北民族学院 信息工程学院 课程设计报告书 题目 :基于A RM的数字式万年历 课程:嵌入式系统课程设计 专业:电子信息科学与技术 班级: 03114411 学号: 031441119 学生姓名:田紫龙 指导教师:易金桥 2017年6 月20 日

信息工程学院课程设计任务书 学号031441119学生姓名田紫龙专业(班级)0314411 设计题目基于 ARM 的数字式万年历 1.能测量温度并且实时显示; 2.具有时间显示功能,能够显示年月日,时分秒,并且可以手动调节时间。 设 3. 具有 12 小时制和 24 小时制切换功能。 计 技 术 参 数 对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。温度采集 选用 DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602 液晶显 示模块,可以在LCD1602 上同时显示年、月、日、周日、时、分、秒,还具有 设 时间校准整点灯光提醒等功能。制作仿真和实物。 计 要 求 [1]苏平 . 单片机的原理与接口技术 [M]. 北京 : 电子工业出版社, 2006,1-113. [2]王忠民 . 微型计算机原理 [M]. 西安 : 西安科技大学出版社, 2003,15-55. [3]左金生 . 电子与模拟电子技术 [M]. 北京 : 电子工业出版社, 2004,105-131. [4]新编单片机原理与应用(第二版). 西安电子科技大学出版社, 2007.2 [5]张萌 . 单片机应用系统开发综合实例 [M]. 北京:清华大学出版社, 2007.7 [6] 朱思荣. 51 单片机实现公历与农历、星期的转换[Z].当当电子网 [7]李广弟 . 单片机原理及应用 [M] 北京航空航天大学出版社 ,2004 年 参[8] 王越明 . 电子万年历的设计 [J]. 黑龙江科技信息, 2004 年 考 资 料 2017年 6 月 20 日

嵌入式MINIQQ程序设计项目开发总结报告

编号: [嵌入式MiniQQ程序设计] 项目开发总结报告(GB8567——88) [公司名称]北京邮电大学 [作者] [日期]2015/05/18

目录 1.引言 (1) 1.1.编写目的 (1) 1.3.参考资料 (1) 2.实际开发结果 (1) 2.1.产品 (1) 2.2.基本流程 (2) 2.3.进度 (2) 2.4.费用 (2) 开发工作评价 (2) 2.5.对生产效率的评价 (3) 2.6.对技术方法的评价 (3) 2.7.出错原因的分析 (3) 3.经验与教训 (3)

1.引言 1.1.编写目的 为了便于用户使用我们的MiniQQ,现做出一个一个说明性文档,旨在对本组设计思想,实现的功能性能的分析,输入项、输出项,流程逻辑,接口,存储分配,关键程序代码,限制条件与测试计划等做一个的详细说明。这项详细的说明书也是以后编程人员修改本代码的主要线索,为非本组成员修改和提高该程序的功能和性能有效地提供了便利的信息。1.2.定义 本文件中用到的专门术语包括窗口,控件,套接字 1.3.参考资料 [1] 《嵌入式实验指导书1~6》 [2] 《嵌入式Linux系统开发技术详解--基于ARM》,孙纪坤,人民邮电出版社. [3] 《嵌入式GUI开发设计—基于MiniGUI》ISBN 978-7-121-08606-9 2009.5 电子工业出版社 [4] 《ARM体系结构与编程》,杜春雷,清华大学出版社 [5] 《嵌入式Linux程序设计案例与实验教程》俞辉主编,ISBN 978-7-111-26327-2 2009.3 机械工业出版社 2.实际开发结果 2.1.产品 具有登录和聊天功能的miniQQ

arm课程设计报告

课程设计报告 (嵌入式接口技术) 学院:电气工程与自动化学院 题目:基于ARM的多路数据采集系统设计 专业班级:自动化113班 学号:35号 学生姓名:翁志荣 指导老师:温如春 2013 年12月19日

摘要 数据采集系统用于将模拟信号转换为计算机可以识别的数字信号.该系统目的是便于对某些物理量进行监视.数据采集系统的好坏取决于他的精度和速度.设计时,应在保证精度的情况下尽可能的提高速度以满足实时采样、实时处理、实时控制的要求.在科学研究中应用该系统可以获得大量动态;是研究瞬间物理过程的重要手段;亦是获取科学奥秘的重要手段之一. 本次设计是基于ARM的多路数据采集系统,主控器能够对模拟信号产生的各路数据,通过数据采集系统进行采集并在主控器的程控下显示。 关键字:数据采集;模数转换;ARM;实时采样。 Abstract Data acquisition system for digital signal to analog signal conversion can be identified by computer. The system is aimed at facilitating monitoring of some physical quantity. Data acquisition system is good or bad depends on the precision and speed. When the design, should be in the case of ensuring accuracy as much as possible to meet the high speed real-time sampling, real-time processing, the requirement of real time control. The application of this system in scientific research can obtain a large number of dynamic; is an important means to study the instantaneous physical process; and it is also one of the important means of access to the mysteries of Science. Keyword s: data acquisition; ARM; real-time sampling analog-to-digital conversion.

嵌入式系统课程设计

《嵌入式系统设计与应用》课程设计 题目嵌入式系统的实践教学探讨 1.嵌入式系统设计与应用课程的内容概述 1.1 内容概述 本课程适用于计算机类专业,是一门重要的专业课程。它的任务是掌握嵌入式系统的基本概念;掌握嵌入式处理器 ARM 体系结构,包括ARM总体结构、存储器组织、系统控制模块和I/O外围控制模块;掌握ARM指令集和Thumb指令集;掌握ARM汇编语言和C语言编程方法;了解基于ARM 的开发调试方法。它的目的是了解和掌握嵌入式处理器的原理及其应用方法。 1)介绍嵌入式系统开发的基础知识,从嵌入式计算机的历史由来、嵌入式系统的定义、嵌入式系统的基本特点、嵌入式系统的分类及应 用、嵌入式系统软硬件各部分组成、嵌入式系统的开发流程、嵌入 式技术的发展趋势等方面进行了介绍,涉及到嵌入式系统开发的基 本内容,使学生系统地建立起的嵌入式系统整体概念。 2)对ARM技术进行全面论述,使学生对ARM技术有个全面的了解和掌握,建立起以ARM技术为基础的嵌入式系统应用和以ARM核为基础 的嵌入式芯片设计的技术基础。 3)ARM指令系统特点,ARM 指令系统,Thumb 指令系统,ARM 宏汇编,ARM 汇编语言程序设计,嵌入式 C 语言程序设计。 1.2实践教学探讨 在IEEE 计算机协会2004年6月发布的Computing Curricula Computer Engineering Report, Ironman Draf t 报告中把嵌入式系统课程列为计算机工程学科的领域之一,把软硬件协同设计列为高层次的选修课程。美国科罗拉多州立大学“嵌入式系统认证”课程目录包括实时嵌入式系统导论、嵌入式系统设计和嵌入式系统工程训练课程。美国华盛顿大学嵌入式系统课程名称是嵌入式系统

广东海洋大学嵌入式系统课程设计

《嵌入式系统》设计报告学生姓名 Adao (学号) 所在学院数学与计算机学院 所在班级计科1141 指导教师 成绩

目录 1.课程设计目的 (2) 2.系统分析与设计 (2) 3.系统结构图 (2) 4.实现过程 (3) 5.实验效果 (5) 6.代码分析 (6) 7.系统测试出现的问题和解决的方案 (7) 8.系统优缺点 (7) 9.心得体会 (8) 参考文献 (8)

双按键控制流水灯系统开发 1.课程设计目的: 本次课程设计目的主要是对之前所学习的STM32的某个实验进行更深入的学习与了解,弄懂引脚,端口等相关的配置,对实验原理和具体实现有一定的理解,能做到自己通过原理图和使用库函数等把功能实现出来。我选择的是EXTI-外部中断实验并加以整合,具有一定实用功能的系统,可以对外提供服务。 2.系统分析与设计: 本课程设计所定义的系统主要功能为,通过两个按键KEY1(PA0)、KEY2(PC13)可以实现对流水灯进行同步控制,即一个开关控制产生的灯的状态可以被另一个开关去改变,按键控制需要对两个按键的端口,引脚等进行相关配置,并在两个引脚的中断服务程序中完成对流水灯状态同步控制的操作。本还想通过使用SysTick(系统滴答定时器)功能对流水灯进行精确定时,但由于时间比较匆促,最终没有实现。 3.系统结构图: 图3-1

4.实现过程: 1、GPIO的输入模式有上拉输入模式、下拉输入模式、浮空输入模式和模拟输入模式。GPIO 中的每个引脚可以通过配置端口配置寄存器来配置它的模式。每个引脚的模式由寄存器的4个位控制。 上拉/下拉输入模式:1000 浮空输入模式:0100 模拟输入模式:0000 2、STM32的所有GPIO都可以用作外部中断源的输入端。STM32的中断由中断控制器NVIC 处理。STM32的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表面它的优先级别越高。抢占属性会出现嵌套中断。 3、编写NVIC_Configuration()函数配置NVIC控制器的函数。 static void NVIC_Configuration(uint8_t IRQ) { NVIC_InitTypeDef NVIC_InitStructure; //将NVIC中断优先级分组设置为第1组 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); /* 配置中断源 */ NVIC_InitStructure.NVIC_IRQChannel = IRQ;//设置中断线 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//设置抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//设置响应优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //对NVIC中断控制器进行初始化 } 4、调用GPIO_EXTILineConfig()函数把GPIOA、Pin0和GDIOC、PIN13设置为EXTI输入线。 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13); 5、填写EXTI的初始化结构体,然后调用EXTI_Init()把EXTI初始化结构体的参数写入寄存器。编写EXTI_PA0_Config()函数完成各种需要的初始化。 void EXTI_Pxy_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; /* config the extiline clock and AFIO clock */

嵌入式操作系统课程设计报告

嵌入式系统设计报告 系(院):计算机科学学院 专业班级:计科11201 姓名:微尘 学号: 201203300 指导教师:王剑 设计时间:2015.6.22 - 2015.7.3 设计地点:4教硬件实验室

目录 一、课程设计的目的 (2) 1.1设计目的 (2) 1.2任务介绍 (2) 二、实验及开发环境 (3) 2.1 实验室环境 (3) 2.2 个人计算机课后开发环境 (3) 三、总体设计 (3) 四、详细设计 (4) 4.1 Windows CE系统编译与安装 (4) 4.2 编程驱动LED和数码管显示正确的信息 (7) 4.3 编程驱动电机运转 (8) 4.4 个人设计小程序 (10) 五、课程设计小结 (17) 5.1 设计小结 (17)

一、课程设计的目的 1.1设计目的 本次课程设计的目的是了解嵌入式系统、嵌入式操作系统,掌握基于嵌入式系统的应用开发基本知识。了解嵌入式操作系统Windows CE的特点,Windows CE的主要模块及各自的功能。掌握嵌入式操作系统Windows CE 的配置、编译、移植方法。了解Visual Studio .NET开发环境,掌握基于Windows CE平台的应用程序设计方法。 1.2任务介绍 以下任务需基于实验室的XSBase270开发平台完成 1.嵌入式操作系统Windows CE平台的搭建 使用Platform Builder编译出自己的Windows CE 5.0操作系统,然后根据实验提供的EBOOT引导程序将编译出的Windows CE 5.0系统安装(刷入)到实验平台。 2.IO接口控制-七段数码管的LED显示控制程序 了解Windows CE下I/O访问机制的原理。了解LED和七段数码管的显示和控制原理。掌握Windows CE下访问硬件I/O寄存器的方法。 3.IO接口控制-点击控制设计 了解Window CE下I/O访问机制和原理。掌握Windows CE下访问硬件I/O寄存器的方法,以及使用Visual Studio .NET对硬件设备编程的一般方法。 4.编写实用小程序并在指定的Windows CE平台上运行调试(选做) 这一部分我选择的是在Windows CE平台上使用Visual Studio 2005基于.NET利用C#语言编写一个简易计算器小程序。从而体验对嵌入式设备编程与普通PC编程的区别。

基于ARM9的人脸识别系统 嵌入式报告 课程设计

嵌入式课程设计报告 学院信息电子技术 专业通信工程 班级 学号 姓名 指导教师 2017年07月01日

基于ARM9的人脸识别系统 一、引言 人脸识别背景和意义 人脸识别系统的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在90年后期,并且以美国、德国和日本的技术实现为主;人脸识别系统成功的关键在于是否拥有尖端的核心算法,并使识别结果具有实用化的识别率和识别速度;“人脸识别系统”集成了人工智能、机器识别、机器学习、模型理论、专家系统、视频图像处理等多种专业技术,同时需结合中间值处理的理论与实现,是生物特征识别的最新应用,其核心技术的实现,展现了弱人工智能向强人工智能的转化语音识别、体形识别等,而指纹识别、虹膜识别等都不具有自然性,因为人类或者其他生物并不通过此类生物特征区别个体。 人脸识别具有这方面的特点,它完全利用可见光获取人脸图像信息,而不同于指纹识别或者虹膜识别,需要利用电子压力传感器采集指纹,或者利用红外线采集虹膜图像,这些特殊的采集方式很容易被人察觉,从而更有可能被伪装欺骗。 二、系统设计 1、硬件电路设计 (1)ARM9处理器 本系统所采用的硬件平台是天嵌公司的TQ2440开发板,该开发板的微处理器采用基于ARM920T内核的S3C2440芯片。 ARM9对比ARM7的优势:虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz 以上。指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。 (2)液晶显示屏 为显示摄像头当前采集图像的预览,系统采用三星的320x240像素的液晶屏,大小为206.68cm。该液晶显示屏的每个像素深度为2bit,采用RGB565色彩空间。 (3)摄像头 摄像头采用市场上常见的网眼2000摄像头,内部是含CMOS传感器的OV511+芯片。CMOS传感器采用感光元件作为影像捕获的基本手段,核心是1个感光二极

09嵌入式网络协议及其应用开发课程设计报告1

课程设计说明书 学生信息 系别计算机工程学院专业计算机科学与技术 班级姓名学号 课程设计信息 课程名称嵌入式软件开发课程设计 课程设计题目基于QT的直流电机设计 课程设计时间学期第 1~16 周 小组情况指导教师 批改情况 成绩评阅教师批改时间2012年5月 6 日2011-2012学年第2 学期

目录 1.课程设计内容 (3) 2.课程设计目的 (3) 3.背景知识 (3) 4.工具/准备工作 (3) 5.设计步骤与方法 (3) 5.1.步骤 1:设计直流电机控制界面 (3) 5.1.1. 步骤1.1:添加控件事件代码 (4) 5.2. 步骤2:编译程序 (5) 5.2.1. 步骤2.1:redhat主机下编译程序 (5) 5.2.2. 步骤2.2:在ARM板下测试直流电机界面–嵌入式下运行 (6) 6.软件测试截图 (7) 7.设计结果及分析 (7) 8.设计结论 (7) 9.问题及心得体会 (7) 10.对本设计过程及方法、手段的改进建议 (8) 11.任务分配 (8) 12.参考文献【1】C++ GUI Qt4编程(第2版) 兰切特 (Jasmin Blanchette)、萨默菲尔德(Mark Summerfield)、闫锋欣、曾泉人子工业出版社2008 (8) 13.课程设计评价(教师) (8)

课程设计报告 1. 课程设计内容 本课程设计的内容是设计一个基于QT的直流电机设计,支持电机正反转以及设置参数以控制转速。 2. 课程设计目的 考察自己对课程的掌握程度,以及自己实际的动手能力,编程能力。 3. 背景知识 1.嵌入式linux下驱动程序的基本编译方法 2.掌握直流电机控制基本原理 3.QT软件的应用 4. 工具/准备工作 硬件: 安装有QT的PC机一台 软件: WindowsXP操作系统 VMware Workstation 7.0 Red Hat QT 4.6.3 5. 设计步骤与方法 5.1.步骤 1:设计直流电机控制界面 利用QT Creator,ui文件来编写一个良好的用户交互界面:

嵌入式--计算器--实验报告

计算器设计实验报告 一、实验设计主要分工 04009320 文斌:算法设计,LCD显示。 04** 张希:界面(按钮控件)设计,文件内容读取。 共同调试、完善设计。 二、程序设计实现功能效果 (1)支持整数、小数基本加减乘除运算; (2)有优先级的判别计算。优先级由高到低一次为括号运算、乘除运算、加减运算。(3)支持键盘输入和触摸屏输入; (4)能读取指定目录下文本内容(内容为计算表达式)并计算得出结果,将内容和结果显示在LCD上。 程序任务开始后,等待键盘或触摸屏的输入。输入键有0~9数字键、+-*/()运算符、del退格键、clear清屏键、read读指定目录文本内容并计算键、enter'='键、‘.’小数点键。 每当有字符输入时,触摸屏相应键显示“AAA”,100ms后恢复原相应按键符号,同时LCD 屏幕上显示相应字符。当输入'del'键时,屏幕显示去掉最后一位字符。当输入'='号后,得出计算结果,结果显示于表达式的下一行。若是除零错误,则结果显示为“/0ERROR!”。若有非法字符(触摸点不能识别为设计按键符则视为非法字符),则结果输出为“Syntax Error!!”。若表达式有运算符连续输入,则忽略前面的运算符,只取最后一位运算符计算,正常显示数字结果。当输入'clear'键时,情况显示区域。当输入'read'键时,从指定目录文本文件中读取表达式并计算。将表达式内容和计算结果显示在LCD上。 三、程序算法实现 1、计算算法 首先将输入的0~9数字、+-*/()运算符的内容存储于一个全局变量cal[number]中, 表达为中缀表达式。用void str2repol()函数,将输入字符串cal[number]转换成逆波 兰表达式并存于全局数组char repol[maxs]中。str2repol()函数中缀表达式转成逆波兰 后缀表达式算法如下: (1)首先构造一个运算符栈stack[maxs],此运算符在栈内遵循越往栈顶优先级越高的 原则。

嵌入式系统课程设计报告书

成绩学生课程实践能力考查 题目:温度按键设定、显示、报警系统设计 课程名称:嵌入式系统开发专业班级: 学生学号: 学生姓名: 考查地点: 考查时长: 4小时 所属院部: 指导教师: 2017 — 2018学年第 2 学期 金陵科技学院教务

2017-2018学年第2学期《嵌入式系统开发》实践能力考核 任课教师签名: 日期: 温度按键设定、显示、报警系统设计 要求: 1、读取DS18B20温度,在液晶上实时显示,并显示上、下限,初始值上限32,下限26。 2、通过按键可以设置环境温度的上限与下限, WK_UP键按下调节上限,再按下调节下限,再按下调节上限…… KEY1按下加1; KEY0按下减1, 根据上限与下限判断当前温度有没有超出范围。 3、当温度超过上限,LED1隔1秒亮一次。超过下限,LED2隔1秒亮一次。(也可自定义报警方式) 4、串口波特率一律用9600bps。 液晶显示的信息: STM32 test name: xxxxxxxxx Maximum is 32C,Minimum is 26 C The temperature is 29 C,now! (xxxxx就是自己的名字拼音) 目录: 第一章.系统要求 1、1设计要求

1、2设计方案 第二章.硬件设计 2、1开发板原理图 2、2 DS18B20模块 2、3按键模块 2、4 LCD显示模块 2、5 LED 模块 第三章.软件设计 3、1程序流程图 3、2程序部分代码 3、2、1主函数、main、c 3、2、2 LED 函数led、c 3、2、3温度代码 s18b20、c 3、2、4键盘代码key、c 第四章、实物效果图 第五章、课程总结 第一章.设计要求及方案 1、1设计要求 1、读取DS18B20温度,在液晶上实时显示,并显示上、下限,初始值上限32,下限26。 2、通过按键可以设置环境温度的上限与下限, WK_UP键按下调节上限,再按下调节下限,再按下调节上限…… KEY1按下加1; KEY0按下减1, 根据上限与下限判断当前温度有没有超出范围。

嵌入式程序设计实验报告

实验一开发环境的搭建与配置 【实验目的】 1)熟悉嵌入式Linux开发平台。 2)掌握嵌入式Linux开发平台的开发环境搭建与配置。 3)了解minicom配置串口通信参数的过程。 4)了解嵌入式Linux的启动过程。 5)掌握程序交叉编译运行及调试的一般方法。 【实验内容】 1)连接实验开发板与宿主机。 2)在虚拟机中的CentOS(宿主机)搭建开发环境。 3)在宿主机中配置minicom。 4)分析嵌入式Linux的启动过程。 5)在宿主机上编写简单的C语言程序并用交叉编译工具进行编译,然后传输到目标机上运行。 6)在宿主机上编写简单的C语言程序并用交叉编译工具进行编译,用gdbserver进行远程调试。 【实验步骤】 连接实验开发板,对虚拟机进行设置 1)首先把实验开发板打开,用网线和串口线连接宿主机,并连接电源(注意这时不要拨动实验 开发板的开关按钮)。 2)在桌面上点击打开vmware 软件,选择“编辑虚拟机设置”,如下图所示:

图1 3)进入虚拟机配置界面后把网络连接方式设置为“桥接方式”,如图2所示: 图2

4)添加串口,如下图所示: 图3 5)完成串口的添加后,选择“OK”,完成对虚拟机的设置。如下图所示:

图4 6)选择虚拟机的“Edit”、“Virtual Network Editor...”,如下图所示:

图5 7)进入虚拟机网络参数设置界面后对VMnet0进行设置(注意这里桥接的网卡应选择与实验开 发板相连接的那块儿网卡),然后点击“Apply”、“OK”如下图所示:

图6 8)上述设置完成后启动CentOS(CentOS的用户名为“root”,密码为“xidianembed”)。 工具链的配置 1)在CentOS的根目录下创建一个名为“EELiod”的目录,把实验中要用到的文件(主要是一 些rpm包)拷贝到该目录下。(可以用U盘、WinSCP等工具进行,此处不再做详细说明)。 2)交叉编译工具链位于/opt/buildroot-2011.02/output/host/usr目录下,进入工具链的bin目录下, 可以看到一些编译工具,这些工具将会在之后的交叉编译过程中使用到。

相关文档
最新文档