MPLAB - ICD 用户指南
目 录
引言...................................................................................................................3
介绍.............................................................................................................................3
重点.............................................................................................................................3
关于本指南.................................................................................................................3
质量保证注册.............................................................................................................4
推荐阅读.....................................................................................................................4
疑难问题解答.............................................................................................................4
MICROCHIP国际互联网站......................................................................................4
开发系统用户信息更新服务.....................................................................................6
用户支持.....................................................................................................................7
第1章 MPLAB-ICD概述..............................................................................................8
11 介绍.............................................................................................8
12 重点............................................................................................ 8
13 什么是MPLB-ICD.....................................................................8
14 MPLAB-ICD能帮你干什么..................................................8
15 MPLAB-ICD使用的资源..........................................................8
16 MPLAB-ICD的各组成部件......................................................9
17 MPLAB集成开发环境.............................................................12
18 MPLAB开发工具.....................................................................12
第2章 MPLAB-ICD的安装入门................................................................................13
21 介绍............................................................................................13
22 重点............................................................................................13
23 MPLAB-ICD开发套件组成.....................................................13
24 MPLAB-ICD对计算机主机的要求.........................................14
25 安装硬件....................................................................................14
26 安装软件....................................................................................16
第3章 Tut877软件的使用..............................................................................................17
31 介绍.............................................................................................17
32 重点.............................................................................................17
33 开始工作前的准备工作.............................................................17
34 建立一个16进制调试文件.......................................................17
35 设置MPLAB-ICD和MPLAB..................................................23
36 设置ICD的编程和调试选项....................................................24
37 对PIC16F877进行编程............................................................26
38 设置演示板.................................................................................26
39 运行Tut877软件.......................................................................29
310 调试Tut877软件.......................................................................32
311 Tut877软件的主例程................................................................33
DS51184 2000 Microchip Technology Inc. 1
MPLAB - ICD 用户指南
312 Tut877软件源代码....................................................................33
第4章 开始使用MPLAB-ICD.......................................................................................35
41 介绍.............................................................................................35
42 重点.............................................................................................35
43 与MPLAB-ICD通讯.................................................................35
44 MPLAB-ICD操作......................................................................36
45 充分利用MPLAB-IDE的项目功能.................................36
第5章 MPLAB-ICD主要功能.......................................................................................38
51 介绍.............................................................................................38
52 重点.............................................................................................38
53 MPLAB-ICD会话窗口..............................................................38
54 程序的执行.................................................................................43
55 断点.............................................................................................44
56 如何使用MPLAB-ICD..............................................................44
第6章 MPLAB-ICD菜单选项.......................................................................................46
61 概述.............................................................................................46
62 重点.............................................................................................46
63 文件菜单.....................................................................................46
64 调试菜单.....................................................................................46
65 选项菜单.....................................................................................46
第7章 疑难问题解答.......................................................................................................47
71 概述.............................................................................................47
72 重点.............................................................................................47
73 常见问题.....................................................................................47
附录A MPLAB-ICD硬件结构.....................................................................................50
A1 介绍........................................................................................................50
A2 MPLAB-ICD模块和仿真头.................................................................50
A3 MPLAB-ICD演示板.............................................................................56
DS51184 2000 Microchip Technology Inc. 2
MPLAB - ICD 用户指南
引 言
介绍
在开始使用MPLIB-ICD之前看一下本章介绍的通用信息将很有好处
重点
本章你会得到如下信息
关于本指南
质量保证注册
推荐阅读的内容
疑难问题解答
MICROCHIP的国际互联网站
开发工具用户信息更新服务
客户支持
关于本指南
文档资料安排如下
本手册将会介绍如何使用MPLIB-ICD作为开发工具来开发用户的目标系统支持软
件FIRMWARE - 也译为"固件"本指南的内容安排如下
第1章 - MPLAB-ICD概述 - 定义MLAB-ICD它能干什么以及它如何配合其他开发
工具进行开发工作
第2章 - MPLAB-ICD-安装入门 - 描述如何安装MPLAB-ICD的硬件和软件以及如
何与系统机之间建立通讯
第3章 - Tut877软件的使用 - 介绍如何使用MPLAB-IDE集成开发环境中的项目
管理器和MPLAB-ICD来开发和调试应用程序
第4章 - 开始使用MPLAB-ICD - 介绍如何建立起MPLAB-ICD软件环境并运行之
第5章 - MPLAB-ICD主要功能 - 详细介绍MPLAB-ICD的主要功能
第6章 - MPLAB-ICD菜单选项 - 详细介绍MPLAB-ICD的菜单选项
第7章 - 疑难问题解答 - 对于一些常见的疑难问题提供解答
附录A MPLAB-ICD硬件结构 - 对于MPLAB-ICD涉及的仿真头模块和演示板的
硬件进行技术上介绍
索引 - 本手册中涉及到的术语TERMS特性FEATURES和章节SECTIONS
环球销售服务网 - 列出MICROCHIP全球的销售服务点的电话传真以及地址
DS51184 2000 Microchip Technology Inc. 3
MPLAB - ICD 用户指南
本指南中用到的一些表示符号
本指南中用到了下列约定符号
描述 说明 例子
代码
courier字体 例程代码文件名路径名 #define START
尖括号 变量
方括号 [ ] 可选参数项 MPASMWIN [main.asm]
大括号{ } 竖号| 可选参数项 Errorlevel { 0 | 1 }
引号中的小写体 数据类型 "filename"
省略号 … 把与本例无关的文本项省略掉 List
["list_option",…,"list_option"]
形如0xnnnn数字 表示16进制数n为16进制数 0xFFFF,0x007A
界面
带下划线和右箭头
的斜体字
表示菜单选项 File>Save
文本中的粗体字 一个窗口或会话窗口的按钮 OK,Cancel
尖括号中的大写字 表示键盘上的一些特殊键 ,
文档资料
斜体字 参考书 MPLAB User's Guide
资料更新
所有的文档资料都有过时的时候本用户指南也不例外因为MPLAB-IDEMPLIB-ICD
及其他MICROCHIP的开发工具需要经常更新以满足用户的要求某些实际看到的对话
窗口和/或工具的使用说明可能与本指南有所不同请到MICROCHIP的国际互联网站获取
最新的文档资料www.microchip.com
质量保证注册
请填好登记卡并立即邮寄出来这将保证您得到及时的软件升级MICROCHIP的网站
上可得到这些更新软件
推荐阅读
本指南讲述如何使用MPLAB-ICD用户也可以在开发软件包里找到某一特定型号单片
机的详细资料
README.ICD
阅读README.ICD文档ASCII文档资料了解最新的MPLIB-ICD信息该文档资
料中包含了本指南可能没有提及的关于软件的升级信息
README.XXX
阅读README.XXX文档ASCII文档资料了解相应的最新的工具如MPLAB
MPASM等信息该文档资料均包含在MPLAB软件包中
MPLAB用户指南DS51025
详细地介绍了MPLAB-IDE 集成开发环境软件包的特性及安装以及编辑器和模拟器的
使用
技术资料CD-ROMDS00161
这张CD-ROM中包含了MICROCHIP最新的PICmicro器件详细数据手册请联系您最
DS51184 2000 Microchip Technology Inc. 4
MPLAB - ICD 用户指南
近的MICROCHIP办事处索取光碟也可以从WWW.MICROCHIP.COM网站下载
嵌入控制技术手册DS00092和DS00167第一卷和第二卷
这两本手册包含丰富的单片机应用信息请联系您最近的MICROCHIP办事处索取见
手册后面附录
这些手册中讲述的应用例子也可以从MICROCHIP的销售和办事处得到还可以从
MICROCHIP的网站上下载
PICmicro中级微控制芯片MCU参考手册DS33023
该资料详细介绍了PIC16CXXX系列中级微控制芯片MCU的内部架构和外设模块
请联系您最近的MICROCHIP办事处索取见手册后面附录
MICROSOFT WINDOWS 手册
本指南认为用户已熟悉WINDOWS的使用市面有许多关于WINDOWS的书可以作为
参考
疑难问题解答
详细内容见第7章关于常见问题的解答
MICROCHIP互联网站
MICROCHIP在国际互联网INTERNET上提供在线帮助
MICROCHIP把INTERNET作为一个方便地给用户提供文件和信息的手段用户需要
有INTERNET浏览器比如NETSCAPE NAVIGATOR或者MICROSOFT INTERNET
EXPLORER用户也可以从我们的文件服务器FTP上下载
连接到MICROCHIP的INTERNET站点
你可以在你熟悉的浏览器中输入MICROCHIP的网站地址
HTTP//WWW.MICROCHIP.COM
(中文网站为 HTTP//WWW.MICROCHIP.COM.CN - 译者)
若想连接到FTP文件传输协议服务器请输入
FTP//FTP.MICROCHIP.COM
WEB网站和FTP站提供很多服务用户可以下载最新的开发软件数据手册应用笔记
用户指南技术文章和例程还有许多MICROCHIP的商业信息包括办事处分销商
其他用户关心的信息还包括
MICROCHIP最新发布消息
技术支持章节有常见问题解答
设计指导与提示
器件资料勘误
工作机会
MICROCHIP咨询顾问成员名单
与其他和MICROCHIP产品相关网站的链接
更多关于产品开发系统技术研讨会的信息
研讨会安排时间表
DS51184 2000 Microchip Technology Inc. 5
MPLAB - ICD 用户指南
开发系统用户最新信息提供服务
MICROCHIP通过用户最新信息提供服务尽力使用户随时得知MICROCHIP的最新产品
信息一旦你购买以下产品我们会随时用电子邮件通知你关于软件的升级修改或关于产
品系列及开发工具的勘误信息其他服务请参见MICROCHIP国际互联网站
开发系统产品包括
编译器
仿真器
编程器
MPLAB软件包
其他工具
假如你对以上产品之一感兴趣的话可以联系下列EMAIL地址订购
listserv@mail.microchip.com
请使用如下格式
subscribe yourname
给你一个范例
subscribe mplab John Doe
假如你想撤消定单的话可以EMAIL给以下地址
listserc@mail.microchip.com
请使用如下格式
unsubscribe yourname
给你一个范例
unsubscribe mplab Jhon Doe
以下将一一介绍现有的开发系统
仿真器
MICROCHIP最新的在线仿真器包括MPLAB-ICEPICMASTER
假如你对以上产品感兴趣的话可以联系下列EMAIL地址订购
listserv@mail.microchip.com
请使用如下格式
subscribe emulators yourname
编程器
MICROCHIP最新的编程器包括PROMATEPICSTART PLUS
假如你对以上产品感兴趣的话可以联系下列EMAIL地址订购
listserv@mail.microchip.com
请使用如下格式
subscribe programmers yourname
编译器
MICROCHIP最新的C编译器链接器汇编器的信息包括MPLAB-C17MPLAB-C18
MPLINKMPASM和库MPLINK的库MPLIB
假如你对以上产品感兴趣的话可以联系下列EMAIL地址订购
listserv@mail.microchip.com
请使用如下格式
DS51184 2000 Microchip Technology Inc. 6
MPLAB - ICD 用户指南
subscribe compilers yourname
MPLAB集成开发软件包
提供基于WINDOWS的集成开发环境软件包MPLAB的最新信息本信息服务集中于
MPLABMPLAB-SIM模拟器MPLAB项目管理器通用编辑器调试器欲知编译器
链接器汇编器的详细情况请订阅编译器产品清单COMPILER LIST欲知MPLAB模
拟器的详细情况可订阅模拟器产品清单欲知MPLAB编程器的详细情况可订阅编程器
产品清单
假如你对以上产品清单感兴趣的话可以联系下列EMAIL地址订阅
listserv@mail.microchip.com
请使用如下格式
subscribe mplab yourname
其他开发工具
MICROCHIP提供的最新关于其他开发工具的信息欲知MPLAB及其集成开发工具的
详细情况可联系其他EMAIL地址
假如你对以上产品清单感兴趣的话可以联系下列EMAIL地址订阅
listserv@mail.microchip.com
请使用如下格式
subscribe otools yourname
用户支持
使用MICROCHIP的产品可以通过以下渠道得到帮助
分销商及代表处
当地销售处
现场应用工程师FAE
厂内应用工程师CAE
热线电话
用户可以打电话给分销商代表处或现场应用工程师FAE寻求帮助当地销售处
也可接受用户的求助见手册后面的销售处电话和地址联系厂内应用工程师CAE可打
电话
480786-7627
另外一条专线电话专门为用户提供系统信息和升级消息用户可以及时得到开发系统软
件的最新版本清单用户还可以得到如何得到最新升级软件的信息
这些热线电话是
1-800-755-2345 美国及加拿大的大部分地区
1-480-786-73-2 世界其他地区
北京010-85282100
上海021-62755700
DS51184 2000 Microchip Technology Inc. 7
MPLAB - ICD 用户指南
第1章 MPASM概述
1.1. 介绍
本章初步介绍MPLAB-ICD(In-Circuit Debugger)在线调试器的特性和功能还将
介绍相应的软件和硬件
1.2. 重点
本章内容包括
什么是MPLAB-ICD
MPLAB-ICD如何帮助你的工作
MPLAB-ICD所使用的资源
MPLAB-IDE的组成部件
MPLAB-IDE Integrated Development Environment集成开发环境
MPLAB开发工具
1.3. 什么是MPLB-ICD
MPLAB-ICD是针对MICROCHIP公司的PICmicro系列微控制芯片PIC16F87X的
廉价开发工具MPLAB-ICD既是一个编程器又是一个在线调试器它利用了
PIC16F87X的在线调试能力和MICROCHIP的在线串行编程技术In-Circuit Serial
Programming 它工作于MPLAB-IDE集成开发环境软件包下直接连接到应用系
统里如同一片PIC16F87X一样去跑用户的应用程序
MPLAB-ICD可以用作实验阶段的评估和辅助调试
MPLAB-ICD有如下特性
实时单步代码执行
断点功能
在线调试功能
工作电压范围为3.0V 到 5.5V
可由目标系统提供工作电压
工作频率范围为32KHZ到20MHZ
源程序级的代码调试
可以工作于MPLAB-IDE集成开发环境兼容于Microsoft Windows 3.X
Windows 95/98 Windows NT 和 Windows 2000 等操作系统
RS-232 串行接口方式
1.4. MPLAB-ICD能帮你干什么
MPLAB-ICD可以让你
在自己的应用系统里调试你的源程序
实时调试你自己的硬件系统
使用MICROCHIP的在线串行编程技术In-Circuit Serial Programming
对目标应用控制器进行编程
1.5. MPLAB-ICD使用的资源
由于PIC16F87X内建在线调试能力和MICROCHIP调试器的在线串行编程功
DS51184 2000 Microchip Technology Inc. 8
MPLAB - ICD 用户指南
能MPLAB-ICD将会占用以下资源
系统复位MCLR和编程电压VPP共用一个管脚
禁止低电压在线串行编程ICSP
RB6和RB7保留为编程和在线调试用
六个通用文件寄存器保留给调试监控程序见下所述
程序存储器第一条指令地址0X0000必须是空操作指令NOP
程序存储器的最后256或88个字被保留用来存放调试代码根据芯片类型
而不同所占字节不同见下面所述
MPLAB-ICD所使用的数据和程序存储器
MPLAB-ICD使用了PIC16F87X目标系统控制器的以下的文件寄存器和程序存储
器
处理器类型 被占用的文件寄存器 被占用的程序存储器
PIC16F870/871/872 0x70, 0x0BB-0x0BF 0x06E0-0x07FF
PIC16F873/874 0x70, 0x0EB-0x0F0 0x0EE0-0x0FFF
PIC16F876/877 0x70, 0x1EB-0x1EF 0x1F00-0x1FFF
1.6. MPLAB-ICD的各组成部件
MPLAB-ICD由以下部件构成
MPLAB-ICD模块
MPLAB-ICD仿真头
MPLAB-ICD演示板
MPLAB-ICD开发软件装在PC机里
图1-1MPLAB-ICD的各个部件示意图
DS51184 2000 Microchip Technology Inc. 9
MPLAB - ICD 用户指南
图1-2MPLAB-ICD模块和演示板的连接示意图
161 MPLAB-ICD模块
MPLAB-ICD模块包括所有的调试编程和控制逻辑通过一条九芯串行电缆
将计算机串行口和MPLAB-ICD模块连接起来MPLAB-ICD模块和MPLAB-ICD
目标板演示板之间用一条六芯扁平电缆连接假如用户的应用板没有这种六芯
插座见1.1.3 节的第12条所述作为另外一种连接方式MPLAB-ICD模块可
以连接到仿真头而应用板可以通过MPLAB-ICD仿真头与MPLAB-ICD模块连
接进行调试工作
模块的支持软件还提供和PC机之间的串行通讯驱动MPLAB-ICD和目标板
演示板或仿真头之间的通讯使用在线串行编程技术ICSP对目标板上的
PIC16F87X进行编程这一切都是通过MPLAB-IDE集成开发环境来实现的
该模块的电源来自目标模块或者演示板所需要的电流最大为70mA不
包括目标板上的器件消耗的电流
扁平电缆可以插入到带有特定插座的MPLAB-ICD仿真头或者PIC16F87X的
应用电路板上以便在线仿真QFPDIE封装的芯片见2.5.2节的详细介绍
162 MPLAB-ICD仿真头
有时用户目标板上并没有设计这种特定的六芯电缆插座用来和MPALB-ICD
模块相连为方便用户使用MPLAB-ICD仿真头可以非常方便地插入到用户目标
板上的PIC16F87X芯片插座上MPLAB-ICD模块和MPLAB-ICD仿真头之间有
一条九英寸长的电缆相连对于在线仿真需要在仿真头上插入40引脚的
PIC16F87X芯片然后可以将该仿真头插入到用户目标板上的28引脚或者40引
脚的PIC16F87X双列直插DIPIC插座上也可以插入到MPLAB-ICD演示板
上见2.5.1节的详细介绍
MPLAB-ICD仿真头的电源供应来自用户目标板电压范围从3V到5.5V
163 MPLAB-ICD演示板
演示板用于在没有用户目标板的情况下进行演示和开发评估它可以直接连
接到MPLAB-ICD模块或者通过MPLAB-ICD仿真头与模块连接PIC16F877可以
从仿真头上拔出来直接插入到演示板上独立运行
演示板见图1.3有下列硬件特性
DS51184 2000 Microchip Technology Inc. 10
MPLAB - ICD 用户指南
1 提供了40引脚和28引脚IC插座用于在没有用户目标板的情况下进行
演示和评估工作见A.3.1节介绍用户可以选择所需要的管脚数
2 8位DIP拨码开关可以方便地进行切换以便连接到端口CPORTC
上的相应管脚或者与这些管脚断开
3 8只红色的LED发光二级管连接到PORTC用于显示八位二进制信息
4 有两只按钮开关一只用于系统复位RESET另一只连接到RB0作为
外部开关量信号输入
5 一个电位器连接到RA0口线上用来作为模拟信号的输入
6 一小块用户可使用的面包板安装用户设计中的电路元件
7 一个扩展插座用于把PIC16F87X的IO引脚连接到其他扩展板上
8 一个选择跳线用于选择RC振荡方式大约2MHZ或者外部晶体振荡
器振荡方式
9 外部晶体振荡器插座
109V0.75A电源输入插座和PICSTART PLUS 编程器的电源适配器相
似
11RS232串行口及相应的配套硬件连接常见的RS232口
12电缆连接插座可以通过电缆直接连接到演示板或者MPLAB-ICD模块
图1-3MPLAB-ICD演示板
164 MPLAB-IDE集成开发软件包
MPLAB-IDE集成开发软件包运行于WINDOWS31WINDOWS95/98或
WINDOWS NTWINDOWS2000等操作系统
DS51184 2000 Microchip Technology Inc. 11
MPLAB - ICD 用户指南
1.7. MPLAB集成开发环境
MPLAB提供一个开发调试用户目标系统的集成开发环境MPLAB-ICD相应的
软件也嵌入到了MPLAB软件包里
本资料对MPLAB-ICD的基本操作和设置进行介绍但并不详细介绍MPLAB-IDE
集成开发环境软件包关于MPLAB详细的特性和调试能力请参考MPLAB-IDE集
成开发环境用户指南MICROCHIP文档资料号DS51025
1.8. MPLAB开发工具
MPLAB-IDE集成开发环境提供了一系列开发工具形成一个完整的开发环境
MPLAB 项目管理器MPLAB Project Manager
使用项目管理器建立项目并结合所指定的一系列与该项目相关的文件进行
工作当使用项目时只需简单地点击鼠标就可以将源代码重新创建
REBUILT而且下载到模拟器或仿真器里
MPLAB 编辑器MPLAB Editor
使用MPLAB编辑器可以方便地编辑和修改文本文件如源文件代码和链
接器描述文件
MPLAB 模拟器MPLAB-SIM Simulator
软件模拟调试可以仿真指令的执行和微控制器MCU的IO口状态
MPLAB 在线仿真器MPLAB-ICE Emulator
不管有没有目标系统在线仿真器都可以以硬件方式实时仿真PICMICRO微
控制器
MPASM通用宏汇编/MPLINK可重定位链接器/MPLIB库管理器
MPASM宏汇编可以不用离开MPLAB集成开发环境就进行汇编操作
MPLINK链接由MPASM宏汇编MPLAB-C17PIC17CXXX系列C编译器
生成的可重定位模块输出可烧写代码MPLIB负责库文件管理使用户最
大程度利用代码资源
PRO MATE II 和PICSTART Plus 编程器
对源代码用软件模拟器硬件仿真器汇编或编译处理然后使用这些工具
对PICMICRO微控制器进行编程这些操作可以都在MPLAB中进行尽管
PROMATE II可以不用MPLAB而独立工作可是使用MPLAB可以使编程更
为方便
第三方开发工具Third Party Tools
许多公司开发了可以在MPLAB下工作的开发工具参考MICROCHIP的第
三方开发工具指南文档资料号DS00104
DS51184 2000 Microchip Technology Inc. 12
MPLAB - ICD 用户指南
第2章 MPLAB-ICD的安装入门
21 介绍
本章介绍如何安装MPLAB-ICD的硬件和软件并在PC机和MPLAB-ICD演示板
间建立通讯
22 重点
本章内容包括
MPLAB-ICD套件组成部分
对系统PC机的要求
安装硬件
安装软件
23 MPLAB-ICD开发套件组成
MPLAB-ICD套件包括以下部分
1MPLAB-ICD仿真头
2MPLAB-ICD模块
3MPLAB-ICD演示板
4RS-232串行口电缆
540管脚和28管脚的SDIP连接插座
6九英寸长的六芯插头电缆
7包含所有MPLAB软件包和文档资料的光碟
8使用手册
MPLAB-ICD 用户指南即本手册
MPLAB-IDE 用户指南图中没有
MPASM及MPLINKMPLIB用户指南
9 质量保证卡图中没有
图2.1MPLAB-ICD套件组成部分
DS51184 2000 Microchip Technology Inc. 13
MPLAB - ICD 用户指南
24 MPLAB-ICD对计算机主机的要求
为了更好地发挥调试系统的性能必须把MPLAB软件包安装到以下要求的计算 机
里
奔腾PENTIUM系列PC或兼容计算机
微软公司的操作系统WINDOWS3XWINDOWS95/98WINDOWSNT或者
WINDOWS2000
16MB的系统内存推荐使用32MB系统内存
45MB可使用的磁盘空间
一个空余的串行通讯口
9V0.75A的电源适配器PICSTART PLUS所用型号或相近型号
25 安装硬件
251 连接模块仿真头和演示板或目标板
请按下列步骤安装MPLAB-ICD硬件系统
1将PICMICRO微控制器芯片PIC16F87X插入到MPLAB-ICD仿真头
的40管脚DIP插座里面
在目标板或演示板上的
MCU型号
在仿真头上要插入的
MCU型号
PIC16F870 PIC16F871
PIC16F871 PIC16F871
PIC16F873 PIC16F874
PIC16F874 PIC16F874
PIC16F876 PIC16F877
PIC16F877 PIC16F877
注意如果所选MCU型号不是40引脚的芯片不能使用MPLAB-ICD仿真
头要想调试非40管脚的处理器则需要将模块和演示板或目标板按2.5.2
节介绍的方法进行连接
2将扁平电缆连接到MPLAB-ICD模块和仿真头之间
用九英寸长的扁平电缆把MPLAB-ICD模块和仿真头连接起来
3将40引脚的连接仿真插头插入到演示板或目标板上的的40芯IC插
座里如果使用的是演示板确信先插入一个40引脚的附加插座
4把仿真头插入到演示板或者应用目标板的IC插座里见图2-2
如果你调试的是28引脚IC将仿真头通过一个28脚的SDIP转换 插
头连接到演示板或目标板上的28脚的SDIP插座里即可
5将RS-232串行口专用电缆连接到PC主机的串行口和MPLAB-ICD
模块之间
6打开计算机主机电源
7打开MPLAB-ICD演示板或应用目标板上的电源该电源同时供给
MPLAB-ICD模块对于演示板用户可以使用PICSTART PLUS
编程器用的电源适配器插头中心为电源正极
DS51184 2000 Microchip Technology Inc. 14
MPLAB - ICD 用户指南
图2-2MPLAB-ICD硬件连接示意图
252 连接模块和演示板或目标板
假如你设计的目标板上有RJ-6电缆插座那末就可以方便地将MPLAB-ICD
模块和目标板直接连接了RJ-6电缆内部各芯的分配如下表
J2各芯编号 信号
6 RB3
5 RB6
4 RB7
3 接地
2 +VDD
1 Vpp
这些信号为MPLAB-ICD提供了所有功能
1在演示板或目标板里的MCU插座里插入一片28脚或40脚的PIC16F87X
芯片
2用九英寸扁平电缆连接MPLAB-ICD模块和MPLAM-ICD演示板或用户
应用目标板
3用RS-232串行电缆连接计算机的串行口和MPLAB-ICD模块
4打开计算机主机电源
5打开演示板或目标板的电源同时供给MPLAB-ICD模块电源对于演示
板用户可以使用PICSTART PLUS编程器用的电源适配器插头中心为电
源正极
DS51184 2000 Microchip Technology Inc. 15
MPLAB - ICD 用户指南
图2-3MPLAB-ICD模块和演示板的电缆连接不通过仿真头
26 安装软件
MPLAB-ICD是MPLAB-IDE集成开发环境的一个可插入ADD-ON工具按
如下步骤安装MPLAB-IDE集成开发环境软件包
1进入MICROSOFT WINDOWS环境里把MPLAB-IDE 的CD-ROM插入光盘
驱动器里
2执行安装程序
a). WINDOWS31环境下从文件管理器或命令Program Manager>Run然后
执行X:\MPvvvvv.exe其中X是用户计算机上的光盘驱动器盘符vvvvv是
MPLAB的版本号
b). WINDOWS95/98点击Start按钮选择Run输入X:\MPvvvvv.exe其中
X是用户计算机上的光盘驱动器盘符vvvvv是MPLAB的版本号然后点击
OK按钮即可
3按指导过程安装支持MPLAB-ICD的MPLAB IDE集成开发环境软件包一定
记住安装过程中当欢迎窗口出现以后紧接着出现要求选择MPLAB-ICD部件
的会话窗口时要点击并选择该部件以便系统安装
第3章 Tut877软件的使用
3.1 介绍
MPLAD-ICD是专门设计来对PIC16F87X系列微控制器进行在线调试和
编程的本指南将为你介绍MPLAB-ICD的软件硬件使用入门对用户的
目标系统进行编程和源代码的调试方法
本章将以Tut877这个项目为例进行MPLAB-ICD的使用指导程序
tut877.asm是一个应用程序范例其中使用了MPLAB-ICD演示板上的
PIC16F877微控制器的模拟-数字转换器A/D本程序中设置了A/D转
DS51184 2000 Microchip Technology Inc. 16
MPLAB - ICD 用户指南
184 2000 Microchip Technology Inc. 17
换通道0连接到演示板上的一个电位器进行模拟-数字转换并把A/D
结果通过连接到口CPORTC上的8只发光二级管显示出来
3.2 重点
本章内容包括
建立十六进制调试文件以便调试
设置MPLAB-ICD和MPLAB-IDE集成开发环境
设置MPLAB-ICD的编程和调试选项
对PIC16F877进行烧写编程
运行Tut877
调试Tut877
Tut877的功能
3.3 开始工作前的准备工作
这需要MPLAB-ICD调试器和主计算机建立通讯联系见2.5节介绍
MPLAB-IDE集成开发环境必须先安装并运行
3.4 建立一个16进制调试文件
用户需要建立一个新项目以便将源文件tut877.asm和建立的十六进
制文件tut877.hex见下一章介绍如何建立新项目tut877.pjt
3.4.1 新项目目录
用文件管理器WINDOWS31或WINDOWS浏览器WINDOWS95/98
为新项目建立一个目录:\MPLAB\tut877将tut877.asm文件从\MPLAB
目录移动到该目录下面
3.4.2 新项目
选择Project>New Project选择新项目所在的路径然后在文件
名会话窗口里输入tut877.prj点击OK按钮即可
DS51
MPLAB - ICD 用户指南
图3-1建立新项目- sample.prj
3.4.3 项目会话窗口
这时候Edit Project dialog编辑项目会话窗口将会打开
图3-2设置开发模式前编辑项目会话窗口
这时候会看到开发模式设置图中显示出当前工作于MPLAB-SIM软件
模拟方式MCU是PIC16C508处理器这些状态都是用户以前使用
MPLAB-IDE集成开发环境时的设置而现在则需要改变这些设置
点击Change按钮
DS51184 2000 Microchip Technology Inc. 18
MPLAB - ICD 用户指南
图3-3设置开发模式
在Tools菜单条里选择MPLAB-ICD Debugger确信已经选择了
PIC16F877处理器然后点击OK
MPLAB-IDE将和MPLAB-ICD模块之间建立通讯在这个过程中
MPLAB-ICD会话窗口将会同时出现假如你看到一条错误报告信息请重
新检查一下电源连线插座是否牢固可靠电缆是否连接正确参考第七章
获取更多故障排除的信息
DS51184 2000 Microchip Technology Inc. 19
MPLAB - ICD 用户指南
图3-4编辑项目会话窗口
注意在Edit Project dialog编辑项目会话窗口里是否正确选择
了开发模式和处理器设置
在编辑项目会话窗口里的Project Files项目文件区域里用
鼠标选择tut877 [.hex]文件然后点击Node Property节点属性按
钮
3.4.4 设置节点属性
节点属性会话窗口显示出涉及到MPLAB-ICD开发器的命令行开关这
时候这些参数都是MPASM汇编器的当你首次打开该会话窗口时所看到
的设置均为该开发工具的默认设置对于本范例中的应用没有必要修改该
默认设置
点击OK按钮返回到编辑项目会话窗口(Edit Project dialog)
DS51184 2000 Microchip Technology Inc. 20
MPLAB - ICD 用户指南
图3-5节点属性会话窗口
3.4.5 增加节点
在编辑项目会话窗口里点击Add Node(增加节点)打开添加节点
会话窗口选择tut877.asm然后点击OK即可
图3-6添加节点
DS51184 2000 Microchip Technology Inc. 21
MPLAB - ICD 用户指南
3.4.6 完成对项目的设置
在这个简单的例子里在路径选择框里没有指定目录随着你的应用越
来越复杂则必须指定在相应的选择框里设置包含文件的目录路径
MPASM通常会把十六进制文件的文件名a.hex取得和源文件
(a.asm)的文件名一样当建立BUILT项目的时候项目管理器
将会生成一个tut877.hex十六进制文件
图3-7带节点的编辑项目会话窗口
点击OK按钮关闭编辑项目会话窗口(Edit Project dialog)
从MPLAB-IDE菜单项里选择现在选择命令
Project>Save Project 保存新建立的项目
3.4.7 建立项目Make Project
从MPLAB-IDE菜单项里选择Project>Make Project使用MPASM
宏汇编来程序来汇编应用程序创建BUILT以后的结果窗口中可以看到
发送给汇编器的命令行见下图所示
DS51184 2000 Microchip Technology Inc. 22
MPLAB - ICD 用户指南
图3-8创建BUILT以后的结果窗口
注意信息[302]是想让你明白在指示的行号如3132和34
里用户指定了一个并不位于第0堆BANK 0的文件寄存器这不是
错误用户的程序代码仍然会被正确地编译
点击创建结果BUILT RESULTS窗口右上角的图标X将窗口关闭
或者点击位于X图标下面的RESTORE图标重新调整窗口的大小接下来的
创建操作将会使用这个较小的创建BUILT结果窗口
3.5 设置MPLAB-ICD和MPLAB
这时候MPLAB-ICD会话窗口将会出现在计算机的桌面上选择适当
的选择项来设置MPLAB-IDE使之能和MPLAB-ICD的硬件一起工作
图3-9MPLAB-ICD会话窗口
表3-1MPLAB-ICD会话窗口
可选项 选择
Status(状态)菜单 状态栏显示被执行的MPLAB-ICD函
数和状态当编程时可以从这里看
到进程当操作完成后状态栏显示
信息Waiting for use command"等
待用户命令
串行口和波特率菜单 确信这些设置合乎你的系统要求
上载Upload选项菜单 现在选择最小值往后的范例中将会
调试改变该数值
时钟选择范围菜单 选择工作频率范围2MHZ~10MHZ
点击Options继续指导过程
DS51184 2000 Microchip Technology Inc. 23
MPLAB - ICD 用户指南
3.6 设置ICD的编程和调试选项
为了对PIC16F87X芯片进行编程,必须先对ICD选项会话窗口(ICD Options
dialog)进行设置工作,为编程作好准备当用户进入MPLAB-ICD开发模式时,
一个较小的会话窗口就会打开在MPLAB-ICD的会话窗口里点击Options
打开ICD选项会话窗口
图3-10MPLAB-ICD选项会话窗口
361 配置位和芯片类型选择
ICD选项会话窗口到这一步将设置PIC16F87X处理器里的各种配
置位点击图中相应的箭头图标就会弹出一个列表从该列表
中选中相应的选择项
DS51184 2000 Microchip Technology Inc. 24
MPLAB - ICD 用户指南
表3-2配置位和芯片类型的选择
可选项 选择
Device
芯片类型
在开发模式会话窗口里应看到PIC16F877被选中假如不
是使用项目菜单来保存项目并关闭项目输入命
令Options > Development Mode 正确选择芯片后点
击OK按钮然后重新打开Tut877的项目
Oscillator
振荡器
本范例里使用RC振荡器检查演示板让JP1跳线正确地
放置于RC振荡选择位置见图1.3的第8项演示板上
RC振荡器的振荡频率大约为2MHZ
Watchdog Timer
看门狗定时器
对于本范例里看门狗定时器WDT应关闭
Power Up Timer
上电延时定时器
对于本范例里上电延时定时器PWRT应关闭
Brown Out Detect
电源掉电监测
对于本范例里电源掉电监测BOD应关闭
Low Voltage
Program
低电压编程
当使用MPLAB-ICD时低电压ICSP烧写应该禁止这意
味着你可以用RB3作为数字I/O而且要在MCLR管脚接
上HV烧写电压
Code Protect Data
EEPROM数据保
护
本范例关闭了EEPROM数据保护
Flash Memory
Write
闪速存储器写
本范例没有使能通过EECON寄存器对FLASH存储空间进
行擦写
Code Protect
代码保护
本范例关闭了代码保护
362 芯片ID和代码检验和
数据检验和 CHECHSUME及ID代码在这个窗口里显示
对于本范例中用鼠标点击选择盒Use Checksum as ID使之选
中这样一来就会使用检验和CHECHSUME作为ID
363 电压选择
用鼠标点击Update更新按钮即可检查目标应用板上的电源Vdd
芯片供电和Vpp编程电源的电压值
MPLAB-ICD的编程电压大约为13伏特该电压是将来自目标板
的电源电压Vdd通过开关升压电路Boost Converter升压后得到的
364 编程选项
程序地址范围起始地址和结束地址是可以被读编程或校验的
程序或数据存储器地址范围默认的程序地址范围被选择为用户所选芯
片的程序存储器的最大范围本范例将使用默认的程序地址范围
确信程序选择项Program Options下的所有检查盒都已经选中
有V符号为选中这意味着所有存储器ID代码配置位都将
被编程而且所有的存储器都将会在编程之前被全部清除芯片被设置
为调试Debug模式
DS51184 2000 Microchip Technology Inc. 25
MPLAB - ICD 用户指南
365 功能按钮
在本范例的指导过程里用户将会检查所有这些功能按钮
Function Buttons以便对MPLAB-ICD仿真头或目标板/演示板上
的PIC16F87X进行功能设置
3.7 对PIC16F877进行编程
点击Program按钮这时候就会将tut877.hex这个十六进制文件和调试
代码Debug Code写入MPLAB-ICD仿真头或目标/演示板中的PIC16F87X里
编程过程可能要用几分钟在编程过程中状态栏Status box里将会显示当前
的操作顺序当编程过程结束后状态栏Status box里将会显示信息Waiting for
user command等待用户命令
注意调试代码Debug Code是PIC16F87X微控制器里地址范围
1F00h~1FFFh的一组特殊代码这些区域用来存放MPLAB-ICD在线调试功能
的监控程序
用户可以最小化或移动MPLAB-ICD会话窗口而不必关闭它关闭
MPLAB-ICD会话窗口将退出MPLAB-ICD开发环境假如想重新进入
MPLAB-ICD使用命令
Options>Development Mode选择编辑器模式Editor Only然后点击Apply
应用按钮然后选择MPLAB-ICD并点击OK即可重新使用ICD环境
3.8 设置演示板
开始调试之前让我们再检查一下演示板是否这样设置的
JP1是否将振荡器模式设置为RC阻容振荡方式
DIP拨码开关SW3的所有开关是否都被设置为开ON状态以便
将所有的发光二级管连接到C端口PORTC上的相应管脚
图3-11设置演示板
DS51184 2000 Microchip Technology Inc. 26
MPLAB - ICD 用户指南
3.9 运行Tut877软件
MPLAB-ICD运行于实时模式Real-time Mode和单步模式(Step Mode)
当MPLAB-ICD仿真头上的PIC16F87X接受MPLAB-IDE集成开发环境
的指令处于运行Run模式时系统这时候处于实时执行Real-time
Excution模式
当处理器暂停后即可进入单步运行模式
进入实时模式Real-time Mode的步骤
打开tut877.asm以便观察Open>File
点击Run工具栏按钮或者使用命令(Debug>Run>Run)则MPLAB-IDE
桌面下面的状态栏会变为黄色指示系统处于运行模式如果用户想自己
定义指示系统处于运行模式时的颜色可以选择命令
(Options>Environment Setup)并点击Colors栏即可选择
旋转演示板上的电位器RA0并让上面的小箭头指向DIP拨码开关
SW3观察发光二级管的显示假如程序运行正确的话你会看到通
过电位器调整的电压经过A/D转换后的二进制状态然而请注意在
tut877.asm程序中故意安排了一个程序漏洞BUG当然这让我们有
机会针对这一漏洞去调试程序
点击停止Halt按钮或命令Debug>Run>Halt即可停止程序的
执行要想复位程序用命令Debug>Run>Reset
3.10 调试Tut877软件
以下情况之一都将会导致程序运行故障
A/D转换值不能写到端口C驱动发光二级管
A/D转换器没有打开或者没有预先设置好
源程序里的一个漏洞导致程序工作不正常
对于第一种情况解决方法是在文件中写A/D转换结果到PORTC的语句上
设置一个断点将源文件tut877.asm里的下列语句变为高亮或者把光标放置于
这条语句上
movf ADRESH,W ;写 A/D 结果到 PORTC
点击鼠标右键进入快捷菜单从中选择BreakPoint(s) 见图3-12所示这样一
来该行便被标记为一处断点用户想改变标记断点的颜色时可以用命令
Options > Environment Setup 然后点击 Colors标签
DS51184 2000 Microchip Technology Inc. 27
MPLAB - ICD 用户指南
图3-12设置断点
点击 Run工具栏按钮或者选择命令Debug > Run > Run 程序将再次运行
于实时模式
当程序运行到用户标记为断点的地方时程序就会被断点打断停止执行
然而我们给出的范例并不停止运行因此现在你可以点击工具栏按钮或选择命令
Debug > Run > Halt 来终止程序的运行
观察源代码(tut877.asm)窗口里的程序注意观察程序终止的地方我们
给定的范例程序停止在一个Wait (等待) 例程的两条语句中的某一行上见图3-13
所示基于程序停止的位置和程序无法到达断点的事实我们可以得出结论问题
的根本在于A/D转换本身具体地讲程序中没有将A/D转换结束标志位置位
A/D转换器的初始化和设置出现在程序的开始部分现在要回到程序开头部分选
择命令Debug > Run >Reset 程序复位开始的第一条语句将会变为高亮
DS51184 2000 Microchip Technology Inc. 28
MPLAB - ICD 用户指南
图3-13程序终止运行
打开一个新的观察窗口watch window以便观察到随着程序的执行A/D寄
存器数值的改变情况选择命令
Window > Watch Windows > New Watch Window.
这时候Add Watch Symbo添加观察符号的会话窗口就会出现Watch_1
新观察窗在其后面添加符号ADCON0 和 ADCON1到该窗口里见图3-14所示
DS51184 2000 Microchip Technology Inc. 29
MPLAB - ICD 用户指南
图3-14添加观察符号Adding Watch Symbols
完成上述操作后点击Close结束这时候所选择的符号就会在观察窗口
里看到了见图3-15所示
图3-15观察窗口Watch Window
在MPLAB-ICD会话窗口设置最小化上载选项打开观察窗口之后程序运
行会变得漫一些但这样做可以允许我们监视观察窗口里的数据变化以便调试
关闭或最小化MPLAB-ICD的选项会话窗口Options dialog
在源程序tut877.asm里将断点设置在开始后的第二条语句上和前面所述一
样将源程序tut877.asm里的以下这条语句高亮或者把光标放在这条语句上
clrf PORTC ;清除 PORTC
点击鼠标右键进入快捷菜单从中选择Break Point(s)
点击 Run工具栏按钮或者选择命令Debug > Run > Run 程序将运行于实
时模式real-time mode
这一次程序将会在执行完断点处的语句后停下来同时原断点后面的那条语句
将会变为高亮见图3-16所示
DS51184 2000 Microchip Technology Inc. 30
MPLAB - ICD 用户指南
图3-16程序停止于断点后面一条语句
现在点击单步工具栏按钮或者命令Debug >Run > Step 这时候系统进入
单步执行状态单步执行两步后观察视察窗口中的寄存器ADCON0和ADCON1
你会看到ADCON0的值变为十六进制数40H了见图3-17
图3-17上载观察窗口
DS51184 2000 Microchip Technology Inc. 31
MPLAB - ICD 用户指南
下面的语句中给出的二进制数值有没问题哪里呢查阅PIC16F87X 数据手册
(MICROCHIP文档资料号DS30292)得知其最后一位应该是1而不是0
这一位为1的含义是打开A/D模块
按以下方式修改这一程序缺陷
movlw B'01000000' ;Fosc/8, 允许A/D转换
修改后
movlw B'01000001' ;Fosc/8, 允许A/D转换
选择File > Save 存储所做的修改再选择Project > Make Project 命令重
新创建rebuild项目
这时候系统会反馈一条信息给你告诉你重新对ICD系统里的MCU编程以
便使修改过的程序生效点击MPLAB-ICD会话窗口里的Program 按钮将ICD
编程同时修改生效
这时候MPLAB-ICD会话窗口里的状态窗口Status box指出系统正等待你
的下一个命令下一步你需要做的就是再次运行程序
点击Run工具栏或给出命令Debug > Run > Run 以实时模式运行程序
这时候会看到有一些发光二级管LED被点亮旋转电位器RA0的旋钮会改
变这些发光二级管的显示状态
本源程序里只安排了一个程序漏洞BUG然而实际上的用户代码可能有更
多的漏洞使用MPLAB-ICD和MPLAB-IDE的调试功能你可以发现和修改你的
源代码中出现的程序漏洞BUG
3.11 Tut877软件的主例程
图3-18所示的tut877.asm主程序开始先配置端口CPORTCA/D
转换器计数器0TIMER0然后会等待TIMER0的溢出以启动对电位器上分
配的电压进行A/D转换当转换结束后转换结果会显示在发光二级管上然后
程序会等待下一次计数器0的溢出进行下一次A/D转换这一过程是循环进行
的 关于A/D转换模块的更多信息请参考PICmicro中级控制器系列参考手册
PICmicro Midrange Microcontroller Family Reference Manual (DS33023)
其中会对A/D转换详细介绍还会介绍一些很好的应用笔记
DS51184 2000 Microchip Technology Inc. 32
MPLAB - ICD 用户指南
DS51184 2000 Microchip Technology Inc. 33
否 否
是 是
A/D转换设置为左调整8分
频1路A/D通道
设置定时器0预分频器分配给
定时器0分频比为1256
定时器0
溢出
A/D转换
结束
开始A/D转换
写A/D结果到C口
开始
将端口C所有管
脚设置为输出
图3-18程序流程图
3.12 Tut877软件源代码
This is a functional version of tut877.asm.
;**********************************************************
;* TUT877.ASM
;**********************************************************
;* Microchip Technology Incorporated
;* 16 December 1998
;* Assembled with MPASM V2.20
MPLAB - ICD 用户指南
;***************************************************************
;* 本程序设置A/D 模块的通道0(电位器)进行A/D转换并把结果送到接在端口C的LED上
;* 确信拨码开关SW3的所有开关都位于ON的位置
;**************************************************************
list p=16f877
; 包含文件如果需要改变目录
include "p16f877.inc"
;从复位向量处开始
org 0x000
nop
Start
banksel PORTC
clrf PORTC ;清零 PORTC
movlw B'01000001' ;Fosc/8, 允许A/D转换
movwf ADCON0
banksel OPTION_REG
movlw B'10000111' ;TMR0 预分频比设为1:256
movwf OPTION_REG
clrf TRISC ;PORTC所有管脚设置为输出
movlw B'00001110' ;左调整1个A/D通道
movwf ADCON1 ;VDD 和VSS 参考源
banksel PORTC
Main
btfss INTCON,T0IF ;等待 Timer0 溢出
goto Main
bcf INTCON,T0IF
bsf ADCON0,GO ;开始 A/D 转换
Wait
btfss PIR1,ADIF ;等待A/D转换结束
goto Wait
movf ADRESH,W ;写 A/D 结果到 PORTC
movwf PORTC ;送到发光二级管
clrf PORTC
WaitPush
btfss PORTB,0
goto WaitPush
movwf PORTC
goto Main ;循环进行A/D转换
end
DS51184 2000 Microchip Technology Inc. 34
MPLAB - ICD 用户指南
第4章 开始使用MPLAB-ICD
4.1 介绍
本章介绍如何设置MPLAB-ICD的软件和硬件并使系统运行起来
4.2 重点
本章内容包括
与MPLAB-ICD的通讯
MPLAB-ICD操作
最大程度的使用MPLAB-IDE集成开发环境-项目的使用
4.3 与MPLAB-ICD通讯
按照下面的步骤设置MPLAB-IDE集成开发环境以便使用MPLAB-ICD
在线硬件开发系统
1 确信MPLAB-ICD在线硬件开发系统和系统计算机之间用RS-232串行
电缆连接起来与2.5节介绍的一样
2 确信目标板被通上电源这样MPLAB-ICD模块同时从目标板得到了电源
供应
3 进入MPLAB-IDE集成开发环境软件的程序组里运行MPLAB-IDE
4 选择Options > Development Mode 然后点击Tools打开开发模
式会话窗口 Development Mode
5 选择MPLAB-IDE为开发模式并选择一种你将要开发的PIC16F87X系
列处理器类型
图4-1开发模式会话窗口
DS51184 2000 Microchip Technology Inc. 35
MPLAB - ICD 用户指南
6 点击OK按钮
这时候开发模式会话窗口将会关闭MPLAB-ICD会话窗口将会打开
注意假如你关闭MPLAB-ICD会话窗口选择命令
Options > Development Mode 再点击Tools 打开开发模式会话窗
口 Development Mode选择MPLAB-ICD调试器然后点击OK
重新打开MPLAB-ICD会话窗口
假如MPLAB-IDE先前设置过ICD模式会有两种情况如果
MPLAB-ICD与系统通讯良好就会找到模块而且启动系统假如通讯不畅
你会得到一条无法找到MPLAB-ICD的提示信息假如MPLAB-IDE无法找
到MPLAB-ICD开发器请选择纯编辑模式Editor Only然后点击Apply
应用再重复以上第4-6步的工作
关于MPLAB-ICD会话窗口的更多信息参考第5章的介绍
假如MPLAB-IDE仍然无法找到MPLAB-ICD参考第七章的介绍
4.4 MPLAB-ICD操作
MPLAB-ICD既是一个PIC16F87X系列微控制器的编程器又是一个
在线开发调试器它将十六进制文件写入PIC16F87X系列微控制器里同
时提供基本的实时单步断点等在线代码调试手段其调试监控程序被建
立在PIC16F87X里面当这些代码被写入目标处理器后即被激活当然
和全特性的在线实时仿真器相比MPLAB-ICD的功能有一定的限制但是
用它来调试和烧写PIC16F87X系列MCU却有很高的性能价格比
为了实现在线调试的功能MPLAB-ICD模块上的微控制器里的监控程
序将会写入目标板上的PIC16F87X里面这些代码是MPASM汇编代码模
块将在MPLAB控制下自动写入MPLAB-ICD仿真头上的PIC16F87X单
片机里这段代码驻留在程序存储器的后端例如如果你选择了
PIC16F877处理器则监控代码将会驻留在0x1F00 到 0x1FFF的地址范
围内
4.5 充分利用MPLAB-IDE的项目功能
MPLAB-IDE集成开发软件包是MPLAB-ICD在线调试器MPLAB-SIM
模拟器的控制程序其功能齐全调试手段完善比如可以读写RAMROM
EEPROM以及很多其他调试手段
注意假如在你建立的项目中没有源代码文件MPLAB-IDE是无法
正常调试代码的
451 MPLAB-IDE项目特性
在MPLAB-IDE集成开发软件包环境下开发和调试代码是基于项目
的尽管可以不用打开项目就可以执行仿真但是使用项目可以有
如下的优势
多个源文件可以非常容易的创建和维护
DS51184 2000 Microchip Technology Inc. 36
MPLAB - ICD 用户指南
允许符号调试
调试环境可以被存储下来供以后使用
项目里保存的信息包括
开发模式和处理器类型
与项目相关的源文件
PICmicro可执行代码文件名
所打开的窗口以及窗口的大小尺寸位置
已命名的断点
配置位的设置
452 建立项目
选择Project > New Project 打开编辑项目会话窗口并建立一个新
项目项目里将会包括源文件目标文件及其他相关文件以及很多
关于项目的重要设置
453 保存项目
点击编辑项目会话窗口里的OK按钮将当前项目的相关信息
存储下来一方面为暂停工作而为另一方面可以作为以后调试的默认
设置然后选择Project > Save Project命令保存项目
开发模式Development Mode
用户选择好的开发模式以项目信息的形式保留下来要想改变一个
项目的开发模式请按以下步骤进行
打开项目以前使用过的开发模式将被选中
选择命令Options > Development Mode 进入开发模式会
话窗口选择相应的开发模式后点击OK
选择命令Project > Save Project 保存该项目
更多关于项目建立的信息请参考MPLAB-IDE 用户指南
MPLAB IDE User's Guide (文档资料号DS51025)
DS51184 2000 Microchip Technology Inc. 37
MPLAB - ICD 用户指南
第5章 MPLAB-ICD只要功能
5.1 介绍
本章介绍MPLAB-ICD的基本操作和MPLAB-IDE集成开发环境中在线调试器
In-Circuit Degugger的调试功能对于一般的调试功能特性请参考
MPLAB-IDE集成开发环境用户指南
5.2 重点
本章内容包括
MPLAB-ICD会话窗口
程序的运行
断点的设置
如何使用MPLAB-ICD
5.3 MPLAB-ICD会话窗口
假如你已经设置好MPLAB-IDE集成开发环境以便MPLAB-ICD工作于这个开发
环境下你就可以安装上MPLAB-ICD在线开发调试器进行编程和调试工作了
531 MPLAB-ICD会话窗口
当MPLAB-ICD被允许时MPLAB-ICD会话窗口总是打开的你可以最小化
或者移动该会话窗口但是却不要关掉该窗口假如关掉这一窗口的话将会同时
关掉调试器想再次开启调试器可以选择命令Options>Development Mode
选择MPLAB-ICD然后点击OK即可
图5-1MPLAB-ICD会话窗口
DS51184 2000 Microchip Technology Inc. 38
MPLAB - ICD 用户指南
表5-1 MPLAB-ICD会话窗口有以下设置项目
设置项目 选择
Status
状态
该状态栏显示被执行的MPLAB-ICD功能和状态
COM Port
串行口
为MPLAB-ICD选择串行通讯口
COM1COM2COM3或COM4
Baud Rate
波特率
为MPLAB-ICD通讯选择串行口波特率
Upload Options
上载选项
上载的数据量选择
最小数据量FSRWStatusPCLATH最快
只上载SFR快
最小数据量和监视窗口比较快
所有的寄存器慢
假如你使用单步和断点可以上载所选择的数据从
而提高速度第一种方案有大约一秒的延迟最后一
个方案有大约两秒的延迟数据将在一个单步一个
断点或一个停止动作的时候被上载
工作频率范围 在MPLAB-ICD工作频率范围选项里选择
32 kHz - 500 kHz
500 kHz - 2 MHz
2 MHz - 10 MHz
10 MHz - 20 MHz
重新连接 假如你改变了COM口或波特率点击Reconnect
则系统使用新参数重新连接建立通讯
注意为了存储设置在退出调试器或关闭项目时点击MPLAB-ICD会
话窗口右上角的按钮X即可
点击MPLAB-ICD会话窗口里的Options打开ICD选项会话窗口
532 ICD选择项窗口
想进入ICD选项会话窗口可以点击MPLAB-ICD会话窗口里的Options打
开ICD会话窗口可以 最小化或者关闭不会影响ICD的工作
ICD选项会话窗口(见图5-2)里包含所有关于MPLAB-ICD的编程和设置功能
这些功能设置包括诸如空白检查blank check烧写program读read
校验verify擦除erase等烧写器功能以及调试模式debug mode
DS51184 2000 Microchip Technology Inc. 39
MPLAB - ICD 用户指南
图5-2MPLIB-ICD选项会话窗口
533 配置位和器件选择
本节介绍的会话窗口允许你设置PIC16F87X系列处理器内部的各种配置位
configuration bits想要更改选择参数时点击箭头会看到选择项列表然
后从这些列表中选取正确的参数
DS51184 2000 Microchip Technology Inc. 40
MPLAB - ICD 用户指南
表5-2配置位和芯片类型选择
参数类别 参数选择
Device
处理器类型
这个窗口里显示的是你在开发模式会话窗
口里选择的处理器类型假如你想在这里更
改设置任何打开的MPLIB-IDE项目
都将关闭除了纯编辑模式所有程序存
储器配置位ID位将会被清除
Oscillator
振荡模式
RCLPXT 或者 HS模式
Watchdog Timer
看门狗定时器
选择ON允许或OFF禁止在
调试状态时通常要将其设置为OFF
Power Up Timer
上电延时定时器
选择ON允许或OFF禁止在
调试状态时通常要将其设置为OFF
Brown Out Detect
电源故障检测
选择ON允许或OFF禁止在
调试状态时必须要将其设置为OFF
Low Voltage Program
低电压烧写
选择低电压烧写功能或者使用RB3作为数
字I/O口使用MCLR引脚上的HV作为烧
写电压在调试状态时低电压ICSP烧写
必须禁止
Code Protect Data EE
EEPROM数据保护
选择ON允许或OFF禁止在
调试状态时必须要将其设置为OFF
Flash Memory Write
FLASH存储器烧写
选择是否允许由EECON控制烧写未保护的
程序存储器在调试状态时必须要将其禁
止
Code Protect
代码保护
选择要保护的范围在调试状态时必须要将
其禁止
534 ID位和检验和CHECKSUM信息
表5-3ID位及检验和的选择
参数类别 参数选择
Checksum
检验和
显示数据的检验和
ID Code
ID代码
显示 ID代码
Use Checksum as ID
使用检验和作为ID代码
要把检验和作为ID代码选择检查窗口
535 电压选择
表5-4电压选择
参数类别 参数选择
VDD
芯片主电源
显示当前VDD电压值MPLAB-ICD的
VPP 大约为12V从目标板的VDD经升压
泵charge pump升压得到
VPP
烧写电压
显示当前Vpp电压值
Update
检查当前电压参数
允许用户检查目标板上的VDD和VPP电压
数值
DS51184 2000 Microchip Technology Inc. 41
MPLAB - ICD 用户指南
536 编程选项
用户可以在某一参数下面的选择盒checkbox上选中会看到盒面上有一
个符号V或清除盒面变为空白该参数以便为烧写器执行烧写功能时选
中或重选存储区域例如假如你只想读程序存储器就选择Program Memory
然后将其他关于存储器类型的选择盒清除即可
表5-5烧写参数选择
参数类别 参数选择
Start Address,
End Address
起始地址
终了地址
为烧写读出检验设置程序存储器起
始和终了地址
注意如果擦除功能没有设定地址范围则
将会擦除所有PIC16F87X上的数据
默认的存储器地址范围是用户选择的
芯片上程序存储器的最大范围ICD占用一
些文件寄存器和程序存储空间详细信息请
参考1.5节的介绍
Configuration Bits
配置位
烧写配置位在ICD选择会话窗口的
上部用户可以选择配置位
ID Locations
ID位
烧写ID位在ICD选项会话窗口里的
Ids和Checksum区域设置ID位
EEPROM Data
EEPROM数据
对带EEPROM的芯片用EEPROM存
储器窗口里给定的数据对数据存储器编程
Erase All before Program
烧写前全擦除
选择此项用户在点击Program前
将所有程序存储器里的数据擦除
Enable Debug Mode
允许调试模式
选择此项将调试代码写入芯片里用户在
点击Program后将允许调试操作
假如你只想使用MPLAB-ICD对芯片
烧写则清除Enable Debug Mode选择
盒则监控代码不会下栽到程序存储器里
MPLAB-ICD也没有调试功能
537 功能按钮Function Buttons
点击功能按钮可以执行MPLAB-ICD仿真头上的PIC16F87X芯片所指定的功
能如果你在Program Options里选择了地址范围则指定的功能只适用于
所选的存储器地址范围和类型擦除功能例外
DS51184 2000 Microchip Technology Inc. 42
MPLAB - ICD 用户指南
表5-6功能按钮选择项
参数类别 参数选择
Blank
空白检查
检查芯片是否为空白
Read
读出
读出在Program Options里指定的存储器
区域内的程序存储器配置位ID位和
EEPROM数据假如芯片里有EEPROM
的话
Program
烧写
烧写在Program Options里指定的存储器
区域内的程序存储器配置位ID位和
EEPROM数据假如芯片里有EEPROM
的话假如调试模式Debug Mode
被允许的话还将把调试代码下载到程序存
储器里
Verify
校验
校验在Program Options里指定的存储器
区域内的程序存储器配置位ID位和
EEPROM数据假如芯片里有EEPROM
的话
Erase
擦除
擦除在PIC16F87X芯片内部的所有内容
包括存储器配置位ID位
Download Operatin System
下载监控程序
将MPLAB-ICD支持软件监控程序的升
级版写入到MPLAB-ICD的FLASH处理器
里
Self Test
自诊断
对MPLAB-ICD执行自诊断
Def.Addr
默认地址
针对芯片的默认起始地址和终了地址
允许调试模式的终了地址
PIC16F873/874:0xEDF
PIC16F876/877:0x1EFF
禁止调试模式的终了地址
PIC16F873:0xFFF
PIC16F876/877:0x1FFF
5.4 程序的执行
MPLAB-ICD可以以实时模式real-time mode和单步模式step mode
两种方式运行
当MPLAB-ICD仿真头或演示板/用户应用板上的PIC16F87X被MPLAB
指令为运行模式Run mode时称为实时执行
当处理器被中止运行halt后即可进入单步模式
541 实时运行
当MPLAB-ICD运行于实时模式时指令的执行方式就如同处理器里没有调
试器debugger一样PIC16F87X只有在遇到断点中止或者手动中止HALT
功能的时候才停止实时执行
按以下方法运行于实时模式点击Run工具栏或给出命令Debug > Run
> Run即可调试工具栏Debug toolbar里面提供了用以控制调试器的Run
整步运行Halt终止和Step单步执行按钮当处于运行模式的时候
屏幕上的寄存器值将不会刷新
DS51184 2000 Microchip Technology Inc. 43
MPLAB - ICD 用户指南
542 单步运行模式Step Mode Execution
当你用单步方式执行程序或给出命令Debug > Run > Step时系统处
于单步运行模式单步运行模式允许你每次执行一条指令代码观察程序走向
观察每次执行完指令后寄存器值的变化在会话窗口里设置要观察的寄存器
给出命令Debug > Run > Animate将自动单步执行程序直到用户终
止程序整个过程以近乎动画Animate的方式观察特殊功能寄存器Special
Function Register窗口或者监视窗口Watch windows里寄存器数值的变化
5.5 断点
断点是处理器在遇到某种情况而暂停运行时的状态MPLAB-ICD用以下方
法设置断点
地址匹配终止
用户终止
551 地址匹配终止
PIC16F87X的调试功能允许设置一个断点该断点可以位于程序存储器地址
范围内的任何地方当断点处的指令执行完以后处理器暂停运行例如一个断
点设置于005AH则指令执行完005AH处的指令后处理器暂停运行
设置断点的方法是给出命令Debug > Break Settings也可以在程序存
储器中选择源代码的地址来设置断点或者在源代码的窗口里选择断点所在行点
击鼠标右键弹出快捷菜单从中选择命令Break Point(s)即可
552 用户终止
点击按钮Halt或者选择命令Debug > Run > Halt.即可停止PIC16F87X
的运行
5.6 如何使用MPLAB-ICD
MPLAB-ICD既是一个烧写器又是一个在线调试器以下几节将讨论的就是
MPLAB-ICD调试和测试一个应用系统的基本功能
561 调入十六进制文件以便调试
给出命令File > Import > Import to Memory将十六进制代码文件调入
MPLAB-IDE以便调试参考1.5节内容了解ICD使用了目标处理器芯片里的哪
些文件寄存器和程序存储器资源用户不能使用这些资源所以你的代码受到相
应的限制
注意假如你需要在源代码中指定EEPROM数据请使用起始地址0x2100
一旦文件被载入imported你可以使用窗口菜单来打开以下的窗口
Program Memory 程序存储器
Special File Registers 特殊功能寄存器
File Registers 文件寄存器
EEPROM Memory EEPROM存储器
562 烧写目标处理器芯片
DS51184 2000 Microchip Technology Inc. 44
MPLAB - ICD 用户指南
在ICD会话窗口检查是否选择了适当的芯片型号振荡器类型和配置位设
置下一步检查程序选项Program Options是否合乎你的应用系统如果选
择调试模式Enabled Debug Mode则监控代码将会下载同时PIC16F87X芯
片将会允许调试操作
点击Program按钮烧写位于MPLAB-ICD仿真头或目标板演示板上的
PIC16F87X芯片烧写过程大约几分钟如果目标系统运行于低电压模式时这
个时间会更长一些
注意监控代码是一段位于程序存储器后部见1.5节的一段特殊代码使
用MPLAB-ICD的在线调试功能必须有这一段代码存在
接下来你可以关闭ICD选项ICD Options会话窗口可是不要关闭
MPLAB-ICD会话窗口关闭MPLAB-ICD会话窗口将禁止调试功能
563 调试功能
用户可以使用以下MPLAB-ICD的功能
Run -实时执行
Reset - 复位PIC16F87X (MCLR Reset)
Break Settings - 设置断点
Halt - 暂停程序运行
Step - 程序处于暂停程序运行后可以单步运行每一步执行一条指令
Animate - 自动单步运行程序处于暂停程序运行后选择Animate
每次执行一条指令
Change PC - 修改程序指针
564 修改功能
假如想修改被调试的程序可以简单地汇编一个新的十六进制文件并下载到
目标系统即可也可以在使用Program按钮下载代码到16F87x里之前用
Modify修改来编辑修改程序存储器的内容值得注意的是这样一来
通过你的源程序产生的代码将和写入PIC16F87X里的代码不匹配
使用命令Window > Modify来改变寄存器程序存储器字EEPROM
数据的值想观察内部数据寄存器可以使用命令Window > File Registers
文件寄存器或者Window > Special Function Registers特殊功能寄
存器
DS51184 2000 Microchip Technology Inc. 45
MPLAB - ICD 用户指南
第6章 MPLAB-ICD菜单选项
61 概述
本章详细介绍直接应用于ICD 调试器的MPLAB-IDE菜单选项
62 重点
本章内容包括
文件菜单
调试菜单
选项菜单
63 文件菜单
不使用MPLAB-IDE项目使用命令File > Import > Import to Memory
将十六进制文件调入MPLAB-ICD一旦代码被调入存储器用户可以从窗口菜单里选
择相应条目来查看程序存储器特殊功能寄存器文件寄存器EEPROM存储器里的
内容
64 调试菜单
以下调试功能可以用来控制MPLAB-ICD
641 Run运行
Run运行选项允许用户以实时或单步模式运行程序见5.6.节关于每一种
Run选项的介绍
642 Breakpoint Settings断点设置
MPLAB-ICD调试功能支持每次一个断点使用命令Debug > Breakpoint
Settings或者敲功能键打开断点设置会话窗口输入断点地址也可
以选择在要设置断点的源代码行上点击鼠标右键在弹出的快捷窗口里设置断点
见5.5节介绍
65 选项菜单
选择命令Options > Development Mode选择MPLAB-ICD并且指定将要
调试的处理器类型
DS51184 2000 Microchip Technology Inc. 46
MPLAB - ICD 用户指南
第7章 疑难问题解答
71 概述
本节介绍MPLAB-ICD的常见使用问题以及如何解决这些问题
72 重点
本章内容包括
常见问题
73 与MPLAB-ICD无法建立通讯联系
假如与MPLAB-ICD无法建立通讯联系,按以下步骤排除故障:
1. 检查演示板/目标应用板的电源是否连接好MPLAB-ICD的电源是由演示板
/目标应用板得到的而且如果你使用的是演示板的话检查电源适配器的参
数是否正确9V/0.75mA
2. 检查MPLAB-ICD仿真头是否正确地插入到演示板/目标应用板上例如
仿真头的插针是否正确地插入到了插座里仿真头的方向是否正确如果使
用的是演示板也要检查是否使用了正确的适配座套件里另外配置的两个
管脚适配插座
3. 检查PIC16F87X芯片是否正确地插入了MPLAB-ICD仿真头上例如所
有的管脚是否都完全可靠地插入到插座里面16F87X芯片的方向是否正确
4. 检查MPLAB-ICD和主计算机机之间的通讯连接-RS232串行口的电缆是否
插接牢靠
5. 检查MPLAB-ICD的设置会话窗口看是否选择了符合应用系统的PICmicro
芯片串行口和波特率
6. MPLAB-IDE试图和MPLAB-ICD建立通讯联系从而允许调试器工作假
如不能建立通讯就不能进行烧写和调试工作如果通讯失败用户会得到
一条错误提示信息出现这种现象时在找到问题所在后重新连接或者退
出
解决方案
确信电源正确连接MPLAB-ICD模块上的发光二级管全部点亮而不是
闪动假如这些发光二级管闪动可以将应用板上的电源先关闭再重
新上电以复位模块然后在MPLAB-ICD会话窗口里为MPLAB-ICD重
新选择COM口连接正确的话发光二级管将停止闪动
试着将MPLAB-ICD模块和另外一个COM口连接假如你的计算机上的
串行口是25针插座的话你需要一个25针到9针的串行口转换适配器
将串行口设置为调试器专用检查串行口资源确信其正常工作而且和
其他的设备没有冲突这可能发生在串行口被不恰当地设置为调制-解
调器或其他串行设备共用的情况下阅读WINDOWS手册或参考资
料可以试一试移走重新配置或禁止相冲突的设备当然你应该对这
些操作非常熟悉的情况下才这样做见以下针对WINDOWS31和
WINDOWS95环境下排除故障的步骤
DS51184 2000 Microchip Technology Inc. 47
MPLAB - ICD 用户指南
一些系统错误是由于驱动程序或者硬件不兼容造成的在WINDOWS95
环境下按以下步骤排除故障
假如你的机器上有COM口可以MPLAB-IDE不允许你选择该串行口
选项变为灰色这时候你可能需要编辑MPLAB.ini文件手动指定
串行口典型情况是你机器上的串行口编号并连续比如你的计算
机上有COM1COM2COM4但没有COM3口这种情况你可以
打开MPLAB.ini文件使用WINDOWS里的FIND功能查找定位该
文件编辑其中名为[MPLAB-ICD]段落里的设置CommPort=1
使其中的选择项设为你想设置的串行口这个问题在于WINDOWS通
过16位驱动程序不正确地给系统报告了当前可用通讯口的信息
你必须使用与你正在使用的MICROSOFT WINDOWS操作系统版本相
匹配的通讯驱动程序如果你使用WINDOWS310在目录
\WINDOWS\SYSTEM里可以找到驱动程序COMM.DRV该文
件的创建时间必须是3:10a该时间指示出操作规程的版本号如果
你使用的操作系统是Windows for Workgroups按上面的方法寻找同
样文件名的驱动程序只不过该文件的创建时间必须是3:11a如果
这个文件不符合要求可能需要重新安装WINDOWS或以其他形式安
装驱动程序上述问题在WINDOWS95操作系统环境下一般不会发生
确信你使用的不是第三方通讯驱动程序打开SYSTEM.INI文件
寻找[OPTIONS]段落你可以看到COMM.DRV=COMM.DRV
假如你看到的与此不同的话你的机器正在使用另外的驱动程序
WINDOWS31
串行鼠标会占用一个COM口外置MODEM也会占用一个COM
口内置MODEM有其自己的串行口所以如果你的机器上有第二个
串行口请设置好不要与MODEM和鼠标产生冲突
WINDOWS95
WINDOWS95环境里需要特别注意串行口的设置假如驱动程序和
硬件不兼容请将Flow Control流控制改为硬件方式和/或
关闭串行口的FIFO先入先出缓冲方式WINDOWS95环境下的
Control Panel.控制面板里点击System系统图标然后点
击Device Manager设备管理标签再点击Port Settings端
口设置如果需要的话还可以点击下面的+符号以弹出通讯口列
表双击MPLAB-ICD所使用的I/O口在这里你可以设置 流控制 为
硬件方式要想关闭FIFO可以点击Advanced高级按钮
禁止FIFO再点击OK即可
假如通讯依然无法建立请联系MICROCHIP用户支持部门的帮助引
言中有介绍
在复位单步暂停或运行操作时MPLAB-ICD模块给出一条通讯错误信息
当使用MPLAB-ICD演示板时确信振荡器选择跳线被设置为RC振荡方式或振
荡器方式而且这一设置被正确地写入芯片里如果使用振荡器确信板上有振荡
DS51184 2000 Microchip Technology Inc. 48
MPLAB - ICD 用户指南
源假如没有设置好就会导致虽然芯片编程OK调试模式OK可是在复
位单步暂停或运行操作时MPLAB-ICD模块给出一条通讯错误信息
调试模式无法工作
1关闭MPLAB-ICD会话窗口将禁止MPLAB-ICD假如你已经关闭MPLAB-ICD会话
窗口必须重新打开它方法是选择命令Options> Development Mode
选中MPLAB-ICD再点击OK按钮
2在调试模式工作前必须将调试代码写入到芯片里面从ICD选项会话窗口里选择
Enable Debug Mode将调试代码写入到芯片里面
当单步执行时,程序执行太慢
检查MPLAB-ICD会话窗口里的上载upload选项如果你上载的数据量很大
例如所有的存储器那么在两步之间可能有五秒钟的延时为减少延时在选项里
把上载数据量减小一些
当单步执行时,程序执行太快或者一些寄存器没有更新
检查MPLAB-ICD会话窗口里的上载upload选项如果你上载的数据量很小
那么在两步之间可能的延时比把所有的存储器上载所花的时间要少如果你预计没有
上载所有的数据检查你是否上载了正确的寄存器类型
当暂停单步执行或断点停止时MPLAB-IDE集成开发环境看上去好象锁死了
检查MPLAB-ICD会话窗口里的上载upload选项如果你上载的数据量很大
例如所有的存储器那么在两步之间可能有五秒钟的延时为减少延时在选项里
把上载数据量减小一些
I/O管脚RB3, RB6 或RB7功能不正常
这些管脚已经被保留给烧写/调试器使用详细情况见1.5节
附录A MPLAB-ICD硬件结构
DS51184 2000 Microchip Technology Inc. 49
MPLAB - ICD 用户指南
DS51184 2000 Microchip Technology Inc. 50
A1 介绍
MPLAB-ICD硬件系统包括MPLAB-ICD模块仿真头演示板
A2 MPLAB-ICD模块和仿真头
MPLAB-ICD模块和仿真头用来对演示板或目标应用板进行在线调试
ICD功能
A.2.1 MPLAB-ICD是由目标应用板提供的电压3.0V到5.5VICD在不
同工作模式下的电压和相应的电流见下表
工作模式 5V 3V
调试 35 mA (最大) 20 mA (最大)
运行 40 mA 25 mA
校验 60 mA 50 mA
烧写 60 mA 50 mA
A.2.2 印刷电路板丝印层和电原理图
本节介绍包括MPLAB-ICD模块及仿真头的印刷电路板丝印层和电原
理图
图A-1MPLAB-ICD模块印刷电路板丝印层
图A-2MPLAB-ICD模块电原理图第一部分
MPLAB - ICD 用户指南
图A-3MPLAB-ICD模块电原理图第二部分
184 2000
图A-4MPLAB-ICD模块电原理图第三部分
表面丝印层
底面丝印层
从印刷电路板上部往下看插头接线情况
Microchip Technology Inc. 51 DS51
MPLAB - ICD 用户指南
注意未来新产品仿真头的结构可能
会有所不同但在功能上是相似的
图A-5MPLAB-ICD仿真头电路板丝印层
DS51184 2000 Microchip Technology Inc. 52
MPLAB - ICD 用户指南
图A-6MPLAB-ICD仿真头电原理图
A3 MPLAB-ICD演示板
DS51184 2000 Microchip Technology Inc. 53
MPLAB - ICD 用户指南
MPLAB-ICD演示板是一个支持PIC16F87X微控制器的简单演示电路板
该电路板上插入一片预先编程的PIC16F87X芯片后可以独立工作也可以配
合MPLAB-ICD模块和仿真头一起工作提供了一个范例程序以供演示设备的
特性尽管板上提供了40管脚和28管脚的插座当同时只能有一只处理器工
作
A.3.1 处理器插座
可用的插座有
40管脚插座适应PIC16F871/874/877
28管脚插座适应PIC16F870/872/873/876
套件里还另外提供了单独的40管脚和28管脚的IC插座把你选
择的插座插入到演示板上然后把MPLAB-ICD仿真头插入到插座里如
果没有这个插座仿真头将会同时插入到演示板上的两个座里系
统将不能工作也可以将烧写好的芯片直接插入到演示板里
A.3.2 显示
八只发光二级管连接到每个处理器的PORTCPORTC的管脚输
出高电平时点亮发光二级管
A.3.3 DIP拨码开关
封装形式见SW3所示的八位DIP拨码开关当其所有的开关都位
于ON时则所有的发光二级管都接到PORTC上的相应口线上
A.3.4 电源供应
MPLAB-ICD模块的供电来自应用板电压范围3.0V 到5.5V电
流供应为0.75mA或更大假如你有PICTART PLUS 烧写器则可
以用它的电源适配器为演示板直接供电
A.3.5 ICD的连接
紧接着电源插座下面的插座是将ICD模块和演示板直接连接的电
缆插座
A.3.6 RS-232串行口
在演示板上安装一片RS-232电平转换接口芯片通过一个DB9
插座和主计算机的串行口连接该串行口被配置为DCE(一种规范数
据通讯设备)方式和计算机之间用一条通用RS-232接口电缆连接和
NULL MODEM电缆不同电路由用户配置安装
U4-MAX232A或兼容接口芯片
R14-R19 - 3301/8W 电阻
C7-C11 - 0.1 F电容
A.3.7 按钮开关
按钮开关的功能如下
MCLR用以复位系统处理器
连接到RB0低电平有效按下时输出低电平
A.3.8 振荡类型选择
你可以使用板上的RC振荡电路或者在4芯插座里插入一只振荡
器确信正确设置了跳线JP1
振荡器插座里可以插入时钟振荡器 - 频率范围从32KHZ到
DS51184 2000 Microchip Technology Inc. 54
MPLAB - ICD 用户指南
20MHZ之间
RC振荡电路 - 时钟由一个4.7K 电阻和一只 20 pF电容器
组成频率范围3.5 Mhz 到 6 Mhz之间取决于工作电压和
环境的温度
A.3.9 模拟量输入
一个1K欧母的电位器串联一只470欧母的固定电阻保护电阻
其管脚之一设置为输出连接到MCU的口线RA0/AN0对于16F87X
其模拟输入口的电压可以从Vdd到电源地GND之间变化
A.3.10 电路板丝印层和电原理图
本节包含MPLAB-ICD的电路板丝印层和电原理图
可选择安装的元件
图A-7MPLAB-ICD演示板电路板丝印层
DS51184 2000 Microchip Technology Inc. 55
MPLAB - ICD 用户指南
图A-8MPLAB-ICD 演示板电原理图第一部分
DS51184 2000 Microchip Technology Inc. 56
MPLAB - ICD 用户指南
图A-9MPLAB-ICD 演示板电原理图第二部分
DS51184 2000 Microchip Technology Inc. 57
MPLAB - ICD 用户指南
图A -10MPLAB-ICD演示板电原理图第三部分
DS51184 2000 Microchip Technology Inc. 58
MPLAB - ICD 用户指南
A-11MPLAB-ICD演示板电原理图第四部分
DS51184 2000 Microchip Technology Inc. 59
·上一篇:包含一卷15m的线束卷目 录
引言...................................................................................................................3
介绍.............................................................................................................................3
重点.............................................................................................................................3
关于本指南.................................................................................................................3
质量保证注册.............................................................................................................4
推荐阅读.....................................................................................................................4
疑难问题解答.............................................................................................................4
MICROCHIP国际互联网站......................................................................................4
开发系统用户信息更新服务.....................................................................................6
用户支持.....................................................................................................................7
第1章 MPLAB-ICD概述..............................................................................................8
11 介绍.............................................................................................8
12 重点............................................................................................ 8
13 什么是MPLB-ICD.....................................................................8
14 MPLAB-ICD能帮你干什么..................................................8
15 MPLAB-ICD使用的资源..........................................................8
16 MPLAB-ICD的各组成部件......................................................9
17 MPLAB集成开发环境.............................................................12
18 MPLAB开发工具.....................................................................12
第2章 MPLAB-ICD的安装入门................................................................................13
21 介绍............................................................................................13
22 重点............................................................................................13
23 MPLAB-ICD开发套件组成.....................................................13
24 MPLAB-ICD对计算机主机的要求.........................................14
25 安装硬件....................................................................................14
26 安装软件....................................................................................16
第3章 Tut877软件的使用..............................................................................................17
31 介绍.............................................................................................17
32 重点.............................................................................................17
33 开始工作前的准备工作.............................................................17
34 建立一个16进制调试文件.......................................................17
35 设置MPLAB-ICD和MPLAB..................................................23
36 设置ICD的编程和调试选项....................................................24
37 对PIC16F877进行编程............................................................26
38 设置演示板.................................................................................26
39 运行Tut877软件.......................................................................29
310 调试Tut877软件.......................................................................32
311 Tut877软件的主例程................................................................33
DS51184 2000 Microchip Technology Inc. 1
MPLAB - ICD 用户指南
312 Tut877软件源代码....................................................................33
第4章 开始使用MPLAB-ICD.......................................................................................35
41 介绍.............................................................................................35
42 重点.............................................................................................35
43 与MPLAB-ICD通讯.................................................................35
44 MPLAB-ICD操作......................................................................36
45 充分利用MPLAB-IDE的项目功能.................................36
第5章 MPLAB-ICD主要功能.......................................................................................38
51 介绍.............................................................................................38
52 重点.............................................................................................38
53 MPLAB-ICD会话窗口..............................................................38
54 程序的执行.................................................................................43
55 断点.............................................................................................44
56 如何使用MPLAB-ICD..............................................................44
第6章 MPLAB-ICD菜单选项.......................................................................................46
61 概述.............................................................................................46
62 重点.............................................................................................46
63 文件菜单.....................................................................................46
64 调试菜单.....................................................................................46
65 选项菜单.....................................................................................46
第7章 疑难问题解答.......................................................................................................47
71 概述.............................................................................................47
72 重点.............................................................................................47
73 常见问题.....................................................................................47
附录A MPLAB-ICD硬件结构.....................................................................................50
A1 介绍........................................................................................................50
A2 MPLAB-ICD模块和仿真头.................................................................50
A3 MPLAB-ICD演示板.............................................................................56
DS51184 2000 Microchip Technology Inc. 2
MPLAB - ICD 用户指南
引 言
介绍
在开始使用MPLIB-ICD之前看一下本章介绍的通用信息将很有好处
重点
本章你会得到如下信息
关于本指南
质量保证注册
推荐阅读的内容
疑难问题解答
MICROCHIP的国际互联网站
开发工具用户信息更新服务
客户支持
关于本指南
文档资料安排如下
本手册将会介绍如何使用MPLIB-ICD作为开发工具来开发用户的目标系统支持软
件FIRMWARE - 也译为"固件"本指南的内容安排如下
第1章 - MPLAB-ICD概述 - 定义MLAB-ICD它能干什么以及它如何配合其他开发
工具进行开发工作
第2章 - MPLAB-ICD-安装入门 - 描述如何安装MPLAB-ICD的硬件和软件以及如
何与系统机之间建立通讯
第3章 - Tut877软件的使用 - 介绍如何使用MPLAB-IDE集成开发环境中的项目
管理器和MPLAB-ICD来开发和调试应用程序
第4章 - 开始使用MPLAB-ICD - 介绍如何建立起MPLAB-ICD软件环境并运行之
第5章 - MPLAB-ICD主要功能 - 详细介绍MPLAB-ICD的主要功能
第6章 - MPLAB-ICD菜单选项 - 详细介绍MPLAB-ICD的菜单选项
第7章 - 疑难问题解答 - 对于一些常见的疑难问题提供解答
附录A MPLAB-ICD硬件结构 - 对于MPLAB-ICD涉及的仿真头模块和演示板的
硬件进行技术上介绍
索引 - 本手册中涉及到的术语TERMS特性FEATURES和章节SECTIONS
环球销售服务网 - 列出MICROCHIP全球的销售服务点的电话传真以及地址
DS51184 2000 Microchip Technology Inc. 3
MPLAB - ICD 用户指南
本指南中用到的一些表示符号
本指南中用到了下列约定符号
描述 说明 例子
代码
courier字体 例程代码文件名路径名 #define START
尖括号 变量
方括号 [ ] 可选参数项 MPASMWIN [main.asm]
大括号{ } 竖号| 可选参数项 Errorlevel { 0 | 1 }
引号中的小写体 数据类型 "filename"
省略号 … 把与本例无关的文本项省略掉 List
["list_option",…,"list_option"]
形如0xnnnn数字 表示16进制数n为16进制数 0xFFFF,0x007A
界面
带下划线和右箭头
的斜体字
表示菜单选项 File>Save
文本中的粗体字 一个窗口或会话窗口的按钮 OK,Cancel
尖括号中的大写字 表示键盘上的一些特殊键 ,
文档资料
斜体字 参考书 MPLAB User's Guide
资料更新
所有的文档资料都有过时的时候本用户指南也不例外因为MPLAB-IDEMPLIB-ICD
及其他MICROCHIP的开发工具需要经常更新以满足用户的要求某些实际看到的对话
窗口和/或工具的使用说明可能与本指南有所不同请到MICROCHIP的国际互联网站获取
最新的文档资料www.microchip.com
质量保证注册
请填好登记卡并立即邮寄出来这将保证您得到及时的软件升级MICROCHIP的网站
上可得到这些更新软件
推荐阅读
本指南讲述如何使用MPLAB-ICD用户也可以在开发软件包里找到某一特定型号单片
机的详细资料
README.ICD
阅读README.ICD文档ASCII文档资料了解最新的MPLIB-ICD信息该文档资
料中包含了本指南可能没有提及的关于软件的升级信息
README.XXX
阅读README.XXX文档ASCII文档资料了解相应的最新的工具如MPLAB
MPASM等信息该文档资料均包含在MPLAB软件包中
MPLAB用户指南DS51025
详细地介绍了MPLAB-IDE 集成开发环境软件包的特性及安装以及编辑器和模拟器的
使用
技术资料CD-ROMDS00161
这张CD-ROM中包含了MICROCHIP最新的PICmicro器件详细数据手册请联系您最
DS51184 2000 Microchip Technology Inc. 4
MPLAB - ICD 用户指南
近的MICROCHIP办事处索取光碟也可以从WWW.MICROCHIP.COM网站下载
嵌入控制技术手册DS00092和DS00167第一卷和第二卷
这两本手册包含丰富的单片机应用信息请联系您最近的MICROCHIP办事处索取见
手册后面附录
这些手册中讲述的应用例子也可以从MICROCHIP的销售和办事处得到还可以从
MICROCHIP的网站上下载
PICmicro中级微控制芯片MCU参考手册DS33023
该资料详细介绍了PIC16CXXX系列中级微控制芯片MCU的内部架构和外设模块
请联系您最近的MICROCHIP办事处索取见手册后面附录
MICROSOFT WINDOWS 手册
本指南认为用户已熟悉WINDOWS的使用市面有许多关于WINDOWS的书可以作为
参考
疑难问题解答
详细内容见第7章关于常见问题的解答
MICROCHIP互联网站
MICROCHIP在国际互联网INTERNET上提供在线帮助
MICROCHIP把INTERNET作为一个方便地给用户提供文件和信息的手段用户需要
有INTERNET浏览器比如NETSCAPE NAVIGATOR或者MICROSOFT INTERNET
EXPLORER用户也可以从我们的文件服务器FTP上下载
连接到MICROCHIP的INTERNET站点
你可以在你熟悉的浏览器中输入MICROCHIP的网站地址
HTTP//WWW.MICROCHIP.COM
(中文网站为 HTTP//WWW.MICROCHIP.COM.CN - 译者)
若想连接到FTP文件传输协议服务器请输入
FTP//FTP.MICROCHIP.COM
WEB网站和FTP站提供很多服务用户可以下载最新的开发软件数据手册应用笔记
用户指南技术文章和例程还有许多MICROCHIP的商业信息包括办事处分销商
其他用户关心的信息还包括
MICROCHIP最新发布消息
技术支持章节有常见问题解答
设计指导与提示
器件资料勘误
工作机会
MICROCHIP咨询顾问成员名单
与其他和MICROCHIP产品相关网站的链接
更多关于产品开发系统技术研讨会的信息
研讨会安排时间表
DS51184 2000 Microchip Technology Inc. 5
MPLAB - ICD 用户指南
开发系统用户最新信息提供服务
MICROCHIP通过用户最新信息提供服务尽力使用户随时得知MICROCHIP的最新产品
信息一旦你购买以下产品我们会随时用电子邮件通知你关于软件的升级修改或关于产
品系列及开发工具的勘误信息其他服务请参见MICROCHIP国际互联网站
开发系统产品包括
编译器
仿真器
编程器
MPLAB软件包
其他工具
假如你对以上产品之一感兴趣的话可以联系下列EMAIL地址订购
listserv@mail.microchip.com
请使用如下格式
subscribe yourname
给你一个范例
subscribe mplab John Doe
假如你想撤消定单的话可以EMAIL给以下地址
listserc@mail.microchip.com
请使用如下格式
unsubscribe yourname
给你一个范例
unsubscribe mplab Jhon Doe
以下将一一介绍现有的开发系统
仿真器
MICROCHIP最新的在线仿真器包括MPLAB-ICEPICMASTER
假如你对以上产品感兴趣的话可以联系下列EMAIL地址订购
listserv@mail.microchip.com
请使用如下格式
subscribe emulators yourname
编程器
MICROCHIP最新的编程器包括PROMATEPICSTART PLUS
假如你对以上产品感兴趣的话可以联系下列EMAIL地址订购
listserv@mail.microchip.com
请使用如下格式
subscribe programmers yourname
编译器
MICROCHIP最新的C编译器链接器汇编器的信息包括MPLAB-C17MPLAB-C18
MPLINKMPASM和库MPLINK的库MPLIB
假如你对以上产品感兴趣的话可以联系下列EMAIL地址订购
listserv@mail.microchip.com
请使用如下格式
DS51184 2000 Microchip Technology Inc. 6
MPLAB - ICD 用户指南
subscribe compilers yourname
MPLAB集成开发软件包
提供基于WINDOWS的集成开发环境软件包MPLAB的最新信息本信息服务集中于
MPLABMPLAB-SIM模拟器MPLAB项目管理器通用编辑器调试器欲知编译器
链接器汇编器的详细情况请订阅编译器产品清单COMPILER LIST欲知MPLAB模
拟器的详细情况可订阅模拟器产品清单欲知MPLAB编程器的详细情况可订阅编程器
产品清单
假如你对以上产品清单感兴趣的话可以联系下列EMAIL地址订阅
listserv@mail.microchip.com
请使用如下格式
subscribe mplab yourname
其他开发工具
MICROCHIP提供的最新关于其他开发工具的信息欲知MPLAB及其集成开发工具的
详细情况可联系其他EMAIL地址
假如你对以上产品清单感兴趣的话可以联系下列EMAIL地址订阅
listserv@mail.microchip.com
请使用如下格式
subscribe otools yourname
用户支持
使用MICROCHIP的产品可以通过以下渠道得到帮助
分销商及代表处
当地销售处
现场应用工程师FAE
厂内应用工程师CAE
热线电话
用户可以打电话给分销商代表处或现场应用工程师FAE寻求帮助当地销售处
也可接受用户的求助见手册后面的销售处电话和地址联系厂内应用工程师CAE可打
电话
480786-7627
另外一条专线电话专门为用户提供系统信息和升级消息用户可以及时得到开发系统软
件的最新版本清单用户还可以得到如何得到最新升级软件的信息
这些热线电话是
1-800-755-2345 美国及加拿大的大部分地区
1-480-786-73-2 世界其他地区
北京010-85282100
上海021-62755700
DS51184 2000 Microchip Technology Inc. 7
MPLAB - ICD 用户指南
第1章 MPASM概述
1.1. 介绍
本章初步介绍MPLAB-ICD(In-Circuit Debugger)在线调试器的特性和功能还将
介绍相应的软件和硬件
1.2. 重点
本章内容包括
什么是MPLAB-ICD
MPLAB-ICD如何帮助你的工作
MPLAB-ICD所使用的资源
MPLAB-IDE的组成部件
MPLAB-IDE Integrated Development Environment集成开发环境
MPLAB开发工具
1.3. 什么是MPLB-ICD
MPLAB-ICD是针对MICROCHIP公司的PICmicro系列微控制芯片PIC16F87X的
廉价开发工具MPLAB-ICD既是一个编程器又是一个在线调试器它利用了
PIC16F87X的在线调试能力和MICROCHIP的在线串行编程技术In-Circuit Serial
Programming 它工作于MPLAB-IDE集成开发环境软件包下直接连接到应用系
统里如同一片PIC16F87X一样去跑用户的应用程序
MPLAB-ICD可以用作实验阶段的评估和辅助调试
MPLAB-ICD有如下特性
实时单步代码执行
断点功能
在线调试功能
工作电压范围为3.0V 到 5.5V
可由目标系统提供工作电压
工作频率范围为32KHZ到20MHZ
源程序级的代码调试
可以工作于MPLAB-IDE集成开发环境兼容于Microsoft Windows 3.X
Windows 95/98 Windows NT 和 Windows 2000 等操作系统
RS-232 串行接口方式
1.4. MPLAB-ICD能帮你干什么
MPLAB-ICD可以让你
在自己的应用系统里调试你的源程序
实时调试你自己的硬件系统
使用MICROCHIP的在线串行编程技术In-Circuit Serial Programming
对目标应用控制器进行编程
1.5. MPLAB-ICD使用的资源
由于PIC16F87X内建在线调试能力和MICROCHIP调试器的在线串行编程功
DS51184 2000 Microchip Technology Inc. 8
MPLAB - ICD 用户指南
能MPLAB-ICD将会占用以下资源
系统复位MCLR和编程电压VPP共用一个管脚
禁止低电压在线串行编程ICSP
RB6和RB7保留为编程和在线调试用
六个通用文件寄存器保留给调试监控程序见下所述
程序存储器第一条指令地址0X0000必须是空操作指令NOP
程序存储器的最后256或88个字被保留用来存放调试代码根据芯片类型
而不同所占字节不同见下面所述
MPLAB-ICD所使用的数据和程序存储器
MPLAB-ICD使用了PIC16F87X目标系统控制器的以下的文件寄存器和程序存储
器
处理器类型 被占用的文件寄存器 被占用的程序存储器
PIC16F870/871/872 0x70, 0x0BB-0x0BF 0x06E0-0x07FF
PIC16F873/874 0x70, 0x0EB-0x0F0 0x0EE0-0x0FFF
PIC16F876/877 0x70, 0x1EB-0x1EF 0x1F00-0x1FFF
1.6. MPLAB-ICD的各组成部件
MPLAB-ICD由以下部件构成
MPLAB-ICD模块
MPLAB-ICD仿真头
MPLAB-ICD演示板
MPLAB-ICD开发软件装在PC机里
图1-1MPLAB-ICD的各个部件示意图
DS51184 2000 Microchip Technology Inc. 9
MPLAB - ICD 用户指南
图1-2MPLAB-ICD模块和演示板的连接示意图
161 MPLAB-ICD模块
MPLAB-ICD模块包括所有的调试编程和控制逻辑通过一条九芯串行电缆
将计算机串行口和MPLAB-ICD模块连接起来MPLAB-ICD模块和MPLAB-ICD
目标板演示板之间用一条六芯扁平电缆连接假如用户的应用板没有这种六芯
插座见1.1.3 节的第12条所述作为另外一种连接方式MPLAB-ICD模块可
以连接到仿真头而应用板可以通过MPLAB-ICD仿真头与MPLAB-ICD模块连
接进行调试工作
模块的支持软件还提供和PC机之间的串行通讯驱动MPLAB-ICD和目标板
演示板或仿真头之间的通讯使用在线串行编程技术ICSP对目标板上的
PIC16F87X进行编程这一切都是通过MPLAB-IDE集成开发环境来实现的
该模块的电源来自目标模块或者演示板所需要的电流最大为70mA不
包括目标板上的器件消耗的电流
扁平电缆可以插入到带有特定插座的MPLAB-ICD仿真头或者PIC16F87X的
应用电路板上以便在线仿真QFPDIE封装的芯片见2.5.2节的详细介绍
162 MPLAB-ICD仿真头
有时用户目标板上并没有设计这种特定的六芯电缆插座用来和MPALB-ICD
模块相连为方便用户使用MPLAB-ICD仿真头可以非常方便地插入到用户目标
板上的PIC16F87X芯片插座上MPLAB-ICD模块和MPLAB-ICD仿真头之间有
一条九英寸长的电缆相连对于在线仿真需要在仿真头上插入40引脚的
PIC16F87X芯片然后可以将该仿真头插入到用户目标板上的28引脚或者40引
脚的PIC16F87X双列直插DIPIC插座上也可以插入到MPLAB-ICD演示板
上见2.5.1节的详细介绍
MPLAB-ICD仿真头的电源供应来自用户目标板电压范围从3V到5.5V
163 MPLAB-ICD演示板
演示板用于在没有用户目标板的情况下进行演示和开发评估它可以直接连
接到MPLAB-ICD模块或者通过MPLAB-ICD仿真头与模块连接PIC16F877可以
从仿真头上拔出来直接插入到演示板上独立运行
演示板见图1.3有下列硬件特性
DS51184 2000 Microchip Technology Inc. 10
MPLAB - ICD 用户指南
1 提供了40引脚和28引脚IC插座用于在没有用户目标板的情况下进行
演示和评估工作见A.3.1节介绍用户可以选择所需要的管脚数
2 8位DIP拨码开关可以方便地进行切换以便连接到端口CPORTC
上的相应管脚或者与这些管脚断开
3 8只红色的LED发光二级管连接到PORTC用于显示八位二进制信息
4 有两只按钮开关一只用于系统复位RESET另一只连接到RB0作为
外部开关量信号输入
5 一个电位器连接到RA0口线上用来作为模拟信号的输入
6 一小块用户可使用的面包板安装用户设计中的电路元件
7 一个扩展插座用于把PIC16F87X的IO引脚连接到其他扩展板上
8 一个选择跳线用于选择RC振荡方式大约2MHZ或者外部晶体振荡
器振荡方式
9 外部晶体振荡器插座
109V0.75A电源输入插座和PICSTART PLUS 编程器的电源适配器相
似
11RS232串行口及相应的配套硬件连接常见的RS232口
12电缆连接插座可以通过电缆直接连接到演示板或者MPLAB-ICD模块
图1-3MPLAB-ICD演示板
164 MPLAB-IDE集成开发软件包
MPLAB-IDE集成开发软件包运行于WINDOWS31WINDOWS95/98或
WINDOWS NTWINDOWS2000等操作系统
DS51184 2000 Microchip Technology Inc. 11
MPLAB - ICD 用户指南
1.7. MPLAB集成开发环境
MPLAB提供一个开发调试用户目标系统的集成开发环境MPLAB-ICD相应的
软件也嵌入到了MPLAB软件包里
本资料对MPLAB-ICD的基本操作和设置进行介绍但并不详细介绍MPLAB-IDE
集成开发环境软件包关于MPLAB详细的特性和调试能力请参考MPLAB-IDE集
成开发环境用户指南MICROCHIP文档资料号DS51025
1.8. MPLAB开发工具
MPLAB-IDE集成开发环境提供了一系列开发工具形成一个完整的开发环境
MPLAB 项目管理器MPLAB Project Manager
使用项目管理器建立项目并结合所指定的一系列与该项目相关的文件进行
工作当使用项目时只需简单地点击鼠标就可以将源代码重新创建
REBUILT而且下载到模拟器或仿真器里
MPLAB 编辑器MPLAB Editor
使用MPLAB编辑器可以方便地编辑和修改文本文件如源文件代码和链
接器描述文件
MPLAB 模拟器MPLAB-SIM Simulator
软件模拟调试可以仿真指令的执行和微控制器MCU的IO口状态
MPLAB 在线仿真器MPLAB-ICE Emulator
不管有没有目标系统在线仿真器都可以以硬件方式实时仿真PICMICRO微
控制器
MPASM通用宏汇编/MPLINK可重定位链接器/MPLIB库管理器
MPASM宏汇编可以不用离开MPLAB集成开发环境就进行汇编操作
MPLINK链接由MPASM宏汇编MPLAB-C17PIC17CXXX系列C编译器
生成的可重定位模块输出可烧写代码MPLIB负责库文件管理使用户最
大程度利用代码资源
PRO MATE II 和PICSTART Plus 编程器
对源代码用软件模拟器硬件仿真器汇编或编译处理然后使用这些工具
对PICMICRO微控制器进行编程这些操作可以都在MPLAB中进行尽管
PROMATE II可以不用MPLAB而独立工作可是使用MPLAB可以使编程更
为方便
第三方开发工具Third Party Tools
许多公司开发了可以在MPLAB下工作的开发工具参考MICROCHIP的第
三方开发工具指南文档资料号DS00104
DS51184 2000 Microchip Technology Inc. 12
MPLAB - ICD 用户指南
第2章 MPLAB-ICD的安装入门
21 介绍
本章介绍如何安装MPLAB-ICD的硬件和软件并在PC机和MPLAB-ICD演示板
间建立通讯
22 重点
本章内容包括
MPLAB-ICD套件组成部分
对系统PC机的要求
安装硬件
安装软件
23 MPLAB-ICD开发套件组成
MPLAB-ICD套件包括以下部分
1MPLAB-ICD仿真头
2MPLAB-ICD模块
3MPLAB-ICD演示板
4RS-232串行口电缆
540管脚和28管脚的SDIP连接插座
6九英寸长的六芯插头电缆
7包含所有MPLAB软件包和文档资料的光碟
8使用手册
MPLAB-ICD 用户指南即本手册
MPLAB-IDE 用户指南图中没有
MPASM及MPLINKMPLIB用户指南
9 质量保证卡图中没有
图2.1MPLAB-ICD套件组成部分
DS51184 2000 Microchip Technology Inc. 13
MPLAB - ICD 用户指南
24 MPLAB-ICD对计算机主机的要求
为了更好地发挥调试系统的性能必须把MPLAB软件包安装到以下要求的计算 机
里
奔腾PENTIUM系列PC或兼容计算机
微软公司的操作系统WINDOWS3XWINDOWS95/98WINDOWSNT或者
WINDOWS2000
16MB的系统内存推荐使用32MB系统内存
45MB可使用的磁盘空间
一个空余的串行通讯口
9V0.75A的电源适配器PICSTART PLUS所用型号或相近型号
25 安装硬件
251 连接模块仿真头和演示板或目标板
请按下列步骤安装MPLAB-ICD硬件系统
1将PICMICRO微控制器芯片PIC16F87X插入到MPLAB-ICD仿真头
的40管脚DIP插座里面
在目标板或演示板上的
MCU型号
在仿真头上要插入的
MCU型号
PIC16F870 PIC16F871
PIC16F871 PIC16F871
PIC16F873 PIC16F874
PIC16F874 PIC16F874
PIC16F876 PIC16F877
PIC16F877 PIC16F877
注意如果所选MCU型号不是40引脚的芯片不能使用MPLAB-ICD仿真
头要想调试非40管脚的处理器则需要将模块和演示板或目标板按2.5.2
节介绍的方法进行连接
2将扁平电缆连接到MPLAB-ICD模块和仿真头之间
用九英寸长的扁平电缆把MPLAB-ICD模块和仿真头连接起来
3将40引脚的连接仿真插头插入到演示板或目标板上的的40芯IC插
座里如果使用的是演示板确信先插入一个40引脚的附加插座
4把仿真头插入到演示板或者应用目标板的IC插座里见图2-2
如果你调试的是28引脚IC将仿真头通过一个28脚的SDIP转换 插
头连接到演示板或目标板上的28脚的SDIP插座里即可
5将RS-232串行口专用电缆连接到PC主机的串行口和MPLAB-ICD
模块之间
6打开计算机主机电源
7打开MPLAB-ICD演示板或应用目标板上的电源该电源同时供给
MPLAB-ICD模块对于演示板用户可以使用PICSTART PLUS
编程器用的电源适配器插头中心为电源正极
DS51184 2000 Microchip Technology Inc. 14
MPLAB - ICD 用户指南
图2-2MPLAB-ICD硬件连接示意图
252 连接模块和演示板或目标板
假如你设计的目标板上有RJ-6电缆插座那末就可以方便地将MPLAB-ICD
模块和目标板直接连接了RJ-6电缆内部各芯的分配如下表
J2各芯编号 信号
6 RB3
5 RB6
4 RB7
3 接地
2 +VDD
1 Vpp
这些信号为MPLAB-ICD提供了所有功能
1在演示板或目标板里的MCU插座里插入一片28脚或40脚的PIC16F87X
芯片
2用九英寸扁平电缆连接MPLAB-ICD模块和MPLAM-ICD演示板或用户
应用目标板
3用RS-232串行电缆连接计算机的串行口和MPLAB-ICD模块
4打开计算机主机电源
5打开演示板或目标板的电源同时供给MPLAB-ICD模块电源对于演示
板用户可以使用PICSTART PLUS编程器用的电源适配器插头中心为电
源正极
DS51184 2000 Microchip Technology Inc. 15
MPLAB - ICD 用户指南
图2-3MPLAB-ICD模块和演示板的电缆连接不通过仿真头
26 安装软件
MPLAB-ICD是MPLAB-IDE集成开发环境的一个可插入ADD-ON工具按
如下步骤安装MPLAB-IDE集成开发环境软件包
1进入MICROSOFT WINDOWS环境里把MPLAB-IDE 的CD-ROM插入光盘
驱动器里
2执行安装程序
a). WINDOWS31环境下从文件管理器或命令Program Manager>Run然后
执行X:\MPvvvvv.exe其中X是用户计算机上的光盘驱动器盘符vvvvv是
MPLAB的版本号
b). WINDOWS95/98点击Start按钮选择Run输入X:\MPvvvvv.exe其中
X是用户计算机上的光盘驱动器盘符vvvvv是MPLAB的版本号然后点击
OK按钮即可
3按指导过程安装支持MPLAB-ICD的MPLAB IDE集成开发环境软件包一定
记住安装过程中当欢迎窗口出现以后紧接着出现要求选择MPLAB-ICD部件
的会话窗口时要点击并选择该部件以便系统安装
第3章 Tut877软件的使用
3.1 介绍
MPLAD-ICD是专门设计来对PIC16F87X系列微控制器进行在线调试和
编程的本指南将为你介绍MPLAB-ICD的软件硬件使用入门对用户的
目标系统进行编程和源代码的调试方法
本章将以Tut877这个项目为例进行MPLAB-ICD的使用指导程序
tut877.asm是一个应用程序范例其中使用了MPLAB-ICD演示板上的
PIC16F877微控制器的模拟-数字转换器A/D本程序中设置了A/D转
DS51184 2000 Microchip Technology Inc. 16
MPLAB - ICD 用户指南
184 2000 Microchip Technology Inc. 17
换通道0连接到演示板上的一个电位器进行模拟-数字转换并把A/D
结果通过连接到口CPORTC上的8只发光二级管显示出来
3.2 重点
本章内容包括
建立十六进制调试文件以便调试
设置MPLAB-ICD和MPLAB-IDE集成开发环境
设置MPLAB-ICD的编程和调试选项
对PIC16F877进行烧写编程
运行Tut877
调试Tut877
Tut877的功能
3.3 开始工作前的准备工作
这需要MPLAB-ICD调试器和主计算机建立通讯联系见2.5节介绍
MPLAB-IDE集成开发环境必须先安装并运行
3.4 建立一个16进制调试文件
用户需要建立一个新项目以便将源文件tut877.asm和建立的十六进
制文件tut877.hex见下一章介绍如何建立新项目tut877.pjt
3.4.1 新项目目录
用文件管理器WINDOWS31或WINDOWS浏览器WINDOWS95/98
为新项目建立一个目录:\MPLAB\tut877将tut877.asm文件从\MPLAB
目录移动到该目录下面
3.4.2 新项目
选择Project>New Project选择新项目所在的路径然后在文件
名会话窗口里输入tut877.prj点击OK按钮即可
DS51
MPLAB - ICD 用户指南
图3-1建立新项目- sample.prj
3.4.3 项目会话窗口
这时候Edit Project dialog编辑项目会话窗口将会打开
图3-2设置开发模式前编辑项目会话窗口
这时候会看到开发模式设置图中显示出当前工作于MPLAB-SIM软件
模拟方式MCU是PIC16C508处理器这些状态都是用户以前使用
MPLAB-IDE集成开发环境时的设置而现在则需要改变这些设置
点击Change按钮
DS51184 2000 Microchip Technology Inc. 18
MPLAB - ICD 用户指南
图3-3设置开发模式
在Tools菜单条里选择MPLAB-ICD Debugger确信已经选择了
PIC16F877处理器然后点击OK
MPLAB-IDE将和MPLAB-ICD模块之间建立通讯在这个过程中
MPLAB-ICD会话窗口将会同时出现假如你看到一条错误报告信息请重
新检查一下电源连线插座是否牢固可靠电缆是否连接正确参考第七章
获取更多故障排除的信息
DS51184 2000 Microchip Technology Inc. 19
MPLAB - ICD 用户指南
图3-4编辑项目会话窗口
注意在Edit Project dialog编辑项目会话窗口里是否正确选择
了开发模式和处理器设置
在编辑项目会话窗口里的Project Files项目文件区域里用
鼠标选择tut877 [.hex]文件然后点击Node Property节点属性按
钮
3.4.4 设置节点属性
节点属性会话窗口显示出涉及到MPLAB-ICD开发器的命令行开关这
时候这些参数都是MPASM汇编器的当你首次打开该会话窗口时所看到
的设置均为该开发工具的默认设置对于本范例中的应用没有必要修改该
默认设置
点击OK按钮返回到编辑项目会话窗口(Edit Project dialog)
DS51184 2000 Microchip Technology Inc. 20
MPLAB - ICD 用户指南
图3-5节点属性会话窗口
3.4.5 增加节点
在编辑项目会话窗口里点击Add Node(增加节点)打开添加节点
会话窗口选择tut877.asm然后点击OK即可
图3-6添加节点
DS51184 2000 Microchip Technology Inc. 21
MPLAB - ICD 用户指南
3.4.6 完成对项目的设置
在这个简单的例子里在路径选择框里没有指定目录随着你的应用越
来越复杂则必须指定在相应的选择框里设置包含文件的目录路径
MPASM通常会把十六进制文件的文件名a.hex取得和源文件
(a.asm)的文件名一样当建立BUILT项目的时候项目管理器
将会生成一个tut877.hex十六进制文件
图3-7带节点的编辑项目会话窗口
点击OK按钮关闭编辑项目会话窗口(Edit Project dialog)
从MPLAB-IDE菜单项里选择现在选择命令
Project>Save Project 保存新建立的项目
3.4.7 建立项目Make Project
从MPLAB-IDE菜单项里选择Project>Make Project使用MPASM
宏汇编来程序来汇编应用程序创建BUILT以后的结果窗口中可以看到
发送给汇编器的命令行见下图所示
DS51184 2000 Microchip Technology Inc. 22
MPLAB - ICD 用户指南
图3-8创建BUILT以后的结果窗口
注意信息[302]是想让你明白在指示的行号如3132和34
里用户指定了一个并不位于第0堆BANK 0的文件寄存器这不是
错误用户的程序代码仍然会被正确地编译
点击创建结果BUILT RESULTS窗口右上角的图标X将窗口关闭
或者点击位于X图标下面的RESTORE图标重新调整窗口的大小接下来的
创建操作将会使用这个较小的创建BUILT结果窗口
3.5 设置MPLAB-ICD和MPLAB
这时候MPLAB-ICD会话窗口将会出现在计算机的桌面上选择适当
的选择项来设置MPLAB-IDE使之能和MPLAB-ICD的硬件一起工作
图3-9MPLAB-ICD会话窗口
表3-1MPLAB-ICD会话窗口
可选项 选择
Status(状态)菜单 状态栏显示被执行的MPLAB-ICD函
数和状态当编程时可以从这里看
到进程当操作完成后状态栏显示
信息Waiting for use command"等
待用户命令
串行口和波特率菜单 确信这些设置合乎你的系统要求
上载Upload选项菜单 现在选择最小值往后的范例中将会
调试改变该数值
时钟选择范围菜单 选择工作频率范围2MHZ~10MHZ
点击Options继续指导过程
DS51184 2000 Microchip Technology Inc. 23
MPLAB - ICD 用户指南
3.6 设置ICD的编程和调试选项
为了对PIC16F87X芯片进行编程,必须先对ICD选项会话窗口(ICD Options
dialog)进行设置工作,为编程作好准备当用户进入MPLAB-ICD开发模式时,
一个较小的会话窗口就会打开在MPLAB-ICD的会话窗口里点击Options
打开ICD选项会话窗口
图3-10MPLAB-ICD选项会话窗口
361 配置位和芯片类型选择
ICD选项会话窗口到这一步将设置PIC16F87X处理器里的各种配
置位点击图中相应的箭头图标就会弹出一个列表从该列表
中选中相应的选择项
DS51184 2000 Microchip Technology Inc. 24
MPLAB - ICD 用户指南
表3-2配置位和芯片类型的选择
可选项 选择
Device
芯片类型
在开发模式会话窗口里应看到PIC16F877被选中假如不
是使用项目菜单来保存项目并关闭项目输入命
令Options > Development Mode 正确选择芯片后点
击OK按钮然后重新打开Tut877的项目
Oscillator
振荡器
本范例里使用RC振荡器检查演示板让JP1跳线正确地
放置于RC振荡选择位置见图1.3的第8项演示板上
RC振荡器的振荡频率大约为2MHZ
Watchdog Timer
看门狗定时器
对于本范例里看门狗定时器WDT应关闭
Power Up Timer
上电延时定时器
对于本范例里上电延时定时器PWRT应关闭
Brown Out Detect
电源掉电监测
对于本范例里电源掉电监测BOD应关闭
Low Voltage
Program
低电压编程
当使用MPLAB-ICD时低电压ICSP烧写应该禁止这意
味着你可以用RB3作为数字I/O而且要在MCLR管脚接
上HV烧写电压
Code Protect Data
EEPROM数据保
护
本范例关闭了EEPROM数据保护
Flash Memory
Write
闪速存储器写
本范例没有使能通过EECON寄存器对FLASH存储空间进
行擦写
Code Protect
代码保护
本范例关闭了代码保护
362 芯片ID和代码检验和
数据检验和 CHECHSUME及ID代码在这个窗口里显示
对于本范例中用鼠标点击选择盒Use Checksum as ID使之选
中这样一来就会使用检验和CHECHSUME作为ID
363 电压选择
用鼠标点击Update更新按钮即可检查目标应用板上的电源Vdd
芯片供电和Vpp编程电源的电压值
MPLAB-ICD的编程电压大约为13伏特该电压是将来自目标板
的电源电压Vdd通过开关升压电路Boost Converter升压后得到的
364 编程选项
程序地址范围起始地址和结束地址是可以被读编程或校验的
程序或数据存储器地址范围默认的程序地址范围被选择为用户所选芯
片的程序存储器的最大范围本范例将使用默认的程序地址范围
确信程序选择项Program Options下的所有检查盒都已经选中
有V符号为选中这意味着所有存储器ID代码配置位都将
被编程而且所有的存储器都将会在编程之前被全部清除芯片被设置
为调试Debug模式
DS51184 2000 Microchip Technology Inc. 25
MPLAB - ICD 用户指南
365 功能按钮
在本范例的指导过程里用户将会检查所有这些功能按钮
Function Buttons以便对MPLAB-ICD仿真头或目标板/演示板上
的PIC16F87X进行功能设置
3.7 对PIC16F877进行编程
点击Program按钮这时候就会将tut877.hex这个十六进制文件和调试
代码Debug Code写入MPLAB-ICD仿真头或目标/演示板中的PIC16F87X里
编程过程可能要用几分钟在编程过程中状态栏Status box里将会显示当前
的操作顺序当编程过程结束后状态栏Status box里将会显示信息Waiting for
user command等待用户命令
注意调试代码Debug Code是PIC16F87X微控制器里地址范围
1F00h~1FFFh的一组特殊代码这些区域用来存放MPLAB-ICD在线调试功能
的监控程序
用户可以最小化或移动MPLAB-ICD会话窗口而不必关闭它关闭
MPLAB-ICD会话窗口将退出MPLAB-ICD开发环境假如想重新进入
MPLAB-ICD使用命令
Options>Development Mode选择编辑器模式Editor Only然后点击Apply
应用按钮然后选择MPLAB-ICD并点击OK即可重新使用ICD环境
3.8 设置演示板
开始调试之前让我们再检查一下演示板是否这样设置的
JP1是否将振荡器模式设置为RC阻容振荡方式
DIP拨码开关SW3的所有开关是否都被设置为开ON状态以便
将所有的发光二级管连接到C端口PORTC上的相应管脚
图3-11设置演示板
DS51184 2000 Microchip Technology Inc. 26
MPLAB - ICD 用户指南
3.9 运行Tut877软件
MPLAB-ICD运行于实时模式Real-time Mode和单步模式(Step Mode)
当MPLAB-ICD仿真头上的PIC16F87X接受MPLAB-IDE集成开发环境
的指令处于运行Run模式时系统这时候处于实时执行Real-time
Excution模式
当处理器暂停后即可进入单步运行模式
进入实时模式Real-time Mode的步骤
打开tut877.asm以便观察Open>File
点击Run工具栏按钮或者使用命令(Debug>Run>Run)则MPLAB-IDE
桌面下面的状态栏会变为黄色指示系统处于运行模式如果用户想自己
定义指示系统处于运行模式时的颜色可以选择命令
(Options>Environment Setup)并点击Colors栏即可选择
旋转演示板上的电位器RA0并让上面的小箭头指向DIP拨码开关
SW3观察发光二级管的显示假如程序运行正确的话你会看到通
过电位器调整的电压经过A/D转换后的二进制状态然而请注意在
tut877.asm程序中故意安排了一个程序漏洞BUG当然这让我们有
机会针对这一漏洞去调试程序
点击停止Halt按钮或命令Debug>Run>Halt即可停止程序的
执行要想复位程序用命令Debug>Run>Reset
3.10 调试Tut877软件
以下情况之一都将会导致程序运行故障
A/D转换值不能写到端口C驱动发光二级管
A/D转换器没有打开或者没有预先设置好
源程序里的一个漏洞导致程序工作不正常
对于第一种情况解决方法是在文件中写A/D转换结果到PORTC的语句上
设置一个断点将源文件tut877.asm里的下列语句变为高亮或者把光标放置于
这条语句上
movf ADRESH,W ;写 A/D 结果到 PORTC
点击鼠标右键进入快捷菜单从中选择BreakPoint(s) 见图3-12所示这样一
来该行便被标记为一处断点用户想改变标记断点的颜色时可以用命令
Options > Environment Setup 然后点击 Colors标签
DS51184 2000 Microchip Technology Inc. 27
MPLAB - ICD 用户指南
图3-12设置断点
点击 Run工具栏按钮或者选择命令Debug > Run > Run 程序将再次运行
于实时模式
当程序运行到用户标记为断点的地方时程序就会被断点打断停止执行
然而我们给出的范例并不停止运行因此现在你可以点击工具栏按钮或选择命令
Debug > Run > Halt 来终止程序的运行
观察源代码(tut877.asm)窗口里的程序注意观察程序终止的地方我们
给定的范例程序停止在一个Wait (等待) 例程的两条语句中的某一行上见图3-13
所示基于程序停止的位置和程序无法到达断点的事实我们可以得出结论问题
的根本在于A/D转换本身具体地讲程序中没有将A/D转换结束标志位置位
A/D转换器的初始化和设置出现在程序的开始部分现在要回到程序开头部分选
择命令Debug > Run >Reset 程序复位开始的第一条语句将会变为高亮
DS51184 2000 Microchip Technology Inc. 28
MPLAB - ICD 用户指南
图3-13程序终止运行
打开一个新的观察窗口watch window以便观察到随着程序的执行A/D寄
存器数值的改变情况选择命令
Window > Watch Windows > New Watch Window.
这时候Add Watch Symbo添加观察符号的会话窗口就会出现Watch_1
新观察窗在其后面添加符号ADCON0 和 ADCON1到该窗口里见图3-14所示
DS51184 2000 Microchip Technology Inc. 29
MPLAB - ICD 用户指南
图3-14添加观察符号Adding Watch Symbols
完成上述操作后点击Close结束这时候所选择的符号就会在观察窗口
里看到了见图3-15所示
图3-15观察窗口Watch Window
在MPLAB-ICD会话窗口设置最小化上载选项打开观察窗口之后程序运
行会变得漫一些但这样做可以允许我们监视观察窗口里的数据变化以便调试
关闭或最小化MPLAB-ICD的选项会话窗口Options dialog
在源程序tut877.asm里将断点设置在开始后的第二条语句上和前面所述一
样将源程序tut877.asm里的以下这条语句高亮或者把光标放在这条语句上
clrf PORTC ;清除 PORTC
点击鼠标右键进入快捷菜单从中选择Break Point(s)
点击 Run工具栏按钮或者选择命令Debug > Run > Run 程序将运行于实
时模式real-time mode
这一次程序将会在执行完断点处的语句后停下来同时原断点后面的那条语句
将会变为高亮见图3-16所示
DS51184 2000 Microchip Technology Inc. 30
MPLAB - ICD 用户指南
图3-16程序停止于断点后面一条语句
现在点击单步工具栏按钮或者命令Debug >Run > Step 这时候系统进入
单步执行状态单步执行两步后观察视察窗口中的寄存器ADCON0和ADCON1
你会看到ADCON0的值变为十六进制数40H了见图3-17
图3-17上载观察窗口
DS51184 2000 Microchip Technology Inc. 31
MPLAB - ICD 用户指南
下面的语句中给出的二进制数值有没问题哪里呢查阅PIC16F87X 数据手册
(MICROCHIP文档资料号DS30292)得知其最后一位应该是1而不是0
这一位为1的含义是打开A/D模块
按以下方式修改这一程序缺陷
movlw B'01000000' ;Fosc/8, 允许A/D转换
修改后
movlw B'01000001' ;Fosc/8, 允许A/D转换
选择File > Save 存储所做的修改再选择Project > Make Project 命令重
新创建rebuild项目
这时候系统会反馈一条信息给你告诉你重新对ICD系统里的MCU编程以
便使修改过的程序生效点击MPLAB-ICD会话窗口里的Program 按钮将ICD
编程同时修改生效
这时候MPLAB-ICD会话窗口里的状态窗口Status box指出系统正等待你
的下一个命令下一步你需要做的就是再次运行程序
点击Run工具栏或给出命令Debug > Run > Run 以实时模式运行程序
这时候会看到有一些发光二级管LED被点亮旋转电位器RA0的旋钮会改
变这些发光二级管的显示状态
本源程序里只安排了一个程序漏洞BUG然而实际上的用户代码可能有更
多的漏洞使用MPLAB-ICD和MPLAB-IDE的调试功能你可以发现和修改你的
源代码中出现的程序漏洞BUG
3.11 Tut877软件的主例程
图3-18所示的tut877.asm主程序开始先配置端口CPORTCA/D
转换器计数器0TIMER0然后会等待TIMER0的溢出以启动对电位器上分
配的电压进行A/D转换当转换结束后转换结果会显示在发光二级管上然后
程序会等待下一次计数器0的溢出进行下一次A/D转换这一过程是循环进行
的 关于A/D转换模块的更多信息请参考PICmicro中级控制器系列参考手册
PICmicro Midrange Microcontroller Family Reference Manual (DS33023)
其中会对A/D转换详细介绍还会介绍一些很好的应用笔记
DS51184 2000 Microchip Technology Inc. 32
MPLAB - ICD 用户指南
DS51184 2000 Microchip Technology Inc. 33
否 否
是 是
A/D转换设置为左调整8分
频1路A/D通道
设置定时器0预分频器分配给
定时器0分频比为1256
定时器0
溢出
A/D转换
结束
开始A/D转换
写A/D结果到C口
开始
将端口C所有管
脚设置为输出
图3-18程序流程图
3.12 Tut877软件源代码
This is a functional version of tut877.asm.
;**********************************************************
;* TUT877.ASM
;**********************************************************
;* Microchip Technology Incorporated
;* 16 December 1998
;* Assembled with MPASM V2.20
MPLAB - ICD 用户指南
;***************************************************************
;* 本程序设置A/D 模块的通道0(电位器)进行A/D转换并把结果送到接在端口C的LED上
;* 确信拨码开关SW3的所有开关都位于ON的位置
;**************************************************************
list p=16f877
; 包含文件如果需要改变目录
include "p16f877.inc"
;从复位向量处开始
org 0x000
nop
Start
banksel PORTC
clrf PORTC ;清零 PORTC
movlw B'01000001' ;Fosc/8, 允许A/D转换
movwf ADCON0
banksel OPTION_REG
movlw B'10000111' ;TMR0 预分频比设为1:256
movwf OPTION_REG
clrf TRISC ;PORTC所有管脚设置为输出
movlw B'00001110' ;左调整1个A/D通道
movwf ADCON1 ;VDD 和VSS 参考源
banksel PORTC
Main
btfss INTCON,T0IF ;等待 Timer0 溢出
goto Main
bcf INTCON,T0IF
bsf ADCON0,GO ;开始 A/D 转换
Wait
btfss PIR1,ADIF ;等待A/D转换结束
goto Wait
movf ADRESH,W ;写 A/D 结果到 PORTC
movwf PORTC ;送到发光二级管
clrf PORTC
WaitPush
btfss PORTB,0
goto WaitPush
movwf PORTC
goto Main ;循环进行A/D转换
end
DS51184 2000 Microchip Technology Inc. 34
MPLAB - ICD 用户指南
第4章 开始使用MPLAB-ICD
4.1 介绍
本章介绍如何设置MPLAB-ICD的软件和硬件并使系统运行起来
4.2 重点
本章内容包括
与MPLAB-ICD的通讯
MPLAB-ICD操作
最大程度的使用MPLAB-IDE集成开发环境-项目的使用
4.3 与MPLAB-ICD通讯
按照下面的步骤设置MPLAB-IDE集成开发环境以便使用MPLAB-ICD
在线硬件开发系统
1 确信MPLAB-ICD在线硬件开发系统和系统计算机之间用RS-232串行
电缆连接起来与2.5节介绍的一样
2 确信目标板被通上电源这样MPLAB-ICD模块同时从目标板得到了电源
供应
3 进入MPLAB-IDE集成开发环境软件的程序组里运行MPLAB-IDE
4 选择Options > Development Mode 然后点击Tools打开开发模
式会话窗口 Development Mode
5 选择MPLAB-IDE为开发模式并选择一种你将要开发的PIC16F87X系
列处理器类型
图4-1开发模式会话窗口
DS51184 2000 Microchip Technology Inc. 35
MPLAB - ICD 用户指南
6 点击OK按钮
这时候开发模式会话窗口将会关闭MPLAB-ICD会话窗口将会打开
注意假如你关闭MPLAB-ICD会话窗口选择命令
Options > Development Mode 再点击Tools 打开开发模式会话窗
口 Development Mode选择MPLAB-ICD调试器然后点击OK
重新打开MPLAB-ICD会话窗口
假如MPLAB-IDE先前设置过ICD模式会有两种情况如果
MPLAB-ICD与系统通讯良好就会找到模块而且启动系统假如通讯不畅
你会得到一条无法找到MPLAB-ICD的提示信息假如MPLAB-IDE无法找
到MPLAB-ICD开发器请选择纯编辑模式Editor Only然后点击Apply
应用再重复以上第4-6步的工作
关于MPLAB-ICD会话窗口的更多信息参考第5章的介绍
假如MPLAB-IDE仍然无法找到MPLAB-ICD参考第七章的介绍
4.4 MPLAB-ICD操作
MPLAB-ICD既是一个PIC16F87X系列微控制器的编程器又是一个
在线开发调试器它将十六进制文件写入PIC16F87X系列微控制器里同
时提供基本的实时单步断点等在线代码调试手段其调试监控程序被建
立在PIC16F87X里面当这些代码被写入目标处理器后即被激活当然
和全特性的在线实时仿真器相比MPLAB-ICD的功能有一定的限制但是
用它来调试和烧写PIC16F87X系列MCU却有很高的性能价格比
为了实现在线调试的功能MPLAB-ICD模块上的微控制器里的监控程
序将会写入目标板上的PIC16F87X里面这些代码是MPASM汇编代码模
块将在MPLAB控制下自动写入MPLAB-ICD仿真头上的PIC16F87X单
片机里这段代码驻留在程序存储器的后端例如如果你选择了
PIC16F877处理器则监控代码将会驻留在0x1F00 到 0x1FFF的地址范
围内
4.5 充分利用MPLAB-IDE的项目功能
MPLAB-IDE集成开发软件包是MPLAB-ICD在线调试器MPLAB-SIM
模拟器的控制程序其功能齐全调试手段完善比如可以读写RAMROM
EEPROM以及很多其他调试手段
注意假如在你建立的项目中没有源代码文件MPLAB-IDE是无法
正常调试代码的
451 MPLAB-IDE项目特性
在MPLAB-IDE集成开发软件包环境下开发和调试代码是基于项目
的尽管可以不用打开项目就可以执行仿真但是使用项目可以有
如下的优势
多个源文件可以非常容易的创建和维护
DS51184 2000 Microchip Technology Inc. 36
MPLAB - ICD 用户指南
允许符号调试
调试环境可以被存储下来供以后使用
项目里保存的信息包括
开发模式和处理器类型
与项目相关的源文件
PICmicro可执行代码文件名
所打开的窗口以及窗口的大小尺寸位置
已命名的断点
配置位的设置
452 建立项目
选择Project > New Project 打开编辑项目会话窗口并建立一个新
项目项目里将会包括源文件目标文件及其他相关文件以及很多
关于项目的重要设置
453 保存项目
点击编辑项目会话窗口里的OK按钮将当前项目的相关信息
存储下来一方面为暂停工作而为另一方面可以作为以后调试的默认
设置然后选择Project > Save Project命令保存项目
开发模式Development Mode
用户选择好的开发模式以项目信息的形式保留下来要想改变一个
项目的开发模式请按以下步骤进行
打开项目以前使用过的开发模式将被选中
选择命令Options > Development Mode 进入开发模式会
话窗口选择相应的开发模式后点击OK
选择命令Project > Save Project 保存该项目
更多关于项目建立的信息请参考MPLAB-IDE 用户指南
MPLAB IDE User's Guide (文档资料号DS51025)
DS51184 2000 Microchip Technology Inc. 37
MPLAB - ICD 用户指南
第5章 MPLAB-ICD只要功能
5.1 介绍
本章介绍MPLAB-ICD的基本操作和MPLAB-IDE集成开发环境中在线调试器
In-Circuit Degugger的调试功能对于一般的调试功能特性请参考
MPLAB-IDE集成开发环境用户指南
5.2 重点
本章内容包括
MPLAB-ICD会话窗口
程序的运行
断点的设置
如何使用MPLAB-ICD
5.3 MPLAB-ICD会话窗口
假如你已经设置好MPLAB-IDE集成开发环境以便MPLAB-ICD工作于这个开发
环境下你就可以安装上MPLAB-ICD在线开发调试器进行编程和调试工作了
531 MPLAB-ICD会话窗口
当MPLAB-ICD被允许时MPLAB-ICD会话窗口总是打开的你可以最小化
或者移动该会话窗口但是却不要关掉该窗口假如关掉这一窗口的话将会同时
关掉调试器想再次开启调试器可以选择命令Options>Development Mode
选择MPLAB-ICD然后点击OK即可
图5-1MPLAB-ICD会话窗口
DS51184 2000 Microchip Technology Inc. 38
MPLAB - ICD 用户指南
表5-1 MPLAB-ICD会话窗口有以下设置项目
设置项目 选择
Status
状态
该状态栏显示被执行的MPLAB-ICD功能和状态
COM Port
串行口
为MPLAB-ICD选择串行通讯口
COM1COM2COM3或COM4
Baud Rate
波特率
为MPLAB-ICD通讯选择串行口波特率
Upload Options
上载选项
上载的数据量选择
最小数据量FSRWStatusPCLATH最快
只上载SFR快
最小数据量和监视窗口比较快
所有的寄存器慢
假如你使用单步和断点可以上载所选择的数据从
而提高速度第一种方案有大约一秒的延迟最后一
个方案有大约两秒的延迟数据将在一个单步一个
断点或一个停止动作的时候被上载
工作频率范围 在MPLAB-ICD工作频率范围选项里选择
32 kHz - 500 kHz
500 kHz - 2 MHz
2 MHz - 10 MHz
10 MHz - 20 MHz
重新连接 假如你改变了COM口或波特率点击Reconnect
则系统使用新参数重新连接建立通讯
注意为了存储设置在退出调试器或关闭项目时点击MPLAB-ICD会
话窗口右上角的按钮X即可
点击MPLAB-ICD会话窗口里的Options打开ICD选项会话窗口
532 ICD选择项窗口
想进入ICD选项会话窗口可以点击MPLAB-ICD会话窗口里的Options打
开ICD会话窗口可以 最小化或者关闭不会影响ICD的工作
ICD选项会话窗口(见图5-2)里包含所有关于MPLAB-ICD的编程和设置功能
这些功能设置包括诸如空白检查blank check烧写program读read
校验verify擦除erase等烧写器功能以及调试模式debug mode
DS51184 2000 Microchip Technology Inc. 39
MPLAB - ICD 用户指南
图5-2MPLIB-ICD选项会话窗口
533 配置位和器件选择
本节介绍的会话窗口允许你设置PIC16F87X系列处理器内部的各种配置位
configuration bits想要更改选择参数时点击箭头会看到选择项列表然
后从这些列表中选取正确的参数
DS51184 2000 Microchip Technology Inc. 40
MPLAB - ICD 用户指南
表5-2配置位和芯片类型选择
参数类别 参数选择
Device
处理器类型
这个窗口里显示的是你在开发模式会话窗
口里选择的处理器类型假如你想在这里更
改设置任何打开的MPLIB-IDE项目
都将关闭除了纯编辑模式所有程序存
储器配置位ID位将会被清除
Oscillator
振荡模式
RCLPXT 或者 HS模式
Watchdog Timer
看门狗定时器
选择ON允许或OFF禁止在
调试状态时通常要将其设置为OFF
Power Up Timer
上电延时定时器
选择ON允许或OFF禁止在
调试状态时通常要将其设置为OFF
Brown Out Detect
电源故障检测
选择ON允许或OFF禁止在
调试状态时必须要将其设置为OFF
Low Voltage Program
低电压烧写
选择低电压烧写功能或者使用RB3作为数
字I/O口使用MCLR引脚上的HV作为烧
写电压在调试状态时低电压ICSP烧写
必须禁止
Code Protect Data EE
EEPROM数据保护
选择ON允许或OFF禁止在
调试状态时必须要将其设置为OFF
Flash Memory Write
FLASH存储器烧写
选择是否允许由EECON控制烧写未保护的
程序存储器在调试状态时必须要将其禁
止
Code Protect
代码保护
选择要保护的范围在调试状态时必须要将
其禁止
534 ID位和检验和CHECKSUM信息
表5-3ID位及检验和的选择
参数类别 参数选择
Checksum
检验和
显示数据的检验和
ID Code
ID代码
显示 ID代码
Use Checksum as ID
使用检验和作为ID代码
要把检验和作为ID代码选择检查窗口
535 电压选择
表5-4电压选择
参数类别 参数选择
VDD
芯片主电源
显示当前VDD电压值MPLAB-ICD的
VPP 大约为12V从目标板的VDD经升压
泵charge pump升压得到
VPP
烧写电压
显示当前Vpp电压值
Update
检查当前电压参数
允许用户检查目标板上的VDD和VPP电压
数值
DS51184 2000 Microchip Technology Inc. 41
MPLAB - ICD 用户指南
536 编程选项
用户可以在某一参数下面的选择盒checkbox上选中会看到盒面上有一
个符号V或清除盒面变为空白该参数以便为烧写器执行烧写功能时选
中或重选存储区域例如假如你只想读程序存储器就选择Program Memory
然后将其他关于存储器类型的选择盒清除即可
表5-5烧写参数选择
参数类别 参数选择
Start Address,
End Address
起始地址
终了地址
为烧写读出检验设置程序存储器起
始和终了地址
注意如果擦除功能没有设定地址范围则
将会擦除所有PIC16F87X上的数据
默认的存储器地址范围是用户选择的
芯片上程序存储器的最大范围ICD占用一
些文件寄存器和程序存储空间详细信息请
参考1.5节的介绍
Configuration Bits
配置位
烧写配置位在ICD选择会话窗口的
上部用户可以选择配置位
ID Locations
ID位
烧写ID位在ICD选项会话窗口里的
Ids和Checksum区域设置ID位
EEPROM Data
EEPROM数据
对带EEPROM的芯片用EEPROM存
储器窗口里给定的数据对数据存储器编程
Erase All before Program
烧写前全擦除
选择此项用户在点击Program前
将所有程序存储器里的数据擦除
Enable Debug Mode
允许调试模式
选择此项将调试代码写入芯片里用户在
点击Program后将允许调试操作
假如你只想使用MPLAB-ICD对芯片
烧写则清除Enable Debug Mode选择
盒则监控代码不会下栽到程序存储器里
MPLAB-ICD也没有调试功能
537 功能按钮Function Buttons
点击功能按钮可以执行MPLAB-ICD仿真头上的PIC16F87X芯片所指定的功
能如果你在Program Options里选择了地址范围则指定的功能只适用于
所选的存储器地址范围和类型擦除功能例外
DS51184 2000 Microchip Technology Inc. 42
MPLAB - ICD 用户指南
表5-6功能按钮选择项
参数类别 参数选择
Blank
空白检查
检查芯片是否为空白
Read
读出
读出在Program Options里指定的存储器
区域内的程序存储器配置位ID位和
EEPROM数据假如芯片里有EEPROM
的话
Program
烧写
烧写在Program Options里指定的存储器
区域内的程序存储器配置位ID位和
EEPROM数据假如芯片里有EEPROM
的话假如调试模式Debug Mode
被允许的话还将把调试代码下载到程序存
储器里
Verify
校验
校验在Program Options里指定的存储器
区域内的程序存储器配置位ID位和
EEPROM数据假如芯片里有EEPROM
的话
Erase
擦除
擦除在PIC16F87X芯片内部的所有内容
包括存储器配置位ID位
Download Operatin System
下载监控程序
将MPLAB-ICD支持软件监控程序的升
级版写入到MPLAB-ICD的FLASH处理器
里
Self Test
自诊断
对MPLAB-ICD执行自诊断
Def.Addr
默认地址
针对芯片的默认起始地址和终了地址
允许调试模式的终了地址
PIC16F873/874:0xEDF
PIC16F876/877:0x1EFF
禁止调试模式的终了地址
PIC16F873:0xFFF
PIC16F876/877:0x1FFF
5.4 程序的执行
MPLAB-ICD可以以实时模式real-time mode和单步模式step mode
两种方式运行
当MPLAB-ICD仿真头或演示板/用户应用板上的PIC16F87X被MPLAB
指令为运行模式Run mode时称为实时执行
当处理器被中止运行halt后即可进入单步模式
541 实时运行
当MPLAB-ICD运行于实时模式时指令的执行方式就如同处理器里没有调
试器debugger一样PIC16F87X只有在遇到断点中止或者手动中止HALT
功能的时候才停止实时执行
按以下方法运行于实时模式点击Run工具栏或给出命令Debug > Run
> Run即可调试工具栏Debug toolbar里面提供了用以控制调试器的Run
整步运行Halt终止和Step单步执行按钮当处于运行模式的时候
屏幕上的寄存器值将不会刷新
DS51184 2000 Microchip Technology Inc. 43
MPLAB - ICD 用户指南
542 单步运行模式Step Mode Execution
当你用单步方式执行程序或给出命令Debug > Run > Step时系统处
于单步运行模式单步运行模式允许你每次执行一条指令代码观察程序走向
观察每次执行完指令后寄存器值的变化在会话窗口里设置要观察的寄存器
给出命令Debug > Run > Animate将自动单步执行程序直到用户终
止程序整个过程以近乎动画Animate的方式观察特殊功能寄存器Special
Function Register窗口或者监视窗口Watch windows里寄存器数值的变化
5.5 断点
断点是处理器在遇到某种情况而暂停运行时的状态MPLAB-ICD用以下方
法设置断点
地址匹配终止
用户终止
551 地址匹配终止
PIC16F87X的调试功能允许设置一个断点该断点可以位于程序存储器地址
范围内的任何地方当断点处的指令执行完以后处理器暂停运行例如一个断
点设置于005AH则指令执行完005AH处的指令后处理器暂停运行
设置断点的方法是给出命令Debug > Break Settings也可以在程序存
储器中选择源代码的地址来设置断点或者在源代码的窗口里选择断点所在行点
击鼠标右键弹出快捷菜单从中选择命令Break Point(s)即可
552 用户终止
点击按钮Halt或者选择命令Debug > Run > Halt.即可停止PIC16F87X
的运行
5.6 如何使用MPLAB-ICD
MPLAB-ICD既是一个烧写器又是一个在线调试器以下几节将讨论的就是
MPLAB-ICD调试和测试一个应用系统的基本功能
561 调入十六进制文件以便调试
给出命令File > Import > Import to Memory将十六进制代码文件调入
MPLAB-IDE以便调试参考1.5节内容了解ICD使用了目标处理器芯片里的哪
些文件寄存器和程序存储器资源用户不能使用这些资源所以你的代码受到相
应的限制
注意假如你需要在源代码中指定EEPROM数据请使用起始地址0x2100
一旦文件被载入imported你可以使用窗口菜单来打开以下的窗口
Program Memory 程序存储器
Special File Registers 特殊功能寄存器
File Registers 文件寄存器
EEPROM Memory EEPROM存储器
562 烧写目标处理器芯片
DS51184 2000 Microchip Technology Inc. 44
MPLAB - ICD 用户指南
在ICD会话窗口检查是否选择了适当的芯片型号振荡器类型和配置位设
置下一步检查程序选项Program Options是否合乎你的应用系统如果选
择调试模式Enabled Debug Mode则监控代码将会下载同时PIC16F87X芯
片将会允许调试操作
点击Program按钮烧写位于MPLAB-ICD仿真头或目标板演示板上的
PIC16F87X芯片烧写过程大约几分钟如果目标系统运行于低电压模式时这
个时间会更长一些
注意监控代码是一段位于程序存储器后部见1.5节的一段特殊代码使
用MPLAB-ICD的在线调试功能必须有这一段代码存在
接下来你可以关闭ICD选项ICD Options会话窗口可是不要关闭
MPLAB-ICD会话窗口关闭MPLAB-ICD会话窗口将禁止调试功能
563 调试功能
用户可以使用以下MPLAB-ICD的功能
Run -实时执行
Reset - 复位PIC16F87X (MCLR Reset)
Break Settings - 设置断点
Halt - 暂停程序运行
Step - 程序处于暂停程序运行后可以单步运行每一步执行一条指令
Animate - 自动单步运行程序处于暂停程序运行后选择Animate
每次执行一条指令
Change PC - 修改程序指针
564 修改功能
假如想修改被调试的程序可以简单地汇编一个新的十六进制文件并下载到
目标系统即可也可以在使用Program按钮下载代码到16F87x里之前用
Modify修改来编辑修改程序存储器的内容值得注意的是这样一来
通过你的源程序产生的代码将和写入PIC16F87X里的代码不匹配
使用命令Window > Modify来改变寄存器程序存储器字EEPROM
数据的值想观察内部数据寄存器可以使用命令Window > File Registers
文件寄存器或者Window > Special Function Registers特殊功能寄
存器
DS51184 2000 Microchip Technology Inc. 45
MPLAB - ICD 用户指南
第6章 MPLAB-ICD菜单选项
61 概述
本章详细介绍直接应用于ICD 调试器的MPLAB-IDE菜单选项
62 重点
本章内容包括
文件菜单
调试菜单
选项菜单
63 文件菜单
不使用MPLAB-IDE项目使用命令File > Import > Import to Memory
将十六进制文件调入MPLAB-ICD一旦代码被调入存储器用户可以从窗口菜单里选
择相应条目来查看程序存储器特殊功能寄存器文件寄存器EEPROM存储器里的
内容
64 调试菜单
以下调试功能可以用来控制MPLAB-ICD
641 Run运行
Run运行选项允许用户以实时或单步模式运行程序见5.6.节关于每一种
Run选项的介绍
642 Breakpoint Settings断点设置
MPLAB-ICD调试功能支持每次一个断点使用命令Debug > Breakpoint
Settings或者敲功能键打开断点设置会话窗口输入断点地址也可
以选择在要设置断点的源代码行上点击鼠标右键在弹出的快捷窗口里设置断点
见5.5节介绍
65 选项菜单
选择命令Options > Development Mode选择MPLAB-ICD并且指定将要
调试的处理器类型
DS51184 2000 Microchip Technology Inc. 46
MPLAB - ICD 用户指南
第7章 疑难问题解答
71 概述
本节介绍MPLAB-ICD的常见使用问题以及如何解决这些问题
72 重点
本章内容包括
常见问题
73 与MPLAB-ICD无法建立通讯联系
假如与MPLAB-ICD无法建立通讯联系,按以下步骤排除故障:
1. 检查演示板/目标应用板的电源是否连接好MPLAB-ICD的电源是由演示板
/目标应用板得到的而且如果你使用的是演示板的话检查电源适配器的参
数是否正确9V/0.75mA
2. 检查MPLAB-ICD仿真头是否正确地插入到演示板/目标应用板上例如
仿真头的插针是否正确地插入到了插座里仿真头的方向是否正确如果使
用的是演示板也要检查是否使用了正确的适配座套件里另外配置的两个
管脚适配插座
3. 检查PIC16F87X芯片是否正确地插入了MPLAB-ICD仿真头上例如所
有的管脚是否都完全可靠地插入到插座里面16F87X芯片的方向是否正确
4. 检查MPLAB-ICD和主计算机机之间的通讯连接-RS232串行口的电缆是否
插接牢靠
5. 检查MPLAB-ICD的设置会话窗口看是否选择了符合应用系统的PICmicro
芯片串行口和波特率
6. MPLAB-IDE试图和MPLAB-ICD建立通讯联系从而允许调试器工作假
如不能建立通讯就不能进行烧写和调试工作如果通讯失败用户会得到
一条错误提示信息出现这种现象时在找到问题所在后重新连接或者退
出
解决方案
确信电源正确连接MPLAB-ICD模块上的发光二级管全部点亮而不是
闪动假如这些发光二级管闪动可以将应用板上的电源先关闭再重
新上电以复位模块然后在MPLAB-ICD会话窗口里为MPLAB-ICD重
新选择COM口连接正确的话发光二级管将停止闪动
试着将MPLAB-ICD模块和另外一个COM口连接假如你的计算机上的
串行口是25针插座的话你需要一个25针到9针的串行口转换适配器
将串行口设置为调试器专用检查串行口资源确信其正常工作而且和
其他的设备没有冲突这可能发生在串行口被不恰当地设置为调制-解
调器或其他串行设备共用的情况下阅读WINDOWS手册或参考资
料可以试一试移走重新配置或禁止相冲突的设备当然你应该对这
些操作非常熟悉的情况下才这样做见以下针对WINDOWS31和
WINDOWS95环境下排除故障的步骤
DS51184 2000 Microchip Technology Inc. 47
MPLAB - ICD 用户指南
一些系统错误是由于驱动程序或者硬件不兼容造成的在WINDOWS95
环境下按以下步骤排除故障
假如你的机器上有COM口可以MPLAB-IDE不允许你选择该串行口
选项变为灰色这时候你可能需要编辑MPLAB.ini文件手动指定
串行口典型情况是你机器上的串行口编号并连续比如你的计算
机上有COM1COM2COM4但没有COM3口这种情况你可以
打开MPLAB.ini文件使用WINDOWS里的FIND功能查找定位该
文件编辑其中名为[MPLAB-ICD]段落里的设置CommPort=1
使其中的选择项设为你想设置的串行口这个问题在于WINDOWS通
过16位驱动程序不正确地给系统报告了当前可用通讯口的信息
你必须使用与你正在使用的MICROSOFT WINDOWS操作系统版本相
匹配的通讯驱动程序如果你使用WINDOWS310在目录
\WINDOWS\SYSTEM里可以找到驱动程序COMM.DRV该文
件的创建时间必须是3:10a该时间指示出操作规程的版本号如果
你使用的操作系统是Windows for Workgroups按上面的方法寻找同
样文件名的驱动程序只不过该文件的创建时间必须是3:11a如果
这个文件不符合要求可能需要重新安装WINDOWS或以其他形式安
装驱动程序上述问题在WINDOWS95操作系统环境下一般不会发生
确信你使用的不是第三方通讯驱动程序打开SYSTEM.INI文件
寻找[OPTIONS]段落你可以看到COMM.DRV=COMM.DRV
假如你看到的与此不同的话你的机器正在使用另外的驱动程序
WINDOWS31
串行鼠标会占用一个COM口外置MODEM也会占用一个COM
口内置MODEM有其自己的串行口所以如果你的机器上有第二个
串行口请设置好不要与MODEM和鼠标产生冲突
WINDOWS95
WINDOWS95环境里需要特别注意串行口的设置假如驱动程序和
硬件不兼容请将Flow Control流控制改为硬件方式和/或
关闭串行口的FIFO先入先出缓冲方式WINDOWS95环境下的
Control Panel.控制面板里点击System系统图标然后点
击Device Manager设备管理标签再点击Port Settings端
口设置如果需要的话还可以点击下面的+符号以弹出通讯口列
表双击MPLAB-ICD所使用的I/O口在这里你可以设置 流控制 为
硬件方式要想关闭FIFO可以点击Advanced高级按钮
禁止FIFO再点击OK即可
假如通讯依然无法建立请联系MICROCHIP用户支持部门的帮助引
言中有介绍
在复位单步暂停或运行操作时MPLAB-ICD模块给出一条通讯错误信息
当使用MPLAB-ICD演示板时确信振荡器选择跳线被设置为RC振荡方式或振
荡器方式而且这一设置被正确地写入芯片里如果使用振荡器确信板上有振荡
DS51184 2000 Microchip Technology Inc. 48
MPLAB - ICD 用户指南
源假如没有设置好就会导致虽然芯片编程OK调试模式OK可是在复
位单步暂停或运行操作时MPLAB-ICD模块给出一条通讯错误信息
调试模式无法工作
1关闭MPLAB-ICD会话窗口将禁止MPLAB-ICD假如你已经关闭MPLAB-ICD会话
窗口必须重新打开它方法是选择命令Options> Development Mode
选中MPLAB-ICD再点击OK按钮
2在调试模式工作前必须将调试代码写入到芯片里面从ICD选项会话窗口里选择
Enable Debug Mode将调试代码写入到芯片里面
当单步执行时,程序执行太慢
检查MPLAB-ICD会话窗口里的上载upload选项如果你上载的数据量很大
例如所有的存储器那么在两步之间可能有五秒钟的延时为减少延时在选项里
把上载数据量减小一些
当单步执行时,程序执行太快或者一些寄存器没有更新
检查MPLAB-ICD会话窗口里的上载upload选项如果你上载的数据量很小
那么在两步之间可能的延时比把所有的存储器上载所花的时间要少如果你预计没有
上载所有的数据检查你是否上载了正确的寄存器类型
当暂停单步执行或断点停止时MPLAB-IDE集成开发环境看上去好象锁死了
检查MPLAB-ICD会话窗口里的上载upload选项如果你上载的数据量很大
例如所有的存储器那么在两步之间可能有五秒钟的延时为减少延时在选项里
把上载数据量减小一些
I/O管脚RB3, RB6 或RB7功能不正常
这些管脚已经被保留给烧写/调试器使用详细情况见1.5节
附录A MPLAB-ICD硬件结构
DS51184 2000 Microchip Technology Inc. 49
MPLAB - ICD 用户指南
DS51184 2000 Microchip Technology Inc. 50
A1 介绍
MPLAB-ICD硬件系统包括MPLAB-ICD模块仿真头演示板
A2 MPLAB-ICD模块和仿真头
MPLAB-ICD模块和仿真头用来对演示板或目标应用板进行在线调试
ICD功能
A.2.1 MPLAB-ICD是由目标应用板提供的电压3.0V到5.5VICD在不
同工作模式下的电压和相应的电流见下表
工作模式 5V 3V
调试 35 mA (最大) 20 mA (最大)
运行 40 mA 25 mA
校验 60 mA 50 mA
烧写 60 mA 50 mA
A.2.2 印刷电路板丝印层和电原理图
本节介绍包括MPLAB-ICD模块及仿真头的印刷电路板丝印层和电原
理图
图A-1MPLAB-ICD模块印刷电路板丝印层
图A-2MPLAB-ICD模块电原理图第一部分
MPLAB - ICD 用户指南
图A-3MPLAB-ICD模块电原理图第二部分
184 2000
图A-4MPLAB-ICD模块电原理图第三部分
表面丝印层
底面丝印层
从印刷电路板上部往下看插头接线情况
Microchip Technology Inc. 51 DS51
MPLAB - ICD 用户指南
注意未来新产品仿真头的结构可能
会有所不同但在功能上是相似的
图A-5MPLAB-ICD仿真头电路板丝印层
DS51184 2000 Microchip Technology Inc. 52
MPLAB - ICD 用户指南
图A-6MPLAB-ICD仿真头电原理图
A3 MPLAB-ICD演示板
DS51184 2000 Microchip Technology Inc. 53
MPLAB - ICD 用户指南
MPLAB-ICD演示板是一个支持PIC16F87X微控制器的简单演示电路板
该电路板上插入一片预先编程的PIC16F87X芯片后可以独立工作也可以配
合MPLAB-ICD模块和仿真头一起工作提供了一个范例程序以供演示设备的
特性尽管板上提供了40管脚和28管脚的插座当同时只能有一只处理器工
作
A.3.1 处理器插座
可用的插座有
40管脚插座适应PIC16F871/874/877
28管脚插座适应PIC16F870/872/873/876
套件里还另外提供了单独的40管脚和28管脚的IC插座把你选
择的插座插入到演示板上然后把MPLAB-ICD仿真头插入到插座里如
果没有这个插座仿真头将会同时插入到演示板上的两个座里系
统将不能工作也可以将烧写好的芯片直接插入到演示板里
A.3.2 显示
八只发光二级管连接到每个处理器的PORTCPORTC的管脚输
出高电平时点亮发光二级管
A.3.3 DIP拨码开关
封装形式见SW3所示的八位DIP拨码开关当其所有的开关都位
于ON时则所有的发光二级管都接到PORTC上的相应口线上
A.3.4 电源供应
MPLAB-ICD模块的供电来自应用板电压范围3.0V 到5.5V电
流供应为0.75mA或更大假如你有PICTART PLUS 烧写器则可
以用它的电源适配器为演示板直接供电
A.3.5 ICD的连接
紧接着电源插座下面的插座是将ICD模块和演示板直接连接的电
缆插座
A.3.6 RS-232串行口
在演示板上安装一片RS-232电平转换接口芯片通过一个DB9
插座和主计算机的串行口连接该串行口被配置为DCE(一种规范数
据通讯设备)方式和计算机之间用一条通用RS-232接口电缆连接和
NULL MODEM电缆不同电路由用户配置安装
U4-MAX232A或兼容接口芯片
R14-R19 - 3301/8W 电阻
C7-C11 - 0.1 F电容
A.3.7 按钮开关
按钮开关的功能如下
MCLR用以复位系统处理器
连接到RB0低电平有效按下时输出低电平
A.3.8 振荡类型选择
你可以使用板上的RC振荡电路或者在4芯插座里插入一只振荡
器确信正确设置了跳线JP1
振荡器插座里可以插入时钟振荡器 - 频率范围从32KHZ到
DS51184 2000 Microchip Technology Inc. 54
MPLAB - ICD 用户指南
20MHZ之间
RC振荡电路 - 时钟由一个4.7K 电阻和一只 20 pF电容器
组成频率范围3.5 Mhz 到 6 Mhz之间取决于工作电压和
环境的温度
A.3.9 模拟量输入
一个1K欧母的电位器串联一只470欧母的固定电阻保护电阻
其管脚之一设置为输出连接到MCU的口线RA0/AN0对于16F87X
其模拟输入口的电压可以从Vdd到电源地GND之间变化
A.3.10 电路板丝印层和电原理图
本节包含MPLAB-ICD的电路板丝印层和电原理图
可选择安装的元件
图A-7MPLAB-ICD演示板电路板丝印层
DS51184 2000 Microchip Technology Inc. 55
MPLAB - ICD 用户指南
图A-8MPLAB-ICD 演示板电原理图第一部分
DS51184 2000 Microchip Technology Inc. 56
MPLAB - ICD 用户指南
图A-9MPLAB-ICD 演示板电原理图第二部分
DS51184 2000 Microchip Technology Inc. 57
MPLAB - ICD 用户指南
图A -10MPLAB-ICD演示板电原理图第三部分
DS51184 2000 Microchip Technology Inc. 58
MPLAB - ICD 用户指南
A-11MPLAB-ICD演示板电原理图第四部分
DS51184 2000 Microchip Technology Inc. 59
·下一篇:企业布线网络部白皮书企业布线网络部白皮书企业布线网...

文件类型:PDF/Adobe Acrobat 文件大小:字节