- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PICC18使用说明
PICC18使用说明
2007-5-18?
翻译人????????? :张元南
指导校对????? :
翻译修改时间:2007-4-20
地点????????????? :中国福州
重要说明????? :仅就PICC18V9.50PL3安装目录下的使用手册的编程使用最紧密相关的部分做翻译。本翻译纯粹为本人业余兴趣所致。本人不承担因翻译错误、偏差带来的任何后果。并且保留在不做通知的情况下升级本翻译文档的权利。请查阅英文原始版本说明书,本文仅做入门参考。另外,本文翻译的目的在于加深对PICC18的认识和理解,所以将大量采用意译而非逐字翻译。故可能和英文原版有较大的篇幅差别。
版本说明????? :增加了对指针的翻译,中断处理部分的翻译。
3.1.1 与ANSI标准C的区别
受PIC18 MCU的硬件限制,PICC18不支持函数的递归调用。
3.1.2
同样的C代码可能在不同版本的编译器或者不同的编译器之间会编译成不同的汇编代码。
3.2.1
编辑安装目录下的pic-18.ini文件,可以增加用户自定义的新的PIC18系列的MCU。
3.2.2 CONFIG的操作
PICC18可以在源代码中配置CONFIG,由于PIC18 MCU的CONFIG有多个字节,所以采用如下语法:
__CONFIG(2, BW8 PWRTDIS WDTPS1 WDTEN);
注意,前面是两个下划线,这是一个宏__CONFIG()。该宏的定义在系统文件 htc.h中,根据PICC18编译器特性,如果再每个源文件中都使用了#include pic18.h,使用该宏则可不必再写#include stc.h。这个宏,必须在函数外使用。
3.2.3 ID区定义
和CONFIG区操作类似,采用如下语法:
__IDLOC(15F01);
注意,前面是两个下划线,这是一个宏__CONFIG()。该宏的定义在系统文件 htc.h中,根据PICC18编译器特性,如果再每个源文件中都使用了#include pic18.h,使用该宏则可不必再写#include stc.h。这个宏,必须在函数外使用。
EE区操作
很多时候,需要在MCU运行前,事先在EE区烧入一定数据,MCU上电后,则可从EE区读出相关数据,执行相应操作。这个操作和上面的CONFIG操作类似,采用一个系统定义的宏,采用如下语法:
__EEPROM_DATA(0, 1, 2, 3, 4, 5, 6, 7);
注意,前面是两个下划线,这是一个宏__CONFIG()。该宏的定义在系统文件 htc.h中,根据PICC18编译器特性,如果再每个源文件中都使用了#include pic18.h,使用该宏则可不必再写#include stc.h。这个宏,必须在函数外使用。
使用这个宏,必须也只能一次性初使化8个字节。而且第一次调用这个宏就是只能是在0地址开始初使化。从0初使化到7,要想再初使化8个字节,就再调用一次。比如如下:
__EEPROM_DATA(0, 1, 2, 3, 4, 5, 6, 7);
__EEPROM_DATA(8,9,10,11, 12,13,14,15);
即使不想初使化前8个字节,只初使化第10个字节,也要采用上述的写法从0写到15。不过一般没有必要特意从某个地址开始初使化EE区。建议我们不要去挑战编译器的组织方式,把有这样的系统调用宏全部放在主文件中,以便于修改。
如果是在MCU的运行过程中需要对EE区操作,则可以考虑在程序中使用自己编写读写EE区函数,或者采用系统定义的一个宏(不是系统函数)。
写EE区address字节一个valus值,如下:
EEPROM_WRITE(address,value);
从EE区的address地址读回值,存入variable变量,如下:
variable=EEPROM_READ(address); variable 为自定义的unsigned char变量。
这些宏为了保证操作,在过程中关断了总中断GIE。这可能会导致某些情况下一些实时控制系统崩溃——由于中断不能即时响应。比如发电机控制。PIC18 MCU写EE区一个字节一共需要8MS,插除4MS,写4MS。
FLASH操作
用来在程序中写COPY? FLASH区的一个块到另外一个块:
flash_write(source_pointer, length, dest_pointer);
读FLASH(程序)区的一个字节
variable=flash_read(address);
3.2.5外扩程序区操作
用PIC18的MCU,基本上无人使用它提供的这个功能。本章节不翻译。有兴趣请查阅英文原版。如果一定要外扩,建议使用51或者增强型51MCU。
3.2.6位指令
PICC18会尽可能使用位指令来提高编译
您可能关注的文档
最近下载
- 湖南省长沙市2025届高三新高考适应性考试语文试题及答案解析.pdf VIP
- 正方体的11种展开图--A4直接打印版.docx VIP
- 《商品学》(第2版)1-11章题库章节练习题答案全书测试题参考答案含原题.pdf VIP
- 23ZG210预应力高强混凝土空心方桩.pdf
- 心理咨询师考试发展心理学知识习题.docx VIP
- 02S515排水检查井图集 .docx VIP
- (高清版)DG∕TJ 08-2165-2015 建设项目交通影响评价技术标准.docx VIP
- 3.3.5患者参与医疗安全(达B档).doc VIP
- 道口开设施工合同5篇.docx VIP
- 九一八国旗下演讲稿《勿忘国耻吾辈自强》.docx VIP
文档评论(0)