PIC单片机开发的几个问题

PIC单片机开发的几个问题,第1张

  PIC单片机在国内日益流行,本文介绍Microchip PIC系列单片机开发过程中软、硬件设计的一些经验、技巧。

  由美国Microchip公司生产的PIC系列单片机,由于其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域,本文总结了作者PIC单片机开发过程中的一些经验、技巧,供同行参考。

  1 怎样进一步降低功耗

  功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于2mA)。为进一步降低功耗,在保证满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在3V,32kHz下工作,其电流可减小到15μA),但较低的工作频率可能导致部分子程序(如数学计算)需占用较多的时间。在这种情况下,当单片机的振荡方式采用RC电路形式时,可以采用中途提高工作频率的办法来解决。

  另外,进一步降低功耗可充分利用“sleep”指令。执行“sleep”指令,机器处于睡眠状态,功耗为几个微安。程序不仅可在待命状态使用 “sleep”指令来等待事件,也可在延时程序里使用(见例1、例2)。在延时程序中使用“sleep”指令降低功耗是一个方面,同时,即使是关中断状态,Port B端口电平的变化可唤醒“sleep”,提前结束延时程序。这一点在一些应用场合特别有用。同时注意在使用“sleep”时要处理好与WDT、中断的关系。

  例1(用Mplab-C编写) 例2(用Masm编写)

  Delay() Delay

  { ;此行可加开关中断指令

  /*此行可加开关中断指令*/ movlw.10

  for (i=0; i《=10; i ) movwf Counter

  SLEEP(); Loop1

  } Sleep

  decfsz Counter

  goto Loop1

  return

  2 注意INTCON中的RBIF

  INTCON中的各中断允许位对中断状态位并无影响。当PORT B配置成输入方式时,RB《7:4》引脚输入在每个读 *** 作周期被抽样并与旧的锁存值比较,一旦不同就产生一个高电平,置RBIF=1。在开 RB中断前,也许RBIF已置“1”,所以在开RB中断时应先清RBIF位,以免受RBIF原值的影响,同时在中断处理完成后最好是清RBIF位。

  3 用Mplab-C高级语言写PIC单片机程序时要注意的问题

  3.1 程序中嵌入汇编指令时注意书写格式 见例3。

  例3

  …………

  while(1) {#asmwhile(1) {

  …… #asm /*应另起一行*/

  #endasm ……

  }/*不能正确编译*/ #endasm

  …… }/*编译通过*/

  ……

  当内嵌汇编指令时,从“#asm”到“endasm”每条指令都必须各占一行,否则编译时会出错。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2527755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存