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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1738|回復: 0
打印 上一主題 下一主題
收起左側

單片機火災報警器程序與電路

[復制鏈接]
跳轉到指定樓層
樓主
煙霧傳感器仿真中沒有,其實就是傳感器檢測時相應的電阻值會變化,用滑動電位器代替


單片機源程序如下:
  1. //程序頭函數
  2. #include <reg52.h>
  3. //顯示函數
  4. #include <display.h>        //顯示函數display.h在工程里        也可鼠標選中左邊右鍵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;                                 //設置鍵
  18. sbit Key2=P2^7;                                 //加按鍵
  19. sbit Key3=P3^7;                                 //減按鍵

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

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

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

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

  47. void Key()
  48. {
  49.         //模式選擇
  50.         if(Key1==0)          //設置按鍵
  51.         {
  52.                 while(Key1==0);
  53.                 if(Mode>=2) Mode=0;
  54.                 else
  55.                 {
  56. //                           write_com(0x38);//屏幕初始化
  57.                            write_com(0x0f);//打開顯示 無光標 光標閃爍
  58. //                           write_com(0x06);//當讀或寫一個字符是指針后一一位
  59.                         Mode++;                        //模式加一
  60.                         switch(Mode)        //判斷模式的值
  61.                         {
  62.                                 case 1:
  63.                                 {
  64.                                         write_com(0x80+7);//為1時 溫度閥值的位置閃爍
  65.                                         break;                          //執行后跳出switch
  66.                                 }
  67.                                 case 2:                                        //當模式加到3時
  68.                                 {
  69. //                                        write_com(0x38);//屏幕初始化
  70.                                         write_com(0x0c);//打開顯示 無光標 無光標閃爍
  71.                                         Mode=0;                        //模式清零
  72.                                         break;
  73.                                 }
  74.                         }
  75.                 }
  76.         }
  77.         if(Key2==0&&Mode!=0)         //加按鍵只有在模式不等于0時有效
  78.         {
  79.                 while(Key2==0);
  80.                 yushe_yanwu++;                                           //同溫度閥值設置
  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. /*****主函數*****/
  103. void main()
  104. {
  105.         Init1602();                          //調用初始化顯示函數
  106.         while(1)                          //進入循環
  107.         {
  108.                 temp=ADC0809();          //讀取煙霧值
  109.                 Key();                          //調用按鍵函數  掃描按鍵

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

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



評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产久| 精品久久av | 婷婷二区| 日韩欧美在线观看 | 亚洲成年人免费网站 | 国产日日操| aaaa网站| 99精品国自产在线 | 欧美午夜精品久久久久免费视 | 色爱综合网 | 亚洲最大的黄色网址 | 中文字幕高清 | 欧美一级在线 | 成人午夜免费福利视频 | 精品日韩在线 | 一区欧美 | 亚洲精品一区二区 | 国产精品乱码一区二区三区 | a在线观看| 在线观看中文字幕一区二区 | 99色综合 | 欧美日产国产成人免费图片 | 特级特黄特色的免费大片 | 岛国精品| 精品一二区 | 成人精品国产 | 国产美女视频一区 | 一区二区视频在线 | 午夜电影网站 | 色噜噜色综合 | 黄色网址在线免费播放 | 在线亚洲一区二区 | 性欧美hd | 日韩成人一区 | 91久久国产综合久久91精品网站 | 涩爱av一区二区三区 | 欧美综合久久 | 久久久www成人免费无遮挡大片 | 日韩福利 | 免费成人午夜 | 日本免费黄色一级片 |