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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8974|回復: 12
收起左側(cè)

可燃氣體報警器(濃度檢測)仿真與單片機源碼

  [復制鏈接]
ID:257816 發(fā)表于 2018-5-14 18:12 | 顯示全部樓層 |閱讀模式
可燃氣體報警器仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png 0.jpg

可燃氣體報警器元器件清單
0.png

單片機源程序:
  1. #include<reg51.h>    //包含單片機寄存器的頭文件
  2. #include<intrins.h>  //包含_nop_()函數(shù)定義的頭文件
  3. unsigned char flag=0; //緊急報警標示位
  4. unsigned char flag1=0; //傳感器檢測報警標示位
  5. unsigned int after_AD_val=0;    //儲存濃度數(shù)值范圍是100-10000
  6. unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f共陰極
  7. unsigned int TIME_1;
  8. sbit CS=P1^0;       //將CS位定義為P3.4引腳0xc0,
  9. sbit CLK=P1^1;      //將CLK位定義為P1.0引腳
  10. sbit DIO=P1^2;       //將DIO位定義為P1.1引腳
  11. sbit K1=P2^4;
  12. sbit LED1=P2^0;                 //警情指示燈
  13. sbit LED2=P2^1;                 //正常指示燈
  14. sbit BEEP=P2^2;

  15. sbit wei1=P3^0;
  16. sbit wei2=P3^1;
  17. sbit wei3=P3^2;
  18. sbit wei4=P3^3;

  19. unsigned int wan,qian,bai,shi,ge;


  20. void delay1ms()
  21. {
  22.    unsigned char i,j;        
  23.          for(i=0;i<10;i++)
  24.           for(j=0;j<33;j++)
  25.            ;                 
  26. }
  27. void delay2ms()
  28. {
  29.    unsigned char i,j;        
  30.          for(i=0;i<120;i++)
  31.           for(j=0;j<33;j++)
  32.            ;                 
  33. }

  34. void delaynms(unsigned char n)
  35. {
  36.    unsigned char i;
  37.         for(i=0;i<n;i++)
  38.            delay1ms();
  39. }
  40. void key()
  41. {
  42.         if(K1==0)
  43.         {
  44.                 delaynms(5);
  45.                 if(K1==0)
  46.                 {
  47.                         while(!K1);
  48.                         flag++;
  49.                         if(flag==2)
  50.                         flag=0;
  51.                 }
  52.         }
  53. }
  54. /*****************************************************

  55. 函數(shù)功能:報警子程序

  56. *****************************************************/
  57. void baojing()
  58. {
  59.         if(flag==1||flag1==1)
  60.         {
  61.                 LED2=1;
  62.                 LED1=0;
  63.                 BEEP=0;
  64.                 delaynms(10);
  65.                 BEEP=1;
  66.                 delaynms(10);
  67.         }
  68.         if(flag==0&&flag1==0)
  69.         {
  70.                 LED2=0;
  71.                 LED1=1;
  72.                 BEEP=1;
  73.         }
  74. }
  75. void display()
  76. {
  77. //unsigned sel;
  78.         wan=after_AD_val/10000;
  79.         qian=(after_AD_val/1000)%10;
  80.         bai=(after_AD_val/100)%10;
  81.         shi=(after_AD_val/10)%10;
  82.         ge=after_AD_val%10;
  83.         //sel=0x01;
  84. //P0=table[wan];
  85.         // P3=sel;
  86.         //        delaynms(3);
  87.         //P3=0x00;
  88. //sel=sel<<1;
  89.          P0=table[qian];
  90.         wei1=1;
  91. delaynms(1);
  92.         wei1=0;
  93. //sel=sel<<1;
  94. P0=table[bai];
  95. wei2=1;
  96. delaynms(3);
  97.         wei2=0;
  98. //sel=sel<<1;
  99. P0=table[shi];
  100. wei3=1;
  101. delaynms(3);
  102. wei3=0;
  103. //sel=sel<<1;
  104. P0=table[ge];
  105. wei4=1;
  106. delaynms(3);
  107. wei4=0;
  108. //sel=sel<<1;
  109.                

  110. }



  111. /*****************************************************
  112. 函數(shù)功能:將模擬信號轉(zhuǎn)換成數(shù)字信號
  113. ***************************************************/
  114. unsigned int  A_D()
  115. {
  116.   unsigned char i,dat;
  117.    CS=1;   //一個轉(zhuǎn)換周期開始
  118.    CLK=0;  //為第一個脈沖作準備
  119.    CS=0;  //CS置0,片選有效

  120.    DIO=1;    //DIO置1,規(guī)定的起始信號  
  121.    CLK=1;   //第一個脈沖
  122.    CLK=0;   //第一個脈沖的下降沿,此前DIO必須是高電平
  123.    DIO=1;   //DIO置1, 通道選擇信號  
  124.    CLK=1;   //第二個脈沖,第2、3個脈沖下沉之前,DI必須跟別輸入兩位數(shù)據(jù)用于選擇通道,這里選通道CH0
  125.    CLK=0;   //第二個脈沖下降沿
  126.    DIO=0;   //DI置0,選擇通道0
  127.    CLK=1;    //第三個脈沖
  128.    CLK=0;    //第三個脈沖下降沿
  129.    DIO=1;    //第三個脈沖下沉之后,輸入端DIO失去作用,應置1
  130.    CLK=1;    //第四個脈沖
  131.    for(i=0;i<8;i++)  //高位在前
  132.     {
  133.       CLK=1;         //第四個脈沖
  134.       CLK=0;
  135.       dat<<=1;       //將下面儲存的低位數(shù)據(jù)向右移
  136.                 dat|=(unsigned char)DIO;          //將輸出數(shù)據(jù)DIO通過或運算儲存在dat最低位
  137.     }                                 
  138.     CS=1;          //片選無效
  139.          return dat;         //將讀書的數(shù)據(jù)返回     
  140.   }
  141. /*****************************************************

  142.   函數(shù)功能:警情檢測子程序

  143. *****************************************************/
  144. unsigned int  jq()
  145. {
  146.         unsigned int AD_val;    //儲存A/D轉(zhuǎn)換后的值
  147.         AD_val=A_D();    //進行A/D轉(zhuǎn)換
  148.         if(AD_val>=30)   
  149.         flag1=1;
  150.         else
  151.         flag1=0;
  152.         
  153.         after_AD_val=(9900/256)*AD_val+100;
  154.         
  155. return AD_val;
  156. }
  157. /*****************************************************
  158. 函數(shù)功能:主函數(shù)
  159. ***************************************************/


  160. void timer1() interrupt 3
  161. {        
  162.         
  163.   TH1=(65536-65535)/256;
  164.         TL1=(65536-65535)%256;
  165.         TIME_1++;
  166.         
  167.         if(TIME_1 > 8)
  168.         {TIME_1=0;
  169.         jq();
  170.         }
  171. }
  172.         

  173. main(void)
  174. {        
  175.         LED2=1;
  176.         LED1=1;
  177.         BEEP=1;
  178.         EA=1;
  179.         TMOD=0X10;
  180.         TH1=(65536-60000)/256;
  181.         TL1=(65536-60000)%256;
  182.         ET1=1;
  183.         TR1=1;
  184.          
  185.     while(1)
  186.       {
  187. //jq();
  188.                         display();        
  189.                   key();
  190.                   baojing();
  191.                                 
  192.                                 
  193.           }
  194.                     
  195. }

復制代碼

全部資料51hei下載地址:

可燃氣體報警器.zip (185.43 KB, 下載次數(shù): 283)

評分

參與人數(shù) 1黑幣 +12 收起 理由
YJGG + 12 贊一個!

查看全部評分

回復

使用道具 舉報

ID:353867 發(fā)表于 2018-6-18 23:13 | 顯示全部樓層
謝謝樓主好意
回復

使用道具 舉報

ID:353867 發(fā)表于 2018-6-18 23:13 | 顯示全部樓層
謝謝樓主
回復

使用道具 舉報

ID:449256 發(fā)表于 2018-12-18 20:11 | 顯示全部樓層
謝謝樓主的分享,把幫了大忙
回復

使用道具 舉報

ID:450248 發(fā)表于 2018-12-19 21:05 | 顯示全部樓層
論壇有你更精彩
回復

使用道具 舉報

ID:450248 發(fā)表于 2018-12-19 21:08 | 顯示全部樓層
謝謝樓主的分享,把幫了大忙
回復

使用道具 舉報

ID:520266 發(fā)表于 2019-4-24 10:53 | 顯示全部樓層
好東西 感謝樓主幫了大忙
回復

使用道具 舉報

ID:519957 發(fā)表于 2019-5-4 10:45 | 顯示全部樓層
棒棒噠!有用,謝謝樓主
回復

使用道具 舉報

ID:545750 發(fā)表于 2019-5-23 17:24 | 顯示全部樓層
感謝樓主!!
回復

使用道具 舉報

ID:607620 發(fā)表于 2019-9-4 20:58 | 顯示全部樓層
不錯的分享
回復

使用道具 舉報

ID:610080 發(fā)表于 2019-9-10 16:43 | 顯示全部樓層
謝謝樓主!!!
回復

使用道具 舉報

ID:660598 發(fā)表于 2019-12-10 16:27 | 顯示全部樓層
能不能加上顯示屏
回復

使用道具 舉報

ID:674385 發(fā)表于 2019-12-26 11:30 | 顯示全部樓層
能不能觀摩
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人影院在线 | 男女午夜免费视频 | 在线观看亚洲专区 | www.亚洲| 国产乱码精品1区2区3区 | 久在线 | 日韩国产一区二区三区 | 中文在线亚洲 | 成人欧美一区二区三区 | 国产精品中文字幕在线观看 | 伊人狠狠| 国产一区二区三区四区在线观看 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | av手机在线播放 | 成年人黄色免费视频 | 久久精品一区二区三区四区 | 伊人春色在线 | 在线观看电影av | 色婷婷综合成人av | 亚洲精品久久久久久首妖 | 美女一级毛片 | 亚洲福利网 | 色精品 | 国产午夜精品视频 | 国产精品伦一区二区三级视频 | 日本中文在线视频 | 午夜视频免费网站 | 亚洲国产成人精品一区二区 | 国产激情一区二区三区 | 一级毛片免费看 | 国产精品久久久久久网站 | 影音av | 精品综合久久 | 色综合天天天天做夜夜夜夜做 | 国产 欧美 日韩 一区 | 国产精品69毛片高清亚洲 | 91精品国产综合久久久久 | 久久在线视频 | 成人h免费观看视频 | 国户精品久久久久久久久久久不卡 | 国产成人av一区二区三区 |