本文摘要:PIC单片机在国内越来越普及。

亚博官方登陆

PIC单片机在国内越来越普及。本文阐述了在微芯片系列单片机的研发过程中,软硬件设计的一些经验和技巧。美国微芯片公司生产的PIC系列微控制器因其超小型、低功耗、低成本等特点,已广泛应用于工业控制、仪器仪表、通信、家电、玩具等领域。本文总结了作者在PIC单片机研发中的经验和技巧,可供同行参考。

1如何进一步降低功耗是电池供电仪器最重要的考虑因素。PIC16C系列单片机功耗低(5V、4MHz波动频率下工作电流大于2mA)。

为了进一步降低功耗,在保证满足工作拒绝的前提下,可以采用降低工作频率的方法。工作频率的提高可以大大降低功耗(比如PIC16C在3V、32kHz工作时电流可以提高到15A),但是工作频率越低可能会导致一些子程序(比如数学计算)空闲的时间越长。这种情况下,当单片机的波动方式为RC电路时,中间提高工作频率就可以解决问题。具体方法是在空闲输入输出引脚(如RB1)和OSC1引脚之间连接一个电阻(R1),如图1右图所示。

RB1=0在短距离状态下改变。当需要进行慢速操作时,再次改变RB1=1。电池运行时,电容电压下降缓慢,工作频率增加,工作时间增加。

操作完成后,再次改变RB1=0,改变短距离低功耗状态。工作频率的变化取决于R1的电阻值(注意R1不能选得太小,以免振荡电路振动,一般选5k以内)。另外,进一步降低功耗可以充分利用睡眠指令。

继续执行睡眠指令,机器处于睡眠状态,功耗几微安。该程序不仅可用于睡眠指令等待事件的待机状态,还可用于延迟程序(见例1和例2)。

降低延迟程序中睡眠指令的功耗是一个方面。同时,即使在中断关闭状态下,PortB端口级别的变化也可以使苏醒提前睡眠并结束延迟程序。这在某些应用中尤其简单。同时,注意与WDT的关系以及当它被用于睡眠时的中断。

亚博官方登陆

例1(写在Mplab-C)例2(写在Masm)delay()delay {;本特殊断电指令/*本特殊断电指令*/movlw . 10 for(I=0;I 《=10;i)movwfCounter  SLEEP();Loop1  }Sleep  decfszCounter  gotoLoop1  return  2留意INTCON中的RBIF位  INTCON中的各中断容许位对中断状态位并无影响。当PORTB配备成输出方式时,RB《7:4》插槽输出在每个读取操作周期中进行采样,并与原始锁定存储值进行比较。

一旦不同,就会产生高电平,改变RBIF=1。也许RBIF在RB中断前已经复位为1,所以RBIF位应该在RB中断期间再次置位,以避免受到原始RBIF值的影响,最坏的情况是在中断处理完成后置位RBIF位。3.用Mplab-C高级语言3.1编写PIC单片机程序需要注意的问题在程序中映射编译指令时要注意编写格式。

见例3。例3while(1){#asmwhile(1){#asm/*不应开始新的一行*/#endasm}/*编译器不能精确*/#endasm}/*编译器在嵌入编译指令时传递*/从#asm到endasm的每条指令必须占用一行,否则编译器会出错。3.2乘法和乘法最安全的响应方法如例4所示。例4 # include 《16c71.h》 # include 《math.h》无符号inta,b;unsignedlongcvoid main(){ a=200;b=2;c=a * b;}/*得到精确的结果c=400*/因为Mplab-C用88乘法编译c=a * b,并将单字节结果返回给C,结果的阻塞被忽略。

改变上例中C=A * B;表达式为c=a;c=c * b;特别安全(乘法的处置同上)。

本文关键词:亚博,亚博官方登陆,深圳市酷尔电子有限公司

本文来源:亚博-www.szqoor.com