|
|
| | -文章搜索 - 最新文章 - | |
轻触式开关电路在AVR单片机中的应用 |
| 发布时间:2003年11月23日 点击次数:1083 |
| 来源: 作者:北京航空航天大学 王伯岭 |
单键开关电路已经广泛应用于PDA、手机和电子词典等数码产品中,其实现方式多种多样。一般可采用RS触发器、计数器以及采用555集成电路等等。在单片机的一些实际应用中,以上的实现方式会增加整个电路的复杂度,不能达到简洁、实用的效果。本文将介绍一种可以在单片机应用中实现的,简易、稳定的轻触式单键开关电路。 1 电路原理 如图1所示,DC-DC为一个带有关断控制端的直流稳压电源芯片,MCU是一个单片机。当按下S1时,Q1和D1导通,稳压芯片工作,为单片机供电。单片机马上将相应的I/O引脚置为输出高,这时Q1和Q2导通,整个电路进入工作状态。而后单片机再将这个I/O引脚设置为输入,由于上拉电阻R4的存在,Q1和Q2一直导通。单片机一直扫描相应I/O输入状态,如果S1没有按下去,则这个I/O将始终为高。当S1再次按下去时,D2导通,单片机检测到这个I/O引脚输入为低,这时单片机就将这个I/O设置成输出为低的状态。Q2截止,如果按键抬起,Q1也会截止,稳压芯片将不会为单片机提供电压,整个电路处于关断状态。
2 关于R3和上拉电阻R4的取值 在一些单片机中,例如AVR系列单片机ATmega8L,带有内部上拉电阻Rpu,如图2所示。
可以通过单片机程序控制电阻上拉与否,从而不需要外接上拉。 一般情况下,R3取值要远大于R4,否则单片机I/O的输入电压Vpin会有低于标准输入电压VIH最低值的可能。从ATmega8L数据手册中查到Rpu取值在20kΩ~100kΩ之间,又因为VIH的最小值约为0.6VCC。因此R3/(R3+R4)>0.6,取R4=50kΩ,并取R3/(R3+R4)=0.8 ,所以R3取值应该在200kΩ左右的范围,可以根据实际工作情况来选择具体的R4取值。 3 对Vin连接方式的处理 从图1上不难看出,采用这种控制方式后,Q1上将会消耗一定的功率。一种降低功率消耗的方式就是将Vin直接接到电池上去,可以根据电路灵活掌握。 4 电容C1的作用 对于一般的AVR单片机来说,内部都有BOD(Brown-down Detection)电路。这个电路具有低电压检测功能:当输入电压由高变低时,单片机就会自动复位。 如图1所示,想关机的时候,按下S1,单片机输出低。按键抬起后,Q1、Q2截止,单片机掉电。然而单片机的BOD电路检测到单片机的电压突然降低后,就会使单片机复位,并将I/O设置为上拉状态,Q1、Q2导通,导制电路再次开启。 加入C1后,使单片机掉电后要对C1进行充电,而在C1充电没有达到单片机工作最低电压期间,Q1、Q2已经截止了,从而打乱了单片机复位操作。 5 开关机延时处理 在一些具体的应用场合,例如手机等数码产品,开关机都需要延时操作。一种简单的实现方式就是,单片机在按键按下时开始计数,直到按键抬起。只有这个计数值足够大,才允许开机,否则不认为是开机操作。同理,关机也可以做类似的处理。 单片机程序流程如图3所示。
参考文献 1 http://www.goldenchips.com/
|
|
|
|
|
[经验总结] 相关文章: VxWorks任务编程中常见异常分析简介:
在任务运行过程中,会出现一些异常的情况,导致任务不能正常运行或者对操作系统造成影响。一般来说,这些异常是由程序的逻辑错误造成的,防止这些异常情况的出现和出现后进行补救就有格外重要的意义。 1 代码重入与共享 在应用中,可能会出现多个任务调用同一段代码的情况,由于任务占用CPU是串行的,不会出现代码资源使用冲突。但是,不同优先级的任务同时调用同一段代码,则可能出现低优先级任务执行某一函数时被执行该函数的高优先级任务打断的情况,如果函数中要改写全局变量而没有使用互斥,就有可能导致错误的存取。例如在中断中调用内存分配或者释放函数,如果某个任务正在调用内存分配函数...... RS-485收发的零延时转换电路
8051单片机开发工具DIY
提高1-wire总线器件驱动能力的方法
μC/OS-II在C8051F上的移植
任意长度信息序列的CRC快速算法
C语言高效编程的几招
51单片机系统中的触摸屏坐标算法
用C8051F构成的采集与控制系统
PIC单片机软件异步串行口实现技巧 |
|
|
|