《嵌入式系统与单片机.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统与单片机.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统与单片机嵌入式系统与单片机v北京科技大学电子信息系PIC单片机部分主要内容单片机部分主要内容vPIC单片机微处理器体系结构单片机微处理器体系结构vPIC单片机存储器组织与寻址方式单片机存储器组织与寻址方式vPIC单片机指令系统与汇编语言单片机指令系统与汇编语言v集成开发环境集成开发环境MPLAB_IDEvPIC单片机常用的周边功能模块单片机常用的周边功能模块 参考书参考书v1 刘和平主编,单片机原理及应用,重庆大刘和平主编,单片机原理及应用,重庆大 学出版社学出版社,2002年()年()v2 刘和平等编著,刘和平等编著,PIC16F87X单片机实用单片机实用 软件与接口技术,北航出版
2、社,软件与接口技术,北航出版社,2002年年v3 刘笃仁著刘笃仁著.PIC软硬件系统设计软硬件系统设计.北京:电北京:电 子工业出版社,子工业出版社,2004年年 v4 李学海编,李学海编,PIC单片机实用教程(基础单片机实用教程(基础 篇、提高篇),北航出版社,篇、提高篇),北航出版社,2002年年 第五讲第五讲 PIC单片机的开发工具单片机的开发工具MPLAB ICD2在线调试器在线调试器 MPLAB IDE集成开发软件集成开发软件 一、一、MPLAB IDEMPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件一、一、MPLAB IDE集成开发软件集成开发软件 v MPLAB
3、 IDE 是一种在是一种在PC 机上运行的软件,用来为机上运行的软件,用来为Microchip 单片机开发应用程序。由于它提供了一种单一单片机开发应用程序。由于它提供了一种单一的集成环境来为嵌入式单片机开发程序代码,因此被称为的集成环境来为嵌入式单片机开发程序代码,因此被称为集成开发环境或集成开发环境或 IDE。vMPLAB IDE是在台式计算机上运行的程序系统,它有助是在台式计算机上运行的程序系统,它有助于编写、编辑和调试程序代码,并将其烧写到单片机中。于编写、编辑和调试程序代码,并将其烧写到单片机中。vMPLAB IDE 在在PC机上运行,包含设计和部署嵌入式系统机上运行,包含设计和部署嵌
4、入式系统应用所需的全部组件。应用所需的全部组件。一、一、MPLAB IDEMPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件一、一、MPLAB IDEMPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件MPLAB IDE的功能:的功能:v编写程序编写程序v调试程序调试程序 在调试过程中,可以测试代码,以观察变量在程序执在调试过程中,可以测试代码,以观察变量在程序执行过程中各个点的值、进行检查、更改变量值和单步调试行过程中各个点的值、进行检查、更改变量值和单步调试程序。程序。v编译程序编译程序 使用编译器以及链接器汇编、编译和链接软件,以将使用编译器以及链接器汇编、
5、编译和链接软件,以将程序代码翻译成二进制机器代码。程序代码翻译成二进制机器代码。v将二进制代码将二进制代码“烧写烧写”到单片机中到单片机中单片机系统开发周期如下:单片机系统开发周期如下:这一过程需要多种工具:编写代码的这一过程需要多种工具:编写代码的编辑器编辑器、管理、管理文件及设置的文件及设置的项目管理器项目管理器、将源代码转换为机器码的、将源代码转换为机器码的编译器编译器,以,以及多种连接到目标单片机的及多种连接到目标单片机的硬件硬件或用来模拟单片机运行的或用来模拟单片机运行的软件软件。MPLAB IDEMPLAB IDE的内置组件的内置组件的内置组件的内置组件v项目管理器项目管理器 项目
6、管理器管理要编辑的文件和其他相关文件,以便项目管理器管理要编辑的文件和其他相关文件,以便将这些文件送至语言工具进行汇编或编译,并最终送至链将这些文件送至语言工具进行汇编或编译,并最终送至链接器。接器。链接器的任务是将来自汇编器、编译器和库的目标代链接器的任务是将来自汇编器、编译器和库的目标代码片段存放到嵌入式控制器的恰当存储区,并确保各个模码片段存放到嵌入式控制器的恰当存储区,并确保各个模块之间可以相互协调(或块之间可以相互协调(或“链接在一起链接在一起”)。从汇编、编)。从汇编、编译到链接的整个操作过程被称为项目译到链接的整个操作过程被称为项目“build”build”。使用使用MPLAB
7、MPLAB 项目管理器,每个文件可以根据需要调用项目管理器,每个文件可以根据需要调用不同的语言工具。并且编译过程会将所有的语言工具操作不同的语言工具。并且编译过程会将所有的语言工具操作集成到一起。集成到一起。一、一、MPLAB IDEMPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件v编辑器编辑器 文本编辑器用于编写代码。这不是普通的文本编辑文本编辑器用于编写代码。这不是普通的文本编辑器,而是专门为编写器,而是专门为编写 MicrochipMCU 的代码而设计的编的代码而设计的编辑器。辑器。它可以识别文本中的语法结构,并采用彩色编码来区它可以识别文本中的语法结构,并采用彩色编码
8、来区分各种元素,如指令助记符、分各种元素,如指令助记符、C 语言结构和注释。编辑器语言结构和注释。编辑器支持编写源代码常用的操作,如查找支持编写源代码常用的操作,如查找 C 语言中的匹配花括语言中的匹配花括号、注释和取消注释代码段、查找多个文件中的文本以及号、注释和取消注释代码段、查找多个文件中的文本以及添加特殊书签等。添加特殊书签等。一、一、MPLAB IDEMPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件v汇编器汇编器/链接器和语言工具链接器和语言工具 汇编器可以单独使用来汇编单个文件,也可以与链接汇编器可以单独使用来汇编单个文件,也可以与链接器配合使用,以从不同的源文件
9、、库和重新编译的目标文器配合使用,以从不同的源文件、库和重新编译的目标文件生成一个项目。链接器负责将编译后的代码分配到目标件生成一个项目。链接器负责将编译后的代码分配到目标单片机的存储区中。单片机的存储区中。一、一、MPLAB IDEMPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件一、一、MPLAB IDEMPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件v调试器调试器 Microchip 调试器允许使用断点、单步调试、调试器允许使用断点、单步调试、watch 窗口以及目前窗口以及目前 MPLAB IDE 调试器中的所有功能。将它与调试器中的所有功能。将它与编
10、辑器配合使用,可以将正在调试的目标中的信息与源代编辑器配合使用,可以将正在调试的目标中的信息与源代码相关联。码相关联。一、一、MPLAB IDEMPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件v执行引擎执行引擎 MPLAB IDE 中具有适用于所有中具有适用于所有 PICmicro 和和 dsPIC 器件的软件模拟器。这些软件模拟器使用器件的软件模拟器。这些软件模拟器使用PC 机来模拟机来模拟 PICmicro 和和 dsPIC 器件的指令和某些外设功能。还可以器件的指令和某些外设功能。还可以使用可选的在线仿真器和在线调试器通过在应用硬件中运使用可选的在线仿真器和在线调试器通
11、过在应用硬件中运行代码来测试代码。行代码来测试代码。一、一、MPLAB IDEMPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件v语言工具语言工具 PIC汇编语言、汇编语言、C语言语言v目标调试目标调试 在开发环境中,代码的执行是在调试器中测试的。调试在开发环境中,代码的执行是在调试器中测试的。调试器可以是软件程序,用来模拟单片机的操作以便进行测试,器可以是软件程序,用来模拟单片机的操作以便进行测试,也可以是特殊的仪器,用来分析在应用程序中执行的代码。也可以是特殊的仪器,用来分析在应用程序中执行的代码。MPLAB IDE 中内置了软件模拟器,因此不需要任何其他中内置了软件模拟器
12、,因此不需要任何其他硬件就可以对程序进行测试。硬件就可以对程序进行测试。软件模拟器是一种软件调试器,软件模拟器的调试功能软件模拟器是一种软件调试器,软件模拟器的调试功能与硬件调试器的功能几乎完全相同,学习起来非常容易。由与硬件调试器的功能几乎完全相同,学习起来非常容易。由于软件模拟器使用于软件模拟器使用PC 机中的机中的 CPU 来模拟单片机的操作,因来模拟单片机的操作,因此它通常比实际单片机运行得要慢一些。此它通常比实际单片机运行得要慢一些。MPLAB IDE 为所为所有的有的PICmicro 和和dsPIC 处理器提供了许多软件模拟器。处理器提供了许多软件模拟器。一、一、MPLAB IDE
13、MPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件vMPLAB-SIM(Software Simulator)这是一种代替价格较贵的硬件仿真器的调试工具,这是一种代替价格较贵的硬件仿真器的调试工具,也是一种非实时、非线性的纯软件的调试工具。借助这个也是一种非实时、非线性的纯软件的调试工具。借助这个工具软件,我们可以不需要任何额外的附加硬件,仅用软工具软件,我们可以不需要任何额外的附加硬件,仅用软件的手段,来模仿件的手段,来模仿PICPIC系列单片机的指令的执行和信号的系列单片机的指令的执行和信号的输入输入/输出,从而实现对用户自编单片机源程序的模拟运输出,从而实现对用户自编单片
14、机源程序的模拟运行、功能调试和深层次逻辑错误查找。相当于提供了一种行、功能调试和深层次逻辑错误查找。相当于提供了一种虚拟的实战环境。虚拟的实战环境。一、一、MPLAB IDEMPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件vMPLAB-SIM的局限性:的局限性:v一是它还不能模拟一是它还不能模拟PIC16F87XPIC16F87X片内一些特殊的外围模块;片内一些特殊的外围模块;v二是不能查找目标板上的电路错误;二是不能查找目标板上的电路错误;v三是执行速度慢,只适合那些实时性要求不高的程序。三是执行速度慢,只适合那些实时性要求不高的程序。一、一、MPLAB IDEMPLAB
15、IDE集成开发软件集成开发软件集成开发软件集成开发软件vMPLAB-ICD2 Debugger(在线调试工具(在线调试工具ICD的支的支持程序)持程序)这是一种专门与这是一种专门与ICDICD配合使用的支持程序,配合使用的支持程序,ICDICD是是MicrochipMicrochip公司专为公司专为PIC16F87XPIC16F87X设计的一种廉价在线调试工设计的一种廉价在线调试工具套件,在下一节中介绍。具套件,在下一节中介绍。v另外,还包含一些其他工具软件。另外,还包含一些其他工具软件。例如:程序模块连接器、库程序管理器、例如:程序模块连接器、库程序管理器、C C语言编译器、语言编译器、硬件
16、在线仿真器的支持程序、目标程序烧录器的支持程序硬件在线仿真器的支持程序、目标程序烧录器的支持程序等。等。一、一、MPLAB IDEMPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件v在在MPLAB IDE 中,可以使用两种类型的硬件:编程器和硬件中,可以使用两种类型的硬件:编程器和硬件调试器。调试器。v编程器直接将机器码从编程器直接将机器码从PC 机传送到目标单片机的片内存储器机传送到目标单片机的片内存储器中。然后就可以将单片机插入到应用中了,并希望单片机中中。然后就可以将单片机插入到应用中了,并希望单片机中的程序能够按设计运行。的程序能够按设计运行。v但是,代码通常都不会完全
17、按照预期运行,设计人员需要检但是,代码通常都不会完全按照预期运行,设计人员需要检查代码及其在应用中的运行状况,以决定如何修改源代码,查代码及其在应用中的运行状况,以决定如何修改源代码,使之能够按预期运行。这个过程被称为调试。使之能够按预期运行。这个过程被称为调试。一、一、MPLAB IDEMPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件v如前所述,软件模拟器可以用于测试代码的运行,但是一旦如前所述,软件模拟器可以用于测试代码的运行,但是一旦向单片机烧写了固件,就由软件模拟器之外的很多因素发挥向单片机烧写了固件,就由软件模拟器之外的很多因素发挥作用了。作用了。v仅使用编程器,虽
18、然可以更改代码,并将其重新烧写到单片仅使用编程器,虽然可以更改代码,并将其重新烧写到单片机,然后插入目标进行重新测试,但如果代码比较复杂,这机,然后插入目标进行重新测试,但如果代码比较复杂,这个过程就非常费时费力,而且很难弄清楚硬件中究竟发生了个过程就非常费时费力,而且很难弄清楚硬件中究竟发生了什么问题。什么问题。一、一、MPLAB IDEMPLAB IDE集成开发软件集成开发软件集成开发软件集成开发软件v在这种情况下,硬件调试器就非常有用了。在这种情况下,硬件调试器就非常有用了。v硬件调试器可以是在线仿真器,它使用专用硬件来代替实硬件调试器可以是在线仿真器,它使用专用硬件来代替实际的目标单片
19、机。它也可以是在线调试器,使用具有特殊际的目标单片机。它也可以是在线调试器,使用具有特殊内置调试功能的单片机。内置调试功能的单片机。v硬件调试器和软件模拟器一样,允许设计人员检查当代码硬件调试器和软件模拟器一样,允许设计人员检查当代码执行到各个点时的变量,单步调试程序以检查硬件与专用执行到各个点时的变量,单步调试程序以检查硬件与专用电路交互时的指令。电路交互时的指令。二、二、MPLAB ICD2在线调试器在线调试器 PICDEM2目目标电路板路板(1)分别为)分别为18、28、40引脚的引脚的IC插座插座(2)9V的电源输入插座和一个电池插座,的电源输入插座和一个电池插座,板上工作电压为板上工
20、作电压为5V(3)RS-232串行接口可以直接连接串行接口可以直接连接RS-232接口接口(4)电缆连接插座,可以通过电缆直接)电缆连接插座,可以通过电缆直接连接到连接到ICD2调试器调试器(5)5K可调电位器,用来作为模拟信号可调电位器,用来作为模拟信号的输入的输入(6)3个按钮开关,分别为复位按钮和外部开关信号的输入按钮个按钮开关,分别为复位按钮和外部开关信号的输入按钮(7)绿色电源指示灯)绿色电源指示灯(8)4个红色指示灯,分别与个红色指示灯,分别与PORTB口的口的RB0RB3连接连接(9)J6跳线开关,用来断开跳线开关,用来断开4个红色指示灯和个红色指示灯和PORTB口口(10)4M
21、Hz晶振晶振(11)晶体连接口)晶体连接口(12)32.768KHz晶体用于晶体用于Timer1计时器计时器(13)J7跳线开关,用来断开板上跳线开关,用来断开板上RC振荡器振荡器(14)2568的的EEPROM(15)LCD显示屏显示屏(16)蜂鸣器,)蜂鸣器,J9用来断开蜂鸣器用来断开蜂鸣器(17)用户可使用的区域板)用户可使用的区域板(18)TC74温度传感器温度传感器MPLAB ICD2在在线调试器器二、二、MPLAB ICD2在线调试器在线调试器vMPLAB-ICD是是Microchip公司针对具有片内公司针对具有片内FLASH程序存储器的程序存储器的PIC16F87X系列单片机所研
22、系列单片机所研制的一套廉价的学习和开发工具。制的一套廉价的学习和开发工具。vMPLAB-ICD既是一个编程器(既程序烧写器),既是一个编程器(既程序烧写器),又是一个实时在线调试器。又是一个实时在线调试器。vMPLAB-ICD利用了利用了PIC16F87X片内集成的在线片内集成的在线调试器能力和调试器能力和Microchip公司的在线串行编程技术。公司的在线串行编程技术。vMPLAB-ICD工作于工作于MPLAB集成开发环境软件包集成开发环境软件包之下,其仿真头直接连接到目标电路板上,如同之下,其仿真头直接连接到目标电路板上,如同将一片将一片PIC16F87X插入到目标板内一样去运行用插入到目
23、标板内一样去运行用户编制的程序。户编制的程序。MPLAB ICD2的功能特点的功能特点v能以实时或单步方式运行用户程序能以实时或单步方式运行用户程序v断电设置功能断电设置功能v在线调试功能在线调试功能v在线编程功能在线编程功能v工作电压范围:工作电压范围:3.05.5Vv可从目标板上获取工作电源可从目标板上获取工作电源v对源程序直接进行代码级的调试对源程序直接进行代码级的调试v可工作于可工作于MPLAB-IDE环境下环境下v可以用可以用USB口或口或RS-232串行接口方式与微机系统相连串行接口方式与微机系统相连借助于借助于MPLAB-ICD工具套件,用户可以实现:工具套件,用户可以实现:v软
24、件调试软件调试 即在自己设计的即在自己设计的PIC16F87X的应用电路中实时运行和的应用电路中实时运行和调试自己的源程序。调试自己的源程序。v硬件调试硬件调试 即即用自己编制的程序来调试和检验自制目标板上的电用自己编制的程序来调试和检验自制目标板上的电路。路。v程序固化程序固化 即利用在线串行编程技术将自己设计的目标程序烧写即利用在线串行编程技术将自己设计的目标程序烧写到目标单片机中。到目标单片机中。MPLAB ICD2的局限性的局限性vMPLAB ICD2工作过程中将会占用目标单片机的工作过程中将会占用目标单片机的片内和引脚中的部分资源,这部分资源用户就不片内和引脚中的部分资源,这部分资源
25、用户就不能再使用了。能再使用了。MPLAB ICD2所占用的目标单片机的部分资源如下:所占用的目标单片机的部分资源如下:系统复位引脚系统复位引脚 ,用于编程电压,用于编程电压VPP(约为(约为13V)输入脚)输入脚 禁止采用低电压方式进行在线串行编程禁止采用低电压方式进行在线串行编程 RB6和和RB7引脚保留为在线编程和在线调试时的通信专用引脚保留为在线编程和在线调试时的通信专用 程序存储器中的首条指令(地址程序存储器中的首条指令(地址0X0000)必须放置一条空操作指令)必须放置一条空操作指令NOP 占用了占用了8级堆栈中的一级堆栈级堆栈中的一级堆栈 SLEEP指令在调试期间不能使用指令在调试期间不能使用 6个通用寄存器单元保留给调试监控程序使用个通用寄存器单元保留给调试监控程序使用 程序存储器的最后程序存储器的最后256或或288个单元被保留用来存放调试监控程序个单元被保留用来存放调试监控程序习题习题1 MPLAB_IDE集成开发软件包主要由哪些软件工集成开发软件包主要由哪些软件工具组成?具组成?2 编辑器的主要用途是什么?编辑器的主要用途是什么?3 软件模拟器的主要用途是什么?它有哪些优点和软件模拟器的主要用途是什么?它有哪些优点和局限性?局限性?4 MPLAB ICD2有哪些功能?有哪些功能?5 MPLAB ICD2存在哪些局限性?存在哪些局限性?
限制150内