久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3414|回復: 2
收起左側

單片機環境監測系統消防報警裝置

[復制鏈接]
ID:198608 發表于 2019-3-10 09:56 | 顯示全部樓層 |閱讀模式
基于51單片機STC12C5A60S2環境監測報警裝置作者阿陽QQ:113703571

功能:
檢測并報警,溫度,煙霧報警值上下限可調,所有數據串口輸出,可用電腦或手機串口助手實時檢測。
硬件:
STC12C5A60S2單片機最小系統
12864黑白屏---------顯示
18B20-----------------溫度檢測
BH1750---------------光照度檢測
MQ-2------------------煙霧可燃氣體檢測
蜂鳴器----------------報警

IMG_4449.JPG



#include <stc15xx.H>
#include "hj12864.h"
#include "AD.H"
#include "DS18B20.h"
#include "BH1750.H"               
#include "PWM12.H"       
#include "usart.h"
#include "EEPROM.h"
sbit jia=P3^2;
sbit jian=P3^3;
sbit shezhi=P3^4;
sbit queren=P3^5;
sbit fmq=P1^6;//蜂鳴器
sbit jdq=P1^7;//繼電器風扇輸出
int wdsx,wdxx,ywsx,ywxx;
int mod=1;
void hanzi1616x(int x,y,unsigned char *dp)
{
display_graphic_16x16(1,x,y+16*0,dp+32*0);//漢字1616
display_graphic_16x16(1,x,y+16*1,dp+32*1);//漢字1616       
display_graphic_16x16(1,x,y+16*2,dp+32*2);//漢字1616
display_graphic_16x16(1,x,y+16*3,dp+32*3);//漢字1616       
}
void shuzi168(int x,y,k)
{
        display_8x16num(1,x,y+8*0,k/100);
        display_8x16num(1,x,y+8*1,k%100/10);
        display_8x16num(1,x,y+8*2,k%100%10%10);

}
void Delay10ms()                //@11.0592MHz
{
        unsigned char i, j;

        _nop_();
        _nop_();
        i = 108;
        j = 144;
        do
        {
                while (--j);
        } while (--i);
}

void Delay200ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        i = 9;
        j = 104;
        k = 139;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}
void Delay20000ms()                //@11.0592MHz
{
        unsigned char i, j, k;
        i = 73;
        j = 117;
        k = 62;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}
void dismod()
{
        if(mod==0)
        {
                hanzi1616x(3,5,chanshu+32*16);//空白
          hanzi1616x(3,5+16*4,chanshu+32*16);//空白
        }
        if(mod==1)
        {
                hanzi1616x(3,5,chanshu);//溫度上限
                shuzi168(3,5+16*4+8,wdsx);
        }
        if(mod==2)
        {
                hanzi1616x(3,5,chanshu+32*4);//溫度下限
                shuzi168(3,5+16*4+8,wdxx);
        }
        if(mod==3)
        {
                hanzi1616x(3,5,chanshu+32*8);//煙霧上限
                shuzi168(3,5+16*4+8,ywsx);
        }
        if(mod==4)
        {
                hanzi1616x(3,5,chanshu+32*12);//煙霧下限
                shuzi168(3,5+16*4+8,ywxx);
        }
}
void keyscan()
{
        if(shezhi==0)
        {
                Delay10ms();
                if(shezhi==0)
                {
                        mod++;
                        if(mod==5)
                        mod=1;
                        while(shezhi==0);
                }       
        }
        if(jia==0&&mod==1)
        {
                Delay10ms();
                if(jia==0&&mod==1)
                {
                        if(wdsx!=800)
                        wdsx+=10;
                        xieru();
                        while(jia==0&&mod==1);  
                }       
        }
        if(jian==0&&mod==1)
        {
                Delay10ms();
                if(jian==0&&mod==1)
                {
                        if(wdsx>0)
                        wdsx-=10;
                        xieru();
                        while(jian==0&&mod==1);  
                }       
        }       
        ///////////////////////溫度上限
                if(jia==0&&mod==2)
        {
                Delay10ms();
                if(jia==0&&mod==2)
                {
                        if(wdxx!=800)
                        wdxx+=10;
                        xieru();
                        while(jia==0&&mod==2);  
                }       
        }
        if(jian==0&&mod==2)
        {
                Delay10ms();
                if(jian==0&&mod==2)
                {
                        if(wdxx!=0)
                        wdxx-=10;
                        xieru();
                        while(jian==0&&mod==2);  
                }       
        }       
        ///////////////////////溫度下限
                if(jia==0&&mod==3)
        {
                Delay10ms();
                if(jia==0&&mod==3)
                {
                        if(ywsx!=255)
                        ywsx++;
                        xieru();
                        while(jia==0&&mod==3);  
                }       
        }
        if(jian==0&&mod==3)
        {
                Delay10ms();
                if(jian==0&&mod==3)
                {
                        if(ywsx!=0)
                        ywsx--;
                        xieru();
                        while(jian==0&&mod==3);  
                }       
        }       
        ///////////////////////煙霧上限
                        if(jia==0&&mod==4)
        {
                Delay10ms();
                if(jia==0&&mod==4)
                {
                        if(ywxx!=255)
                        ywxx++;
                        xieru();
                        while(jia==0&&mod==4);  
                }       
        }
        if(jian==0&&mod==4)
        {
                Delay10ms();
                if(jian==0&&mod==4)
                {
                        if(ywxx!=0)
                        ywxx--;
                        xieru();
                        while(jian==0&&mod==4);  
                }       
        }       
        ///////////////////////煙霧下限
}

void yanwu(int x,y,k)
{
          display_graphic_16x16(1,x,y,yanw+32*0);
          display_graphic_16x16(1,x,y+16,yanw+32*1);
          display_graphic_16x16(1,x,y+32,yanw+32*2);
          display_8x16num(1,x,y+32+8,k/1000);
          display_8x16num(1,x,y+32+16,k%1000/100);
          display_8x16num(1,x,y+32+24,k%1000%100/10);
          display_8x16num(1,x,y+32+32,k%1000%100%10);
}
void wendu(int x,y,k)
{
          display_graphic_16x16(1,x,y,wend+32*0);
          display_graphic_16x16(1,x,y+16,wend+32*1);
          display_graphic_16x16(1,x,y+32,wend+32*2);
          display_8x16num(1,x,y+32+8,k/100);
          display_8x16num(1,x,y+32+16,k%100/10);
          display_string_8x16(1,x,y+32+24,".");
          display_8x16num(1,x,y+32+32,k%100%10);
          display_graphic_16x16(1,x,y+32+42,ssd);
}
void guangzhao(int x,y,k)
{
          display_graphic_16x16(1,x,y,gzs+32*0);
          display_graphic_16x16(1,x,y+16,gzs+32*1);
          display_graphic_16x16(1,x,y+32,gzs+32*2);
          display_8x16num(1,x,y+32+8,k/10000);
          display_8x16num(1,x,y+32+16,k%10000/1000);
          display_8x16num(1,x,y+32+24,k%10000%1000/100);
          display_8x16num(1,x,y+32+32,k%10000%1000%100/10);
          display_8x16num(1,x,y+32+40,k%10000%1000%100/10);
          display_string_8x16(1,x,y+32+50,"lx");
}
uint MQx,tem,gzz;
void usartwendu()
{
                        UART_Send_Str("溫度");//溫度
                UART_Send_Byte(tem/100+0x30);
                UART_Send_Byte(tem%100/10+0x30);
                UART_Send_Str(".");
                UART_Send_Byte(tem%100%10+0x30);
                UART_Send_Str("  ");//換行符
}
void usartyanwu()
{
                UART_Send_Str("煙霧");//煙霧
                UART_Send_Byte(MQx/1000+0x30);
                UART_Send_Byte(MQx%1000/100+0x30);
                UART_Send_Byte(MQx%1000%100/10+0x30);
                UART_Send_Byte(MQx%1000%100%10+0x30);
                UART_Send_Str("  ");//換行符
}
void usartguangzhao()
{
                UART_Send_Str("光照");//溫度
                UART_Send_Byte(gzz/10000+0x30);
                UART_Send_Byte(gzz%10000%1000+0x30);
                UART_Send_Byte(gzz%10000%1000/100+0x30);
                UART_Send_Byte(gzz%10000%1000%100/10+0x30);
          UART_Send_Byte(gzz%10000%1000%100%10+0x30);
                UART_Send_Str("\n");//換行符
}

void main(void)
{usart_init();
        initADC(0x01);//初始化8通道
        initial_lcd();//lcd初始化
        PWM_init(1,0);//初始值
                        ds_init();
                ds_xie_byte(0xcc);
          ds_xie_byte(0x44);
        Delay200ms();Delay200ms();Delay200ms();Delay200ms();
        Init_BH1750();//初始化BH1750
        clear_screen();//清屏
  if(IapReadByte(0x300)!=0x55)
        {
          IapEraseSector(0x300);
          IapProgramByte(0x300,0x55);
                chushihua();
        }
        duqu();
        while(1)
        {        keyscan();
                dismod();
                ds_init();
                ds_xie_byte(0xcc);
          ds_xie_byte(0x44);
                tem=read_temperature();//溫度讀取
                wendu(5,4,tem);//溫度顯示
                usartwendu();//串口輸出
                if(tem>wdsx)//溫度超高
                {
                fmq=0;//報警
                jdq=0;
                }
                if(tem<wdxx)//溫度降低到下限
                {
                        fmq=1;//報警停止
                        jdq=1;
                }
               
                MQx=readADC(0);//煙霧讀取
                yanwu(7,4,MQx);//煙霧顯示       
                usartyanwu();
                if(ywsx>MQx && MQx>ywxx)//煙霧比較
                {
                //        fmq=1;//報警關閉
                }               
                else
                {
                //        fmq=0;//報警
                }
                //gzz=duguangzhao();//光照值讀取
                guangzhao(1,4,gzz);
                usartguangzhao();
                CCAP0H=CCAP0L=gzz;//設置PWM1 p1.3腳               
        }
}
IMG_4462(20190310-000835).jpg IMG_4452.PNG IMG_4451.PNG


回復

使用道具 舉報

ID:914953 發表于 2021-5-3 22:58 | 顯示全部樓層
你好,想問問你設計的原理圖有嗎?
回復

使用道具 舉報

ID:1074288 發表于 2023-4-27 07:29 | 顯示全部樓層
請問有做相關仿真嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 农村妇女毛片精品久久久 | 婷婷桃色网 | 久久精品男人的天堂 | 亚洲国产欧美一区 | 日本国产一区二区 | 岛国av免费看 | 妞干网视频 | 国产日韩欧美精品 | 欧美视频精品 | 成人一区二区在线 | 亚洲成人激情在线观看 | 国产精品爱久久久久久久 | 国产精品久久一区 | 中文字幕 亚洲一区 | h视频在线播放 | 亚洲国产精品久久久久秋霞不卡 | 黄色网址在线免费观看 | 成人二区| 欧美视频精品 | 亚洲成人免费av | 亚洲免费视频在线观看 | 天天爱天天操 | www.久久久久久久久久久久 | 超碰最新在线 | av性色全交蜜桃成熟时 | 亚洲国产一区在线 | 午夜精品久久久久久久星辰影院 | 丁香综合| 成人 在线 | 国产视频在线观看一区二区三区 | www.激情.com| 成人免费激情视频 | 亚洲精品永久免费 | 中文字幕在线一区 | 色黄网站 | 亚洲少妇综合网 | 欧美国产亚洲一区二区 | 亚洲一区中文字幕 | 久久久免费 | 欧美在线一区二区视频 | 人人做人人澡人人爽欧美 |