搜档网
当前位置:搜档网 › 可本地编译的嵌入式计算机视觉试验系统设计-同济大学电信学院试验

可本地编译的嵌入式计算机视觉试验系统设计-同济大学电信学院试验

可本地编译的嵌入式计算机视觉试验系统设计-同济大学电信学院试验
可本地编译的嵌入式计算机视觉试验系统设计-同济大学电信学院试验

ISSN1006-7167 CN31-1707

/TRESEARCH AND EXPLORATION IN LABORATORY 第36卷第8期

Vol.36No.8

2017年8月

Aug.2017

·计算机技术应用·

可本地编译的嵌入式计算机视觉实验系统设计

彭澎,陈耀,徐志宇,余有灵

(同济大学电子与信息工程学院,上海201804)

摘要:开发了一套具有本地编译能力的低成本模块化嵌入式计算机视觉实验系

统“CV-Innovator”。硬件上,该系统的嵌入式处理器采用全志A20双核ARM

Cortex-A7SoC(System on Chip,片上系统),通过彩色CMOS摄像头OV7670采集实

时图像,18cm TFT-LCD显示屏和USB键盘鼠标提供友好的人机交互。软件上,为

“CV-Innovator”构建了嵌入式Linux操作系统,可在嵌入式Linux环境下开发和运

行基于OpenCV和Qt的计算机视觉应用程序。进行了样机试制,并设计了一个人

脸检测示例应用程序,其结果表明“CV-Innovator”能实现预期功能,可应用于我国

高校计算机、电子信息及自动化等相关专业的本科实验教学。

关键词:嵌入式系统;计算机视觉;实验系统

中图分类号:TP37文献标志码:A文章编号:1006-7167(2017)08-0133-04

Development of a Native Buildable Embedded Computer

Vision Experimental System

PENG Peng,CHEN Yao,XU Zhiyu,YU Youling

(College of Electronics&Information Engineering,Tongji University,Shanghai201804,China)

Abstract:This paper develops a native buildable low-cost modular embedded computer vision experimental system named“CV-Innovator”.In the hardware aspect,this experimental system was composed as follows:an ARM Cortex-A7 dual-core SoC Allwinner A20used as embedded processor;an OV7670CMOS digital camera module collects real-time image;a7-inch TFT-LCD monitor as well as a set of keyboard and mouse with USB port provide friendly human-machine interaction.In the software aspect,we build an embedded Linux OS for“CV-Innovator”,so the OpenCV and Qt based computer vision application program can be developed and run under the embedded Linux.When a prototype was made,we designed a face detection example application program.The example results validated the effectiveness of “CV-Innovator”,and system can be used in practice teaching of the computer science,electronic information,automation,etc.

Key words:embedded systems;computer vision;experimental system

收稿日期:2016-11-19

基金项目:国家自然科学基金(71401125);上海市重点课程建设项目,同济大学第11期实验教改项目、第8期精品实验项目。

作者简介:彭澎(1994-),男,云南昆明人,硕士生,从事嵌入式系统开发、电子系统设计研究。

Tel.:021-********;E-mail:1631552pp@tongji.edu.cn

通信作者:徐志宇(1982-),男,山西太原人,博士,高级工程师,硕导,从事智能自动化应用研究。

Tel.:021-********;E-mail:xuzhiyu@tongji.edu.cn 0引言

嵌入式系统是为特定应用而设计的专用计算机系统,如今被广泛应用于电信、汽车电子、医疗、多媒体及航空等领域[1]。嵌入式系统作为一门软硬结合、实践性强的重要专业课程,被我国大多数高校的电子电信类专业纳入本科生培养计划,但是在嵌入式系统课程的教学中普遍存在以下不足之处[2-4]:

(1)实验操作死板,学生参与度低。多为验证性

第36卷

实验,即让学生依照实验指导书的步骤,机械地将已有

的实验代码烧写到芯片中运行并观察结果。导致缺乏

探索性,学生为完成任务而实验,不利于工程能力和创

新思维的培养。

(2)实验设备陈旧,与行业主流脱节。传统的嵌

入式系统试验箱体积庞大、价格昂贵,因此难以及时更

新换代,以至于很多高校仍用较落后的ARM7或

ARM9进行实验教学。该现象不利于学生了解行业前

沿和主流的技术,实验中学到的技能难以在创新项目

和学科竞赛中应用。

(3)实验内容分散,未形成体系。C\C++程序设

计、微机原理、嵌入式系统及数字图像处理等专业课程

的实验教学相对独立,缺乏综合性的实践环节。不利

于学生对课程之间内在关联的理解和对于嵌入式系统

相关技术的全局认知。

计算机视觉(Computer Vision,CV)作为一门综合

性学科,在如今的信息时代已被广泛用于军事、工业和

生活之中[5]。考虑到嵌入式系统的发展趋势,并针对

上述的问题,将嵌入式系统与计算机视觉主题相结合,

设计了一套低成本、模块化的嵌入式计算机视觉实验

系统“CV-Innovator”。该系统以嵌入式处理器为核心,

运行嵌入式Linux OS,用户在OS环境下借助OpenCV

和Qt等开源函数库开发计算机视觉应用程序,处理

CMOS摄像头采集的图像并将结果显示在TFT-LCD

显示屏上。

1硬件设计

“CV-Innovator”实验系统以模块化为指导思想进

行硬件设计。如图1所示,嵌入式处理器模块是整个

系统的核心部分,并负责系统电源管理及与外围模块

的数据交换。嵌入式处理器模块具有多种接口:通过

USB接口连接WiFi模块和键盘鼠标;通过I2C总线读

写摄像头内部寄存器,同时通过CSI(CMOS Sensor

Interface)接口接收图像像素数据;通过LVDS(Low-

Voltage Differential Signaling)接口连接TFT-LCD模块

图1“CV-Innovator”的硬件结构示意图

1.1嵌入式处理器模块

目前用于处理计算机视觉任务的主流嵌入式硬件平台有DSP[6]、FPGA[7]和ARM Cortex-A系列SoC[8]等。基于ARM Cortex-A系列SoC的硬件平台虽然计算速度不如前二者,但其开发门槛较低、通用性较好,且与嵌入式系统理论教学内容联系密切,因此有利于学生在短时间内掌握。

本文的嵌入式处理器模块采用市售的核心板和自主设计的扩展板相结合的模式。如图2所示,核心板由双核ARM Cortex-A7SoC全志A20、1GB DDR3内存、4GB eMMC存储器、以太网MAC芯片和电源管理芯片等组成,通过两组100-pin排针引出了SoC的众多接口。经测试,该核心板的SoC最高可在1.104 GHz的主频下稳定运行

图2全志A20嵌入式处理器核心板

1.2摄像头模块

“CV-Innovator”主要针对计算机视觉应用开发而设计,摄像头的成像质量对计算机视觉处理的效果具有较大的影响。考虑到主要用于教学目的,摄像头的选取既要保证成像质量,又需要有成熟的内核驱动的支持及完善的文档说明。综合以上考虑,本文在全志A20的摄像头支持列表里选择了市面上最为常见的OV7670摄像头模块。OV7670是一款彩色CMOS图像传感器,拥有640x480有效像素,最高帧率30帧/s,经实测能满足本文的功能需求。

1.3人机交互模块

本文设计的是能够进行本地开发的嵌入式系统,也就是让实验人员直接在嵌入式系统上编写和调试程序,为了使系统的使用体验接近PC,采用USB无线键盘鼠标作为输入设备。在系统的设计过程中,考虑了3种显示方案:①PC显示器;②VNC远程桌面;③TFT-LCD。

其中,方案①通过HDMI接口连接普通PC显示器具有最好的显示效果,但该方案违背了低成本和使用便捷的设计初衷。方案②VNC远程桌面显示需要依赖另一台PC,且配置过程较为繁琐,不适合作为本科生教学实验系统使用。本文最终采用方案③,即采用18cm TFT-LCD模块作为显示设备,该模块分辨率为1024x600,通过LVDS接口连接嵌入式处理器模块。

431

第8期

彭澎,等:可本地编译的嵌入式计算机视觉实验系统设计

1.4WiFi 模块

为了使系统具有联网功能,加入了市售USB WiFi

模块,该模块基于瑞昱RTL8188方案,带宽为150Mb /s 。由于该模块体积小巧,通过SMT 工艺贴装在嵌入式处理器模块的扩展板上,由板上的线路连接到核心板的USB-HOST 接口。通过该模块连接WiFi 热点,使

系统能够浏览网页、使用包管理器为Linux 安装软件或开发TCP /IP 网络应用等。

2软件开发

嵌入式软件开发通常有交叉编译和本地编译两种

方式,交叉编译步骤繁琐,但适用于各种硬件资源有限的场合。本地编译可采用命令行的文本编辑器和编译工具(如Vim +CMake ),也可采用图形化IDE (如Eclipse ,Qt Creator )。为了降低使用难度,避免学生对嵌入式系统产生畏惧心理,本系统的设计力求保留嵌入式系统核心特色的同时接近在PC 上的开发体验,因此采用图形化IDE 进行本地编译的开发方式。本系统的嵌入式处理器集成了Mali400MP2GPU ,拥有1GB 内存容量,具备用图形化IDE 进行本地编译的硬

件条件。经测试,

本系统在LXDE Ubuntu 的环境下能够流畅地运行Qt Creator 。

“CV-Innovator ”的Linux 用户空间软件构架如图3所示,基于本系统的实验内容即图中最顶层的应用程

序开发。应用程序通过Qt 构建图形用户界面程序框架,调用OpenCV 提供的类和函数实现图像处理和计

算机视觉算法,

其他的功能(如串口通信、TCP /IP 网络通信)需要直接调用相应的Linux API 实现

图3“CV-Innovator ”的用户空间软件构架

3样机制作与软件开发

样机外观如图4所示,其主要参数见表1

图4“CV-Innovator ”实验系统样机

表1“CV-Innovator ”参数表

本文开发了一个符合图3所示构架的人脸检测示

例应用程序,并成功在样机上运行和测试。该程序为C ++语言编写,调用V4L2(Video for Linux 2)API 从

摄像头采集图像,

并在GUI 界面中显示;利用Viola-Jones 检测器[9]对实时图像进行人脸检测,若检测到人脸,则打印图像中人脸区域的坐标。

人脸检测,即采用一定的策略对图像进行全局搜索,利用分类器确定其中是否含有人脸,如果有则返回人脸区域的坐标和大小等信息。本示例程序采用的Viola-Jones 检测器是一种类Haar 特征boost 筛选式级

联分类器,

这种算法不仅快速,而且也适用于大多数具有纹理的近似刚体[9]

Viola-Jones 检测器在OpenCV 3.0中被封装为CascadeClassifier 类,其成员函数load

从xml 文件中读取分类器数据,成员函数

detectMultiScale 对输入图像进行人脸检测。由于人脸检测要求以灰度图像作为输入,预处理阶段进行了RGB 图像到灰度图像的颜色空间转换和针对灰度图像的直方图均衡化等操作。示例应用程序实现了基于Qt 的图形界面,运行在“CV-Innovator ”实验系统中如图5所示。

图5

示例应用程序的图形界面

改变目标的大小、姿态以及光照条件,分别对示例应用程序进行了人脸检测的鲁棒性测试,图6截取了部分成功检出人脸的运行结果。该试验说明,

Viola-Jones 检测器对目标的光照条件变化具有较强的鲁棒性,却在目标旋转和部分遮挡条件下的检测性能稍差,一旦目标旋转和遮挡超过图6(c ) (f )所示的程度,

就几乎不能成功检出。Viola-Jones 检测器对目标具有缩放不变性,但为了提高检测速度,示例应用程序忽略

5

31

第36

(a)

标准目标(b)

目标较小(c)

轻微旋转

(d)

轻微旋转(e)

部分遮挡(f)

部分遮挡

(g)

弱光照(h)

强光照(i)光照不均匀

图6示例应用程序在不同条件下检出人脸

了小于50?50像素人脸区域的搜索。

除了“CV-Innovator”实验系统,本文还将人脸检测

示例应用程序移植到JZ2440开发板和树莓派3B卡片

电脑中运行。表2上半部分简要列出了“CV-

Innovator”、JZ2440开发板和树莓派3B的硬件配置,下

半部分列出了示例应用程序中被调用OpenCV函数的

平均运行耗时(图像分辨率均为352?288像素)。

由表2可得,执行一次完整的人脸检测过程,

“CV-Innovator”需要136.38ms,帧率可达7.3帧/s;树

莓派3B仅需53.69ms,帧率可达18.6帧/s;而采用典

型ARM9SoC的JZ2440开发板则超过2s。因此,就

性能而言,“CV-Innovator”的ARM Cortex-A7构架虽与

更加先进的64bit ARM Cortex-A53有一定差距,但相

比ARM9具有较大优势。

表2“CV-Innovator”同JZ2440及树莓派3B的对比

4结语

本文开发了一套可本地编译的嵌入式计算机视觉

实验系统“CV-Innovator”。硬件以全志A20双核SoC

和OV7670彩色CMOS摄像头为核心,以18cm TFT-

LCD、USB键盘鼠标等为人机交互。软件基于嵌入式

Linux OS,借助Qt和OpenCV构建计算机视觉相关的

应用程序。样机制作及人脸检测示例应用程序的测试

证实了实验系统的有效性。

“CV-Innovator”解决了传统高校嵌入式系统教学

模式中的一些不足:体积小巧、成本低廉、易于使用,兼

顾课堂教学亦可用作快速方案验证与原型开发,与验

证性实验相比具有趣味性和探索性;相较于ARM7、

ARM9、ARM11,实验系统使用的双核ARM Cortex-A7

构架更先进、性能更强大,且嵌入式平台实现的视觉反

馈控制在机器人、无人机、智能安防监控等前沿领域有

应用前景,具有新颖性和实用性;综合运用了嵌入式系

统、数字图像处理、程序设计、自动控制、计算机网络等

专业知识与技能,具有综合性和连贯性。

参考文献(References):

[1]施乐平,杨征宇,马宪民,等.ARM嵌入式系统综述[J].中国测

试,2012,38(z):14-16.

[2]冯源,刘晓虎,夏立.基于ARM平台的嵌入式技术综合设

计实验教学[J].实验室研究与探索,2014,33(9):205-235.

[3]罗勇,李高杰.基于NFS的嵌入式系统ARM实验教学平台设

计[J].实验室研究与探索,2015,34(10):89-107.

[4]鄢秋荣,王玉皞,王艳庆,等.面向软硬件协同设计的嵌入式系

统教学改革与实践[J].实验室研究与探索,2016,35(6):

190-193.

[5]陆志伟,王明革,赵瑞海.计算机视觉技术的研究与应用[J].数

字技术与应用,2016(3):109.

[6]XU Fen,ZENG Jian-jun,ZHANG Yun-long.Design of a DSP-based

CMOS imaging system for embedded computer vision[C]//2008

IEEE Conference of Cybernetics and Intelligent System,2008:

430-433.

[7]Luca Maggiani,Claudio Salvadori,Matteo Petracca,et al.

Reconfigurable FPGA architecture for computer vision application in

smart camera networks[C]//Seventh ACM/IEEE International

Conference of Distributed Smart Cameras,2013:1-6.

[8]张涛,王建魁,张国山,等.基于Cortex-A8的嵌入式车牌识别

系统设计[J].电子设计工程,2015,23(9):167-170.

[9]Paul Viola,Michael Jones.Rapid object detection using a boosted

cascade of simple features[C]//Computer Vision and Pattern

Recognition,2001:511-518.

[10]郭磊,王秋光.Adaboost人脸检测算法研究及OpenCV实现

[J].哈尔滨理工大学学报,2009,14(5):123-126.

[11]陈国荣,向毅.“嵌入式软件和系统”专业教学改革思路探索

[J].重庆科技学院学报(社会科学版),2009(12):203-204.

[12]王宝珠,刘伟.基于ARM11的视频图像中运动物体检测跟踪

系统[J].电子设计工程,2012,20(24):168-174.

[13]方华,郭静,田敬北.基于OpenCV的嵌入式图像处理平台

的构建[J].无线互联科技,2015(3):53-54.

[14]汪洋,李垚,黄鲁.基于Qt和OpenCV的无线视频监控系

统[J].微型机与应用,2015(10):67-69.

[15]姚宇乐,陈强,张九卫,等.基于ARM920T的嵌入式图像处理

平台搭建及应用[J].计算机系统应用,2016(7):208-212.631

嵌入式系统综合实验一

嵌入式系统综合实验一

学号: 装 订 线 实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:综合实验一dht11和人体感应传感器 实验类型:验证型 同组学生姓名:孙凡原 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1.掌握字符设备驱动程序的基本结构和开发方法 2.掌握用户空间调用设备驱动的方法 3.掌握用户和内核的交互 二、实验内容和原理 专业:测控技术与仪器 姓名:颜睿

装订 线1.编写温湿度传感器DHT11驱动,传输打印温湿度信息 2.编写人体感应传感器驱动,控制LED灯亮灭 原理: 温湿度传感器DHT11: 1.引脚图 实际使用传感器没有NC引脚 2.数据采集 a.数据总时序 用户主机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发送响应信号,送出40bit 的数据,幵触发一次信采集。

b.主机发送起始信号 连接DHT11的DATA引脚的I/O口输出低电平,且低 电平保持时间不能小于18ms,然后等待DHT11 作出 应答信号。 装 线 订 c.检测从机应答信号 DHT11 的DATA 引脚检测到外部信号有低电平时, 等待外部信号低电平结束,延迟后DHT11 的DATA 引脚处于输出状态,输出80 微秒的低电平作为应答信 号,紧接着输出80 微秒的高电平通知外设准备接收数 据。

装 订线 d.接收数据 (1)数据判定规则 位数据“0”的格式为:50 微秒的低电平和26-28 微秒的高电平,位数据“1”的格式为:50 微秒的低电平加70微秒的高电平。 接收数据时可以先等待低电平过去,即等待数据线拉高,再延时60us,因为60us大于28us且小于70us,再检测此时数据线是否为高,如果为高,则数据判定为1,否则为0。 (2)数据格式 一次传送40 位数据,高位先出 8bit 湿度整数数据+ 8bit 湿度小数数据+8bit 温度整

嵌入式系统及应用 实验大纲

《嵌入式系统及应用》课程实验 一、实验课程的性质、目的和任务 性质:《嵌入式系统及应用》课程是自动化专业的专业基础课程,本实验课是该课程教学大纲中规定必修的实验教学内容。 目的和任务:通过实验环节来巩固和加深学生对嵌入式系统的理解,使学生掌握MCS51单片机和ARM的基本原理和应用技术。通过熟悉MCS51开发环境和ARM集成开发环境,使学生掌握嵌入式系统开发的一般规律和方法。在集成开发环境下,进行系统功能程序的编写和调试的训练,掌握嵌入式系统软硬件调试的一般方法和系统设计的能力。 二、实验内容、学时分配及基本要求

三、考核及实验报告 (一)考核 本课程实验为非独立设课,实验成绩占课程总成绩的15%,综合评定实验成绩。(二)实验报告 实验报告应包括: 实验名称 实验目的 实验内容与要求 设计思路(如:分析、程序流程图等) 实验步骤 实验代码(含必要注释) 实验结果分析 实验小结(本题调试过程中遇到的问题和解决方法、注意事项、心得体会等)注:综合型实验需写出系统功能、设计过程 实验报告的要求: 实验报告以文本形式递交,实验报告要书写规范、文字简练、语句通顺、图表清晰。 四、主要仪器设备 硬件:微型计算机;嵌入式系统开发平台。 软件:Keil C51;ADT 五、教材及参考书 教材

[1] 高锋.单片微型计算机原理与接口技术(第二版).北京:科学出版社,2007 [2] 自编.嵌入式系统及应用 参考书 [1] 王田苗.嵌入式系统设计与实例开发.北京:清华大学出版社,2003 [2] 陈赜.ARM9 嵌入式技术及Linux高级实践教程.北京:北京航空航天大学出版社,2005 [3] 李忠民等.ARM嵌入式VxWorks实践教程.北京:北京航空航天大学出版社,2006

嵌入式系统设计实训报告

上海海洋大学 嵌入式系统设计项目实训报告 (2016- 2017第_1_学期) 专业:______计算机科学与技术_________________ 实训项目:____嵌入式应用——电子相册______ __ 实训时间:__2016_______年__12___月___26___日 实训成员:_________孙嘉晨1351127____________ _________周力1351137______________ __________________________________ __________________________________ 指导老师:________池涛_____________________ 计算机科学技术系 2015年11月制

一、实训目的 通过电子相册的制作,了解S3C2440芯片的构造,了解外围SDRAM及NANDFLASH 的存储结构。学会运用定时器中断及通过LCD显示图片,加强自身对嵌入式的理解,提升自身的实践能力。 二、实训内容 以S3C2440芯片为核心,通过外围SDRAM及NANDFLASH存储实现照片的存储,结合定时器中断,实现LCD显示图片,完成简易电子相册的设计。 三、实训设备 硬件:mini2440硬件平台 软件:bmp2h.exe软件进行图片转换 CodeWarrior for ARM Developer Suite软件 四、实训设计方案 (包括项目功能需求分析,方案设计,完成时间规划) 需求分析: 在上世纪末本世纪初,电子相册呈现迅速发展的势头,普及型数码相机的分辨率由200万象素增长到现在的800—1500万象素,价格也由300美元左右下降到现在的120美元左右。随着数码相机的日益普及,作为一种以数字照片的保存、回放和浏览为核心功能的产品——电子相册自然迎合了消费者的需求。 方案设计: 软件设计:代码包含2个模块,LCD模块包含两个文件,进行图片的显示与编辑;Timer 模块包含6个文件,其中timer.c和timer.h文件完成定时器的初始化,interrupt.h和interrupt.c 文件完成定时器中断函数的初始化,isrservice.h和isrservice.c文件完成定时器中断处理,pic.c 和pic.h等文件是由图片生产的C语言数组文件 硬件方面选择了S3C2440为核心的架构。基于ARM的微处理器具有低功耗、低成本、高性能等特点,ARM采用RISC(精简指令集计算机)架构和流水线结构,使用了大量的寄存器,具有极高的工作效率。其中,RISC架构具有如下特点:固定长度的指令格式,指令归整、简单,基本寻址方式只有2~3种,使用单周期指令,便于流水线操作。因此选择此硬件方案的优势有如下: (1)系统芯片功能强大,实现的功能多,对于新的多媒体格式支持性好,只需要安装更新的软件; (2)硬件电路简单,可采用标准电路,不需耗费过多的资源(人力,资金等); (3)可以在硬件上增加模块,留作二次开发使用,极为方便; (4)S3C2440是一个比较成熟的芯片,技术积累齐全; (5)S3C2440支持丰富的存储卡接口。 完成时间规划:第一天分析实训项目实现过程,完成软件方面内容,编写代码。 第二天实现硬件分析,完成硬件连接,对项目进行测试。 第三天完成实训内容,提交报告。 五、实训项目实现

嵌入式系统实验报告

实验报告 课程名称:嵌入式系统 学院:信息工程 专业:电子信息工程 班级: 学生姓名: 学号: 指导教师: 开课时间:学年第一学期

实验名称:IO接口(跑马灯) 实验时间:11.16 实验成绩: 一、实验目的 1.掌握 STM32F4 基本IO口的使用。 2.使用STM32F4 IO口的推挽输出功能,利用GPIO_Set函数来设置完成对 IO 口的配置。 3.控制STM32F4的IO口输出,实现控制ALIENTEK 探索者STM32F4开发板上的两个LED实现一个类似跑马灯的效果。 二、实验原理 本次实验的关键在于如何控制STM32F4的IO口输出。IO主要由:MODER、OTYPER、OSPEEDR、PUPDR、ODR、IDR、AFRH和AFRL等8个寄存器的控制,并且本次实验主要用到IO口的推挽输出功能,利用GPIO_Set函数来设置,即可完成对IO口的配置。所以可以通过了开发板上的两个LED灯来实现一个类似跑马灯的效果。 三、实验资源 实验器材: 探索者STM32F4开发板 硬件资源: 1.DS0(连接在PF9) 2.DS1(连接在PF10) 四、实验内容及步骤 1.硬件设计 2.软件设计 (1)新建TEST工程,在该工程文件夹下面新建一个 HARDWARE文件夹,用来存储以后与硬件相关的代码。然后在 HARDWARE 文件夹下新建一个LED文件夹,用来存放与LED相关的代码。 (2)打开USER文件夹下的test.uvproj工程,新建一个文件,然后保存在 LED 文件夹下面,保存为 led.c,在led.c中输入相应的代码。

(3)采用 GPIO_Set 函数实现IO配置。LED_Init 调用 GPIO_Set 函数完成对 PF9 和 PF10 ALIENTEK 探索者 STM32F407 开发板教程 119 STM32F4 开发指南(寄存器版) 的模式配置,控制 LED0 和 LED1 输出 1(LED 灭),使两个 LED 的初始化。 (4)新建一个led.h文件,保存在 LED 文件夹下,在led.h中输入相应的代码。 3.下载验证 使用 flymcu 下载(也可以通过JLINK等仿真器下载),如图 1.2所示: 图1.2 运行结果如图1.3所示:

(完整word版)嵌入式系统设计与应用

嵌入式系统设计与应用 本文由kenneth67贡献 ppt文档可能在W AP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 课程名称:课程名称:嵌入式系统设计与应用 总学时:其中讲课36学时,上机实践环节12 36学时12学时总学时:其中讲课36学时,上机实践环节12学时教材:嵌入式系统设计教程》教材:《嵌入式系统设计教程》电子工业出版社马洪连参考书:参考书:1、《嵌入式系统开发与应用》北航出版社、田泽编著. 嵌入式系统开发与应用》北航出版社、田泽编著. 2、《ARM体系结构与编程》清华大学出版社杜春雷编著ARM体系结构与编程体系结构与编程》嵌入式系统设计与实例开发—ARM ARM与C/OS3、《嵌入式系统设计与实例开发ARM与μC/OS-Ⅱ》清华大学出版社王田苗、魏洪兴编著清华大学出版社王田苗、ARM嵌入式微处理器体系结构嵌入式微处理器体系结构》4、《ARM嵌入式微处理器体系结构》北航出版社、马忠梅等著. 北航出版社、马忠梅等著. 张石.ARM嵌入式系统教程嵌入式系统教程》5、张石.《ARM嵌入式系统教程》.机械工业出版2008年社.2008年9月 1 课程内容 绪论:绪论: 1)学习嵌入式系统的意义2)高校人才嵌入式培养情况嵌入式系统设计(实验课)3)嵌入式系统设计(实验课)内容安排 第1章嵌入式系统概况 1.1 嵌入式系统的定义1.2 嵌入式系统的应用领域及发展趋势1.3 嵌入式系统组成简介 第2章嵌入式系统的基本知识 2.1 2.2 2.3 嵌入式系统的硬件基础嵌入式系统的软件基础ARM微处理器的指令系统和程序设计ARM微处理器的指令系统和程序设计 2 第3章 3.1 3.2 3.3 基于ARM架构的嵌入式微处理器基于ARM架构的嵌入式微处理器ARM 概述嵌入式微处理器的组成常用的三种ARM ARM微处理器介绍常用的三种ARM 微处理器介绍 第4章 4.1 4.2 4.3 4.4 4.5 4.6 嵌入式系统设计 概述嵌入式系统的硬件设计嵌入式系统接口设计嵌入式系统人机交互设备接口嵌入式系统的总线接口和网络接口设计嵌入式系统中常用的无线通信技术 3 第5章嵌入式系统开发环境与相关开发技术 5.1 5.2 5.3 5.4 5.5 6.1 6.2 6.3 6.4 概述嵌入式系统的开发工具嵌入式系统调试技术嵌入式系统开发经验嵌入式系统的Bootloader Bootloader技术嵌入式系统的Bootloader技术μC/OS-II操作系统概述C/OS-II操作系统概述ADS开发环境ARM ADS开发环境C/OS-II操作系统在ARM系统中的移植操作系统在ARM μC/OS-II操作系统在ARM系统

南邮嵌入式系统B实验报告2016年度-2017年度-2

_* 南京邮电大学通信学院 实验报告 实验名称:基于ADS开发环境的程序设计 嵌入式Linux交叉开发环境的建立 嵌入式Linux环境下的程序设计 多线程程序设计 课程名称嵌入式系统B 班级学号 姓名 开课学期2016/2017学年第2学期

实验一基于ADS开发环境的程序设计 一、实验目的 1、学习ADS开发环境的使用; 2、学习和掌握ADS环境下的汇编语言及C语言程序设计; 3、学习和掌握汇编语言及C语言的混合编程方法。 二、实验内容 1、编写和调试汇编语言程序; 2、编写和调试C语言程序; 3、编写和调试汇编语言及C语言的混合程序; 三、实验过程与结果 1、寄存器R0和R1中有两个正整数,求这两个数的最大公约数,结果保存在R3中。 代码1:使用C内嵌汇编 #include int find_gcd(int x,int y) { int gcdnum; __asm { MOV r0, x MOV r1, y LOOP: CMP r0, r1 SUBLT r1, r1, r0 SUBGT r0, r0, r1 BNE LOOP MOV r3, r0 MOV gcdnum,r3 //stop // B stop // END } return gcdnum; } int main() { int a; a = find_gcd(18,9);

printf("gcdnum:%d\n",a); return 0; } 代码2:使用纯汇编语言 AREA example1,CODE,readonly ENTRY MOV r0, #4 MOV r1, #9 start CMP r0, r1 SUBLT r1, r1, r0 SUBGT r0, r0, r1 BNE start MOV r3, r0 stop B stop END 2、寄存器R0 、R1和R2中有三个正整数,求出其中最大的数,并将其保存在R3中。 代码1:使用纯汇编语言 AREA examp,CODE,READONL Y ENTRY MOV R0,#10 MOV R1,#30 MOV R2,#20 Start CMP R0,R1 BLE lbl_a CMP R0,R2 MOVGT R3,R0 MOVLE R3,R2 B lbl_b lbl_a CMP R1,R2 MOVGT R3,R1 MOVLE R3,R2 lbl_b B . END 代码2:使用C内嵌汇编语言 #include int find_maxnum(int a,int b,int c)

嵌入式系统综合实验一

实验名称: 姓名: 学号: 装 订 线 P.1 实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:综合实验一dht11和人体感应传感器 实验类型:验证型 同组学生姓名:孙凡原 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1.掌握字符设备驱动程序的基本结构和开发方法 2.掌握用户空间调用设备驱动的方法 3.掌握用户和内核的交互 二、实验内容和原理 1.编写温湿度传感器DHT11驱动,传输打印温湿度信息 2.编写人体感应传感器驱动,控制LED 灯亮灭 原理: 温湿度传感器DHT11: 1.引脚图 实际使用传感器没有NC 引脚 2.数据采集 a.数据总时序 用户主机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发 专业:测控技术与仪器 姓名:颜睿 学号:3130103850 日期:2018.4.28 地点:创客空间

装订线送响应信号,送出40bit 的数据,幵触发一次信采集。 b.主机发送起始信号 连接DHT11的DATA引脚的I/O口输出低电平,且低电平保持时间不能小于18ms,然后等待DHT11 作出应答信号。 c.检测从机应答信号 DHT11 的DATA 引脚检测到外部信号有低电平时,等待外部信号低电平结束,延迟后DHT11 的DATA引脚处于输出状态,输出80 微秒的低电平作为应答信号,紧接着输出80 微秒的高电平通知外设准备接收数据。 d.接收数据 (1)数据判定规则 位数据“0”的格式为:50 微秒的低电平和26-28 微秒的高电平,位数据“1”的格式为:50 微秒的低电平加70微秒的高电平。 接收数据时可以先等待低电平过去,即等待数据线拉高,再延时60us,因为60us大于28us且小于70us,再检测此时数据线是否为高,如果为高,则数据判定为1,否则为0。

嵌入式系统设计实验四

实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:实验四C 语言裸机编程 实验类型:验证型 同组学生姓名:__孙凡原_______ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 ? 初步了解C 运行库 ? 初步了解gcc arm 常用编译选项 ? 了解ARM 中断处理过程 二、实验内容和原理 ? 编写C 裸机代码实现跑马灯,通过控制Timer 中断实现 ? 通过控制uart 串口进行调试打印 三、主要仪器设备 树莓派、PC 机 四、操作方法和实验步骤 1 通过定时器产生中断,控制gpio ,实现跑马灯 2 控制uart 控制器,产生调试打印。 五、实验数据记录和处理 1.主程序arm.c 注释 //包含头文件 #include #include #include #include "rpi-aux.h" #include "rpi-armtimer.h" #include "rpi-gpio.h" #include "rpi-interrupts.h" #include "rpi-systimer.h" #include "rpi-led.h" /** Main function - we'll never return from here */ void kernel_main( unsigned int r0, unsigned int r1, unsigned int atags ) 专业:测控技术与仪器 姓名:颜睿 学号:3130103850 日期:2018.3.28 地点:创客空间

嵌入式系统——实验1

《嵌入式系统设计(实验课)》内容安排 《嵌入式系统设计(实验课)》是《嵌入式系统设计》课程的一个重要环节。通过实验,学生可以对嵌入式系统的设计与开发过程有更深地体会。实验课共八次,每次2学时,实验内容结合课程内容,介绍一般的实验开发流程和软件硬件开发环境,并辅之以典型的嵌入式程序设计实例,使学生掌握基本的嵌入式软件开发技能。大量的具有实际应用背景的实验,更将理论与实践结合起来,使实验内容更加生动。 实验报告要求 一、实验名称: 说明:本次实验的名称 二、实验目的: 说明:本次实验的主要目的,参考每次的实验指导书 三、实验环境: 说明:实验用到的硬件软件环境。 四、实验内容与步骤: 说明:实现实验目的而进行的实验内容,如果有步骤要求则简要列出步骤 五、实验报告总结: 说明:对本次实验的总结, 1.画出主函数的程序流程图, 2.重写主程序.或者:自拟一个新的应用,参照本次实验的主程序,重新设计主程序并给出详尽注释。 3.其他,本次实验得到了什么?收获是什么?有些什么别的想法? 六、建议与意见: 说明:对于此次实验内容或在实验过程中有任何问题或建议,以及对于改善实验效果有什么建议,均可提出。 在书写实验报告的过程中,主要是帮助自己回顾和总结实验。重点放在第五部分,前四项可以十分简要地列写,第六项有则提出,无则不写。

实验一嵌入式微处理器系统的开发环境 一、实验环境 PC机一台 软件: ADS 1.2集成开发环境一套 二、实验目的 1.了解嵌入式系统及其特点; 2.熟悉嵌入式系统的开发环境和基本配置并能编写简单的汇编程序 三、实验内容 1.嵌入式系统的开发环境、基本配置 2.使用汇编指令完成简单的加法实验 四、实验步骤 (1)在D:\新建一个目录,目录名为experiment。 (2)点击 WINDOWS 操作系统的“开始|程序|ARM Developer Suite v1.2 |Code Warrior for ARM Developer Suite”启动Metrowerks Code Warrior,或双击“ADS 1.2”快捷方式启动。启动ADS 1.2 如图1-1所示: 图1-1启动ADS1.2 (3) 在CodeWarrior 中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮, 也可以在“File”菜单中选择“New…”菜单。这样就会打开一个如图1-2 所示的对话框。选择【File】->【New…】,使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为D:\experiment。 图1-2 新建文件 在这个对话框中为用户提供了7 种可选择的工程类型:

嵌入式系统设计性实验报告

嵌入式系统设计性实验报告 水温控制系统 院别:控制工程学院 专业:自动 学号:5090633 姓名:邱飒飒 指导老师:孙文义 2012年6月8日

嵌入式系统设计性实验报告 作者:邱飒飒班级:50906 学号:5090633 摘要:在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。其中,温度控制也越来越重要。在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而大大的提高产品的质量和数量。因此,单片机对温度的控制问题是工业生产中经常会遇到的控制问题.该实验设计基于飞思卡尔MC9S12DG128开发板平台,根据实验任务要求,完成了基于单片机的水温自动控制系统的设计该实验设计基于飞思卡尔MC9S12DG128开发板平台,根据实验任务要求,完成了水温自动控制系统的设计。 关键字:水温控制单片机MC9S12DG128 一、系统设计的功能 1.1 水温控制系统设计任务和要求 该系统为一实验系统,系统设计任务: 设计并制作一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。 水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。同时满足以下要求: (1)温度设定范围为40~90℃,最小区分度为1℃,标定温度≤1℃。 (2)环境温度降低时(例如用电风扇降温)温度控制的静态误差≤1℃。 (3)用十进制数码管显示水的实际温度保留一位小数。 (4)采用适当的控制方法(如数字PID),当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。 (5)温度控制的静态误差≤0.2℃。 (6)从串口输出水温随时间变化的数值。 1.2 水温控制系统部分 水温控制系统是一个过程控制系统,组成框图如下所示,有控制器、执行器、被控对象及其反馈作用的测量变送组成。 图1 控制系统框图 1.3 系统总体功能分析 本系统是一个简单的单回路控制系统,为了实现温度的测量及自动控制,根据任务要求及要求,系统由单片机系统,前向通道,后向通道,及人机通话四个模块构成。总体框图如图2 所示。

嵌入式系统实验报告

实验一系统认识实验 一、实验目的 学习Dais软件的操作,熟悉程序编写的操作步骤及调试方法。 二、实验设备 PC计算机一台,Dais-52PRO+或Dais-PRO163C实验系统一套。 三、实验内容 编写程序,将80h~8Fh共16 个数写入单片机内部RAM 的30h~3Fh空间。 四、实验步骤 1.运行Dais软件,进入集成开发环境,软件弹出设置通信端口对话框(如图2-1-1), 请确保实验装置与PC正确连接,并已打开实验装置电源,使其进入在待命状态。 这里选择与实验装置实际相连的通信端口,并单击“确定”。如通信正确则进入Dais 软件主界面,否则弹出“通信出错”的信息框(如图2-1-2),请检查后重试。 图2-1-1设置通信端口对话框图2-1-2通信错误信息框 2.通信成功后,单击菜单栏“设置”→“仿真模式”项打开对话框,选择需要设置型 号、程序/数据空间。这里我们将型号设置为“MCS-51实验系统”,外部数据区 设置为“系统RAM”,用户程序区设置为“片外(EA=0)”,如图2-1-3所示,最 后单击“确定”按钮保存设置。

图2-1-3设置工作方式对话框 3.工作方式设置完毕后,单击菜单栏“文件”→“新建”项或按Ctrl+N组合键(建 议单击工具栏“”按钮)来新建一个文件,软件会出现一个空白的文件编辑窗口。 4.在新窗口中输入程序代码(A51\2_1.ASM): ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R1,#30H ;片内RAM首地址 MOV A,#80H ;写入数据初值 MOV R7,#16 ;循环变量 LOOP1: MOV @R1,A ;写数据到片内RAM INC R1 ;地址增量 INC A ;数据+1 DJNZ R7,LOOP1 ;循环变量-1,不为0继续 SJMP $ ;结束 END 5.单击菜单栏“文件”→“保存”项(建议单击工具栏“”按钮)保存文件。若 是新建的文件尚未命名,系统会弹出文件保存对话框(如图2-1-4),提示用户选择文件保存的路径和文件名,再单击“保存”按钮。

嵌入式系统设计实验二

实验报告 课程名称:嵌入式系统设计指导老师:马永昌成绩:________________ 实验名称:嵌入式系统的启动实验类型:验证型同组学生姓名:__孙凡原_______ 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 ?初步了解嵌入式系统的开发流程 ?初步了解嵌入式系统的启动流程 ?掌握Linux内核编译 二、实验内容和原理 ?编译Linux内核 ?烧写内核镜像并启动 ?启动参数配置 三、主要仪器设备 树莓派、PC机 四、操作方法和实验步骤 1 安装编译内核的交叉编译工具链 2 配置内核,编译生成内核镜像文件。 3 替换SD卡中原先的内核镜像文件,启动树莓派。 五、实验数据记录和处理 1.创建root用户 sudo passwd root 输入密码,创建root用户密码 su root 切换到root用户

2.安装编译内核的交叉编译工具链 将交叉编译工具链压缩文件gcc-linaro-arm-linux-gnueabihf-raspbian-x64.tgz放入到虚拟机/home (从图形界面打开/home的方法:ubuntu侧栏Files->Devices->Computer->home, 注意不是“Home”)下,解压。 tar xzvf gcc-linaro-arm-linux-gnueabihf-raspbian-x64 设置环境变量 export PATH=$PATH:/home/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin 此时运行 arm-linux-gnueabihf-gcc --version 可以看到版本号表明交叉编译工具链安装完成。 3.配置内核并编译 将内核源代码压缩文件放入到虚拟机/home下,解压 tar xzvf linux.tgz 配置内核 cd linux KERNEL=kernel7 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig 编译内核 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs

《单片机系统设计》实验报告

短学期实验报告 (单片机系统设计) 题目: 专业: 指导教师: 学生姓名: 学号: 完成时间: 成绩:

基于单片机的交流电压表设计 目录 1系统的设计要求 (2) 2系统的硬件要求 (2) 2.1真有效值转换电路的分析 (2) 2.2放大电路的设计 (3) 2.3A/D转换电路的设计 (3) 2.4单片机电路的分析 (4) 2.5显示电路 (4) 3 软件设计 (5) 3.1 软件的总流程图 (5) 3.2 初始化定义与定时器初始化流程图 (5) 3.3 A/D转换流程图 (6) 3.4 数据处理流程图 (6) 3.5 数据显示流程图 (7) 4 调试 (7) 4.1 调试准备 (7) 4.2 关键点调试 (7) 4.3 测试结果 (8) 4.4 误差分析 (8) 5结束语 (8) 5.1 总结 (9) 5.2 展望 (9) 附录1 总原理图 (10) 附录2 程序 (10) 附录3 实物图 (14)

基于单片机的交流电压表设计 ****学院 ****专业 姓名 指导老师:******* 1 设计要求 (1)运用单片机实现真有效值的检测和显示。 (2)数据采集使用中断方式,显示内容为有效值与峰值交替进行。 2 硬件设计 本系统是完成一个真有效值的测量和显示,利用AD737将交流电转换成交流电压的有效值,用ADC0804实现模数转换,再通过单片机用数码管来显示。系统原理框图如图2-1所示。系统框图由真有效值转换电路、放大电路、A/D 转换电路、单片机电路、数码管显示电路五部分。 图2-1 原理框图 2.1 真有效值转换电路 真有效值转换电路主要是利用AD737芯片来实现真有效值直流变换的,即将输入的交流信号转换成直流信号的有效值,其原理图如图2-2所示。 图2-2 真有效值转换电路 由于AD737最大输入电压为200mV, 所以需要接两个二极管来限制输入电压,起到限幅的作用。如图中D1、D2,由IN4148构成,电容C6是耦合电容,电阻R1是限流电阻。 2.2 放大电路设计 放大电路主要是利用运放uA741来进行放大,电路原理图如图2-3所示。 A/D 转换 单片机 电路 显示 电路 转换 电路 交流 信号 放大 电路

嵌入式系统设计实验六

实验六 8字数码管和点阵数码管实验....................... 错误!未定义书签。 实验目的............................................. 错误!未定义书签。 实验内容............................................. 错误!未定义书签。 预备知识............................................. 错误!未定义书签。 实验设备及工具....................................... 错误!未定义书签。 实验原理............................................. 错误!未定义书签。 、程序分析........................................... 错误!未定义书签。 实验步骤............................................. 错误!未定义书签。 八、思考题........................................... 错误!未定义书签。实验六 8字数码管和点阵数码管实验 实验目的 学习LED的相关知识 掌握74HC273芯片的工作原理 了解SPI接口的相关知识 实验内容 学习LED相关知识,了解74HC273芯片对LED点亮的工作机制,熟练阅读74HC273芯片资料,掌握对它的使用。 预备知识 有C语言基础 掌握在Linux下常用编辑器的使用 掌握Makefile 的编写和使用 掌握Linux下的程序编译与交叉编译过程 需要部分数字电路的知识

江苏科技大学嵌入式实验报告

实验一熟悉嵌入式系统开发环境 一、实验目的: 1.熟悉嵌入式系统硬件实验平台 2.掌握超级终端配置方法。 3. 掌握嵌入式系统开发环境配置,ARM-Linux下NFS服务器的配置方法 4. 掌握常用的 Linux下shell命令 二、实验设备及工具: 硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。 软件:PC机操作系统REDHAT LINUX 9.0 、MINICOM 、AMRLINUX开发环境 三、实验内容 : (1)掌握嵌入式系统实验平台上的各类借接口的位置; (2)配置windows的超级终端,熟悉vivi的命令行,bootload、kernel、root 和用户程序的介绍; (3)配置linux的终端,配置网络服、Ip地址,开发目录共享,挂载等。 四、实验步骤: 1.掌握嵌入式系统实验平台上的各类接口的位置 UP-TECH S2410/P270 DVP 的硬件配置如表 1.2.1 所示 实物如图 1.2.1 所示:

2.配置windows的超级终端,熟悉vivi的命令行,bootload、kernel、root 和用户程序的介绍; 1)配置windows的超级终端: a)用串口线将 PC 机与 ARM 开发板连接好后,将 UP-TECH S2410、P270 DVP 开发板 开机,然后点击 PC 机上的开始“菜单”然后找到“附件”中“通讯”选项中的“超级终端”, b)然后在超级终端里进行配置,在“名称”中输入要建立的超级终端的名字。 c)在“连接时使用”一栏选择可用的串口号,(这里根据自己的实际情况进行选择)。 d)在“每秒位数”中选择“115200”,“数据流控制”选择“无”,然后点击“确定”按 钮,设置完毕。 2)学习并掌握如下命令: ls,cd ,pwd,cat,more,less,mkdir,rmdir ,rm,mv,cp,tar,ifconfig 3. Linux下minicom的使用与程序挂载 a)打开虚拟机,启动linux; b)新建终端,输入minicom来启动实验箱;

嵌入式系统设计实验报告

西安邮电大学 嵌入式系统设计实验报告 专业 班级 学号 学生姓名 指导教师 学期2013-2014学年第2学期 完成日期2014-06-25

基于lpc2131的模拟电梯控制实验 一、实验目的 1、熟悉ARM & ADS V1.2 的环境 2、理解LPC2131芯片引脚功能的选择 3、理解GPIO的使用设置、输入驱动方法 4、理解SPI全双工同步串行通信原理,学习ARM SPI资源的驱动编程 5、学习在LPC2131上移植ucosⅡ系统 二、实验内容及要求 1、通过键盘输入楼层,输入之后数码管从当前位置向上或向下运行,流水灯表示运动方向。 2、流水灯在运行中显示电梯正在运行的方向,并且在电梯到达时在该楼层闪烁3次。 3、电梯运行到对应楼层,数码管显示楼层号。 4、流水灯表示电梯运行楼层。 5、系统可同时满足多用户需求。达到该系统与现实电梯系统的一致性。 三、系统总体设计(总体方案及系统框图) 主要是创建了四个任务,分别为电梯总任务、按键检测任务、电梯方向改变任务及电梯向上或向下运行任务,然后启动多任务环境,通过事件标志组发送和接收消息,进而实现电梯的一些基本的功能。

四、系统详细设计(模块详细设计及流程图)

五、系统测试(数据测试结果及分析) 通过键盘按键输入楼层数,发送到开发板,数码管和LED灯初始化时会停留在电梯的第一层。接受到数据后数码管会自动变化到该楼层,并且LED灯在数码管变化的同时会显示电梯当前的运动状态,上或者下。在程序运行的任何期间都可以从键盘输入电梯的楼层数。而且程序会自动判断要满足的用户的优先级。 此次试验达到的效果基本与现实中电梯的运行模式达到了一致。六、总结 在整个课程设计中,我们组员一起认真地查找相关资料,然后又对书中的相关内容仔细翻阅,通过虚心请教和不懈的努力,最终完成了整个设计,心中的喜悦实在无以言表。此刻,我非常感谢我们组长的鼓励和帮助,感谢同学们诸多的帮助!本次设计不仅让我收获了许多,也让我对以前所学习的ARM知识有了进一步的深化与巩固,最关键的是,它给了我一份自信。但我很明白,作品中还存在着比较多的不足,这些都需要进一步的改善,我会不骄傲,不气馁,用着自信与执着尽最大努力将其完善。 七、附录(代码+注释) #include "config.h" #include "stdlib.h" #define KEY1 1 << 16 // P0.16连接KEY1 #define KEY2 1 << 17 // P0.17连接KEY2 #define KEY3 1 << 18 // P0.18连接KEY3 #define KEY4 1 << 19 // P0.19连接KEY4 #define KEY5 1 << 20 // P0.20连接KEY5 #define KEY6 1 << 21 // P0.21连接KEY6

基于stm32的嵌入式系统原理与设计实验报告 学位论文

XXXX学院 XX级嵌入式系统设计实验报告 班级: 指导老师: 学期: 小组成员: 姓名学号 组长 成员 成员

实验一我的第一个工程实验 一.实验简介 我的第一个工程,流水灯实验 二.实验目的 掌握STM32开发环境,掌握从无到有的构建工程。 三.实验内容 熟悉MDK KEIL开发环境,构建基于固件库的工程,编写代码实现流水灯工程。通过ISP下载代码到实验板,查看运行结果。使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。 四.实验设备 硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。 软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。 五.实验步骤 1.熟悉MDK KEIL开发环境 2.熟悉串口编程软件ISP 3.查看固件库结构和文件 4.建立工程目录,复制库文件 5.建立和配置工程 6.编写代码 7.编译代码 8.使用ISP下载到实验板 9.测试运行结果 10.使用JLINK下载到实验板 11.单步调试 12.记录实验过程,撰写实验报告

六.实验结果及测试七.实验总结

实验二带按键控制的流水灯实验 一.实验简介 在实验一的基础上,使用按键控制流水灯速度,及使用按键控制流水灯流水方向。二.实验目的 熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。 三.实验内容 实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。 使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。四.实验设备 硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。 软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。 五.实验步骤 1在实验1代码的基础上,编写中断初始化代码 2在主程序中声明全局变量,用于和中断服务程序通信,编写完成主程序 3编写中断服务程序 4编译代码,使用JLINK下载到实验板 5.单步调试 6记录实验过程,撰写实验报告

中北大学嵌入式系统实验报告

中北大学计算机与控制工程学院实验报告《嵌入式系统实验报告》 专业电气工程与智能控制 班级 14070541 学号 1407054103 姓名贾晨凌

实验一 ARM 处理器指令系统实验 一、实验目的 熟悉ARM指令系统,熟悉ARM SDT编辑编译连接,ARM Project Manager和ARM Debugger 的设置和使用 二、实验条件 Windows平台的ARM SDT 2.51软件:ARM Project Manager和ARM Debugger。 三、实验内容 学习使用ARM Project Manager建立项目文件,编辑汇编文件,并加入项目。学习ARM编译器和汇编器的设置。通过编程熟悉ARM指令,包括跳转指令,数据处理指令,状态寄存器传送指令,load/store指令,中断异常产生指令。学习ARM调试起的使用方法,包括程序的导入,单步执行,断点设置等。 四、实验要点 工程文件的建立,在ARM Project Manager中点击File->New,选择Project,点击确定。 链接器的设定,需要设置代码和数据段的起始地址。 点击图标,选择不进行远程调试,即可打开调试器。 五、实验结果 熟悉ARM指令系统 实验二p1口实验 一、实验目的 熟悉 ARM SDT 软件开发方法和技能;

学习和巩固 ARM 指令集; 学习和巩固汇编语言程序设计 二、实验条件 Windows 平台的 ARM SDT 2.51 软件:ARM Project Manager 和 ARM Debugger; DebugServer.exe ; EFLAG-ARM-S3C44B0 实验箱 三、实验内容 目录 ARM251\EXAMPLES\ASM 下的汇编程序, 学习和调试代码,分析所得结果。 在调试器上仿真软件的执行。 在实验箱上,调试软件,并观察软件的执行结果 四、实验要点 在调试软件目录中启动 DebugServer.exe 调试器服务程序。 启动 SDT 调试软件 ARM Debugger。 五、实验结果

嵌入式系统实验报告

嵌入式系统实验报告 学号: 姓名: 班级:13电子信息工程 指导老师:

苏州大学电子信息学院 2016年12月 实验一:一个灯的闪烁 1、实验要求 实现PF6-10端口所连接的任意一个LED灯点亮 2、电路原理图 图1 LED灯硬件连接图 3、软件分析 RCC_Configuration(); /* 配置系统时钟*/ GPIO_Configuration(); /* 配置GPIO IO口初始化*/ for(;;)

{ GPIOF->ODR = 0xfcff; /* PF8=0 --> 点亮D3 */ Delay(1000000); GPIOF->ODR = 0xffff; /* PF8=1 --> 熄灭D3 */ Delay(1000000); 4、实验现象 通过对GPIOF8的操作,可以使LED3闪烁 5、实验总结 这是第一次使用STM32开发板,主要内容是对IO端口进行配置,点亮与IO端口相连接的LED灯,闪烁周期为2S。通过本实验对STM32开发板的硬件原理有了初步了解。 实验二:流水灯 1、实验要求 实现PF6-10端口所连接的5个LED灯顺次亮灭 2、电路原理图

图1 流水灯硬件连接图3、软件分析 int main(void) { RCC_Configuration();/* 配置系统时钟*/ GPIO_Configuration();/* 配置GPIO IO 口初始化*/ for(;;) { GPIOF->ODR = 0xffbf; /* PF6=0 --> 点亮LED1 */ Delay(5000000); GPIOF->ODR = 0xff7f; /* PF7=0 --> 点亮LED2 */ Delay(5000000); GPIOF->ODR = 0xfeff; /* PF8=0 --> 点亮LED3 */ Delay(5000000); GPIOF->ODR = 0xfdff; /* PF9=0 --> 点亮LED4 */ Delay(5000000); GPIOF->ODR = 0xfbff; /* PF10=0 --> 点亮LED5 */ } } 4、实验现象 LED1~LED5依次点亮,亮灭的时间间隔都为1S。 5、实验总结 本次实验对STM32开发板的GPIO端口进行进一步学习,通过程序可以实现流水灯的闪烁。 实验三:单级外部中断

相关主题