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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1761|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機火災(zāi)報警器程序與電路

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1060156 發(fā)表于 2023-1-3 21:34 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
煙霧傳感器仿真中沒有,其實就是傳感器檢測時相應(yīng)的電阻值會變化,用滑動電位器代替


單片機源程序如下:
  1. //程序頭函數(shù)
  2. #include <reg52.h>
  3. //顯示函數(shù)
  4. #include <display.h>        //顯示函數(shù)display.h在工程里        也可鼠標(biāo)選中左邊右鍵open document <display.h>

  5. //宏定義
  6. #define uint unsigned int
  7. #define uchar unsigned char
  8. #define Data_ADC0809 P1                 //定義P1口為Data_ADC0809 (之后的程序里Data_ADC0809即代表P1口)

  9. //管腳聲明
  10. sbit LED_yanwu= P2^1;                 //煙霧報警燈
  11. sbit baojing= P2^5;                         //蜂鳴器接口
  12. //ADC0809
  13. sbit ST=P3^3;
  14. sbit EOC=P3^6;
  15. sbit OE=P3^2;
  16. //按鍵
  17. sbit Key1=P2^6;                                 //設(shè)置鍵
  18. sbit Key2=P2^7;                                 //加按鍵
  19. sbit Key3=P3^7;                                 //減按鍵

  20. //酒精含量變量
  21. uchar temp;                                         //用于讀取ADC數(shù)據(jù)
  22. uchar yushe_yanwu=45;                 //煙霧預(yù)設(shè)值
  23. //按鈕模式|  
  24. uchar Mode=0;                                 //=1是設(shè)置溫度閥值  =2是設(shè)置煙霧閥值

  25. //函數(shù)聲明
  26. extern uchar ADC0809();
  27. extern void Key();

  28. //ADC0809讀取信息
  29. uchar ADC0809()
  30. {
  31.         uchar temp_=0x00;
  32.         //初始化高阻太

  33.         OE=0;
  34.         //轉(zhuǎn)化初始化
  35.         ST=0;
  36.         //開始轉(zhuǎn)換
  37.         ST=1;
  38.         ST=0;
  39.         //外部中斷等待AD轉(zhuǎn)換結(jié)束
  40.         while(EOC==0)
  41.         //讀取轉(zhuǎn)換的AD值
  42.         OE=1;
  43.         temp_=Data_ADC0809;
  44.         OE=0;
  45.         return temp_;
  46. }

  47. void Key()
  48. {
  49.         //模式選擇
  50.         if(Key1==0)          //設(shè)置按鍵
  51.         {
  52.                 while(Key1==0);
  53.                 if(Mode>=2) Mode=0;
  54.                 else
  55.                 {
  56. //                           write_com(0x38);//屏幕初始化
  57.                            write_com(0x0f);//打開顯示 無光標(biāo) 光標(biāo)閃爍
  58. //                           write_com(0x06);//當(dāng)讀或?qū)懸粋字符是指針后一一位
  59.                         Mode++;                        //模式加一
  60.                         switch(Mode)        //判斷模式的值
  61.                         {
  62.                                 case 1:
  63.                                 {
  64.                                         write_com(0x80+7);//為1時 溫度閥值的位置閃爍
  65.                                         break;                          //執(zhí)行后跳出switch
  66.                                 }
  67.                                 case 2:                                        //當(dāng)模式加到3時
  68.                                 {
  69. //                                        write_com(0x38);//屏幕初始化
  70.                                         write_com(0x0c);//打開顯示 無光標(biāo) 無光標(biāo)閃爍
  71.                                         Mode=0;                        //模式清零
  72.                                         break;
  73.                                 }
  74.                         }
  75.                 }
  76.         }
  77.         if(Key2==0&&Mode!=0)         //加按鍵只有在模式不等于0時有效
  78.         {
  79.                 while(Key2==0);
  80.                 yushe_yanwu++;                                           //同溫度閥值設(shè)置
  81.                 if(yushe_yanwu>=255)
  82.                 yushe_yanwu=255;
  83.                 write_com(0x80+13);
  84.                 write_data(0x30+yushe_yanwu/100);
  85.                 write_data(0x30+yushe_yanwu%100/10);
  86.                 write_data(0x30+yushe_yanwu%10);
  87.                 write_com(0x80+15);
  88.         }
  89.         if(Key3==0&&Mode!=0)
  90.         {
  91.                 while(Key3==0);
  92.                 yushe_yanwu--;                                                          //同上
  93.                 if(yushe_yanwu<=0)
  94.                 yushe_yanwu=0;
  95.                 write_com(0x80+13);
  96.                 write_data(0x30+yushe_yanwu/100);
  97.                 write_data(0x30+yushe_yanwu%100/10);
  98.                 write_data(0x30+yushe_yanwu%10);
  99.                 write_com(0x80+15);
  100.         }
  101. }
  102. /*****主函數(shù)*****/
  103. void main()
  104. {
  105.         Init1602();                          //調(diào)用初始化顯示函數(shù)
  106.         while(1)                          //進(jìn)入循環(huán)
  107.         {
  108.                 temp=ADC0809();          //讀取煙霧值
  109.                 Key();                          //調(diào)用按鍵函數(shù)  掃描按鍵

  110.                 if(Mode==0)                  //只有當(dāng)模式為0時才會執(zhí)行以下的閥值判斷部分
  111.                 {
  112.                         Display_1602(yushe_yanwu,temp);  //顯示預(yù)設(shè)煙霧,煙霧值
  113.                         if(temp>=yushe_yanwu)          //煙霧值大于等于預(yù)設(shè)值時
  114.                         {
  115.                                 LED_yanwu=0;                  //煙霧指示燈亮
  116.                                 baojing=0;                          //蜂鳴器報警
  117.                         }
  118.                         else                                          //煙霧值小于預(yù)設(shè)值時
  119.                         {
  120.                                 LED_yanwu=1;                  //關(guān)掉報警燈
  121.                         }
  122.                         if(temp<yushe_yanwu)          //當(dāng)煙霧小于預(yù)設(shè)值并且溫度也小于預(yù)設(shè)值時 (&&:邏輯與,左右兩邊的表達(dá)式都成立(都為真,也就是1)時,該if語句才成立)
  123.                         {
  124.                                 baojing=1;                          //停止報警
  125.                         }
  126.                 }
  127.         }
  128. }       
復(fù)制代碼

Keil代碼下載: Keil代碼.7z (74.08 KB, 下載次數(shù): 17)



評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91夜色在线观看 | 黄色大片毛片 | 日韩一区二区三区精品 | 日韩在线欧美 | 日韩中文字幕一区 | jizz视频 | 国产福利在线看 | 视频一区二区在线 | 日韩av三区 | 久久久久国产一区二区三区 | 亚洲精品一区二区 | 日韩综合色 | 欧美日韩视频在线 | 欧美xxxx黑人又粗又长 | 中文字幕av色 | 欧美1级 | 亚洲精品中文字幕在线 | 免费欧美 | 国产激情一区二区三区 | 九色在线观看 | 国产精品视频入口 | 国产精品一区二区福利视频 | 午夜视频精品 | 亚洲一区二区三区视频 | 国产一区二区影院 | 69精品久久久久久 | 欧美一区中文字幕 | 成人美女免费网站视频 | 亚洲精品在线看 | 中文字幕日韩在线观看 | 高清一区二区三区 | 99久久久久久99国产精品免 | 亚洲天堂免费 | 亚洲一区中文字幕 | 91在线中文字幕 | 久久国产欧美一区二区三区精品 | 国产在线精品一区二区 | 国产精品视频一区二区三区不卡 | 亚洲人成免费 | 午夜黄色影院 | 亚洲精品国产偷自在线观看 |