烟雾传感器MQ2要在LCD1602显示浓度

2019-07-18 11:05发布

请问如何在LCD1602上显示MQ2的检测到的浓度呢,我在proteus用滑动变阻器代替了MQ2,加ADC0809连接单片机。程序用中断,可是用了中断,我其它子模块的按键扫描就没有用了,这怎么改进呢
部分程序:
void timer0() interrupt 1
{
        TH0=(65536-2)/256;
        TL0=(65536-2)%256;
        CLK=!CLK;
}
uint read_yanwu()
{
         TMOD=0x01;                //定时器中断0
           CLK=0;
         TH0=(65536-2)/256;
         TL0=(65536-2)%256;
         EA=1;
         ET0=1;
         TR0=1;
         ST=0;                                //使采集信号为低
        ST=1;                                //开始数据转换
        ST=0;                                //停止数据转换
        while(!EOC);                //等待数据转换完毕
        OE=1;                                //允许数据输出信号
        AD0809=P1;                    //读取数据
        OE=0;                                //关闭数据输出允许信号
        if(AD0809>=251)                //电压显示不能超过5V
        AD0809=250;
        yw=AD0809*20;                //数码管显示的数据值,其中20为采集数据的毫安值
        return yw;

}

主程序:
void main()
{
        uchar i=0;
        sys_init();
        while(1)
        {
                         key_scan();
                        if(shu==0)
                        {
                        wendu=ReadTemperature();
                 count(wendu);
                        yanwu=read_yanwu();
                        display_yw(yanwu) ;
                        }
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
武力戡乱
2019-07-18 14:52
蒲公英不止流浪 发表于 2016-4-26 13:37
那我开中断的程序写在主程序里面还是写在按键扫描的程序里呀

开中断写在主程序里面,然后就不用管了。
我建议哈这样做:
1、中断做个标记。
2、主循环里面检测标记,如果标记置位,有按键,进行按键处理,否则执行别的去。 最佳答案

一周热门 更多>