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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機危險氣體檢測儀程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:250103 發(fā)表于 2019-5-9 20:17 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
程序設(shè)計


單片機源程序如下:
  1. //程序頭函數(shù)
  2. #include <reg52.h>
  3. //顯示函數(shù)
  4. #include <display.h>

  5. //宏定義
  6. #define uint unsigned int
  7. #define uchar unsigned char
  8. #define Data_ADC0809 P1

  9. //管腳聲明
  10. sbit LED_R= P2^2;//紅燈
  11. sbit FENG = 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. bit bdata flag;         //報警標(biāo)志位
  19. uchar set;                 

  20. //函數(shù)聲明
  21. extern uchar ADC0809();
  22. extern void Key();

  23. //酒精含量變量
  24. uchar temp=0;

  25. uchar BJ=30; //報警值

  26. void init()           //初始化函數(shù)
  27. {
  28.         TMOD=0x01; //工作方式
  29.          TL0=0xb0;
  30.          TH0=0x3c; //賦初值(12MHz晶振的50ms)
  31.          EA=1;          //打開中斷總開關(guān)
  32.         ET0=1;          //打開中斷允許開關(guān)
  33.          TR0=1;          //打開定時器開關(guān)
  34. }

  35. void main()          //主函數(shù)
  36. {
  37.         Init1602();//初始化顯示
  38.         init();           //初始化定時器
  39.         while(1)   //進入循環(huán)
  40.         {
  41.                 temp=ADC0809();                                   //讀取酒精濃度值
  42.                 if(set==0)                                           //只有在非設(shè)置狀態(tài)時,
  43.                 Display_1602(temp,BJ);           //才刷新顯示實時濃度值
  44.                 if(temp<BJ&&set==0)           //非設(shè)置時當(dāng)濃度值小于報警值時
  45.                 {
  46.                         flag=0;                                           //報警標(biāo)志位置0,不報警
  47.                 }
  48.                 else if(temp>BJ&&set==0)  //非設(shè)置時當(dāng)濃度值大于報警值時
  49.                 {
  50.                         flag=1;                                           //報警標(biāo)志位置1
  51.                 }
  52.                 Key();                                                   //掃描按鍵
  53.         }
  54. }
  55. //ADC0809讀取信息
  56. uchar ADC0809()
  57. {
  58.         uchar temp_=0x00;
  59.         //初始化高阻太

  60.         OE=0;
  61.         //轉(zhuǎn)化初始化
  62.         ST=0;
  63.         //開始轉(zhuǎn)換
  64.         ST=1;
  65.         ST=0;
  66.         //外部中斷等待AD轉(zhuǎn)換結(jié)束
  67.         while(EOC==0)
  68.         //讀取轉(zhuǎn)換的AD值
  69.         OE=1;
  70.         temp_=Data_ADC0809;//將0809的數(shù)值讀入單片機
  71.         OE=0;
  72.         return temp_;           //返回讀到的數(shù)據(jù)
  73. }

  74. void Key()                          //按鍵函數(shù)
  75. {
  76.         if(Key1==0)                        //設(shè)置鍵按下時
  77.         {
  78.                 while(Key1==0);        //檢測按鍵是否釋放
  79.                 FENG=1;                        //蜂鳴器不響
  80.                 flag=0;                        //停止報警
  81.                 TR0=0;                        //定時器停止
  82.         }
  83.         }

  84. void  time1_int(void) interrupt 1  //定時器函數(shù)
  85. {
  86.         uchar count;
  87.         TL0=0xb0;
  88.          TH0=0x3c;        //重新賦初值
  89.           count++;        //計時變量加
  90.         if(count==10)//定時器定時是50ms,此處計數(shù)10次,正好是500ms,用于報警時 燈亮和蜂鳴器響
  91.         {
  92.                 if(flag==0)                   //報警標(biāo)志為0時
  93.                 {
  94.                         LED_R=1;           //紅燈滅
  95.                         FENG=1;                   //蜂鳴器不響
  96.                 }
  97.                 if(flag==1)                 //報警標(biāo)志位為1時
  98.                 {
  99.                         LED_R=0;         //紅燈亮
  100.                         FENG=0;                 //蜂鳴器響
  101.                 }
  102.         }

  103.            if(count==20)                 //計數(shù)到20時,正好是1000ms,就是1s,這里就是讓燈滅,蜂鳴器不響,從而做出閃爍的效果
  104.            {
  105.                 count=0;                 //計到1s時,將count清零,準(zhǔn)備重新計數(shù)
  106.                 if(flag==0)
  107.                 {
  108.                         LED_R=1;
  109.                         FENG=1;
  110.                 }
  111.                 if(flag==1)
  112.                 {
  113.                         LED_R=1;
  114.                         FENG=1;
  115.                 }
  116.         }
  117. }
復(fù)制代碼

所有資料51hei提供下載:
程序設(shè)計.zip (46.41 KB, 下載次數(shù): 38)


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

使用道具 舉報

沙發(fā)
ID:543049 發(fā)表于 2019-5-30 10:04 | 只看該作者
電路圖什么樣子啊?
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产成人精品女人久久久 | 亚洲国产视频一区 | 国产精品久久久久久久久久久新郎 | 男女在线网站 | 老司机精品福利视频 | 欧美日韩在线视频一区二区 | 精品欧美一区二区三区久久久 | 精品在线一区 | 欧美区在线 | 国产一区二区三区四区三区四 | av一级毛片| 国产情侣在线看 | 二区在线视频 | 久日精品 | 国产精品免费播放 | 一区二区三区视频在线观看 | 不卡一区二区三区四区 | 欧美日韩电影在线 | 欧美精品一区二区在线观看 | 国产亚洲欧美另类一区二区三区 | www.99热这里只有精品 | 涩爱av一区二区三区 | 中文字幕观看 | 国产一区| 粉嫩一区二区三区国产精品 | 国产欧美精品一区二区色综合 | 久久久久久国产精品mv | 亚洲精品乱码久久久久v最新版 | 成人在线观看免费爱爱 | 黄色网毛片 | av一二三四 | 亚洲精品视频一区 | 免费在线观看91 | 国产剧情久久 | 日韩在线观看 | 日韩精品1区2区 | 亚洲视频在线观看 | 亚洲狠狠丁香婷婷综合久久久 | 精品一二区 | 中文字幕 在线观看 | 久久精彩视频 |