1(9页).docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1(9页)

《PICC编译器开发PIC系列单片机的代码》如下: . Develop Codes of PIC series Microcontrollers Using PICC Complier 关键词:PIC PICC编译器 汇编语言 Hi-Tech Key Words: PIC PICC Complier Assembly Language Hi-Tech 摘 要:介绍了PIC系列单片机C语言的发展,并以HI-TECH Software公司的HI-TECH PICC为例介绍了PICC编译器的特点和用其开发PIC系列单片机时的应注意的一些问题。 Abstract: The article introduces the developing process of C language used in PIC series microcontrollers, explains the features of HI-TECH PICC, one kind of PICC complier manufactured by HI-TECH Software. It also gives some notes on developing PIC utilizing HI-TECH PICC. 前言 目前在市场上应用最广泛的应该属于8位单片机,Microchip Technoloogy公司推出的8位PIC系列单片机目前在国内市场上深受用户欢迎,已经逐渐成为单片机应用的新潮流,但遗憾的是,目前国内介绍它的C语言开发工具的书籍和文章却比较少,而且用的人也不多,广大的程序员在用其开发的过程中都在慢慢摸索,可能会走一些弯路,笔者最近在用PIC的C语言时就遇到了好些问题,在这里笔者想就最近一段时间用PIC的C语言的一些经验和广大的底层软件程序员做一下交流和介绍,希望本文对用PICC开发PIC系列单片机的人有所帮助。 目前在国内用的比较多的是Hi-Tech的HI-TECH PICC编译器,而且目前市场上一些国内的PIC单片机仿真器也开始支持HI-TECH PICC编译格式,因此本文主要以Hi-Tech的PICC为基础介绍一下PIC的C语言的基本特点。 HI-TECH PICC的C语言开发工具的语言特点 PICC的C语言按ANSI C来定义,并进行了C语言的扩展,PICC和ANSI C有一个根本的区别就是PICC不支持函数的递归调用,这是因为PIC单片机内的堆栈大小是由硬件决定的,资源有限,所以不支持递归调用。它的数据也遵从标准C的数据结构,PICC的数据结构是以数据类型的形式出现的。PICC编译器支持的数据类型有位类型(bit)、无符号字符(unsigned char)、有符号字符(signed char)、无符号整形(unsigned int)、有符号整形(signed int)、无符号长整型(unsigned long)、有符号长整型(signed long)、浮点(float)和指针类型等,需要注意的是,PICC支持的多字节数据都采用低字节在前,高字节在后的原则,即一个多字节数,比如int型,在内存单元中存储顺序为低位字节存储在地址低的存储单元中,高位字节存储在地址高的存储单元中,程序员在用union定义变量时一定要注意这一特点。 PIC的C语言变量分为局部变量和全局变量,所有变量在使用前必须先定义后使用。全局变量是在任何函数之外说明的、可被任意模块使用的、在整个程序执行期间都保持有效的变量;局部变量在函数内部说明,局部变量有两种:自动变量和静态变量,缺省类型为自动变量,除非明确将其声明为静态变量,而且,所有的自动变量都被分配在寄存器页0,所以bank限定词不能用于自动变量,但可以用于静态的局部变量,当程序退出时,自动变量占用的空间释放,自动变量也就失去意义;静态变量是一种局部变量,因此只在声明他的函数内部有效,但它占用固定的存储单元,而这个存储单元不会被别的函数使用,因此其它函数可以通过指针访问或修改静态变量的值;静态变量在程序开始只初始化一次,因此若需只在某函数内部使用一变量,而又希望其值在2次函数调用期间保持不变,为实现程序模块化,则可将其声明为静态变量。例如以下声明中,有些为合法,有些为非法: void max(void) { unsigned char var1; //合法声明 unsigned char bank1 var2; //非法声明 static unsigned char bank1 var3; //合法声明 unsigned char var4 = 0x02; //合法声明,每次调用都初始化 static unsigned char bank1 var5 = 0x02

文档评论(0)

heti94575 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档