51003CC03B《微控制器原理与应用》实验指导书.docx

上传人:b****5 文档编号:5851357 上传时间:2023-01-01 格式:DOCX 页数:91 大小:3.24MB
下载 相关 举报
51003CC03B《微控制器原理与应用》实验指导书.docx_第1页
第1页 / 共91页
51003CC03B《微控制器原理与应用》实验指导书.docx_第2页
第2页 / 共91页
51003CC03B《微控制器原理与应用》实验指导书.docx_第3页
第3页 / 共91页
51003CC03B《微控制器原理与应用》实验指导书.docx_第4页
第4页 / 共91页
51003CC03B《微控制器原理与应用》实验指导书.docx_第5页
第5页 / 共91页
点击查看更多>>
下载资源
资源描述

51003CC03B《微控制器原理与应用》实验指导书.docx

《51003CC03B《微控制器原理与应用》实验指导书.docx》由会员分享,可在线阅读,更多相关《51003CC03B《微控制器原理与应用》实验指导书.docx(91页珍藏版)》请在冰豆网上搜索。

51003CC03B《微控制器原理与应用》实验指导书.docx

51003CC03B《微控制器原理与应用》实验指导书

 

微控制器原理与应用实验指导书

 

刘龙、陈功、高照玲、田华、李滨虎编写

大连东软信息学院

电子工程系

引言

电子信息技术是当今世界科学技术和经济发展的热点,电子信息类专业是高校的热门专业。

对于应用性学院来说,旨在锻炼提高学生工程素质和实践创新能力的实验课,以及包括其他实践环节的实验教学改革十分重要。

电子类实验课程与其强调理论更应强调技术和应用,这是由专业性质决定的。

既然实验要单独设课,就不应等同于原来实验附属于理论课的情况。

除了增加实验学时、提高实验的要求之外,重要的是要使实验课成为既要和理论课相辅相成,又能自成实验体系的独立课程设置。

这需要从许多方面加以保证,诸如:

任课和指导教师的配备和加强;教学体系既要有实践又应有理论(如误差理论和测量方法);实验内容在基础单元型实验的基础上应加强综合型和设计型实验,以注重创新能力培养;实验考核应把平时考核和期末考试结合起来,探索更为有效的实验考试方法(如现场测试和制作验收)。

总之,实验课教学对比理论课教学要更加"务实",技术基础课教学更要强调理论和实践的统一,理工科教学要特别注重学生实践能力和工程素质的提高。

同时,实验改革要跟上时代的发展,实验技术实验方法要不断创新,注重新器件、新技术(如EDA、DSP、ARM技术)的应用。

设备与材料

这章主要介绍本实验指导书中会用到的设备和材料。

包括:

仿真器和LPC1114开发板。

1.仿真器

调试LPC1114单片机的硬件仿真器目前市面上主要有如下两种:

1)SEGGER公司的JLINKV7、JLINKV8仿真器,如图01所示,可以和市场上主流的软件平台无缝连接;

图01JLink仿真器

2)Keil公司的ULINK2,如图02所示,它是MDK下的专用调试工具;

图02ULINK2仿真器

以上两种仿真器,与实验板的连接都通过的是JTAG接口。

下面对JTAG接口进行介绍。

LPC1114单片机属于Cortex-M内核单片机,其内嵌CoreSight片上跟踪和调试体系结构,支持JTAG和SWD接口调试。

不过对于LPC1100系列微处理器来说,只有U系列带有JATG和SWD两种调试方式,其他处理器只有SWD调试方式。

为了让读者对JTAG有一定的认识,下面也将对JTAG进行介绍。

2.JTAG调试接口

JTAG调试方式是ARM核采用的标准调试接口,从第一款ARM核推出到现在一直在使用。

不管是调试还是编程下载都非常方便,其标准的JTAG接口定义图03所示。

图03JTAG接口定义

表01所示为JTAG接口管脚描述。

表01JTAG接口管脚描述

管脚

信号名

类型

描述

1

VTerf

O

目标板的参考电压输入

2

Vsupply(可选)

O

通过JLINK内部的跳线可设置这个管脚提供3.3V/400mA的电流或者不连接

3

nTRST

I

JTAG复位

5

TDI

I

目标板上CPU的JTAG数据输入

7

TMS

I

目标板的JTAG接口模式设定

9

TCK

I

输入到目标CPU的JTAG时钟输入

11

RTCK

O

从目标板返回的测试时钟信号

13

TDO

O

从目标板输出的JTAG数据

15

nSRST

I/O

目标CPU的复位信号

17

DBGRQ

I

未使用

19

DBGACK

O

用于给目标设备提供5V电源

4、6、8、10、12、14、16、18、20

GND

-

与GND连接

图04JTAG的典型连接图所示,为JTAG调试接口的典型连接图。

图04JTAG的典型连接图

3.SWD调试接口

SWD将多调试引脚的JTAG端口替换为一个时钟引脚加上一个双向数据引脚,却可以提供所有常规调试和测试功能以及实时系统内存访问,无需停止处理器或需要任何目标驻留代码。

SWD调试方式特点如下:

⏹仅需要2个引脚;

⏹高性能数据速率;

⏹低能耗,不需要额外电源或接地插针;

⏹较低的开发工具成本,仿真器可以内置到评估板中;

⏹可靠,内置错误检测功能;

SWD提供了从JTAG的轻松且无风险的迁移,因为两个信号SWDIO和SWCLK重叠在TMS和TCK插针上,从而使双模式设备能够提供其他JTAG信号。

在SWD模式下,可以将这些额外的JTAG针切换到其他用途。

SWD与所有ARM处理器以及使用JTAG进行调试的任何处理器兼容,它可以访问Cortex™处理器(A、R、M)和CoreSight调试基础结构中的寄存器。

如图05为标准的SWD调试端口管脚分布图。

图05标准的SWD调试端口管脚分布

表02SWD调试端口管脚说明所示为SWD接口管脚描述。

表02SWD调试端口管脚说明

管脚

信号名

类型

描述

1

VTerf

O

目标板的参考电压输入

2

VCC33(可选)

O

有调试工具输出电流或不连接

3

保留

NC

未使用

5

保留

NC

未使用

7

SWDIO

I/O

双向数据端口

9

SWCLK

I

输入到目标CPU的时钟

11

保留

NC

未使用

13

SWO

O

SWD输出Trace端口

15

RESET

I/O

目标CPU的复位信号

17

保留

NC

未使用

19

5V-Supply

O

用于给目标设备提供5V电源

4、6、8、10、12、14、16、18、20

GND

-

与GND连接

4.实验板

LPCCortexM0开发板是一块以LPC1114FBD48为主控芯片的开发板,它带有丰富的扩展接口,支持各类外围模块的接入。

1)芯片简介

⏹LPC11C14

⏹以下为LPC11C14FBD48/301的核心资源参数:

⏹内核:

Cortex-M032-bitRISC;

⏹工作频率:

50MHzMax;

⏹工作电压:

1.8-3.6V;

⏹封装:

LQFP48;I/O口:

42;

⏹存储资源:

32kBFlash,8kBRAM;

⏹接口资源:

1xCAN,2xSPI,1xUART,1xI2C,11xPWM,8xADC;

⏹调试下载:

可通过SWD接口实现调试下载,可通过UART接口实现ISP。

⏹AMS1117-3.3

⏹3.3V稳压器件。

2)其它器件简介

⏹电源开关

⏹电源LED

⏹用户LED

⏹便于I/O输出测试或显示程序运行状态。

⏹复位按键

⏹用户按键

⏹便于I/O输入测试或控制程序运行状态;

⏹摇杆

⏹上、下、左、右、按下,共5个状态。

⏹12M晶振

⏹可通过倍频设置,令主频为48M。

3)模块接口简介

⏹8I/Os|8路AD接口,方便接入各类使用I/O控制的模块。

如8位按键模块,电机控制模块等。

同时,该接口也为AD接口,可以方便AD测试。

⏹SPI0/SPI1接口,方便接入SPI模块。

如DataflashAT45DBXX、SD卡、MP3模块等。

⏹I2C接口,方便接入I2C模块。

如I/O扩展芯片PCF8574、EEPROMAT24CXX模块等。

⏹ONE-WIRE接口,方便接入ONE-WIRE器件(TO-92封装)。

如温度传感器DS18B20、电子注册码DS2401模块等。

⏹UART接口,方便接入使用UART接口的器件。

如RS232、USBTOUART模块等。

⏹LCD接口,方便接入LCD+触摸屏模块。

配送的LCD为2.2寸触屏LCD,使用SPI接口,大大降低I/O资源的占用。

⏹CAN接口,方便接入CAN模块。

⏹PS/2接口,方便接入PS/2键盘或鼠标。

4)其它接口简介

⏹5VDC接口

⏹5V与3.3V电源输入输出接口,常用于对外供电,或与用户板进行共地处理。

⏹MCU引脚接口,引出所有引脚,方便与外设进行I/O连接。

⏹SWD接口,支持下载与调试。

Jlink与实验板连接方式如图06所示。

图06仿真器与开发板连接示意图

实验一软件安装与测试

一、实验目的:

1.正确安装MDK软件

2.正确安装Jlink调试驱动,熟悉实验板的用法

3.正确建立一个标准的工程。

二、实验设备:

Cortex-M0开发板、学生自带笔记本电脑

三、实验内容:

安装MDK5软件,安装Jlink驱动,建立一个空的工程。

四、实验原理:

1MDK的安装

对于MDK,安装完后一定要注册,否则可能会受到代码量的限制,导致很多程序会运行不了。

单用户注册成功后会提示过期时间,如图01所示。

图01单用户许可证注册成功界面

2MDK工程模块的新建

1.新建几个必要的文件夹。

在需要保存开发项目的地方新建文件夹,用于保存开发中需要的启动代码、源代码、头文件、工程管理、输出文件等。

下面将介绍LPC1114的MDK工程模版,如图02所示:

图02MDK工程模块

本工程模版包括7个文件夹,表01是对MDK工作模块中的文件进行描述。

表01工程文件描述

序号

名称

描述

1

System

system_LPC11xx的c和h文件

2

Startup

启动代码文件startup_LPC11xx.s

3

Source

main.c文件

4

Gpio

gpio.c和gpio.h文件(可以先不用建立)

5

Doc

项目说明文件

6

Out

编译生成的文件

2.新建工程

(1)在桌面上打开“KeiluVision5”软件,如图03所示。

可以看出MDK界面非常简洁。

图03MDK工作界面

(2)点击菜单“Project”,选择“NewuVisionProject”,将出现如图04所示对话框,要求为新建工程输入一个名称,这里输入“LPC1114”。

然后,把工程保存在刚开始新建的“LPC1114MDK工程->Project”文件夹里边。

图04工程存储

(3)这时会弹出一个对话框,如图05所示,要求选择目标设备的型号。

可以根据使用的处理器来选择处理器型号。

如果没有要选择的可以选择一款相兼容的处理器;如果是新推出的处理器,可以更新开发环境,一般MDK过一段时间都会更新开发环境,以提供对新处理器的支持。

这里选择“LPC1114x301”,在右边的“Description”里边有对这款处理器的介绍,对于此芯片进行了一定的说明。

图05选择处理器

(4)点击“OK”后,将弹出如图06所示对话框,问是否要自动生成启动代码。

启动代码是用来初始化目标设备的配置,完成运行时系统的初始化工作,对于嵌入式系统开发而言是必不可少的。

图06启动代码生成确认框

(5)单击“是”便可将启动代码加入工程,这使得系统的启动代码编写工作量大大减少,从而使得开发者基本不用与汇编语言打交道。

如图07所示,在工程项目中已经添加了启动代码startup_LPC11xx.s。

图07生成的工程

(6)创建工程后,就应开始编写源代码了。

首先创建几个文件组,用于存放源文件。

点击快捷图标“

”,弹出如图08所示对话框:

图08MDK下文件管理

(7)更改“ProjectTargets”下的工程名为LPC1114;更改“Groups”下的“SourceGroup1”为“Startup”用于存放启动代码。

并在“Groups”中新建如图09所示的几项。

图09新建MDK下几个管理项

(8)点击“OK”后,将在左边的“Project”下出现新建的管理结构,如图010所示:

图010MDK文件管理

(9)接下来就应该在工程项目中添加源代码了,拷贝system_LPC11xx.c和system_LPC11xx.h到System文件夹中。

新建文件main.c保存到Source中。

(10)在相应文件组上点击右键,点击“AddFilestoGroup”,如图011所示,将弹出添加文件对话框。

分别把c文件和h文件添加到文件组中。

图011添加文件

(11)分别添加文件到相应的文件组中,最后创建完成的工程组如图012所示。

图012创建完成的工程组

(12)完成文件及文件组的创建后,后面就是在相应的文件中输入源程序代码了,具体代码这里就不在说明,对于初学者来说,可以适当减少文件夹分类。

3MDK硬件配置

完成工程创建和源代码输入后,下面就需要对工程项目进行必要的设置。

主要包括存储器、文件输出、代码优化、代码调试和下载等。

对于需要默认或很少使用的设置,就不进行过多的介绍,读者尽量不要去改动它。

(1)点击快捷方式“

”,弹出如图013所示对话框。

在新建工程的时候已经选择了器件类型,所以这里直接进入第2项开始设置,对Flash和RAM进行设置也非常重要,但是一般情况下MDK已经设置好了,不需要改变。

图013Flash和RAM设置

(2)接下来点击“Output”对输出文件进行设置,如图014所示。

图014输出文件设置

(3)点击“SelectFolderforObjects…”,选择输出文件目录为刚开始新建的“Out”文件夹,如图015所示:

图015选择输出文件夹

(4)勾选复选框“CreateHEXFile”输出十六进制文件代码,并在“NameofExecutable:

”下输入生成的十六进制文件的名字。

具体设置如图016所示。

图016输出文件设置

(5)点击“C/C++”对C和C++进行一定的设置,笔者建议读者在开发的过程中不要更改设置。

当程序编写、调试完成后,可以适当选择“Optimization”下的优化等级,进一步缩小代码空间和优化运行速度。

如果有些文件需要在编译过程中包含进来,可以在“IncludePaths”中添加,如下图017所示。

图017C/C++优化设置

(6)点击“Debug”对调试进行设置,左边是选择采用软件模拟方式进行调试,在没有硬件平台的情况下,可以采用这种方式进行设置。

如果要使用MDK的逻辑分析仪,只能采用软件模拟方式进行调试。

如果有硬件平台,建议读者尽量采用硬件方式进行仿真调试。

那么这里采用哪种硬件工具就需要读者根据自己的需要进行选择,如果没有你选择的工具,请先安装好仿真工具的驱动程序,如果还是没有列出需要选择的工具,可以以文本方式打开安装目录下的TOOLS.INI,并根据需要修改,至于修改方法这里就不再阐述,读者可以在网上查找修改方法。

下面我们将介绍采用JINKV8的SWD方式下的设置,如图018所示。

图018硬件调试设置

(7)在硬件仿真选择“Cortex-M/RJ-LINK/J-Trace”;在复选框“Runtomain()”前面勾选,如果不勾选,那么仿真时会从启动代码开始。

如果勾选了这个复选框,它会直接运行到main()函数,main()函数前面运行的代码就可以不用去关心它,如图019所示。

图019JLINKV8调试设置

(8)如果JINKV8已经安装了驱动,并且连接好PC和目标硬件。

点击“Settings”将进入CortexJLink/JTraceTargetDriverSetup界面。

如果已经连接好硬件后,会自动识别调试方式,如图020所示。

时钟设置可以根据器件的支持的大小适当的调整一下,这里选择默认设置。

其他地方也采用默认设置。

图020SWD方式设置

(9)如果没能正确识别,可以在“Port”下选择正确的方式(SWD/JTAG)。

可以在“MaxClock”下选择调试速度时,对于NXP的芯片尽量不要选择太快,采用默认速度就可以了。

如果选择错误将不能正确识别,如图021所示,更换成JTAG后的界面,由于硬件采用的是SWD方式,所以选择JTAG后,将不能正确识别。

图021JTAG方式设置

(10)点击“Utilities”对下载方式进行设置,在“UseTargetDriverforFlashProgramming”下选择“Cortex-M/RJ-LINK/J-Trace”,保持与“Debug”下的设置一致。

当然,读者也可以使用其他方式下载程序代码。

并且勾选“UpdateTargetbeforeDebugging”,在调试时会自动先下载代码到Flash中,如图022所示。

图022下载设置

(11)点击“Settings”弹出如下对话框,这里软件已经自动设置好Flash下载算法了。

如图023所示。

图023下载芯片设置

(12)如果没有自动设置,可以点击“Add”添加Flash下载算法,如图024所示。

图024下载算法的添加

到此,MDK下的工程项目就设置完成了。

点击“OK”,退出设置对话框。

4MDK的应用

工程模块建立完成后,就可以在MDK平台下输入源代码,并进行编译、调试了。

下面将进一步介绍怎样使用MDK开发项目。

uVision5提供两种工作模式,一种是编译模式,另一种是调试模式:

✧编译模式:

用于汇编及C语言等应用程序源文件的输入,并生产可执行文件;

✧调试模式:

提供友好的调试界面,用于测试应用程序。

在这里两种模式下均可以对源代码进行编辑和修改,但是在不同模式下窗口和窗口布局都有一定的区别,下面将分别介绍这两种模式下的应用窗口。

1.编译模式

在编译模式下,工作区用于编写源文件,既可用汇编语言编写程序,也可用C语言编写程序。

通过File->New菜单项目新建源文件,将打开一个标准的文本编辑窗口,可在此窗口输入源代码。

需要注意的是,只有先保存文件后,再在文件里边输入代码时才能够实现高亮显示关键字,在左侧显示文本中各行的标号,其他颜色显示注释等功能。

当然这些特殊显示功能均可以通过点击Edit->Configuration…,在弹出的对话框中进行设置。

图025是一个典型的编译模式下的工作区。

下面将分别对编译模式下常用到的快捷方式、工程工作区、编译输出、查询窗口等进行详细介绍。

图025编译模式下的工作区

(1)菜单栏

图026为MDK的菜单栏,可以看出,MDK的菜单栏与其他Windows应用程序的菜单栏并没有多大的区别。

而且很多时候,我们都是通过快捷图标或快捷键对MDK进行操作,实际通过菜单栏进行操作的时间并不多。

所以,这里就不过多的介绍,读者可以自行了解,但是对菜单栏一定要熟悉。

MDK的功能非常强大,很多工程师使用MDK多年,但是仍然对一些比较方便、快捷的功能不熟悉,甚至没有使用过。

图026MDK菜单栏

(2)快捷图标

如图027所示,MDK常用的大部分工作,都有相应的快捷图标,通过快捷图标进行操作可以提高工作效率。

图027MDK快捷图标

MDK的快捷图标主要由两行组成,下面将对其中比较常用的快捷图标进行详细说明:

✧新建文档:

可以点击此快捷图标,新建C文件、H文件、汇编文件、文本文件等,在保存的时候加上相应的后缀即可;

✧编译:

在编写好源代码后,需要编译才能调试和下载代码到Flash中。

需要注意的是,第一次点击此快捷方式时,会把整个工程编译一遍,之后再点击,只编译修改的部分。

建议读者多使用此图标编译代码;

✧重新编译:

总是会把整个工程进行重新编译,不管是否修改过代码。

所以编译的时间会比“编译”快捷图标编译长,特别是工程特别大时。

所以,建议读者尽量别使用此快捷图标,而使用“编译”图标;

✧全部保存:

当修改多个文件时,点击此图标会同时保存多个文件,比单一保存方便一些。

✧下载:

当编译完成后,可以点击此快捷图标直接把代码下载到处理器的Flash中;

✧目标设置:

主要是对目标板进行设置,在前面的内容已经介绍,读者可以查看硬件设置部分的内容;

✧文件组、环境配置:

主要是对文件组、编译环境和电子书等进行设置,应用比较多的就是对文件组进行新建、修改等;

✧右缩进:

在编程的时候,一般都要对齐代码,保持文件整洁。

当有多行代码需要整体右缩进4格时,选择代码,点击此快捷图标即可,非常方便;

✧左缩进:

与右缩进相同,只是缩进方向相反;

✧注释文本:

当需要注释掉部分代码或文本时,可以选择文本,点击此快捷图标;

✧恢复文本:

当需要恢复被注释掉的代码或文本时,选择被注释的文本,点击此快捷图标;

✧工程中查找:

如果要在工程中查找某一函数、变量、文本时,点击此快捷图标,弹出查找对话框。

在对话框中输入要查找的内容,并设置好查找条件,之后会把查找结果输出到FindInFiles窗口中;

✧调试:

当编译完代码后,点击此快捷图标,MDK会切换到调试模式,进行代码调试;如果设置在Flash中进行调试的话,会先下载代码到Flash中,再切换到调试模式下;

✧设置断点:

把光标放在需要设置断点的地方,点击此快捷图标设置断点;当然也可以直接在需要设置断点的地方双击鼠标左键设置断点;

✧取消断点:

把光标放在设置好断点的地方,点击此快捷图标取消断点设置;当然也可以直接在设置断点的地方双击鼠标左键取消断点设置;

✧编译器配置:

对uVision进行配置,主要是对编译环境等进行配置。

(3)工程工作区

在工程工作区由多个部分组成,所有的窗口都是叠加在一起的。

这一部分的应用非常频繁,读者应该充分了解这一部分的内容。

1)Project

工程管理页,在编辑模式和调试模式下都有此页。

如图028所示为LPC1114工程模块的工程页显示。

图028LPC1114工程模块工程页显示

2)Books

电子书页,列出了关于uVisionIDE的一些发行信息、开发工具、用户指南及设备数据库相关数据等。

如图029所示。

双击指定的书籍就可以打开,并可以通过上面介绍的“文件组、环境配置”快捷图标打开对话框进行添加、删除和整理书籍。

图029Books页

3)Functions

函数页非常重要,列出了工程中各个C文件中的函数,通过列表可以非常快速的定位函数所在的位置,通过双击函数名称可找到函数所在的位置。

如图030所示,显示LPC1114工程模块的函数。

图030函数显示列表

4)Templates

模板页列出了C语言常用的编程模版,如图031所示,当把鼠标放在相应字符上时就会显示模版的格式。

双击模版就可以在编辑区显示编程模版;通过右键还可以添加自己的模版。

图031模式显示

(4)输出窗口

输出窗口主要有2个页面,分别是Build和FindInFiles。

通常在软件的最下方显示,当然也可拖到其他地方。

1)Build

此页用于显示编译信息,包括汇编、编译、连接、生成目标程序等,同时显示编译结果、错误显示和警告提示。

读者应该明确此窗口的具体显示表示的含义。

图032编译结果显示

编译结果说明,如表02所示。

表02编译项

项目

说明

描述

Code

代码空间

Flash占用空间

RO-data

指令和常量

指令以及常量被编译后是RO类型数据

RW-data

已初始化变量

已被初始化成非0值的变量编译后市RW类型数据

ZI-data

未初始化的变量

未被初始化或初始化为0的变量编译后是ZI类型数据

2)FindInFiles

当使用上面介绍

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 教育学心理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1