文档介绍:PIC单片机开发应用的若干问题
朱铭
(福建信息职业技术学院,福州 350003)
摘要:PIC系列单片机在电子设备中应用日趋广泛,本人在应用Microchip PIC系列单片机开发过程中小结了一些软、硬件设计的经验、技巧。
关键词: Microchip    单片机     功耗    MPLAB-C高级语言编程
中图分类号:TP 文献标识码:A
Some questions on the development of PIC ingle-chip
Zhu ming
(Fujian College of Information Technology,fuzhou 350003)
Abstract: PIC series single-chips are ing 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以下。)为了进一步降低功耗,在保证满足工作要求的前提下可以采取以下方法:
图1 提高工作频率的方法
首先可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在3V,32kHz下工作,其电流可减小到15μA),但较低的工作频率可能导致部分子程序(如数学计算)需占用较多的时间。在这种情况下,当单片机的振荡方式采用RC电路形式时,可以采用程序运行的中途提高工作频率的办法来解决。具体做法是在闲置的一个I/O脚(如RB0)和OSC1管脚之间跨接一电阻(R1),如图1所示。低速状态置RB0=0,需进行快速运算时先置RB1=1,即RB0输出低电平时其RC振荡器的RC常数变大,当RB0输出高电平时其RC常数变小,充放电速度变快,工作频率增高,运算时间减少,运算结束又置RB1=0,进入低速、低功耗状态。工作频率的变化量依R1的阻值而定(注意R1不能选得太小,以防振荡电路不起振,一般选取大于5kΩ)。
第二, 进一步降低功耗可充分利用“SLEEP”指令。执行“SLEEP”指令,机器处于睡眠状态,功耗为几个微安。程序不仅可在待命状态使用“SLEEP”指令来等待事件,也可在延时程序里使用(见例1、例2)。在延时程序中使用“SLEEP”指令降低功耗是一个方面,同