PIC16C5X单片机睡眠状态的键唤醒方法
绿灯;当SW2按下时,红灯亮。读者可按实际需要编写处理程序,参见图2。
在进入睡眠态前,将键扫描输出线SCAN1和SCAN2置为低电平。这样,当进入睡眠状后,无键按下时,电容C充电充分,使PIC16C5X单片机复位脚保持着高电平。一旦有键按下,C通过电阻R2或R3放电,使C上的电压快速下降(大约1ms),从而将复位脚拉为低电平,迫使PIC16C5X退出睡眠态而进入复位。复位时,SCAN1和SCAN2自动从输出态变为输入态(高阻态),C的放电回路被阻断,VCC经电阻R1对C充电至高电平。需注意的是,RC值要选择恰当,使充放电周期小于PIC16C5X单片机的复位时间(大约18ms)。更远远小于键按下的最小时间(大约50--100ms)。复位结束后,在程序中,每隔20ms将SCAN1和SCAN2置低电平一次以采样键值。为避免电容放电时间过长,将拉低,再次造成复位,每次扫描即SCAN1或SCAN2为低电平的时间大约为10us。当键处理程序完成后,程序对键盘循环扫描直至键释放。然后将SCAN1和SCAN2输出置成低电平,并重新进入睡眠状态。R4-R8主要用于防止C放电而可能对芯片造成的伤害。工作时序见图3所示。

在进入睡眠态前,将键扫描输出线SCAN1和SCAN2置为低电平。这样,当进入睡眠状后,无键按下时,电容C充电充分,使PIC16C5X单片机复位脚保持着高电平。一旦有键按下,C通过电阻R2或R3放电,使C上的电压快速下降(大约1ms),从而将复位脚拉为低电平,迫使PIC16C5X退出睡眠态而进入复位。复位时,SCAN1和SCAN2自动从输出态变为输入态(高阻态),C的放电回路被阻断,VCC经电阻R1对C充电至高电平。需注意的是,RC值要选择恰当,使充放电周期小于PIC16C5X单片机的复位时间(大约18ms)。更远远小于键按下的最小时间(大约50--100ms)。复位结束后,在程序中,每隔20ms将SCAN1和SCAN2置低电平一次以采样键值。为避免电容放电时间过长,将拉低,再次造成复位,每次扫描即SCAN1或SCAN2为低电平的时间大约为10us。当键处理程序完成后,程序对键盘循环扫描直至键释放。然后将SCAN1和SCAN2输出置成低电平,并重新进入睡眠状态。R4-R8主要用于防止C放电而可能对芯片造成的伤害。工作时序见图3所示。

图 2
图 3
51单片机相关文章:51单片机教程
评论