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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4815|回復(fù): 7
收起左側(cè)

基于51單片機(jī)的酒精濃度檢測(cè)程序Proteus仿真 keil5 C語言編寫

  [復(fù)制鏈接]
ID:539024 發(fā)表于 2021-7-8 10:16 | 顯示全部樓層 |閱讀模式
1. 能夠檢測(cè)煤氣的濃度;
2. 液晶LCD1602顯示煤氣的濃度;
3. 超標(biāo)進(jìn)行聲光報(bào)警。
由于是仿真,煙霧濃度傳感器采用仿真里面的光敏傳感器代替,用ADC0832測(cè)電壓值。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.png 51hei.gif
51hei.png
單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit rs=P3^5;
  5. sbit lcden=P3^4;
  6. sbit SCL=P2^6;                //SCL定義,連接ADC0832SCL腳
  7. sbit DO=P2^5;                //DO定義,連接ADC0832DO腳
  8. sbit CS=P2^4;                //CS定義,連接ADC0832CS腳
  9. sbit baojing=P1^0;  //聲光報(bào)警
  10. uchar table[]="CO:";
  11. uint CO=0,a,nongdu;
  12. void delay(uint x)
  13. {
  14.         uint a,b;
  15.         for(a=x;a>0;a--)
  16.                 for(b=10;b>0;b--);
  17. }

  18. void write_com(uchar com)         //寫命令,RS=0
  19. {
  20.         P0=com;
  21.         rs=0;
  22.         lcden=0;
  23.         delay(10);
  24.         lcden=1;
  25.         delay(10);
  26.         lcden=0;
  27.        
  28. }

  29. void write_data(uchar dat)           //寫數(shù)據(jù),RS=1
  30. {
  31.         P0=dat;
  32.         rs=1;
  33.         lcden=0;
  34.         delay(10);
  35.         lcden=1;
  36.         delay(10);
  37.         lcden=0;
  38.        
  39. }

  40. void init()
  41. {

  42.         write_com(0x38);   //顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口
  43.         delay(20);
  44.         write_com(0x0c);   //顯示模式設(shè)置
  45.         delay(20);
  46.         write_com(0x06);   //顯示模式設(shè)置:光標(biāo)右移,字符不移
  47.         delay(20);
  48.         write_com(0x01);   //清屏幕指令,將以前的顯示內(nèi)容清除
  49.         delay(20);       
  50. }
  51. void dis(uchar k)
  52. {         
  53.         CO=k;

  54.         write_com(0x80);  //設(shè)置所要顯示字符的位置為第一行第一列
  55.         a=0;
  56.         for(a=0;a<3;a++)           //總共要顯示3個(gè)字符,故循環(huán)三次。
  57.         {                                          
  58.         write_data(table[a]);
  59.         delay(10);               
  60.         }
  61.     write_com(0x83);                 //顯示濃度百位
  62.         write_data(0x30+CO/100);
  63.         delay(10)  ;

  64.         write_com(0x84);           //顯示濃度十位
  65.         write_data(0x30+CO/10%10);
  66.         delay(10)  ;

  67.         write_com(0x85);           //顯示濃度個(gè)位
  68.         write_data(0x30+CO%10);
  69.         delay(10)  ;

  70.         write_com(0x86);
  71.         write_data('%');        //顯示“%”
  72.         delay(10)  ;
  73.        


  74. }  
  75. unsigned char ad0832read(bit SGL,bit ODD)
  76. {
  77.         unsigned char i=0,value=0,value1=0;               
  78.                 SCL=0;
  79.                 DO=1;
  80.                 CS=0;                //開始
  81.                 SCL=1;                //第一個(gè)上升沿       
  82.                 SCL=0;
  83.                 DO=SGL;
  84.                 SCL=1;          //第二個(gè)上升沿
  85.                 SCL=0;
  86.                 DO=ODD;
  87.                 SCL=1;           //第三個(gè)上升沿
  88.                 SCL=0;           //第三個(gè)下降沿
  89.                 DO=1;
  90.                 for(i=0;i<8;i++)
  91.                 {
  92.                         SCL=1;
  93.                         SCL=0; //開始從第四個(gè)下降沿接收數(shù)據(jù)
  94.                         value<<=1;
  95.                         if(DO)
  96.                                 value++;                                               
  97.                 }
  98.                 for(i=0;i<8;i++)
  99.                 {                        //接收校驗(yàn)數(shù)據(jù)
  100.                         value1>>=1;
  101.                         if(DO)
  102.                                 value1+=0x80;
  103.                         SCL=1;
  104.                         SCL=0;
  105.                 }
  106.                 CS=1;
  107.                 SCL=1;       
  108.                 if(value==value1)                                //與校驗(yàn)數(shù)據(jù)比較,正確就返回?cái)?shù)據(jù),否則返回0       
  109.                         return value;
  110.         return 0;
  111. }

  112. void main()
  113. ……………………

  114. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
煤氣泄漏檢測(cè)報(bào)警器.rar (51.17 KB, 下載次數(shù): 106)


評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:996321 發(fā)表于 2021-12-23 21:55 | 顯示全部樓層
請(qǐng)問,把這個(gè)變成酒精檢測(cè)的需要怎么操作
回復(fù)

使用道具 舉報(bào)

ID:993801 發(fā)表于 2021-12-26 15:55 | 顯示全部樓層
樓主你好,我的運(yùn)行之后顯示屏一直是255%沒有變化是怎么回事
回復(fù)

使用道具 舉報(bào)

ID:262 發(fā)表于 2021-12-27 04:57 | 顯示全部樓層
2262273731 發(fā)表于 2021-12-26 15:55
樓主你好,我的運(yùn)行之后顯示屏一直是255%沒有變化是怎么回事

版本的問題,你用Proteus8.8打開
51hei.png
回復(fù)

使用道具 舉報(bào)

ID:908826 發(fā)表于 2021-12-27 09:39 | 顯示全部樓層
這個(gè)一氧化碳濃度傳感器是Proteus自帶的嗎????
回復(fù)

使用道具 舉報(bào)

ID:1017505 發(fā)表于 2022-4-15 00:08 | 顯示全部樓層
博主,為什么聲光報(bào)警器,當(dāng)濃度超過30%的時(shí)候只有光報(bào)警,沒有聲音報(bào)警,請(qǐng)問是哪里出了問題嗎
回復(fù)

使用道具 舉報(bào)

ID:1018482 發(fā)表于 2022-4-15 00:43 | 顯示全部樓層
at89c52換成51可以嗎
回復(fù)

使用道具 舉報(bào)

ID:140706 發(fā)表于 2025-4-26 10:49 | 顯示全部樓層
樓主你好,at89c52換成51可以嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产日产精品一区二区三区四区 | 成人综合在线视频 | 羞羞视频在线观免费观看 | www.国产| 亚洲aⅴ一区二区 | 国际精品久久 | 欧美激情免费在线 | 四虎影音 | 欧美日韩一二区 | 欧美一级片在线看 | 精品国产欧美 | 性视频一区 | 精品一二三区 | 一区二区三区精品视频 | 不卡一区二区在线观看 | 欧美大片一区 | 天天射美女 | 欧美黄色绿像 | 又爽又黄axxx片免费观看 | 秋霞国产 | www.久久99| 草比网站| 中文字幕一区二区三区四区不卡 | 一级黄片一级毛片 | 成年人精品视频在线观看 | 欧美日韩国产一区二区三区不卡 | 国产欧美日韩一区二区三区在线 | 中文字幕视频在线观看 | 国产一区在线免费 | 91深夜福利视频 | 国产99久久 | 特级黄一级播放 | 中文字幕亚洲欧美 | 免费看欧美一级片 | 伊人影院在线观看 | 日韩中文字幕免费在线观看 | 国产免费看 | 日韩av高清在线 | 岛国精品 | japanhd美女动 | 日韩国产欧美 |