工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->微机单片机电路图->单片机综合电路图->PIC16C71/PIC16C84单片机应用中问题和对策

PIC16C71/PIC16C84单片机应用中问题和对策

作者:dolphin时间:2011-05-05

福州高奇电子科技有限公司 李东星 陈小牧

一:PIC16C71的问题和对策

问题1:在芯片进入低功耗睡眠模式 (SLEEP MODE)后,其振荡脚将处于浮态,这将使芯片的睡眠功耗上升,比原手册中的指标高了10μA以上。

对策:在振荡脚OSC1和地 (GND)之间加一10MΩ电阻可防止OSC1进入浮态,且不会影响正常振荡。

问题2:RA口方向寄存器TRISA目前只是一个4位寄存器,对应于RA0~RA3,并非手册中所言是8位寄存器,对应于RA0~RA4,即RA4并没有相应的输入/输出方向控制位,它是一个具有开极输出,施密特输入I/O脚。

对策:避免使用对RA口进行读-修改-写指令(如BCF RA, BSF RA),以免非意愿地改变RA4的输入/输出状态。对于RA口的操作应采用寄存器的操作方式(MOVWF RA)。

问题3:当CPU正在执行一条对INTCON寄存器进行读-修改-写指令时,如果发生中断请求,则读中断例程会被执行二次。这是因为当中断请求发生后INTCON寄存器中的GIE位会被硬件自动清零(屏蔽所有中断),并且程序转入中断例程入口(0004H)。当GIE位被清零后,如果这时正好CPU在执行一条对INTCON的读-修改-写指令(如BSF INTCON等),则 GIE位还会被写回操作重新置1,这样会造成CPU二次进入中断例程。

对策:如果在程序中需对INTCON的某一中断允许位进行修改,则应事先置GIE=0

,修改完成后再恢复GIE=1。

…………..

BCF INTCON, GIE

BSF INTCON, ×××

BSF INTCON, GIE

…………..


图1

问题4:当芯片电压VDD加电上升时间大于100μs时,电源上电复位电路POR和电源上电延时器PWRT可能不能起正常的作用,而使芯片的复位出现不正常(即PC≠复位地址)。一般在这种情况下建议不要采用PWRT。

对策:如果VDD上升时间很长,此芯片一般需较长的电源上电延时,可靠的电源上电延时方法如图1所示,在MCLR端外接复位电路。

问题5:如果在A/D转换中用RA3作为参考电压输入,则最大满量程误差(NFS)要大于手册中的指标。实际情况如表1所示。

表1 A/D满量程误差表

VREF
(5.12V)


评论

技术专区