weixin_52981551 2023-07-28 14:15 采纳率: 20%
浏览 20

烟雾报警 发光二极管 程序

我的想法是 通过51单片机,实现烟雾报警功能。主要器件有:MQ-2烟雾传感器、ADC0832模块、发光二极管等!
目前遇到的问题是:我希望通过一位发光二极管来表示ADC0832转换出来的数据。
我设想的解决办法是:adc转换模块照常工作,照常将烟雾传感器的电压进行转换,在输出的时候,进行一下比较。可以与一个固定值进行比较(这个可以是报警的下限电压!!)通过比较数值的大小,从而输出0或者1。这不就是正好可以外接一个发光二极管和蜂鸣器弄成声光报警器吗?(这是我不成熟的想法 !!)
程序:说干就干,我根据adc模块的工作原理,编写了程序。后面也加入了一段if语句,用于比较。
结果:我在程序里调节固定值,led能亮能灭。但是我调节那个滑动变阻器(代替mq-2)的阻值大小 ,led没有变化。
下面是我的程序,请大家帮帮忙,指点指点。

#include<reg51.h>
sbit CS=P1^0;
sbit CLK=P1^1;
sbit DIO=P1^2;
sbit LED=P1^3;
void ADC0832_Init()
{
    CS=1;
    CLK=0;
}
unsigned char ADC0832_Read()
    {
        unsigned char i,dat=0;
        CS=0;
        CLK=0;
        DIO=1;
        CLK=1;
        CLK=0;
        for(i=0;i<8;i++)
        {
            CLK=1;
            dat<<=1;
            dat|=DIO;
            CLK=0;
        }
        CS=1;
        return dat;
    }
void main()
    {
        unsigned char smokedat;
        unsigned int threshold=160;
        ADC0832_Init();
        while(1)
            {
        smokedat=ADC0832_Read();
        if(smokedat>threshold)
            {
                LED=1;
            }
            else
                {
                    LED=0;
                }
            }
    }
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/871918425096172.png "#left")


  • 写回答

5条回答 默认 最新

  • 九转金丹诀 2023-07-28 14:27
    关注

    这题我不会,但是我觉得给你的代码加上注释会更容易得到解答

    评论

报告相同问题?

问题事件

  • 创建了问题 7月28日