- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PICC_C语言基础和特点PICC_C语言基础和特点
◆其中的函数名“ISR”可以改成任意合法的字母或数字组合; ◆其入口参数和返回参数类型必须是“void”型,亦即没有入口参数和返回参数; ◆中间必须有一个关键词“interrupt”。 ◆中断函数可以被放置在源程序的任意位置,因为已有关键词“interrupt”声明。 ◆PICC在最后进行代码链接时会自动将其定位到0004H中断入口处,实现中断服务响应。 ◆编译器也会实现中断函数的返回指令“RETFIE”。 一个简单的中断服务示范函数如下: void interrupt ISR(void) //中断服务程序 { if (T0IE T0IF) //判断TMR0中断 { T0IF=0; //清除TMR0中断标志 //在此加入TMR0 中断服务 } if (TMR1IE TMR1IF) //判断TMR1中断 { TMR1IF=0; //清除 TMR1 中断标志 //在此加入TMR1中断服务 } } //中断结束并返回 ※提示: ◆PICC会自动加入代码实现中断现场的保护,并在中断结束时自动恢复现场,所以编程员无需象编写汇编程序那样加入中断现场保护和恢复的额外指令语句。 ◆但如果在中断服务程序中需要修改某些全局变量时,是否需要保护这些变量的初值将由编程员自己决定和实施。 ◆用C语言编写中断服务程序必须遵循高效的原则: ◆代码尽量简短,中断服务强调的是一个“快”字; ◆中档系列PIC单片机的中断入口只有一个,因此整个程序中只能有一个中断服务函数。 ◆避免在中断内使用函数调用。虽然PICC允许在中断里调用其它函数,但为了解决递归调用的问题,此函数必须为中断服务独家专用。 ◆既如此,不妨把原本要写在其它函数内的代码直接写在中断服务程序中。 ◆避免在中断内进行数学运算。 ◆数学运算将很有可能用到库函数和许多中间变量,就算不出现递归调用的问题,光在中断入口和出口处为了保护和恢复这些中间临时变量就需要大量的开销,严重影响中断服务的效率。 ◆PICC提供了较完整的C标准库函数支持,其中包括数学运算函数和字符串操作函数。 ◆在程序中使用这些现成的库函数时需要注意的是入口参数必须在bank0中。 2.3.4 标准库函数 ◆如果需要用到数学函数,则应在程序前“#include math.h”包含头文件; ◆如果要使用字符串操作函数,就需要包含“#include string.h”头文件。 ◆在这些头文件中提供了函数类型的声明。通过直接查看这些头文件就可以知道 PICC 提供了哪些标准库函数。 ◆C语言中常用的格式化打印函数“printf/sprintf”用在单片机的程序中时要特别谨慎。 ◆printf/sprintf是一个非常大的函数,一旦使用,程序代码长度就会增加很多。 ◆PICC提供了相关的预处理指令以实现在源程序中定义单片机的配置字和标记单元。 2.4 PICC 定义特殊区域值 ◆在源程序中定义 PIC 单片机工作配置字的重要性在前面章节中已经阐述。在用 PICC写程序时同样可以在C源程序中定义,具体方式如下: _ _CONFIG (HS UNPROTECT PWRTEN BORDIS WDTEN); 2.4.1 定义工作配置字 ◆上面的关键词“_ _CONFIG”(注意前面有两个下划线符)是专门用于芯片配置字的设定; ◆后面括号中的各项配置位符号在特定型号单片机的头文件中已经定义(注意不是 pic.h头文件); ◆相互之间用逻辑“与”操作符组合在一起。这样定义的配置字信息最后将和程序代码一起放入同一个HEX文件。 ◆在这里列出了适用于16FXX系列单片机配置位符号预定义,其它型号或系列的单片机配置字定义方式类似,使用前查阅一下对应的头文件即可。 /*振荡器配置*/ #define RC 0x3FFF // RC 振荡 #define HS 0x3FFE // HS 模式 高速晶体/陶瓷振荡器 #define XT 0x3FFD // XT 模式 晶体/陶瓷振荡器 #define LP 0x3FFC // LP 模式 低功耗振荡器 /*看门狗配置*/ #define WDTEN 0x3FFF //看门狗打开 #define WDTDIS 0x3FFB //看门狗关闭 /*上电延时定时器配置*/ #define PWRTEN 0x3FF7 //上电延时定时器打开 #define PWRTDIS 0x3FFF
您可能关注的文档
- Meta标签与有哪些信誉好的足球投注网站引擎优化.doc
- MGTY250-600-1.1D电牵引采煤机培训手册(小).doc
- MIS新编-第1章.ppt
- module 2 language points.doc
- Modernism, PPT.ppt
- Mid-term review 初中8年级.ppt
- Module 1 Europe Period Four Grammar:Passive voice课件(外研版必修3,课标通用).ppt
- Module 3 Music Period Four Grammar.ppt
- Module 5 Newspapers and Magazines Period 3 Grammar 课件(外研版必修2).ppt
- Module 6 Period Four Grammar.ppt
有哪些信誉好的足球投注网站
文档评论(0)