标题: 关于单片机+ADC检测应用的一些疑惑? [打印本页]

作者: 木示    时间: 2023-9-9 18:15
标题: 关于单片机+ADC检测应用的一些疑惑?
如下图:思路:如果用单片机ADC检测电池电源,当电压大于2.5V时LED灯亮,小于2.5V时灯灭。但不管检测出来的电压大于或小于2.5V时,都可以用遥控控制灯的亮灭。  

现在在构思程序时有一些疑惑:当程序在循坏检测ADC时,假设ADC>2.5V那么LED灯亮,但若要用遥控关闭LED时,那么是不是永远无法关闭?(因为ADC>2.5v)那么 ADC_READ();放在哪里好呢?或者该怎么写这个程序呢?请大家指教一下!谢谢!
#include<51.h>
......
......
void main()
{
IR_INT();//遥控控制
ADC_INT();//ADC初始化
........
........
While(1)
{
       ADC_READ();//ADC读出来的值,并与2.5V比较的结果.
     if(press)  //遥控按键,及遥控的功能按键.        这里的遥控会受到ADC的干扰,不能随意开关LED!!!

switch(i)
    {
    case 0:.....  break;
    case 1:..... break;
       ..........
}
}
}

ee39b96a80782bab67b7428cd3dab7e.jpg (124.62 KB, 下载次数: 51)

ee39b96a80782bab67b7428cd3dab7e.jpg

作者: Hephaestus    时间: 2023-9-9 20:25
设一个标志位,初始化为0,ADC不能动这个标志位,遥控可以置1,那么这个标志位为0就听ADC指挥,如果为1就不管ADC结果,只听遥控指挥。
作者: 木示    时间: 2023-9-10 17:11
不太明白,还没有完全领会你的意思,详细指教一下
作者: wulin    时间: 2023-9-10 20:42
        switch(遥控变量)
        {
                case 0: ADC控制 break;
                case 1: 遥控开 break;
                case 2: 遥控关 break;
        }
作者: yzwzfyz    时间: 2023-9-11 09:41
A、B同时能控制C,A叫C=1,B叫C=0,听谁的?
明白了么?
这里必须给出一个优先次序。或分时优先。
作者: mtt661    时间: 2023-9-11 10:01
判断两个条件不就行了,
作者: wufa1986    时间: 2023-9-11 16:01
思维混乱是无法吧功能做好的
作者: xiaom173834592    时间: 2023-9-12 01:51
ADC取值范围是 0~3.3V,8位ADC应该是0~255,因此需要读取到ADC后看看数值是否大于阈值,如果是认为是大于2.5V,比如ADC读取到的数值是210,那么就认为是2.5V
作者: 小白菜c    时间: 2023-9-13 16:34
Hephaestus 发表于 2023-9-9 20:25
设一个标志位,初始化为0,ADC不能动这个标志位,遥控可以置1,那么这个标志位为0就听ADC指挥,如果为1就不 ...

确实,这个思路可以
作者: hhh402    时间: 2023-9-15 13:03
其实遥控器与AD是同等优先的,不存在谁优先的问题,应该有一个按键或开关决定是受遥控器还是AD控制,同一时间只能够有一个起作用。这是2选1的问题。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1