PIC单片机开发应用的若干问题.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PIC单片机开发的若干问题:PIC系列单片机,本Microchip PIC系列单片机开发过程中一些软、硬件设计的经验、技巧。: Microchip??? 单片机?? ? 功耗 ??? MPLAB-C高级语言编程Some questions on the development of PIC ingle-chip Zhu ming (Fujian College of Information Technology,fuzhou 350003) Abstract: PIC series single-chips are becoming widely used in electronic devices. During the researching process on the application of Microchip PIC series, combining software and hardware designing experience and skills, some conclusions are drawn. Keywords: Microchip; single-chip; power consuming; MPLAB-C advanced language; programming 由美国Microchip公司生产的PIC系列单片机,由于其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域,本文总结了我在PIC单片机开发过程中的一些经验、技巧,供参考。怎样进一步降低功耗功耗,在电池供电的中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡工作电流2mA,在睡眠模式下耗电可以低到1uA以下。)为了进一步降低功耗,在保证满足工作要求的前提下首先可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在3V,32kHz下工作,其电流可减小到15μA),但较低的工作频率可能导致部分子程序(如数学计算)需占用较多的时间。在这种情况下,当单片机的振荡方式采用RC电路形式时,可以采用中途提高工作频率的办法来解决。具体做法是在闲置的一个I/O脚(如RB)和OSC1管脚之间跨接一电阻(R1),如图所示。低速状态置RB=0,需进行快速运算时先置RB1=1,工作频率增高,运算时间减少,运算结束又置RB1=0,进入低速、低功耗状态。工作频率的变化量依R1的阻值而定(注意R1不能选得太小,以防振荡电路不起振,一般选取大于5kΩ)。 进一步降低功耗可充分利用“”指令。执行“SLEEP”指令,机器处于睡眠状态,功耗为几个微安。程序不仅可在待命状态使用“”指令来等待事件,也可在延时程序里使用(见例1、例2)。在延时程序中使用“”指令降低功耗是一个方面,同时,即使是关中断状态,端口电平变化可唤醒“”,提前结束延时程序。这一点在一些应用场合特别有用。同时注意在使用“SLEEP”时要处理好与WDT、中断的关系。 第三,为了在睡眠模式下使整机功耗在进一步的降低,在进入睡眠模式之前,把所有的I/O端口根据具体电路情况设置为高电平或低电平,并且不能让外电路从I/O端口汲取电流;关闭外部相关电路的工作时钟;禁止ADC模块的工作;对高阻输入的I/O引脚,应该在外部上拉成高电平或下拉成低电平,以免悬空状态下的干扰信号进入引起开关电流;将定时器/计数器TMR0的外部信号输入端T0CKI脚接高电平或低电平;此外还应考虑启用端口RB内部弱上拉功能,以利于降低功耗。 第四,在PIC单片机的实际应用中,在芯片进入睡眠状态(低功耗模式)后,其振荡器外接引脚(OSC1与OSC2)处于悬空状态,这使芯片的睡眠功耗上升,因此可以在振荡器外接引脚OSC1和Vss(地)之间接一个10M的电阻如图2所示,可防止在系统时钟停止振荡时OSC1进入悬空状态,并且不会影响振荡器的正常工作。 二、注意INTCON中的RBIF位INTCON中的各中断允许位对中断状态位并无影响。当配置成输入方式时,引脚输入在每个读操作周期被抽样并与旧的锁存值比较,一旦不同就产生一个高电平,置RBIF=1。在开RB中断前,也许RBIF已置“1”,所以在开RB中断时应先清RBIF位,以免受RBIF原值的影响,同时在中断处理完成后最好是清RBIF位。用MPLAB-C高级语言写PIC单片机程序时要注意的问题程序中嵌入汇编指令时注意书写格式? 见例3。 当内嵌汇编指令时,从“#asm”到“endasm”每条指令都必须各占一行,否则编译时会出错。加法、乘法的最安全的表示方法?? 见例4#include<16c71.h> #include<math.h> unsigned int a, b; unsigned lon

文档评论(0)

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

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

1亿VIP精品文档

相关文档