- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PICC编程基础
PICC 编程基础
注:本组文章主要为网友 CYPOK 的论著,由我们收集整理,特对 CYPOK 表示感谢 !
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
代码的头文件一定要有#includepic.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,不然会出错。
C 语言:
TMR0=200;//无论在任何页面都不会出错。
可以看出来 C 是很直接了当的。并且最大好处是操作一个寄存器时候,不用考虑页面的问题。一切由
C 自动完成。
二:怎么位操作?
汇编中的位操作是很容易的。在 C 中更简单。C 的头文件中已经对所有可能需要位操作的寄存器的每
一位都有定义名称:
如:PORTA 的每一个 I/O 口定义为:RA0、RA1、RA2。。。RA7。OPTION 的每一位定义为:PS0、
文档评论(0)