pic单片机_c编程技巧.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.. .. .. PIC 单片机 C 编程技巧 PIC 单片机 C 编程技巧 1、PICC 和MPLAB 集成 PICC 和MPLAB 集成: PICC 有自己的文本编辑器 ,不过是 DOS风格的,看来PICC的工程师要专业冷到酷底了 ... 大家大可不必用它 ,如果你没什么癖好的话 ,你不会不用 UltraEdit 吧? 1:建立你的工作目录 : 建议在C盘根目录下建立一个以 A开头的文件夹做为工作目 录.因为你会发现它总是在你查找文件时候第一个跳入你眼中 . 2:MPLAB 调用PICC.( 以MPLAB5.7 版本为例子) 启动MPLAB. 在 Project--Install Language Tool: Language Suitehi-tech picc Tool Name PICC Compiler . 专业专注 . .. .. .. Executable c:hi-picinpicc.exe ( 假如你的 PICC 是默认 安装的) 选 Command-line 最后OK. 上面这步只需要设定一次 ,除非你重新安装了 MPLAB. 3:创建你的项目文件 :(假如你实现用 EDIT 编辑好了一个叫AA.C 的C代码文件 ) Project--New Project--File Namemyc (假如我们把 项目文件取名字叫 MYC.PJT) 右边窗口当然要选择中你的工作目录 .然后OK. 4:设定你的 PICC 工作参数 : Project--Edit Project 上面4个栏目就用默认的 ,空的也就让它空着 ,无所谓的 . 需要修改的是 : Development Mode 选择你的 PIC型号.当然要选择 Mplab SIM Simulator 让你可以用软件仿真 . Language Tool SuiteHI-TECH PICC 上面的步骤 ,你可能会遇见多个提示条 ,不要管它 ,一路确 定. . 专业专注 . .. .. .. 下面是PICC 编译器的选择项 : 双击 Project Files 窗口里面的 MYC.HEX, 出现一个选择栏目.命令很多 ,大家可以看 PICC 文本编辑器里面的 HELP,里面有详细说明 . 下面就推荐几个常用也是建议用的 : Generate debug info 以及下面的 2项. Produce assembler list file 就在它们后面打勾即可 ,其它的不要管 ,除非你有特殊要求 . 5:添加你的 C代码文件 : 当进行了前面几步后 ,按 Add Node 找到AA.C 文件就OK 了. 6:编译C代码: 最简单的一步 :直接按下 F10. 编译完后 ,会出现各种调试信息 .C 代码对应的汇编代码就是工作目录里面的 AA.IST, 用EDIT 打开可以看见详细的对比 . 7:其它,要是一切都没问题 ,那么你就可以调试和烧片了 ,和以往操作无异 . 2、如何从汇编转向 PICC 首先要求你要有 C 语言的基础 。PICC 不支持 C++ ,这对于习 . 专业专注 . .. .. .. 惯了 C++ 的朋友还得翻翻 C 语言的书 。C 代码的头文件一定要有 i ncludepic.h ,它是很多头文件的集合 ,C 编译器在 pic.h 中 根据你的芯片自动载入相应的其它头文件 。这点比汇编好用 。载入的头文件中其实是声明芯片的寄存器和一些函数 。顺便摘抄 一个片段 : static volatile unsigned char TMR0 @ 0x01; static volatile unsigned char PCL @ 0x02; static volatile unsigned char STATUS @ 0x03; 可以看出和汇编的头文件中定义寄存器是差不多的 。如下: TMR0 EQU 0X01 ; PCL EQU 0X02 ; STATUS EQU 0X03 ; 都是把无聊的地址定义为大家公认的名字 。 一:怎么附值 ? 如对 TMR0 附值,汇编中 : MOVLW 200 ; MOVWF TMR0 ; 当然得保证当前页面在 0,不然会出错 。 语言: . 专业专注 . .. .. .. TMR0=200 ; // 无论在任何页面都不会出错 。 可以看出来 C 是很直接了当的 。并且最大好处是操作一个寄存器时候,不用考虑页面的问题 。一切由 C 自动完成 。 二:怎么位操作 ? 汇编中的位操作是很容易的 。在 C 中更简单 。C 的头文件中已 经对所有可能需要位操作的寄存器的每一位都有定义名称 : 如:PORTA 的每一个 I/O 口定义为 :RA0 、RA1 、RA2 。。。 RA7 。OPTION 的每一位定义为 :PS0、 P

文档评论(0)

eyf3984 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档