




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MPLABIDE 软件安装完成后,桌面上会出现软件的快捷方式图标。由于 PICC18 编译器是挂接在 MPLABIDE 软件内部的,所以 PICC18 软件安装完成后其图标不会出现在桌面上。MPLABIDE 软件快捷方式图标如图 2-31 所示。存|二MPLABIDE轼件快捷方式1)双击桌面上 MPLABIDEM 牛快捷方式图标,打开 MPLABIDEM 牛。软件运行后,会出现两个窗口:一个是工作区窗口(Untitled),另一个是输出窗口(Output),如图 2-32 所示。2)点击菜单栏上的Project”选项,单击“SetLanguageToolLocations”选项,查看 PICC
2、18 编译器与 MALABIDE 软件的挂接情况,如图 2-33 所示。3)在弹出的对话框中展开“HI-TECHUniversalToolSuite”菜单,再展开“Executables 菜单,单击“HI-TECHANSICCompiler”选项,在下面的“Location”一栏里查看语言工具的挂接情况,如图 2-34所示。1*12-31+rZ.PICCIH端灯器与MPlABIDE代件的挂折.图2-3Lma中栏中11d小:胃;;4从上面的步骤里我们不难发现,PICC18 编译器已经和 MPLABIDE 软件挂接在了一起,成为集成开发环境的一部分。接下来,我们要用它写一个小程序,并将其下载到最小
3、系统板中,从而点亮一个流水灯。使用 MPLABDE 软件里的项目向导可以帮助我们快速方便地建立PIC 项目,具体方法如下:1)在菜单栏的“Project”选项里,选择项目向导“ProjectWizard.”,如图 2-35 所示。2)启动新建项目向导,在出现的对话框里点击“下一步”按钮,如图 2-36 所示。3)在StepOne:Selectadevice”对话框里选择单片机的型号。这里我们选择的是“PIC18F4520”,如图 2-37 所示。4)在StepTwo:Selectalanguagetoolsuite”对话框里选择语言工具套件。首先在ActiveToolsuite”下拉列表中选择
4、HI-TECHUniversalToolsuite”,在下面的“ToolSuiteContents”窗口中会出现“HI-TECHANSICCompiler”,即 HI-TECH 标准 C 编译器, 其下方的“Location”栏里会出现C:ProgramFilesHI-TECHSoftwarePICC-189.80binpicc18.exe”路径。这说明我们前面安装的PICC18 编译器已经与 MPLABIDE 软件挂接成功,如图 2-38 所示。如果我们只安装了 PICC 编译器,这里的路径会显示为 C:ProgramFilesHI-TECHSoftwarePICC9.80binpicc.e
5、xe。语言工具选好后,点击下一步按钮。5)在“StepThree:Createanewproject,orreconfiguretheactiveproject?对话框里创建一个新的项目。首先在CreateNewProjectFile”文本框旁边点击Browse按钮,如图 2-39 所示。6)在出现的窗口中定义存放项目的文件夹和项目名称。在“保存在”下拉列表中选择项目存放的路径,在“文件名”中输入项目名称:LESSON2 并点击“保存”按钮,如图 2-40 所示。icom注意:虽然 MPLABIDE 称其支持中文文件名和长文件名,但在此强烈建议大家在给项目起名时不要用中文,英文文件名也要力求简
6、短,存放的路径的名称也一样要简短,同一个项目中的不同源文件都要保存于同一个目录下。7)项目路径和名称定义完成后,会再次回到StepThree:Createanewproject,orreconfiguretheactiveproject?”窗口,点击下一步按钮,如图 2-41 所示。2-4Cn新建叼现目相8)在“StepFour:Addexistingfilestoyourproject已存在的文件到你的项目中,这里我们不做选择,直接点击“下一步”按钮,这样我们就建好一个 PIC的项目了,如图 2-42 所示。”对话框中,你可以添加9)点击“完成”按钮,结束项目向导,如图 2-43 所示。建立
7、好项目后,MPLABIDE 软件工作区如图 2-44 所示。这时的项目还只是一个大概的框架,我们还需要给项目添加一个 C 的源文件。a a口U U口口口口9 9=口5_05_0m mw w嗝圃:二lllliiilBlllliiilB旦2.4.2 新建源文件并添加到项目中1)PIC 项目建立好后,依次单击“File-NeW 选项建立一个新文件,在源文件的头一行写上如下代码:#include第一行代码写好后的状态如图 2-45 所示。这里要注意的是,PIC10/12/16 系列的 C 语言程序包含的头文件是 PIC.H,而 PIC18 系列的单片机包含的头文件则是PIC18.H。2)点击工具栏上的
8、“保存”按钮,保存这个源文件。源文件保存的路径要和我们前面建立的项目文件保存的路径一致。前面我们已经为新建的项目命名,接下来将这个源文件命名为 Lesson2.c。注意源文件名称要写成文件名加扩展名的形式,扩展名一定是“.c”。另外,要在对话框中勾选“AddFileToProject”选项,将源文件添加到项目中,点击“保存”按钮,源文件即可保存并自动添加到项目中,如图 2-46 所示。这时我们会发现源文件里面的#include 会显示为蓝色,说明其已经加入到项目中,而且 C 语言的关键词#include 已经被识别了。3)如果需要,你还可以设定文本的字体和大小,右击我们输入的文本,在弹出的菜单
9、中选择Properties选项,如图 2-47 所示。4)在出现的对话框中选择“Text”选项卡,点击“SelectFont”按钮,如图2-48 所示。5)在出现的字体对话框中选择字体、字形和大小,点击“确定”保存设置,如图 2-49 所示。6)完成字体设定后,源文件内的文字已经按我们的要求重新设定并显示了,如图2-50 所示。我们还注意到,在工作区的左侧,有窗口如图 2-51 所示。在工作区“LESSON2.mcW 窗口中,有以下几项内容:5)OtherFiles:其他文件列表。1) SourceFiles:源程序列表,列出了本项目用到的所有源程序文件。2)HeaderFiles:头文件列表
10、,可以在此添加源程序中用到的头文件。3) ObjectFiles:目标文件列表,可以在此添加已经编译成目标代码的文件。4)LibraryFiles:库文件列表,可以在此添加已有的库文件。AaBbYyZl站f1亍法|*前世*手扣十四?!!十2.4.3源代码的编写PIC 驱动流水灯的电路如图 2-52 所示,如果觉彳#连接 8 个发光二极管有些复杂的话,你也可以对电路进行稍许简化,像本书附录 C 所示最小系统板电路那样,只有了以上的准备,接下来我们就可以专心编写 C 程序了。程序要实现的目的就是点亮由 PORT 端口最低位(RD。驱动的一个流水灯。打开 MPLABDE 软件,使用新建项目向导,新建
11、一个项目命名为 LESSON2 并为这个项目添加名为 lesson2.c的源文件,详细代码见代码清单 2-1。代码清单 2-1 点亮一个流水灯#includePROG_CONFIG(1,0 xC100);PIC 的配置字 1PROG_CONFIG(2,0 x0A16);PIC 的配置字 2PROG_CONFIG(3,0 x8100);PIC 的配置字 3PROG_CONFIG(4,0 x0081);/PIC 的配置字 4PROG_CONFIG(5,0 xC00F);PIC 的配置字 5PROG_CONFIG(6,0 xE00F);PIC 的配置字 6连接 RD0 和 RD1 端口的两个流水灯即
12、可。I2521(1/4520啊动瀛水灯也UJLLZeomPROG;/PIC的配置字 7(TRISD=0 x00;/00000000,将 PORT 端口设为输出TRISE=0 xfe;/11111110,将 PORT 提低位设为输出PORTD=0 x01;/00000001,PORTD 最低位输出 1,点亮最低位流水灯PORTE=0 x01;/00000001,PORTE 最低位输出 1,驱动流水灯公共端while(1);/主循环,让程序在此等候接下来,我们要对代码进行分析。程序的第 1 行是一条预处理命令,作用是把另外一个文件的内容包含复制到本包含指令所在的位置。在程序的第一行写入“#incl
13、ude”目的就是将“PIC18.H”这个头文件引入到本程序中来。头文件的作用是对单片机的各个寄存器进行规范化的定义, 从而方便大家使用。 “PIC18.H”是专门针对 PIC18 系列单片机而设计的,位于 PICC18 编译器的安装目录下, 其默认的位置为 C:ProgramFilesHI-TECHSoftwarePICC-189.80includePIC18.H关于头文件,在此先不作过多的叙述,后面会用专门的章节来进行解读。程序的第 2 行至第 8 行是 PIC18 单片机的配置字。PIC 单片机在应用时要对芯片的功能进行基本的设定,这种设定方式是可以通过配置字来完成的。为了不让你在刚接触到
14、 PIC 时被搞得一头雾水,我们对配置字的解读也放到后面的章节来进行,你现在要做的就是按照代码清单的内容把程序行写到你的源文件中。书写配置字文本时需要注意的是,每个配置字的最前面是由两个连续的下杠“”组成的,而且中间不能有空格。:main(?)”是主函数。我们知道,C 语言是一个模块化的语言,程序的内容是由若干个具有特定功能的函数构成的。主函数和其他函数在结构上是一样的,只不过它的函数名称是“main”,意为主函数。在一个源程序中有且仅有一个主函数,而且无论主函数位于源程序的什么位置,程序都是从这里开始执行。“void”的意思是空,在这里表示该函数的返回值为空,也就是说,函数执行后是不输出结果
15、的。函数名“main”后面有一对圆括号“(?)”,括号里面是书写函数的输入(入口)参数的。圆括号内是空的或写着“void”,表示该函数无输入参数。voidmain(void)/主函数“main”函数的第 2 行由花括号“?”开始,两个花括号括起来的部分是函数体,它是函数的主体部分,由若干个 C 语句构成。程序的每一行都以分号“;”结束。代码写完后,你是不是迫不及待地想看看它执行后的效果。好,接下来要做的就是编译和烧写。2.4.4代码的编译和烧写我们将鼠标悬停在工具栏中唯一一个红色的按钮上,下面会有该按钮功能的提示:RebuildwithCompilerforPIC18MCUs(LiteMode
16、)V9.80”,意思是:重新用 PICC18 编译器编译(编译器工作在 LiteMode,版本为 9.80),点击这个红色的按钮,开始编译代码,如图 2-53 所示。经过几秒钟的时间,代码编译即可完成,Output 窗口中 Build 选项卡里面会有单片机存储器的占用情况以及编译成功的提示,如图 2-54 所示。-,-H(MiVanmnMfmdinftM由*0?DLIVicr4ttlpIec|mKli解ifiSO11Tewrrilurticnptriodha?endfrdrTcgnt孙 3t-cflsperimcAWIWEI-pvrffdiRMCiwtCt4*CfMirtii4HNJ-IIti
17、biifiLu*nd*(wwvidAt:)1idmirrF123iJEJ-14ITIAC聒520rftutawork-ar4uuij:儿卜,.uryIZMl*ru1Bu|EHiEf1111Jnq3-ifipr( (I.*1:Prtrwsparwi然(阳ttttu*dCh(9JQfS%br”(a.CnirjfifjritimbitsuffedTh(T)rdv4100.71JEEFInC.itfui*d.Oh( (01ofLttOhhyiacCD.MjDL?carlien呼眈声utedOh0)of8Tirubilp(OrW)fhwaqnrthlfmrwji|ifi即、liEwri*力(如G.hmt
18、loti.n.h野小I+HI*H1,TE;K1:Fft?convlitrmlg,farthltc?4evuldg13bytti2MAlLeeKfudrnnc-ianfEBtlurirl:LISS01f.caf.fiMLldfU4caif,!Hl11*1*1*二1二一tc七巴型1*124cMpui回口中第法温正展 Uuorn-induce18H如果在编译后出现以下提示信息*Bui|dfailed!*”如图 2-55 所示,即表示编译失败,你需要重新检查程序行的内容并再次进行编译,直到通过为止。接下来,我们要把编译成功的文件烧写到单片机中看一下程序运行的效果。首先将PICkit2 编程器连接至电脑
19、 USB 接口,用 ICSP 数据线连接 PlCkit2 编程器和最小系统板,编程器与 PC 及目标板的连接方法如图 2-56 所示。12-56编根咕内连接依次点击菜单栏上的ProgrammerfSelectProgrammerfPlCkit2”,将编程器设定为PICkit2,如图 2-57 所示。编程器设定好后,Output 窗口中的 PlCkit2 选项卡里会出现 PlCkit2 编程器准备好的提示,如图 2-58 所示。此时,如果编程器没有连接到电脑,则会有错误信息在这个窗口中出现。PlCkit2 成功连接后,你会发现在工具栏上,多了一组有趣的按钮,如图 2-59 所示。卜面分别介绍这些
20、按钮的功能。按钮:编程目标器件,用于把编译生成的 HEX 文件烧写到目标单片机中。按钮:读目标器件的存储器,用于读取单片机存储器中烧录的内容。按钮:读目标器件的 EEPROM 用于读取单片机 EEPROIW 储器中烧录的内容。按钮:校验目标器件的内容,用于检验烧写是否正确。按钮:擦除目标器件的存储器。按钮:校验目标器件存储器是否被擦除。按钮:将目标器件的 MCL 咫 1 脚电平置高,用于解除单片机的复位状态。按钮:将目标器件的 MCL 咫 1 脚电平置低,用于使单片机复位。按钮:重新建立与 PlCkit2 编程器的连接,用于当 PC 与 PlCkit2 编程器连接中断(如 US 哦意外拔出)时
21、,重新与编程器建立连接。点击编程目标器件(Programthetargetdevice)按钮,即可将编译生成的HEX 文件烧写到我们的最小系统板中,如图 2-60 所示。Output 窗口中的 PICkit2 选项卡里会有 PICkit2 编程器的擦除、烧写、重新准备好等一系列的动作提示,如图 2-61 所示。注意:PICkit2 编程器在编程结束后会继续操控目标单片机的 MCLRPGDPGC引脚。将 MCL 咫唧置为低电平,PGDPGC 弓 I 脚置高电平。MCL 咫 1 脚置低电平后,会使目标单片机在烧写完成后处于复位状态,这样可以确保程序不会意外执行。我们需要人为干预 MCL 咫 1 脚
22、,将其置为高电平,使单片机解除复位状态,这可以通过将目标器件的 MCL 咫 I 脚电平置高(BringtargetMCLRtoVdd)按钮来完成,即图 2-62 中箭头所指按钮。提示,如图 2-63 所示。激动人心的时刻终于到了,这时我们会发现最小系统板上与 RD0 相连接的 LED灯已经点亮了,具体状态如图 2-64 所示。看到你亲手点亮的这个流水灯,你是不是很有成就感呢?对,控制 PIC 就像控制家里的电灯一样简单,而且从你点亮这个流水灯开始,你已经入门了,继续努力,你会成为一个优秀的单片机工程师,加油!2.4.5PIC 入门编程实例接下来我们要让 RD0 和 RD1 端口驱动的流水灯交替
23、闪烁,间隔大约 1 秒钟的时间。为了方便起见,我们直接对 lesson2.c 的源文件内容进行修改,在程序中加入了延时函数,具体代码见代码清单 2-2。代码清单 2-2 交替闪烁的流水灯#include_PROG_CONFIG(1,0 xC100);PIC 的配置字 1_PROG_CONFIG(2,0 x0A16);PIC 的配置字 2点击按钮,解除目标单片机的复位状态,这个动作在Output 窗口中同样会有_PROG_CONFIG(3,0 x8100);PIC 的配置字 3_PROG_CONFIG(4,0 x0081);/PIC 的配置字 4_PROG_CONFIG(5,0 xC00F);P
24、IC 的配置字 5_PROG_CONFIG(6,0 xE00F);PIC 的配置字 6_PROG_CONFIG(7,0 x400F);/PIC 的配置字 7voiddelay(unsignedintt);/延时函数声明voidmain(void)/主函数TRISD=0 x00;/00000000,将 PORT 端口设为输出TRISE=0 xfe;/11111110,将 PORTEt 低位设为输出PORTE=0 x01;/00000001,PORTE 最低位输出 1,驱动流水灯公共端while(1)/主循环过写上面的两个小程序,你是不是对学习 PIC 已经有信心了。是的,单片机并不难学,关键在于
25、方法,现在你已经有了非常好的开始,后面的学习也会同样轻松。PORTD=0 x01;/00000001,PORTDdelay(500);PORTD=0 x02;/00000010,PORTDdelay(500);voiddelay(unsignedintt)/unsignedintx,y;for(x=t;x0;x-)for(y=100;y0;y-)程序经再次编译后烧写到单片机中,最低位输出 1,点亮最低位流水灯次低位输出 1,点亮次低位流水灯延时函数运行后即可发现两个 LED 灯交替闪烁。通3.1.1 使用软件模拟器使用软件模拟器来调试程序非常简单,只需打开一个写好的程序并成功编译后,即可对其进
26、行模拟调试。1)在菜单栏选择Project 一 Open”选项,如图 3-1 所示。0冲4|UntitledfQSetActiveProject,Quklcbuildnofile?踹.西d十匚辛吧包图3打开.卜?9丽2)选择我们已经写好的流水灯项目,点击“打开”按钮,如图 3-2 所示。3)使用工具栏上红色的“编译”按钮对程序进行编译,在菜单栏里找到“DebuggerSelectTool”选项,勾选“MPLABSIM”选项,将调试器设定为“MPLABSIM”,如图3-3 所示。NewOpe力CieFigdifVifrv*ffrDprFDebuggerProgrammefTool?CProjec
27、tWizard.4)工具栏上会多出一排调试工具按钮,如图 3-4 所示。困N冏讯1具长4按钮:全速运行(Run)。程序从当前位置全速运行,MPLABDE 软件左下角会有 Running 进度条显示程序运行的状态。?按钮:暂停(Halt)。当程序全速运行或连续单步运行时,点击“Halt”按钮会让程序在其正在运行的位置上停止。按钮:连续单步运行(Animate)。程序按顺序自动单步运行,每次单步运行后间隔一小段时间。通过连续单步运行,你可以更加清晰地查看每一条指令的运行结果。按钮:单步运行(StepInto)。单步跟踪运行一条指令,每次按下该按钮,程序都会执行一条指令,如果待运行的语句是调用子函数
28、的语句,使用“StepInto按钮将会跟踪进入子函数的内部运行程序。按钮:单步跳过(StepOver)。与StepInto”功能相似,每按下一次该按钮,程序都会执行一条指令,但在运行子函数时,不会进入子函数内部,而是将子函数作为一步执行完毕,程序指针指向下一条语句。按钮:单步跳出(StepOut)。意思是单步运行并跳出子程序,如果程序当前运行在子函数内部,使用“StepOut”按钮将会全速完成子函数的运行,程序指针指向下一条语句。按钮:复位(Reset)。程序从复位地址 0 x0000 处开始重新执行。如果程序目前是停止状态,复位后程序指针指向复位地址等待运行;如果程序目前是运行状态,复位后程
29、序从复位地址处开始运行。按钮:断点设置(Breakpoints)。用于删除、使能或禁用断点。5)我们需要将软件模拟器里的晶振频率与单片机实际工作时的晶振频率设定一致,才能正确地模拟出时间值。在菜单栏上选择DebuggerSettings”,打开“SimulatorSettings对话框,在Osc/Trace”选项卡里的aProcessorFrequency项里,将晶振频率由默认的 20MHz 更改为 4MHz 如图 3-5 所示。匚口ari,BLetliintLe11够工OHfTr*cGfria】0#MH;茶KHzfuKeDpiuniI/TianAl丽|1K-45590KIBiEMtanTMU
30、SIANFijiKiWtMtw图 a 电拓口0m6)另外在菜单栏“ConfigureSettings”选项中的Debugger”选项卡里可以做以下设置,如图 3-6 所示。Ejcttrultdht-prRerfli3ricetosheoecyirjnijdrawlindLcrAL*2 蚌Jgsit厚+市1:Mmr二Mm(See卜山f*rio*nwftcnAbaJsidee#Khl5匕匚口口|箪Tini魏nHofiGNiemcemdeLimseJI匕IhkiIUJM勾选“Resetdevicetothebeginningofmainfunction”选项,当我们点调试工具“复位”按钮后,程序指针
31、指向主函数入口处,否则复位后程序指针会指向汇编源文件开始处。勾选SteppingBehavior”下的Trackdebuggerlocationinthesourcecode”选项,在调试开始时,会调用汇编源文件,并跟踪程序在汇编源文件中的运行位置。7)点击调试工具栏上的单步按钮开始对程序进行单步调试,如图 3-7 所示。图34漏试的H庙轲僧N助SS-XOxomwuid力小9所日IfilIWOMJvoiil广4一一红状麻亚tCTXzcomU5ur里f上L二,0A Tmaw.EIJHTfl1-OQOGMiltTRiSD-C-OO才问L&E-CPOfiTE-aiwh*ke1OQ8RjRTDsMintlWdPORTEfHdIOMI.PORTE49RL位如果在菜单栏“ConfigureSettings”选项中的Debugger”选项卡里勾选了Trackdebuggerlocationinthesourcecode在调试的过程中,我们需要使用观察窗口来查看寄存器的状态、时间值、变量值等。选择菜单栏上的“View 一 SpecialFunctionRegisters”选项可以打开SpecialFunctionRegisters”窗口,通过该窗口我们可以查看各寄存器的状态,如图所示。mHtseMei1Pm口PCSTl二算州rei期TJPC3TZ“二:.MfiTCssscanF”MML
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字智慧方案5494丨商业办公综合体智能化系统汇报方案
- 液压马达的振动与噪音抑制考核试卷
- 环境地质工程课件
- 《能量分配器件》课件
- 2025年嘧菌酯合作协议书
- 小学劳动教育意义及建议
- 2025年工程瑞雷波仪项目建议书
- 2025年环境控制系统项目合作计划书
- 2025年重症监护临床信息系统项目建议书
- 医学显微镜技术原理与应用
- 新疆可克达拉职业技术学院招聘事业单位人员笔试真题2024
- 重庆金太阳2025届高三5月联考英语及答案
- 护理事业编试题及答案
- 全国新能源汽车关键技术技能大赛理论知识竞赛题库
- 2025届贵州省遵义第四中学高考英语全真模拟密押卷含解析
- 人工气道湿化管理
- 2025届湖北省武汉市高中毕业生4月调研考试英语试题答案
- 人工智能在食品检测中的创新应用探讨
- 2025-2030中国骨形态发生蛋白2行业市场发展趋势与前景展望战略研究报告
- 2025年高考语文备考之新题型:成语填空专项训练(含答案)
- 职场沟通职场沟通与人际关系处理知到课后答案智慧树章节测试答案2025年春山东管理学院
评论
0/150
提交评论