为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

PIC入门

2014-02-26 38页 pdf 1MB 66阅读

用户头像

is_879450

暂无简介

举报
PIC入门 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 爱 晶 电 子 http://www.ajdz.net PIC单片机 图解入门教程 ( v e r 1 . 0 ) ...
PIC入门
http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 爱 晶 电 子 http://www.ajdz.net PIC单片机 图解入门教程 ( v e r 1 . 0 ) 作 者 : 王 伟 民 2006 爱晶电子发明工作室 版权所有 1 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 目 录 1.了解 PIC 单片机系统开发的一般过程 ........................................4 1.1 硬件部分 ...........................................................................................................................4 1.2 软件部分 ...........................................................................................................................4 2.PIC 单片机开发环境的建立.......................................................................5 2.1 安装 MPLAB IDE ...............................................................................................................5 2.2 设置串口属性(使用 ICD2-232 的用户需阅读此部分,使用 ICD2-USB 的用 户跳过此部分) .........................................................................................................................5 2.3 安装 USB 驱动(使用 ICD2-USB 的用户需阅读此部分,使用 ICD2-232 的用 户跳过此部分) .........................................................................................................................8 2.4 设置开发板 .......................................................................................................................9 2.5 硬件连接...........................................................................................................................10 3.如何完成一个项目的开发..........................................................................12 3.1 启动 MPLAB IDE .............................................................................................................12 3.2 创建源文件 .....................................................................................................................13 3.3 创建项目 .........................................................................................................................16 3.4 给项目节点添加文件...................................................................................................17 3.5 选择器件 .........................................................................................................................19 3.6 设置配置位 .....................................................................................................................20 2006 爱晶电子发明工作室 版权所有 2 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 3.7 选择 ICD 2 作为调试器 .............................................................................................21 3.8 通过向导完成调试器的设置 .....................................................................................22 3.9 建立 PC 与 ICD2 之间的通讯连接 ............................................................................26 3.10 更新 ICD 2 固件(操作系统) .............................................................................26 3.11 为调试生成目标文件(也就是我们通常说的“编译”) ............................27 3.12 为调试烧写目标代码 ................................................................................................29 3.13 在调试器模式下运行 exam1 ....................................................................................30 3.14 调试 exam1....................................................................................................................31 3.15 在编程器模式下烧写目标代码 ..............................................................................36 3.16 文件保存 ........................................................................................................................37 2006 爱晶电子发明工作室 版权所有 3 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 1.了解 PIC 单片机系统开发的一般过程 1.1 硬件部分 一般情况下建议大家购买现成的开发板,如3ePIC开发板,这样硬件部分可以很 快搭建起来,如果用户中有开发板所没有的特殊接口电路,那么用户可以自行设 计并焊在开发板的自焊区。 1.2 软件部分 由6步组成: 1.用汇编语言或C语言编写源程序。 2.将源程序编译成目标代码(机器码) 3.用硬件调试器将目标代码写入到单片机中。(若没有硬件调试器,跳过此步骤) 4.用硬件调试器(也称仿真器)完成软件的调试,排除所编程序中存在的各种错误。 (若没有硬件调试器,可选用MPLAB IDE自带的软件仿真器,完成此步骤) 5.重新编译,用编程器(也称烧写器)将调试成功的目标代码写入到单片机中。 6.单片机通电,运行目标代码。 如果您能保证您所编写的程序绝对没有问,也可以跳过步骤3、4。 注意:ICD2既是一个调试器,也是一个编程器,也就是说:一台机器同时拥有两种功 能,由于其性价比很高,目前得到了广泛的应用。 2006 爱晶电子发明工作室 版权所有 4 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 2.PIC 单片机开发环境的建立 2.1 安装 MPLAB IDE MPLAB 集成开发环境(IDE)是一个综合的平台,适用于使用Microchip PICmicro 和dsPIC 单片机进行嵌入式设计的应用开发。上面提及软件开发的6个步 骤中的1-5步骤,均需在此平台上完成。 MPLAB 集成开发环境(IDE)完成的功能是: 1.完成源程序的编写。 2.将源程序编译成目标代码。 3.配合硬件调试器、开发板完成软件的调试。 4.配合编程器将调试成功的目标代码写入到开发板的单片机中。 MPLAB IDE安装的具体步骤如下: 先不要连接硬件,在赠送光盘中找到MPLAB IDE安装压缩文件“MP741.zip”, 该文件也可以从Microchip 网站下载,下载地址为: http://ww1.microchip.com/downloads/en/DeviceDoc/MP741.zip 选择该文件然后将它拷贝到电脑的硬盘中(一般拷贝到D:E:F:盘比较合适), 然后双击已拷到电脑硬盘中的“MP741.zip”,将该文件解压缩,双击解压缩后的的 文件MP741_setup.exe进行安装,安装完成后按系统提示重新启动计算机。 注意: Windows xp操作系统,需要管理员权限才能安装该软件。 2.2 设置串口属性(使用 ICD2-232 的用户需阅读此部分,使用 ICD2-USB 的用户跳 过此部分) 1.先不要连接硬件, 依次点“开始” ->“ 设置”->“控制面板”->“系统”,打 开“我的电脑”进入“控制面板”,出现系统属性窗口: 2006 爱晶电子发明工作室 版权所有 5 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 2.再依次点“硬件”->“设备管理器”,出现设备管理器窗口,在设备管理器窗口中 再双击“端口(COM 和 LPT)”,展开全部可用的串并口: 2006 爱晶电子发明工作室 版权所有 6 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 3.双击我们要使用的串口“通信端口(COM1)”,弹出COM1的属性设置窗,如下图: 4.点击“高级(A)”进入缓冲设置窗口,去掉“使用 FIFO 缓冲区”前面的钩,如 下图: 2006 爱晶电子发明工作室 版权所有 7 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 5.设置好以后点击“确定”退出高级设置,再“点击”确定退出串口属性设置,关闭设 备管理区以及控制面板等。 6.重新启动电脑以使上面的硬件设置生效(此步骤切勿忘记!否则,上述设置不会 实际生效,将无法正常使用 ICD2)。 注意:设置好以后,ICD2必须始终使用这个串口或USB口,不要随便调换成其他的串 口或USB口! 2.3 安装 USB 驱动(使用 ICD2-USB 的用户需阅读此部分,使用 ICD2-232 的用户跳 过此部分) 下面以目前最常用的WINDOWS XP SP2操作系统为例,说明安装方法: 用随机配套的USB连接线连接ICD2至电脑任何一个USB口,系统会提示找到了一 个新硬件设备,如下图: 2006 爱晶电子发明工作室 版权所有 8 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 选择“自动安装软件”,点下一步,系统会自动安装所需的驱动。 2.4 设置开发板 对开发板的相关短路帽进行设置,后面的演示实例采用出厂默认设置,无需设置 短路帽。 注意:对开发板进行任何硬件操作之前,都必须切断开发板的供电!!! 2006 爱晶电子发明工作室 版权所有 9 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 2.5硬件连接 选用ICD 2-USB的用户阅读以下部分: 1.ICD 2-USB和PC机之间用USB 电缆连接,这一步前面已经完成了,由于USB电 缆本身有5V的供电,因此ICD2-USB无须再接上电源适配器。 2.ICD 2-USB和开发板之间用在线调试编程电缆连接,在线调试编程电缆是一根两 端为6芯水晶头的扁平电缆。 3.后面的演示实例是由ICD2给开发板供电的 ,因此开发板不要接外接电源,J9开路, J3短路。 提醒:开发板需要的供电电流不超过200 mA时,可由ICD 2供电,超过200 mA时,应 由开发板外接电源供电。 选用ICD 2-232的用户阅读以下部分: 1.ICD 2-232和PC 机之间先用RS-232电缆连接,RS-232电缆一般连接到PC机的串 口1(COM1),然后给ICD2-232接上电源适配器,这一步务必注意连接的先后顺序, 2006 爱晶电子发明工作室 版权所有 10 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 不正确的操作会导致ICD 2-232的损坏! 2.ICD 2-232和开发板之间用在线调试编程电缆连接,在线调试编程电缆是一根两端 为6芯水晶头的扁平电缆。 3.后面的演示实例是由ICD2给开发板供电的,因此开发板不要接外接电源,J9开路, J3短路。 特别注意:在MPLAB IDE运行时,不要断开USB电缆或串口电缆,若断开会导致以下错 误的发生: ICD0019: Communications: Failed to open port: (Windows::GetLastError() = 0x2, '系统找不到。 如需要断开USB电缆或串口电缆,必须先退出MPLAB IDE!!! 重新插入USB电缆后,不要立即启动MPLAB IDE(否则也会导致上述错误的产生),要 等10秒种左右,因为系统对USB设备的自动识别需要一段时间。 操作技巧:在开发过程中,USB电缆或串口电缆一般是始终连着的,但在线编程调试 电缆可以根据需要断开和接上。 2006 爱晶电子发明工作室 版权所有 11 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 3.如何完成一个项目的开发 通过上面的几个步骤,已经建立了开发PIC单片机系统所必需的软硬件环境,下 面我们通过演示程序来介绍开发一个简单项目的整个过程,这个演示程序可在赠送光 盘的3epic\3epic lessons\3\目录下找到,它能实现二进制方式的自动递增计数(计数间 隔时间为1S),并将结果显示在8个LED上。 3.1 启动 MPLAB IDE 用下面任何一种方法启动该软件: • 选择Start>Programs>Microchip>MPLAB IDE 7.41>MPLAB IDE。 • 双击桌面上的MPLAB IDE 图标。 2006 爱晶电子发明工作室 版权所有 12 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 3.2 创建源文件 1.选择File(文件)>new…(新建),出现一个文本编辑窗口,在该窗口中输入以 下汇编语言源程序: ;----------------------------------------------------------------------- ;软件延时自动计数实验参考程序(实验3.asm) ;----------------------------------------------------------------------- STATUS EQU 03H ;特殊功能寄存器定义 TRISD EQU 88H ;特殊功能寄存器定义 PORTD EQU 08H ;特殊功能寄存器定义 TRISE EQU 89H ;特殊功能寄存器定义 PORTE EQU 09H ;特殊功能寄存器定义 ;延时子程序定义了以下3个临时寄存器: TEMP1 EQU 20H ;外循环寄存器定义 TEMP2 EQU 21H ;中循环寄存器定义 2006 爱晶电子发明工作室 版权所有 13 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 TEMP3 EQU 22H ;内循环寄存器定义 ;----------------------------------------------------------------------- ORG 0000H ;复位地址 NOP ;MPLAB专用语句(使用ICD2在线调试必须在程序 开头放一条空语句) ST BSF STATUS,5 ;选择体1 CLRF TRISD ;PORTD设置为输出 CLRF TRISE ;PORTE设置为输出 BCF STATUS,5 ;选择体0 CLRF PORTD ;PORTD清零 BCF PORTE,0 ;RE0清零,选通LED LOOP CALL DELAY1S ;调用1S延迟程序 INCF PORTE ;输出数据累加 GOTO LOOP ;循环操作 ;----------------------------------------------------------------------- ;1秒延时子程序参考程序 ;----------------------------------------------------------------------- DELAY1S MOVLW 06H ;外循环常数 MOVWF TEMP1 ;外循环寄存器 LOP0 MOVLW 0EBH ;中循环常数 MOVWF TEMP2 ;中循环寄存器 LOP1 MOVLW 0ECH ;内循环常数 MOVWF TEMP3 ;内循环寄存器 LOP2 DECFSZ TEMP3 ;内循环寄存器递减 GOTO LOP2 ;继续内循环 DECFSZ TEMP2 ;中循环寄存器递减 GOTO LOP1 ;继续中循环 DECFSZ TEMP1 ;外循环寄存器递减 GOTO LOP0 ;继续外循环 RETURN ;返回 2006 爱晶电子发明工作室 版权所有 14 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 ;----------------------------------------------------------------------- END ;----------------------------------------------------------------------- 注意:1、为了演示程序的调试过程,上面输入的源程序中人为地加入了一个错误! 2、由于篇幅关系,本教程不涉及程序的编写。要了解如何编写源程序,请参 考有关书籍,这里向大家推荐李学海老师写的《PIC单片机原理》一书。 2.先创建文件夹D:\myprj,然后将上面输入的源程序保存该文件夹,注意文件的 扩展名为asm,这里我们将它保存为exam1.asm: 文件保存后,我们发现源程序编辑窗口中的程序被着上了各种颜色,这些颜色能 帮助我们更好地阅读源程序,快速发现输入有误的指令: 2006 爱晶电子发明工作室 版权所有 15 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 3.3 创建项目 项目是将文件组织起来以便进行编译和汇编的方式。 选择Project(项目)>new…(新建),出现New Project(新项目)对话框: 在New Project(新项目)对话框中,我们将这个示例项目命名为MyPrj,使用 Browse 按钮,将项目放在名为D:\myprj的文件夹中。 单击OK按钮,在MPLAB IDE 界面上我们会看到已创建项目的的项目窗口,如下 2006 爱晶电子发明工作室 版权所有 16 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 图: 如果项目窗口未打开,请选择View>Project。 3.4 给项目节点添加文件 源文件是必须添加的。其他文件,如头文件、库文件、链接描述文件,视项目的 具体情况可加可不加。 在本实例中,只添加一个源文件exam1.asm,在左边的项目窗口中找到Source Files节点,在其上点鼠标右键,在弹出的快捷菜单中选Add Files: 2006 爱晶电子发明工作室 版权所有 17 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 双击要添加的文件exam1.asm,或单击要添加的文件exam1.asm,然后点“打开”按纽: 文件添加成功后的项目窗口如下,Source Files节点下已经添加了文件 exam1.asm: 2006 爱晶电子发明工作室 版权所有 18 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 配套例程有不少例程除添加源文件外,还要添加头文件my.inc。具体可以看每个 例程源文件的开头部分,若有INCLUDE"MY.INC"语句,则该例程是需要添加头文件的。 头文件应添加到项目窗口的Header files节点下,具体添加方法同上。 3.5 选择器件 1.选择Configure>Select Device。 2.在Select Device 对话框中,点device栏右边的下拉箭头,选择器件为16F877A, 注意一定要后面有A的!(提醒:16F877A与16F877是两个内部结构和功能不同的芯片, 两个芯片不能直接相互替换,所以千万不要误选成16F877!),在Microchip Programmer Tool Support 部分中, MPLAB ICD 2 旁边的“灯”图标应为绿色: 2006 爱晶电子发明工作室 版权所有 19 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 说明:MPLAB ICD 2 支持的器件会在Microchip Programmer Tool Support 下MPLAB ICD 2 旁边有一个“绿灯”图标。不支持的器件则有一个“红灯”图标。而“黄灯”图标 表明可以选择这个器件,但可能有某些限制,可能不适于量产,但它可以让MPLAB ICD 2 做试用。 3.点击OK。 3.6 设置配置位 设置要烧写到器件中的配置位,选择Configure>ConfigurationBits。通过点击 “Settings”栏中的文本,可以更改这些配置位。 2006 爱晶电子发明工作室 版权所有 20 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 对于本演示实例,应该在这个对话框中设置这些配置位如下: Oscillatot 振荡方式选择,由于开发板使用的是4MHz晶振,因此选XT,也可以选HS Watchdog Timer 看门狗使能位,本实例未使用看门狗,因此设置为off Power Up Timer 上电廷时使能位,一般选择为 on 有利于芯片起振,也可以选off。 Brown Out Detect 掉电检测使能位,ICD2作调试工具时一定要选择为 off! Low Voltage Program 低压编程使能,必须选择为 off! Flash Program Write 写 FLASH 使能,选择为Write Protection off(写保护关闭)。 Data EE Read Protect 读内部 EEPROM 保护位, 用 ICD2 作调试工具时一定要选择 为 off! Code Protect 加密位, 用 ICD2 作调试工具时一定要选择为 off! 3.7 选择 ICD 2 作为调试器 1.选择Debugger>Select Tool>MPLAB ICD 2。Debugger 菜单会显示可用的其它 调试选项。同时,Output 窗口会打开显示连接信息: 2006 爱晶电子发明工作室 版权所有 21 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 注意:ICD2 作为调试工具时所烧写的程序只能用于仿真调试,不能够脱机使用,若 要烧写能脱机使用程序,就要选择Programmerr>Select Programmer>MPLAB ICD2将 MPLABICD2作为编程工具。 3.8 通过向导完成调试器的设置 1.选择 Debugger>MPLAB ICD2 Setup Wizard…,启动 ICD2 调试器设置向导: 2006 爱晶电子发明工作室 版权所有 22 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 2.选择 USB 或 COM 端口/波特率。使用 ICD2-USB 时通信口选 USB,使用 ICD2-232 时选通信口 COM1、波特率选 57600: 2006 爱晶电子发明工作室 版权所有 23 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 3.确定是否由ICD2对开发板供电。本演示实例由ICD2向开发板供电,因此选中“Power target from the MPLAB ICD2”: 4.自动连接前面最好打上钩,这样不用手动连接,比较方便: 2006 爱晶电子发明工作室 版权所有 24 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 5.自动下载 OS(操作系统)前面最好打上钩,这样不用手动下载 OS(操作系统), 比较方便: 6.完成: 2006 爱晶电子发明工作室 版权所有 25 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 3.9 建立 PC与 ICD2之间的通讯连接 手动连接:选择Debugger>Connect 连接到MPLAB ICD 2。 自动连接:如果ICD 2设置中选择了选择“Automatically connect at startup”,那么 系统会自动连接。 输出窗口提示“…Connected”,并且没有出现红色的警告或错误信息,表示已经 正常连接: 注: 使用ICD2-232的用户注意,IDE有时会自作聪明地将通讯端口设置USB,如果输 出窗口提示连接失败,请检查通讯端口设置是否正确,然后再连接! 3.10 更新 ICD 2 固件(操作系统) 由于不同型号的单片机使用不同的ICD2 固件,当切换到一个不同型号的单片机 时,会出现一条消息提示固件需要更新。MPLAB IDE 会自动安装新固件。 2006 爱晶电子发明工作室 版权所有 26 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 更新对话框如下图所示: 特殊情况下,固件也可以按照以下步骤手动更新: 1.选择Debugger>Download ICD2 Operating System。Select ICD 2 Firmware File 对话框会打开。 2.从列表中选择或者浏览需要下载的固件。文件名形式为icdxxxxxx.hex,其中 xxxxxx 为版本号。 3.点击Open。MPLAB IDE 会把新的操作系统下载到MPLAB ICD 2中。 注意:如果您始终用同一种型号的芯片,除第一次外不会弹出更新固件对话框,如果 没有弹出更新固件对话框,通常无需手动更新,可以跳过这一步骤。 3.11 为调试生成目标文件(也就是我们通常说的“编译”) 注意:为调试生成目标文件(.HEX 文件)之前,必须已经选择ICD 2 作为调试器!!! 选择Project>Build All 或在项目窗口中的项目名称上点击右键,并从弹出菜单中 选择“Build All”。 2006 爱晶电子发明工作室 版权所有 27 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 MPASM 汇编器总会生成文件名与源文件(.asm 文件)名相同的目标文件(.hex 文件)。 编译时会打开一个状态窗口,显示编译的进度和最后的结果。编译完成后自动关 闭该窗口。 同时还将打开Output 窗口,Output 窗口没有出现红色警告或错误信息, 而且最后一句显示“BUILD SUCCEEDED”,就表示编译成功了: 如果编译失败,请检查以下各项,然后重新编译项目: 1.检查在编辑器窗口中输入的所有代码的拼写和格式。如果在Output 窗口中报告有 错,双击该错误就会在源代码窗口左侧的灰色区域中以绿色箭头指出源代码中出错的 行。 2.检查用于该项目及其项目文件的语言工具是否正确。 为初学者解释几个概念:. .asm 文件是我们用汇编语言(一种类似缩写的语言)写的源程序,但单片 机无法识别和运行源程序,单片机只能看懂由0和1组成的机器码,因此这里需要一个 “”的过程,称为“编译”或“汇编”,编译的作用就是把单片机无法识别的汇 编源程序翻译成单片机能识别的机器码,由于机器码是最终在单片机上运行的代码, 2006 爱晶电子发明工作室 版权所有 28 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 因此也称为目标代码,其后缀是.hex。 另外,整个“翻译”的过程是由一个小小的工具软件完成的,它就是MPLAB IDE 自带的MPASM汇编器。当您选择Project>Build All的时候,系统会自动调用MPASM汇 编器,自动完成整个编译过程。 3.12 为调试烧写目标代码 在调试之前,必须把目标代码烧写到目标单片机中。 选择Debugger>Program,把目标文件exam1.hex(目标文件中包括的就是目 标代码) 烧写到3ePIC开发板上的PIC16F877A中。 烧写可能需要几分钟时间。在烧写过程中, Output 对话框的MPLAB ICD 2 选 项卡下会显示目前的操作阶段。Output 窗口没有出现红色的警告或错误信息,而且 倒数第3句显示“…Programming succeeded”,就表示烧写成功了: 提醒:进入调试模式的一个必要条件是,开发板或您的应用系统已经加了晶振。如编 2006 爱晶电子发明工作室 版权所有 29 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 程器模式下烧写没问题,但调试器模式下烧写不成功,通常是开发板或您的应用系统 忘了装上晶振! 注意:初学者容易将Debugger(调试器)下拉菜单下的Program(编程)命令和 Programmer(编程器)下拉菜单下的Program(编程)命令混为一谈,其实这是两个 作用完全不同的命令,切记:在调试器模式下,必须使用调试器下拉菜单下的Program 命令,同样,在编程器模式下,必须使用编程器下拉菜单下的Program命令!!!同 时也不要以为:在编程器模式下已经执行“Program”命令了,因此切换到调试器模 式时,就可以不用执行了调试器模式下的“Program”命令了,这是大错特错的,反 之也是一样。 Debugger(调试器)下拉菜单下和rogrammer(编程器)下拉菜单下还有许多命令 字面上一样,但实际功能是不一样的,注意不要混淆! 进一步的解释,初学者可以跳过不读: 执行Debugger(调试器)下拉菜单下的Program(编程)命令时,系统会自动在用 户编写程序的目标代码中加入调试执行代码,调试执行代码会自动烧写到程序存储器 的高端地址,以便用MPLAB ICD 2 来进行调试。执行Programmer(编程器)下拉菜单 下的Program(编程)命令时,只将用户编写程序的目标代码烧写到程序存储器中, 和一般单片机的编程性质完全一致,由此可见,这两个编程命令的作用是完全不同的。 3.13 在调试器模式下运行 exam1 进入调试模式后,工具栏会多出调试器快捷工具条,见下图: 从左到右分别是 1.run –全速运行 2.halt –暂停 3.animate –自动单步(或称为慢速运行) 4.step into –单步运行(子程序内部也单步运行) 5.step over --单步运行(子程序内部代码被全速执行,整个子程序被作为单步运 行中的一步来执行的) 2006 爱晶电子发明工作室 版权所有 30 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 6.step out --跳出子循环(当程序运行在子程序中时,可以使用它直接运行完该子 程序) 7.reset –复位 MPLAB ICD 2 在调试器模式下可以实时或单步执行代码,实时执行代码又称 “全速运行”,当然调试器模式下的“全速运行”与单片机脱离开发系统独立运行时 的“全速运行”还是有区别的,单步执行代码又称“单步运行”。 我们首先执行调试器模式下的“全速运行”。 选择Debugger>Run (或点击Run 工具栏按钮)。 如果我们编写的程序没有错误,我们将在开发板上看到8个LED显示8位二进制递 增数。但遗憾的是,8个LED上面什么也没有显示,程序没有按我们的要求运行,说明 程序有错误,不必担心,利用调试器模式下的单步运行、变量观察窗口、断点等调试 手段可以查找出任何错误。 先选择Debugger>Halt(或点击Halt 工具栏按钮)来中止程序执行。 3.14 调试 exam1 1.我们首先在把累加值输出到LED的那一行设置断点。在需要设置断点的语句上双击, 这一行的行首就出现如下图所示的断点标记了(红色的B 停止标记): 2006 爱晶电子发明工作室 版权所有 31 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 2.打开一个新的Watch 窗口,来观察随着程序的执行输出端口(PORTD)寄存器 值的变化。选择View>Watch。从Add SFR 按钮旁边的列表中选择“PORTD”,再 点击这个按钮,PORTD加到了Watch窗口中,如下图所示: 2006 爱晶电子发明工作室 版权所有 32 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 3.现在我们调整源程序窗口和观察窗口的大小,使它们同时可见,这样便于观察源 程序的执行和被观察寄存器数据的变化: 2006 爱晶电子发明工作室 版权所有 33 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 4.选择Debugger>Run(或者点击Run 工具栏按钮),再次全速运行程序。当程序 执行到被标记断点的行时,程序会中止执行,绿色箭头停在源代码窗口第24行“GOTO LOOP”,表示下一条将被执行的指令是“GOTO LOOP”: 2006 爱晶电子发明工作室 版权所有 34 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 5.此时我们观察观察窗口,PORTD的内容是0X00(就是16进制00)。 6.再选择Debugger>Run(或者点击Run 工具栏按钮),再次全速运行程序。当程 序执行到被标记断点的行时,程序同样又中止执行。我们再观察观察窗口,PORTD 的内容怎么还是0X00,应该是0X01才对呀,显然PORTD端口没有执行加1操作,仔 细观察第23行语句“INCF PORTE”,原来在输入的时候将PORTD错输成了 PORTE。 7.将第23行语句修改为“INCF PORTD”,同时在该语句上双击左键,去消该 语句上设置的断点。 8.选择File>Save ,保存修改。 9.选择Project>Build All ,重新编译项目。 10.选择Debugger>Program,重新烧写修改过的程序。 提醒:源程序每次修改后都必须执行“保存”、“编译”、“烧写”这三个步骤! 11.选择Debugger>Run(或者点击Run 工具栏按钮),全速运行程序。此时8个LED 已经显示正常了。 本演示实例中的源代码只包含一个非常简单的错误,调试时没有使用“单步执 2006 爱晶电子发明工作室 版权所有 35 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 行”。单步执行是一种很常用的调试手段,适合于排除流程故障(程序未按照预设的 流程运行)。选择Debugger>Step (或者点击Step 工具栏按钮)来单步执行程序。 建议使用工具栏按钮,当您不断点击Step 工具栏按钮时,语句就会随着您的点击一 条一条地运行,绿色箭头不断地移动,时时指向下一条将被执行的指令。 许多时候,程序的调试会比编写花费更多的时间和精力。一段实际的代码可能包 含有很多的错误,排除这些错误,不仅需要必要的调试技巧,同时也要求程序员有良 好的心理素质,尤其是初学者,遇到错误不要惊慌,编程出现错误实在是一件很正常 的事,要坚信任何错误都是可以排除的,充分利用ICD 2 和MPLAB IDE 的调试功能, 您完全可以成功地定位和修复其代码中存在的错误。如果错误很多,宜采用“缩小包 围圈”的排错策略,逐步排除错误。 3.15 在编程器模式下烧写目标代码 当程序成功调试并运行后,下一步是在编程器模式下烧写PIC单片机,以便它能 脱离开发系统独立工作。 进行这一步时,为ICD 保留的资源被释放。(这句话,初学者可以不用去管它) 按照以下步骤进行烧写: 1.选择Debugger>Select Tool>none,禁止MPLAB ICD 2 作为调试器。 2.在Programmer>Select Tool菜单中,选择MPLAB ICD 2作为编程器。 3.选择Programmer>MPLAB ICD2 Setup Wizard…,通过向导完成编程器的设置。 4.选择Programmer>Program。 当用户使用MPLAB IDE中的编程器模式时,编程(也称烧写)完成后,开发板处 于停止运行状态,点programmer菜单下的Release from reset命令开发板才会进入运 行状态。 用户要想让开发板复位,采取的操作是先点programmer菜单下的hold in reset 命令,后点Release from reset,即完成一次复位。 注意:现在开发板是独立运行的,ICD2只是为开发板供电。当然开发板也可以不 由ICD2供电,改由自己的外接电源供电,只要断开在线调试编程电缆,开发板P11中 插入外接电源插头,同时J3开路,J9短路就可以了。 2006 爱晶电子发明工作室 版权所有 36 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 开发板由自己的外接电源供电时,系统的复位由复位按钮SW-RST来控制。 3.16 文件保存 开发工作中途及完成后,要及时进行文件的保存,可以选择File>Save Workspace,保存为工作空间文件或选择Project>Save Project,保存项目文件。 下面对这两种文件类型及其区别进行说明: Project(项目文件) 包括了编译所需的源文件、连接文件、头文件…… 及这些文件间的组织结构,同时还包括了芯片设置、配置位设置等。 Workspace(工作空间文件) 在项目文件包含的内容基础上,还进一步 包含了调试器或编程器的选择,已打开的窗口等。 简单地说:项目文件就是程序员辛辛苦苦做出来的“产品”,工作空间 文件比项目文件多包括了一些内容,多包括的内容其实就是做“产品” 过程中用到的各种工具,例如当前您正在调试程序,为此选择了 ICD2 调试器,还打开了变量观察窗口,这些在工作空间文件中也会被保存。 如果您的项目还没有最终完成,那么在保存时应该保存为工作空间文件 类型,下一次打开时,应该打开这个项目文件,这样出现在您面前的一 切和您上次看到的一模一样,您可以方便地继续您未完成的工作。 如果您的项目很简单,立马就完成了,那么在保存时您可以保存为任何 一种文件类型。 2006 爱晶电子发明工作室 版权所有 37 http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 版权声明: 本入门教程为爱晶电子网站原创作品,欢迎网上下载、转载、传播!爱晶电子保 留该教程的所有权、修改权、署名权。 该教程编写比较仓促,可能会存在错误或不当之处,欢迎朋友们指正。 您在学习PIC单片机的过程中,若有疑惑,可以和我们联系,我们将热忱地为您 解答,我们的联系方式: 地址:(312300)浙江省上虞市百官恒利西4区6-305室 联系人:王伟民 电话:0575-2263178 网站:http://www.ajdz.net QQ:634653011 MSN:cnajdz@hotmail.com E-mail:ajdz@163.com 2006 爱晶电子发明工作室 版权所有 38
/
本文档为【PIC入门】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索