2011-PIC单片机原理及应用.ppt_第1页
2011-PIC单片机原理及应用.ppt_第2页
2011-PIC单片机原理及应用.ppt_第3页
2011-PIC单片机原理及应用.ppt_第4页
2011-PIC单片机原理及应用.ppt_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PIC单片机原理及应用 1 主讲 许辉邮箱 xuh PIC单片机原理及应用 实验 内容安排 全校任选课 PIC单片机原理介绍 10学时 工具软件及实验 4学时 系统基本功能设计及实验 12学时 综合设计实验 4学时 2 西安电子科技大学国家电工电子教学基地西电 MICROCHIP公司联合实验室 E楼II 406 PIC单片机原理及应用 第1章概述 3 1 1PIC单片机简介 什么是单片机 单片机 MCU 是一种集成在电路芯片 是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU 随机存储器RAM 只读存储器ROM 多种I O口和中断系统 定时器 计时器等功能 可能还包括显示驱动电路 脉宽调制电路 模拟多路转换器 A D转换器等电路 集成到一块硅片上构成的一个小而完善的计算机系统 PIC单片机是由MicrochipTechnologyInc 美国微芯科技公司 推出的系列产品 4 1 2PIC单片机产品系列 PICmicro 单片机Microchip的8位和16位PIC单片机系列具有高性能 低成本和封装体积小等特点 是业界性价比最佳的产品 据业界权威研究机构Dataquest资料 全球8位单片机 MCU 付运量排名第一 dsPIC 数字信号控制器dsPIC 数字信号控制器 DSC 系列具备一个完全实现的数字信号处理器 DSP 引擎 该系列dsPIC30F和dsPIC33F16位闪存DSC具有业界最高的性能 适用于电机控制 功率转换 传感器和通用应用等 5 1 2PIC单片机产品系列 6 1 3主要应用领域 7 7 办公设备 工业控制 通信系统 电子玩具 金融电子 仪器仪表 汽车工业 家用电器 舰船设备 航空航天 1 4常见单片机比较 51 通用性 用的最多 主要是内核是公布的 很多情况下 各个厂家做了自己特有的外设扩展 比如aduc51的ad da 高频发射模块 cpress的usb功能等等 PIC 工业稳定性 适用于用量大 档次低 价格敏感的产品 在办公自动化设备 消费电子产品 电讯通信 智能仪器仪表 汽车电子 金融电子 工业控制不同领域都有广泛的应用 AVR 通用性 使用也很广泛 具有高速处理能力 在一个时钟周期内可执行复杂的指令 MSP430 低功耗应用 经常被电池 仪表应用设计师所选用 8 1 5PIC单片机特点 9 1 5PIC单片机特点 2 RISC技术 指令集 汇编指令 RISC技术 RedudedInstructionSetComputer 精简指令集计算机 改善结构 更加合理的提高运算速度 除判断转移指令 其他指令都是单周期指令 寻址方式简单 指令代码压缩率高 10 1K字节的存储器空间 PIC系列单片机能够存放1024条指令 MCS 51系列单片机大约只能存放600条指令 1 6PIC单片机特点 3 内嵌DSP引擎 dsPIC 数字信号控制器 DSC 系列内嵌DSP引擎 具备实现数字信号处理器的基本功能 如FFT FIR滤波等 4 CMOS工艺特性功耗低电压范围宽工作温度范围宽 40 125摄氏度5 驱动能力强每个输出引脚可以驱动多达20 25mA的负载一般端口总驱动能力约60 70mA 11 1 5PIC单片机特点 6 接口丰富 能实现各种功能I O口具有20mA的驱动能力8路 10位的AD转换I2C SPI USART USB CAN接口WDT 看门狗 CCP 脉宽 捕捉 比较 内置EEPROM3路定时器多种中断源支持休眠的低功耗模式流式的并行接口内置LCD控制器芯片加密 12 1 6PIC单片机命名规则 1 8位PIC单片机编号包括下列5个部分 2 器件类型和代号关系 13 PICXXXXXXX XXX XXXXX器件类型振荡频率温度封装存储器编程方式 1 6PIC单片机命名规则 3 振荡方式 频率和代号关系 4 温度与代号关系 14 1 6PIC单片机命名规则 5 程序存储器编程方式EPROM 可反复擦写 紫外线照射20分钟以上除去片上信息E2PROM或FLASH 可在线进行程序的反复擦写OTP 一次编程方式 一个产品周期后降低成本用 专用设备完成烧写 适合小批量非定型产品QTP 快速批量编程SQTP 连续批量编程ICSP 电路内连续编程掩模ROM 一个产品周期后降低成本用 适合大批量定型产品 必须请制造商借助专用设备完成 15 1 6PIC单片机命名规则 dsPIC30F产品器件编号规则 16 1 7单片机开发流程 17 PIC单片机原理及应用 第2章结构 18 2 1内部结构 CPU内核是器件运行所必需的基本部分 CPU数据存储器程序存储器DSP引擎中断 19 系统集成可以降低系统成本提高系统可靠性提高设计灵活性 振荡器复位看门狗定时器和低功耗模式闪存和EEPROM编程器件配置低电压检测 外设功能是允许器件与外界交换信息 1 I O端口2 定时器3 输入捕捉模块4 输出比较模块5 正交编码器接口 QEI 6 10位AD转换器7 12位AD转换器8 UART模块9 SPITM模块10 I2CTM模块11 CAN模块12 数据转换器接口 DCI 模块 20 20 2 2CPU内核 CPU内核采用16位 数据 改良的哈佛架构 并带有增强型指令集包含对DSP的有力支持 CPU拥有24位指令字 指令字带有长度可变的操作码字段 程序计数器 PC 为24位宽 可以寻址高达4M 24位的用户程序存储器空间 单周期指令预取机制用来帮助维持吞吐量并提供可预测的执行 除了改变程序流的指令 双字移动 MOV D 指令和表指令以外 所有指令都在单个周期内执行 使用DO和REPEAT指令支持无开销的程序循环结构 这两个指令在任何时候都可被中断 21 22 2 2 1算术逻辑单元 ALU dsPIC30FALU为16位宽 能进行加 减 单位移位和逻辑运算 除非特别指明 算术运算一般是以2进制补码形式进行的 根据所使用的指令模式 ALU可以执行8位或16位操作 根据指令的寻址模式 ALU操作的数据可以来自W寄存器阵列或数据存储器 输出数据可以被写入W寄存器阵列或数据存储单元 根据不同的操作 ALU可能会影响SR寄存器中的进位标志位 C 全零标志位 Z 负标志位 N 溢出标志位 OV 和辅助进位标志位 DC 的值 在减法操作中 C和DC位分别作为借位和辅助借位位 23 2 2 2DSP引擎 DSP引擎由一个高速17位x17位乘法器 一个桶形移位寄存器和一个40位加法器 减法器 两个目标累加器 舍入逻辑和饱和逻辑 组成 dsPIC30F器件采用单周期指令流 可以执行DSP指令或MCU指令 许多硬件资源可以被DSP和MCU指令共用 DSP引擎的功能如下 1 小数或整数DSP乘法 IF 2 有符号或无符号DSP乘法 US 3 常规或收敛舍入 RND 4 ACCA自动饱和使能 禁止 SATA 5 ACCB自动饱和使能 禁止 SATB 6 对于写数据存储器 自动饱和使能 禁止 SATDW 7 累加器饱和模式选择 ACCSAT 24 25 2 2 3除法 支持16 16位有符号小数除法运算 以及32 16位 16 16位有符号和无符号整数除法运算 除法形式均为单指令迭代除法 支持以下指令和数据长度 1 DIVF 16 16有符号小数除法2 DIV sd 32 16有符号除法3 DIV ud 32 16无符号除法4 DIV s 16 16有符号除法5 DIV u 16 16无符号除法除法指令必须在一个REPEAT循环内执行 26 2 2 4编程模型 由16个16位工作寄存器 W0至W15 2个40位累加器 ACCA和ACCB 状态寄存器 SR 数据表页寄存器 TBLPAG 程序空间可视性页寄存器 PSVPAG DO和REPEAT寄存器DOSTART DOEND DCOUNT和RCOUNT 以及程序计数器 PC 组成 工作寄存器可作为数据 地址或偏移量寄存器 所有寄存器都是存储器映射的 W0用作进行文件寄存器寻址的W寄存器 影子寄存器影子寄存器用作临时保持寄存器 事件发生时可在影子寄存器和主寄存器之间传递内容 所有影子寄存器均不能直接访问 27 状态寄存器内核有一个16位状态寄存器 SR 其最低有效字节称为SR低字节 SRLowByte SRL 其最高有效字节称为SR高字节 SRHighByte SRH SRL包含所有的DSPALU运算状态标志位 包括Z位 以及CPU中断优先级状态位IPL和REPEAT有效状态位RA 在异常处理期间 SRL与PC的MSB连接起来形成一个完整的字值 然后将该字值压入堆栈 SR寄存器的高字节包含DSP加法器 减法器状态位 DO循环有效位 DA 和半进位 DC 状态位 程序计数器程序计数器为23位宽 bit0始终清零 因此 PC能够寻址最多4M指令字 28 PUSH S和POP S用于执行函数调用或中断服务程序 W0 W1 W2 W3和SR 仅限DC N OV Z和C位 是与之对应的影子寄存器 可进行内容传递 DO指令循环开始时 DOSTART DOEND和DCOUNT寄存器的内容压入影子寄存器 在循环结束时其内容从各自的影子寄存器中弹出 对工作寄存器进行字节操作时 只影响目标寄存器的低字节 LeastSignificantByte LSB 29 30 2 2 5软件堆栈指针 帧指针 软件堆栈指针总是指向软件堆栈第一个可用的空字 并从低地址到高地址填充软件堆栈 堆栈出栈 读 时 堆栈指针先减 堆栈进栈 写 时 堆栈指针后加 W15是专用的软件堆栈指针 StackPointer SP 异常处理 子程序调用与返回时会自动修改W15 W15也可被任何指令所引用 引用方式与引用所有其他W寄存器相同 W14软件堆栈帧指针 因为通过使用LNK link 连接 和ULNKunlink 不连接 指令可以把它用作堆栈帧指针 当不用作帧指针时 W14可被指令当作普通的工作寄存器使用 31 32 2 2 5CPU寄存器描述 SR CPU状态寄存器16位状态寄存器 SR 它的低字节称为低状态寄存器SRL 的高字节称为SRH SRL包含了所有的MCUALU操作状态标志 加上CPU中断优先级状态位IPL和REPEAT循环有效状态位RA SR SRH包含DSP加法器 减法器状态位 DO循环有效位DA SR 和辅助进位标志位DC SR CORCON 内核控制寄存器CORCON寄存器包含控制DSP乘法器和DO循环硬件操作的位 还包含IPL3状态位 它与IPL SR 相连形成CPU中断优先级 33 TBLPAG 表页寄存器TBLPAG寄存器用于在读表和写表操作过程中保存程序存储器地址的高8位 表指令用于传输程序存储空间和数据存储空间之间的数据 PSVPAG 程序空间可视性页寄存器程序空间可视性允许用户将程序存储空间的32KB区域映射到数据地址空间的高32KB 此特性允许通过在数据存储器上操作的dsPIC30F指令对常数数据进行透明访问 PSVPAG寄存器选择映射到数据地址空间的程序存储空间的32KB区域 MODCON 模控制寄存器MODCON寄存器用于使能并配置模寻址 循环缓冲 34 XMODSRT XMODEND X模起始和结束地址寄存器XMODSRT和XMODEND寄存器保持X数据存储地址空间中执行模 循环 缓冲的起始和结束地址 YMODSRT YMODEND Y模起始和结束地址寄存器YMODSRT和YMODEND寄存器保持Y数据存储地址空间中执行模 循环 缓冲的起始和结束地址 XBREV X模位反转寄存器XBREV寄存器用于设置位反转寻址的缓冲区大小 DISICNT 禁止中断计数寄存器DISI指令使用DISICNT寄存器将优先级为1 6的中断在指定的几个周期内禁止 35 2 3数据存储器 2 3 1数据地址空间数据宽度为16位 所有内部寄存器和数据空间存储器都是以16位宽度组织的 数据存储器具有两个数据空间X和Y数据空间 数据空间可以看作是独立的或者看作是统一的线性地址范围 Y空间是X空间的子集 Y空间完全包含在X空间中 X和Y空间要有连续的地址 使用两个地址发生单元 AGU 和独立的数据路径访问这两个数据空间 36 0 x0000到0 x07FF之间的地址空间保留用于器件的特殊功能寄存器SFR 包含CPU和器件上的外设的控制和状态位 RAM从地址0 x0800开始 分成两个区块 分别为X和Y数据空间 对于数据写操作 总是将X和Y数据空间作为一个线性数据空间访问 对于数据读操作 可以分别单独访问X和Y存储器空间或将它们作为一个线性空间访问 0 x0000到0 x1FFF之间8KB的地址空间称为Near数据存储器 可通过所有文件寄存器指令中的13位绝对地址字段直接对Near数据存储器寻址 37 MCU指令访问 MCU指令将X和Y存储器作为一个组合的数据空间访问 MCU指令可以使用任何W寄存器作为地址指针进行读写操作 DSP指令访问 在数据读过程中 DSP指令可以同时预取两个数据操作数 它将数据存储器分割为两个空间 DSP类指令将Y地址空间与整个数据空间隔开 W10和W11作为使用DSP类指令从Y数据空间读取数据的地址指针 W8和W9作为使用DSP类指令对X数据空间读取数据的地址指针 38 2 3 1数据存储器访问方式 dsPIC30F包含一个XAGU和一个YAGU以产生数据存储器地址 X和YAGU都可以产生任何64KB范围内的有效地址EA 对物理存储器范围以外的EA进行数据写操无效 X地址发生器单元XAGU可以被所有指令使用并支持所有寻址模式 XRAGU和XWAGU都支持模寻址 只有XWAGU支持位反转寻址 Y地址发生器单元Y数据存储空间有一个AGU 支持从Y数据存储空间进行数据读操作 从不使用Y存储器总线进行数据写操作 YAGU和Y存储器总线的功能是支持DSP类指令同时进行数据读操作 对于使用YAGU的DSP类指令 YAGU支持模寻址和后修改寻址模式 39 2 3 2数据空间地址发生器单元 AGU 2 3 3地址发生器单元和DSP类指令 DSP类指令将YAGU和Y存储器数据路径与XRAGU一起使用 从而提供两条可同时对数据进行读操作的路径 DSP类指令指定两个W寄存器指针 W8和W9 总是通过XRAGU进行操作并寻址X数据空间 不寻址Y数据空间 另外指定两个W寄存器指针 W10和W11 总是通过YAGU进行操作并寻址Y数据空间 不寻址X数据空间 40 2 4程序存储器 程序地址空间程序地址空间为4M 24指令字 访问程序空间有三种可用的方法 1 通过23位PC 2 通过读表 TBLRD 和写表 TBLWT 指令 3 通过把程序存储器的32KB段映射到数据存储器地址空间 程序存储器映射空间被划分为用户程序空间和用户配置空间 41 2 4 1程序计数器PC PC以2为增量 且LSb置为 0 以使之与数据空间寻址相兼容 用PC在4M程序存储器空间中对连续指令字寻址 每个指令字为24位宽 程序存储器地址的LSb PC 保留为字节选择位 用于从使用程序空间可视性或表指令的数据空间访问程序存储器 对于通过PC取指的情况 不需要该字节选择位 PC总是置为 0 42 2 4 2表指令方式读写 表指令用于将字节或字大小的数据在程序空间和数据空间之间传送 读表指令用于把数据从程序存储器空间读入数据存储器空间 写表指令可以把数据从数据存储器空间写入程序存储器空间 对于表指令 程序存储器可以视作并排放置的两个16位字宽的地址空间 每个地址空间都有相同的地址范围 TBLRDL和TBLWTL访问程序存储器的LS数据字 而TBLRDH和TBLWTH访问高位字 由于程序存储器只有24位宽 所以后一个字空间的高字不存在 虽然它是可寻址的 因此称之为 虚拟 字节 43 2 4 3来自数据空间的程序空间可视性 可选择将数据存储器地址空间的高32KB空间映射到任何16K字程序空间页 这种操作模式被称为程序空间可视性 PSV 它提供对存储在X数据空间的常数数据的透明访问 而无需使用特殊指令 即 TBLRD和TBLWT指令 PSV的配置通过将PSV位 CORCON 置1使能程序空间可视性 当PSV使能时 在数据存储器映射空间上半部分的每个数据空间地址将直接映射到一个程序地址 PSV视窗允许访问该24位程序字的低16位 程序存储器数据的高8位应该编程 以强制对其的访问为非法指令或NOP 44 PSV地址的15个LSb由包含有效地址的W寄存器提供 W寄存器的MSb不用于形成该地址 而是用于指定是从程序空间执行PSV访问还是从数据存储器空间执行正常的访问 W寄存器有效地址大于或等于0 x8000 使能PSV时 数据访问会从程序存储器空间进行 当W寄存器的有效地址小于0 x8000时 所有访问将从数据存储器空间进行 PSVPAG位与W寄存器中保存有效地址的15个LSb相连形成一个23位的程序存储器地址 PSV只能用来访问程序存储器空间中的值 45 PIC单片机原理及应用 第3章系统集成 46 3 1复位 复位模块结合了所有复位源并控制器件的主复位信号SYSRST 以下列出了器件的复位源 POR 上电复位 在检测到VDD电压上升时会产生内部上电复位脉冲 复位脉冲会产生10 s短时间的延时 以确保内部器件偏置电路稳定 EXTR 引脚复位 MCLR 只要MCLR引脚拉为低电平 输入脉冲比规定的最小宽度更长 当CLR引脚被释放后 在下一个指令时钟周期将产生SYSRST信号并开始复位向量取指 SWR RESET指令 只要何时执行了RESET指令 器件都会产生SYSRST信号 从而将器件置于特殊复位状态 47 WDTR 看门狗定时器复位 只要何时发生看门狗超时 器件将异步产生SYSRST信号 BOR 欠压复位 主要用途是在发生欠压条件时产生器件复位 欠压条件通常由AC电源上的干扰信号或接入大负载时过电流造成电压下降产生的 TRAPR 陷阱冲突复位 只要同时有多个硬陷阱中断源待处理 就会产生器件复位 IOPR 非法操作码复位 UWR 未初始化的W寄存器复位 48 49 bit15TRAPR 陷阱复位标志位 1 发生了陷阱冲突复位0 未发生陷阱冲突复位bit14IOPUWR 非法操作码或未初始化的W寄存器访问复位标志位 bit13BGST 带隙稳态位 1 带隙已稳定0 带隙不稳定且LVD中断应该被禁止bit12LVDEN 低压检测电源使能位 1 使能LVD LVD电路上电0 禁止LVD LVD电路掉电bit11 8LVDL 低压检测限制位 bit7EXTR 外部复位 MCLR 引脚位 1 发生主清零 引脚 复位0 未发生主清零 引脚 复位bit6SWR 软件RESET 指令 标志位 1 执行了RESET指令0 未执行RESET指令bit5SWDTEN WDT位的软件使能 禁止 1 WDT启用0 WDT关闭bit4WDTO 看门狗定时器超时标志位 1 WDT发生超时0 WDT未发生超时bit3休眠 从休眠状态唤醒标志位 1 器件处于休眠模式0 器件未处于休眠模式bit2空闲 从空闲状态唤醒标志位 1 器件处于空闲模式0 器件不处于空闲模式bit1BOR 欠压复位标志位 1 发生欠压复位 注意BOR在上电复位后将置1 0 未发生欠压复位bit0POR 上电复位标志位 1 发生上电延时复位0 未发生上电延时复位 50 3 2振荡器 dsPIC30F振荡器系统包含以下模块和功能 可选择多种外部和内部振荡器作为时钟源 片上PLL可提高内部工作频率 不同时钟源之间的时钟切换 可节省系统功耗的可编程时钟后分频器 故障保护时钟监视器 FSCM 可检测时钟故障并采取故障保护措施 时钟控制寄存器 OSCCON 用于主振荡器选择的非易失性配置位 51 振荡源 带多时钟模式的主振荡器 辅助振荡器 低功耗的32kHz晶振 FRC振荡器 快速内部RC 8MHz LPRC振荡器 低功耗内部RC 512kHz PLL时钟倍频器 与XT或EC时钟模式的主振荡器配合工作 某些器件允许PLL与内部FRC振荡器配合工作 输入频率范围为4MHz 10MHz 4倍频增益模式 Fout 16MHz 40MHz 8倍频增益模式 Fout 32MHz 80MHz 16倍频增益模式 Fout 64MHz 120MHz 带有 失锁 陷阱选项的PLLVCO锁定提示 HS 2和HS 3主振荡器模式允许选择更高的晶振频率 在某些器件上提供 时钟分频选项 器件时钟的通用后分频器 分频比为4 16和64 52 53 bit15 14TUN TUN位字段的高2位 bit13 12COSC 当前振荡源状态位 11 主振荡器10 内部LPRC振荡器01 内部FRC振荡器00 低功耗32kHz晶振 Timer1 bit11 10TUN TUN位字段的低2位 此四位字段由TUN指定 允许用户调整内部快速RC振荡器 它的标称频率为8MHz TUN 0111提供最高频率TUN 0000提供厂家校准频率TUN 1000提供最低频率bit9 8NOSC 新振荡器组选择位 11 主振荡器10 内部LPRC振荡器01 内部FRC振荡器00 低功耗32kHz晶振 Timer1 bit7 6POST 振荡器后分频值选择位 11 振荡器后分频器对时钟进行64分频10 振荡器后分频器对时钟进行16分频01 振荡器后分频器对时钟进行4分频00 振荡器后分频器不改变时钟信号bit5LOCK PLL锁定状态位 1 表示PLL处于锁定状态0 表示PLL处于失锁状态 或禁止 bit4未用 读作0 bit3CF 时钟故障状态位 1 FSCM检测到时钟故障0 FSCM未检测到时钟故障bit2未用 读作0 54 3 3低压检测 LVD LVD模块可应用于电池供电的应用场合 当电池消耗能量时 电池电压缓慢下降 电池的源阻抗也随着能量的损耗而不断增大 LVD模块用于检测电池电压 即器件的VDD电压 何时低于阈值 即通常所认为的接近是电池使用寿命的终点 这使应用程序有足够的时间关闭 LVD模块使用内部参考电压与供电电池电压进行比较 阈值电压VLVD 可在运行时编程 55 3 3看门狗定时器 WDT 和低功耗模式 dsPIC器件有两种低功耗模式 可以通过执行PWRSAV指令进入 休眠模式 CPU 系统时钟源和任何依靠系统时钟源工作的外设都被禁止 这是器件的最低功耗模式 空闲模式 CPU被禁止 但是系统时钟源继续工作 外设继续工作 但可以有选择地禁止 WDT在使能时使用内部LPRC时钟源工作 而且如果WDT没有被软件清零 它可以通过复位器件来检测系统软件的异常情况 可以使用WDT后分频器选择不同的WDT超时周期 WDT也可用于将器件从休眠或空闲模式唤醒 56 休眠模式具有如下特性 系统时钟源关闭 如果使用了片上振荡器 就将其关闭 在没有I O引脚输出电流的前提下 器件当前功耗最小 由于系统时钟源被禁止 所以故障保护时钟监视器 FSCM 在休眠模式下不工作 如果WDT被使能 LPRC时钟将继续在休眠模式下运行 低压检测电路如果被使能 则继续在休眠模式下保持工作 BOR电路如果被使能 则继续在休眠模式下工作 WDT如果被使能 则在进入休眠模式之前自动清零 某些外设可能会继续在休眠模式运行 这些外设包括检测输入信号电平变化的I O引脚 或使用外部时钟输入的外设 任何根据系统时钟源工作的外设都会在休眠模式禁止 发生下列事件之一时 使用器将从休眠模式退出或被唤醒 任何单独允许的中断源 任何形式的器件复位 57 空闲模式具有如下特性 分配CPU优先级为零的用户中断源不能将CPU从空闲模式唤醒 因为此中断源被有效禁止了 要使用中断作为唤醒源 此中断的CPU优先级必须被分配为1或更高 当器件进入空闲模式时 发生以下事件 CPU将停止执行指令 WDT被自动清零 系统时钟源将保持有效 而且在默认情况下外设模块将使用系统时钟源继续正常工作 可以 如果WDT或FSCM被使能 LPRC也将保持有效 在发生以下事件时 处理器将从空闲模式唤醒 任何单独允许的中断 任何器件复位源 WDT超时 58 PIC单片机原理及应用 第四章工具 59 1 快速入门 芯片数据手册 可在查找及下载 目前大多数新的芯片均有中文数据手册免费的集成编译调试环境 集成了工程管理 语法高亮显示的文本文件编辑器 汇编编译器 功能强大的软仿真调试器等 同时可外挂多种C编译器 硬件仿真调试器 烧写器等 下载地址 主要的C语言编译器 目前MPLAB支持所列的所有C编译器的内嵌调试 单步 全速都没问题 不同的单片机系列必须使用不同的编译器 目前大多数编译器都有免费的试用版或限制版本下载 正版的也不贵 介绍及下载网址 低成本下载器 在线调试器 PICKIT2 是廉价的产品 本身保护电路设计不完善 比较容易出问题 好处是可以支持脱机烧写和KEELOQ的片子烧写ICD2 现在市场上的都是国产授权的ICD2 价格中等 之前很多人采用 编程速度显的有点慢 连接上比较容易出现问题 PICKIT3是PICKIT2的升级版 可支持脱机编程 价格跟国产ICD2相当 编程速度方面有提高 性价比比较好的调试器 ICD3算是中端的调试器 采用FPGA内核 支持软件断点多 编程速度快 而且本身的稳定性比较好 可以看作是一款简化版的REALICE ICD3 KIT3特点 成本低 速度快 集成了编程器 或称下载器 和在线调试器 支持多断点 调试 下载速度非常快 而且KIT2 KIT3支持脱机烧写 这对一些不方便拿到电脑边调试的项目很有用 而且可以作为小批量量产的选择方案 介绍网址 2 MPLAB C30C编译器 MPLABC30是一个遵循ANSIx3 159 1989标准的优化C编译器 它包括针对dsPIC嵌入式控制应用的语言扩展 MPLABC30带有一个完整的ANSI标准函数库 这个函数库包括字符串处理 动态存储器分配 数据转换 计时和数学函数 三角 指数和双曲线函数 用于文件处理的标准I O函数 MPLABC30对C源文件进行编译 生成汇编语言文件 由编译器生成的文件与其他目标文件和库文件进行汇编和链接以产生最终的应用程序 2 1文件命名约定 编译驱动程序识别如下文件扩展名 文件扩展名要区分大小写 2 2与编译器有关的目录 假定编译器安装在c 驱动器的pic30 tools目录中 举例 两数相加的简单C程序 include 这个头文件提供了该器件的所有特殊功能寄存器的定义 intmain void 可无 unsignedintAdd unsignedinta unsignedintb 函数定义 unsignedintx y z Intmain void 主程序 x 2 y 5 z Add x y return0 unsignedintAdd unsignedinta unsignedintb 函数调用 return a b 举例 编译多个文件 文件1 ex1 c includeintmain void unsignedintAdd unsignedinta unsignedintb unsignedintx y z intmain void x 2 y 5 z Add x y return0 通过库管理器和链接器 可以将两个文件编译链接生成可执行文件 文件2 add c includeunsignedintAdd unsignedinta unsignedintb return a b 3 MPLABIDE工具语言入门 安装MPLABIDE 集成开发环境 8 56要求 系统用户账户名为英文 安装文件夹路径中不能有中文存放文件名必须为英文安装C30编译器MPLABC30V1 30MPLABC30V2 00Upgrade 三 MPLABIDE工具语言入门 MPLABIDE软件环境使用分为下面几步骤进行 创建文件使用项目向导 使用项目窗口 设置编译选项3 编译项目 编译错误疑难解答使用MPLABSIM软件模拟器进行调试使用MPLABICD2进行在线调试 1 生成源程序文件 新建源文件 选择File New打开一个新的空白的源文件 保存源文件 创建文件使用项目向导 使用项目窗口 设置编译选项 可以选择默认 3 编译项目 编译错误疑难解答使用MPLABSIM软件模拟器进行调试使用MPLABICD2进行在线调试 选择Project ProjectWizard来创建新项目 将出现一个欢迎页面 点击Next 继续 在 StepOne SelectaDevice 中 通过下拉菜单选择dsPIC30F6014芯片 点击Next 继续 在 StepTwo Selectalanguagetoolsuite 中 选择 MicrochipC30Toolsuite 在 StepThree Nameyourproject 中 键入项目名MyProject并点击BROWSE进入MPLABC30安装目录下的 examples文件夹 然后点击NEXT 继续在 StepFour Addanyexistingfilestoyourproject 中 将添加两个文件到项目中 在Summary 摘要 窗口中重新检查 项目参数 验证芯片 工具包和项目文件的位置是否正确 设置编译选项现在已经可以用dsPIC30F工具来编译项目 但是 需要检查项目和工具编译选项 选择Project BuildOptions并点击 Project 显示整个项目的BuildOptions 编译选项 对话框 创建文件使用项目向导 使用项目窗口 设置编译选项 可以选择默认 3 编译项目 编译错误疑难解答使用MPLABSIM软件模拟器进行调试使用MPLABICD2进行在线调试 选择Project BuildAll对项目进行编译 汇编和链接 如果有任何错误或警告消息 会显示在输出窗口中 如果在项目编译后出现错误 可双击显示错误消息的行直接进入导致该错误的源代码行 如果您使用的是例子中的代码 那么最常见的错误就是拼写错误 漏掉了分号或大括号不匹配 创建文件使用项目向导 使用项目窗口 设置编译选项 可以选择默认 3 编译项目 编译错误疑难解答使用MPLABSIM软件模拟器进行调试使用MPLABICD2进行在线调试 通过选择Debugger SelectTool MPLABSIM将MPLABSIM软件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论