用16F87X及在线调试器MPLAB_ICD调试PIC系列单片机
单片机术语

Absolute Section(绝对段)具备不可被链接器改变的固定(绝对)地址的段。
Access RAM (存取RAM,仅限PIC18CXXX系列器件)这是数据存储器RAM中的一个区间,无论目前所选的存储体为何均可对其进行访问。
有了它,即可通过指令访问特殊功能寄存器而无须改变所选存储体。
存取RAM还包括一些通用寄存器(GPR)。
它对于在上下文切换期间(如中断期间)保存所需变量很有用处。
当用于引用PIC18CXXX器件时,存取RAM指无论存储体选择位(BSR)设置值为何,均允许存取的特殊通用寄存器。
Acquisition Time (TACQ,采集时间)该时间与模拟数字(A/D)转换器有关。
它是PIC18CXXX A/D上的保持电容充电到模拟输入电压电平时的时间。
’当GO位置1时,模拟输入与保持电容断开,A/D转换开始。
A/D指的是模拟数字转换器。
见“Analog-to-Digital (A/D,模拟数字转换)”的说明。
ALU算术逻辑单元。
器件上负责数学(加、减…)、逻辑(与、或…)和移位运算的逻辑单元。
Analog(模拟)指通过将不同频率或幅值的信号叠加到给定频率的载波上进行电子传输的过程。
Analog-to-Digital (A/D,模拟数字转换)将一个模拟输入电压转换到与之成正比的数字值的过程。
汇编语言将二进制机器码描述成可读形式的符号语言。
AUSART可寻址通用同步异步收发器。
该模块可作为一个全双工异步通讯口运行,也可作为一个半双工同步通讯口运行。
当运行在异步模式下时,USART可与一台PC的串行端口连接。
Alphanumeric(字母数字符)字母数字符包括字母和0到9的数字。
Application(应用)用户开发的一整套软硬件结合体,通常是一个由PICmicro®单片机控制的产品。
Assemble(汇编)汇编器所做的事。
见assembler(汇编器)。
Assembler(汇编器)一种将用户的汇编源代码(.asm)译成机器码的语言工具。
PIC16F87X单片机中断系统应用须关注的问题

PIC16F87X单片机中断系统应用须关注的问题摘要:美国微芯公司研制的PIC系列单片机,其硬件结构和指令系统采用了与众不同的设计手法。
在架构上和概念上对传统单片机进行了一些突破性的变革,但也给这类单片机的应用带来了一些特殊问题。
本文针对PIC16F87X系列单片机中断的特点,及其在应用过程中应该注意的几个问题进行必要的说明。
内容包括中断源、中断逻辑、中断相关的寄存器、中断的延时、中断的现场保护以及注意事项等。
广告插播信息维库最新热卖芯片: MIC38HC44BM 24LC64-I/SN CD4021BE PIC18F252-I/SO AD8606AR M62431FP TL16C554AFNR S3C4510B01-QER0 L7815 MOCD207目前在世界一些着名的单片机产品系列中,PIC16F87X系列单片机是芯片内部包含有外围设备模块数量最多的单片机品种之一。
PIC16F874和PIC16F877单片机的芯片内部集成了15个外围设备模块;PIC16F873和PIC16F876单片机的芯片内部集成了12个外围设备模块。
在最近推出的该系列的新型号中, PIC16F870单片机的芯片内部集成了10个外围设备模块;PIC16F871单片机的芯片内部集成了13个外围设备模块;PIC16F872单片机的芯片内部也集成了10个外围设备模块(比PIC16F870多了1个USART模块,少了1个SSP模块)。
这些外围设备模块在启用时以及在工作过程中,都或多或少地需要CPU参与控制、协调或交换数据等各种服务工作。
由于CPU的运行速度非常高,而各个外围设备模块的工作速度却非常低,况且这些外围设备模块也不是频繁地要求CPU对其服务。
因此,通常采取一种让众多外围设备模块共享1个CPU,并且能够及时得到CPU服务的调度方法——中断。
一、 PIC16F87X的中断源PIC系列单片机是当今世界上很有影响力的精简指令集(RISC)微控制器,具有丰富的中断功能。
MPLABicd2调试故障说明

MPLAB ICD2 调试问题的处理1、ICD2调试时出现“ICD0083: Debug: Unable to enter debug mode. Please double click this message for more information.”答:通常这说明ICD2不能和调试执行程序通讯,这有可能是目标时钟或电源问题使得ICD2不能和调试执行程序通讯,保证晶振的管脚和OSCKI/OSCKO充分接近,4MHz以上晶振推荐使用HS模式,如果是外部32K低频晶振,重新“connect”一下可执行调试指令,也有可能内部或外部晶振使能了PLL功能而进不了Debug模式的,关掉PLL即可;再还有可能是配置位设置不当引起的,查看Config>Configuration Bits,确保看门狗被禁止,代码保护、掉电检测等被关闭。
也有可能是复位引脚接了电容或二极管之类引起的。
2、连接ICD2时显示“ICD0021: Unable to connect with MPLAB ICD 2”答:请检查一下ICD2与电脑连接的通讯口是否设置正确(USB or COM)。
3、连接ICD2时显示“ICD0286: Unable to communicate with ICD。
ICD0082: Failed MPLAB ICD 2 operation”答:这可能是操作系统有误,此时手动下载操作系统即可。
4、连接ICD2时显示“ICD0019: Communications: Failed to open port: (Windows::GetLastError() = 0x2, '系统找不到指定的文件。
') ICD0021: Unable to connect with MCU.”答:通常是ICD2驱动找不到,需重装。
也可能是由于PC的USB口供电不足导致驱动无法正确加载。
5、ICD2自检不通过提示“... Failed Self Test. See ICD2 Settings (status tab) for details”答:ICD2自检主要是对Target Vdd、Target Vpp、MCLR GND、MCLR Vdd、MCLR Vpp 五个管脚电压进行检测,任何的一项不正常都会通不过。
第2章 PIC16F87X系列单片机

2.2.1 内部组成
• PIC16F87X系列单片机的内部结构框图如图所示。
整个单片机集成了算术逻辑单元ALU,FLASH程序 存储器,14位指令寄存器,13指针寄存器和8级 13位的堆栈,文件寄存器RAM和特殊功能寄存器, 状态寄存器,定时器,多通道10位A/D转换器, 数据EEPROM,同步串行通信端口,通用异步串 行通信端口,捕捉器/比较器/PWM,多功能输入/ 输出(I/O)端口,上电定时器,振荡器起振定时 器,看门狗定时器,上电和掉电复位电路,时序 产生电路,从属并行端口,低电压编程电路等。
ALU和工作寄存器W
• PIC16F87X芯片内核心是一个ALU和工作寄存器W。ALU控制
工作寄存器W的内容(数据)和任何一个文件寄存器中的内 容(数据)进行算术运算和逻辑(布尔)运算,ALU的字为8 位,可以用其进行加、减、移位和逻辑操作。除非特别指出, 一般的操作都是以2的补码进行。在有两个操作数的指令中, 典型情况是其中一个操作数放在W寄存器中,另一个操作数 放在文件寄存器或是一个立即数。
• 图 2.6 PIC16F873/873A/874/874A
图2.7 PIC16F877/877A/876/876A
2.4.2 数据存储器
• 数据存储器分为四个存储体,存储体中包含通用寄存器和
专用寄存器(SFR),体的选择采用状态寄存器 (STATUS)的位6(RP1)和位5(RP0)。
• 每个存储体最多可包含128字节,而每个存储体中专用寄
• 根据所执行的指令,ALU会影响状态寄存器STATUS中十进制
数字进位标志(即半进位标志) 、二进制借位标志C和全零标志 Z。当ALU运行后的结果为0时,标志位Z置1,否则为0;当进 行加法运算,发生最高为进位,标志位C置1,否则为0;当进 行减法运算,最高位发生借位,标志位C清零,否则为1;当 进行加法运算D3向D4进位时,标志位DC置1,否则为0;当进 行减法运算D3向D4借位,标志位DC清零,否则置1。
PIC16F877的应用_A_D转换器

智能电子版电子报/2002年/08月/11日/第012版/PIC16F877的应用 A/D转换器成都立本PIC单片机在线调试器M PLAB-ICD专题讲座之六电子报单片机公共实验室T el:(028)86132792PIC16F877片内有8路10位A/D转换器,引脚~!为AN0~AN3、∀~#为AN4 ~AN7。
MPLAB-ICD的实验板上16F877的RA0口接了一只供有电压的10k 电位器,在D口(RD0~RD7)接了8只LED,如附图所示。
笔者用16F877A/D转换通道其中一路作A/D 转换,以说明A/D转换编写程序的方法和在线调试及编程。
在附图中,笔者把R6的可变输出(电压模拟量)端接到RA0/AN0作为模拟量输入;用D 口(RD0~RD7)的8只LED显示A/D转换的结果(按二进制显示)。
一、建立A/D转换源程序的要点:编写10位的一路A/D转换程序看似简单,但对初学者却有一定难度,因为编写A/D转换程序时,要熟练使用PIC16F877内部的多个特殊功能寄存器。
附表列出了与A/D转换有关的部分特殊功能寄存器。
在A/D转换器中未用到的寄存器位以空白表示。
1.A/D引脚控制寄存器ADCON1:AD CON1的bit0~bit3(PCFG0~PCFG3)为A/D 转换功能选择位,若为1110,则表示AN0 (RA0)通道是模拟量输入,其余通道为数字I/ O(其他编码功能,请参见书籍介绍)。
bit7 (ADFM)为A/D结果格式选择位,1表示结果右移,0表示结果左移。
2.中断标志寄存器PIR1:PIR1的bit6 (ADIF)为A/D中断标志让,该位为1表示模数转换已完成,为0表示转换未完成。
3.A/D操作控制寄存器ADCON0:AD CON0的bit0(ADON)为A/D转换允许位,该位为1打开A/D转换器,为0关闭A/D转换器;bit2(GO/DONE)为A/D转换状态位,该位为1启动A/D转换,为0表示A/D转换已完成(A/D转换完成后该位自动清零);bit3~ bit5为A/D通道选择位,其值对应于通道号, 000为0通道;bit6~Bit7(ADCS0、ADCS1)为A/D转换时钟选择,00=f_(OSC)/2,01=f_ (OSC)/8,10=f_(OSC)/32,11=f_(RC)(RC振荡器)。
单片机术语

Absolute Section(绝对段)具备不可被链接器改变的固定(绝对)地址的段。
Access RAM (存取RAM,仅限PIC18CXXX系列器件)这是数据存储器RAM中的一个区间,无论目前所选的存储体为何均可对其进行访问。
有了它,即可通过指令访问特殊功能寄存器而无须改变所选存储体。
存取RAM还包括一些通用寄存器(GPR)。
它对于在上下文切换期间(如中断期间)保存所需变量很有用处。
当用于引用PIC18CXXX器件时,存取RAM指无论存储体选择位(BSR)设置值为何,均允许存取的特殊通用寄存器。
Acquisition Time (TACQ,采集时间)该时间与模拟数字(A/D)转换器有关。
它是PIC18CXXX A/D上的保持电容充电到模拟输入电压电平时的时间。
’当GO位置1时,模拟输入与保持电容断开,A/D转换开始。
A/D指的是模拟数字转换器。
见“Analog-to-Digital (A/D,模拟数字转换)”的说明。
ALU算术逻辑单元。
器件上负责数学(加、减…)、逻辑(与、或…)和移位运算的逻辑单元。
Analog(模拟)指通过将不同频率或幅值的信号叠加到给定频率的载波上进行电子传输的过程。
Analog-to-Digital (A/D,模拟数字转换)将一个模拟输入电压转换到与之成正比的数字值的过程。
汇编语言将二进制机器码描述成可读形式的符号语言。
AUSART可寻址通用同步异步收发器。
该模块可作为一个全双工异步通讯口运行,也可作为一个半双工同步通讯口运行。
当运行在异步模式下时,USART可与一台PC的串行端口连接。
Alphanumeric(字母数字符)字母数字符包括字母和0到9的数字。
Application(应用)用户开发的一整套软硬件结合体,通常是一个由PICmicro®单片机控制的产品。
Assemble(汇编)汇编器所做的事。
见assembler(汇编器)。
Assembler(汇编器)一种将用户的汇编源代码(.asm)译成机器码的语言工具。
[指南]MPLAB-ICD使用说明书
目录第一部分MCD1(MPLAB-ICD) (3)第一章 MPLAB-ICD概述 (3)1.1 什么是MPLAB-ICD (3)1.2 MPLAB-ICD能帮你做什么? (3)1.3 MPLAB-ICD使用的资源 (4)1.4 MPLAB-ICD的各组成部件 (4)1.4.1 MPLAB-ICD主机 (4)1.4.2 MPLAB-ICD仿真头 (5)1.4.3 MPLAB-IDE集成开发软件包 (5)1.4.4 ICDDEMO 教学实验板 (5)1.5 MPLAB-IDE集成开发环境 (6)第二章 MPLAB-ICD的安装和使用 (7)2.1 MPLAB-ICD对计算机主机的要求 (7)2.2 安装硬件 (7)2.3 安装软件 (9)2.4 使用MPLAB-ICD (9)2.4.1 建立一个16进制调试文件 (9)2.4.2 设置MPLAB-ICD和MPLAB (15)2.4.3 对PIC16F877进行编程 (19)2.4.4 运行及调试 (20)第二部分 MCD1DEMO教学实验板 (22)前言MCD1DEMO教学实验板功能概述 (22)第三章用实验板作一个开发实验 (23)附录 MCD-DEMO线路图MCD-DEMO元件位置图(各跳线、拔码开关编号) MCD-DEMO跳线、拔码开关操作说明第一部分MCD1(MPLAB-ICD)第一章 MPLAB-ICD 概述1.1. 什么是MPLAB-ICDMPLAB-ICD是针对MICROCHIP公司的PIC16F87X系列MCU的廉价开发工具。
MPLAB-ICD既是一个在线调试器,又是一个编程器。
它工作于MPLAB-IDE集成开发环境下,利用了MICROCHIP公司的在线串行编程技术(In-Circuit Serial Programming™),在所仿真的MCU(PIC16F87X)中嵌入监控程序来实现实时仿真。
将其仿真头直接连接到应用系统的MCU 插座中,就如同一片PIC16F87X一样运行用户的应用程序。
非专业条件下的CD机调试
非专业条件下的CD机调试陈和迈【期刊名称】《电子世界》【年(卷),期】1997(000)011【摘要】CD机在经过维修、改装后,或在较差环境下使用均可能出现整机性能下降的现象。
经常出现的现象有:循迹时间长甚至不读数,不能读质量差的盘片,激光头噪声大,伺服不灵甚至无效等等。
这时不少用户都认为是机器出了故障,而家电维修人员亦大多感到无从下手。
其实,出现以上现象的机器电路是好的,只是没有“调整”而已。
“调整”成功与否在很大程度上决定CD机整机的性能参数。
因此,精心调试是CD机检修过程中很重要的一个环节。
目前市场上的CD机品牌繁多,但按系统分则只有两类。
一类是采用三光束机心的CD机,市场占有量很大,调试的参数有5~6个。
其伺服机构的可拆装性强,检修方便。
另一类是采用单光束机心的CD机,调整参数有1~2个,其结构复杂,市场占有量很小。
本文以三光束机心为例,结合索尼系列的芯片介绍CD机的调试。
【总页数】1页(P8)【作者】陈和迈【作者单位】无【正文语种】中文【中图分类】TN912.231【相关文献】1.低水温、低有机负荷条件下CAST工艺城市污水处理厂的启动调试及活性污泥培养 [J], 李亚峰;王文光;房安富;王旭;贾新军2.非联合试车条件下压力机相位调试方法 [J], 张全红3.LCD玻璃划线机调试中的误差分析 [J], 朱跃红;高创宽;郝春娟;肖方生4.用16F87X及在线调试器MPLAB-ICD调试PIC系列单片机 [J], 张明峰5.CAST工艺在低水温低有机负荷条件下的启动调试 [J], 尹宏生;李宁;闫旭因版权原因,仅展示原文概要,查看原文内容请购买。
一起来制作简易ICD2调试器-PIC单片机
一起来制作简易ICD2调试器与初学者的交流中,经常有人问怎么学单片机,怎么入门。
搜遍了网上所有资料,几乎所有回答都是:先看书,然后动手做实验。
提到实验就少不了工具,如实验板、编程器、调试器(仿真器)。
由于调试器配合PC机可以模拟程序的运行,监控程序的运行状态,并实时地把运行结果显示给使用者参考,以方便查找程序中的错误等等。
由此可见调试器对于开发工程师和初学者的作用。
但市场上成熟的调试器价格都比较昂贵,少则几百,多则数千元。
本文向读者推出的EZ-ICD2调试器,正是这样一种产品。
经笔者测试使用,证明该产品电路简单、工作稳定、成本低廉、容易制作。
支持大部分常用PIC单片机的调试和烧写。
特别适合初学者DIY使用。
为此笔者还特意组织了这篇文章,希望能对大家制作有些帮助。
调试器特点该调试器具有如下特点:1、使用串口与PC连接,虽然速度受到一定的限制,但是可以保证通讯稳定。
2、使用Mplab ide 6.x以上版本集成开发环境,软件可以免费从网上获取。
3、支持PIC16F87x等常用芯片的仿真,和大部分PIC芯片的擦除、烧写和读取。
4、电路简单,成本低廉,使用材料均能在各地方电子市场找到。
特别适合初学者DIY使用。
5、工作电源从用户开发板获取,使用倍压电路产生烧写高压。
6、调试器体积小巧,携带方便。
调试器的制作步骤该调试器的原理图如图1图1、原理图制作好后的调试器如图2图2,调试器效果图第一步,焊接所有电阻元件、二极管和稳压管。
电阻元件均不用考虑极性,如果不能确定电阻值,最好先使用万用表测量。
特别注意电阻R3、R4、R5、R6、R7、R8的值不能跟标准值相差太远;二极管和稳压管均为有方向的元件。
焊接时要特别注意。
IN5817一般为黑色,有白色圆圈的一端为负端;IN4148一般为红色,有黑色圆圈的一端为负端;8.2V和4.7V稳压管一般也是红色,有黑色圆圈的一端为负端。
在PCB上有短杠端为负端。
元件极性不确定时,请先用万用表等确认。
北京理工大学PIC单片机实验一PIC单片机集成开发环境MPLAB IDE的使用
实验一 PIC单片机集成开发环境MPLAB IDE的使用一、实验目的:1、学习使用PIC单片机集成开发环境MPLAB IDE2、学习使用在线调试和编程器MPLAB ICD2二、实验方法:1、通过运行例程来初步认识单片机的开发环境;2、利用在线调试和编程器MPLAB ICD2在集成开发环境MPLAB IDE中建立工程文件夹以及程序文本的编辑、编译连接、下载和调试,实现一组由PIC18F452控制的LED灯的点亮过程。
三.程序设计内容:1、通过改变例程1,训练对PIC18F452的编程能力。
2、参照电路板图,将例程1中的输出口作适当改变,使计数结果能够用电路板上的LED 显示出来。
四、实验步骤:1、编辑源文件并将源文件存于mcc18目录下建立的文件夹中#include <p18f452.h> /*引用p18f452的库函数*/#pragma config WDT = OFF/*关闭看门狗(watchdog timer)*/#pragma config OSC = HS/*振荡器工作模式为高速晶体/谐振器*/#pragma config LVP = OFF/*关闭低电压ICSP编程*/int counter;void main (void){counter = 1;TRISB = 0; /* configure PORTB for output */while (counter <= 15){PORTB = counter; /* display value of 'counter'on the LEDs */counter++;}}2、选择目标处理器Device:PIC18F4523、建立项目(项目名与源文件同名)4、选择项目设置选择语言工具套件:MPLAB c18c Toolsuite (mcc18.exe), 选择MPLAB C18 安装目录中头文件和函数库子目录的路径。