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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于PCF8591轉(zhuǎn)換器實(shí)現(xiàn)煙霧報警器仿真和單片機(jī)程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:410399 發(fā)表于 2018-10-30 08:10 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
基于PCF8591轉(zhuǎn)換器實(shí)現(xiàn)煙霧報警,LCD1602液晶屏和數(shù)碼管實(shí)現(xiàn)檢測煙霧濃度,超過預(yù)設(shè)值蜂鳴器響,燈亮。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序:
  1. #include <reg51.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
  2. #include <intrins.h>
  3. #include "I2C.h"

  4. #define     u8                  unsigned char
  5. #define     u16                   unsigned int
  6. #define     uchar                  unsigned char
  7. #define     uint                   unsigned int

  8. #define nops()  do{_nop_();_nop_();_nop_();_nop_();_nop_();} while(0) //定義空指令


  9. #define  READADDR  0x91    //讀地址
  10. #define  WRITEADDR  0x90    //寫地址


  11. sbit SCL = P1^7;       //I2C  時鐘
  12. sbit SDA = P1^6;       //I2C  數(shù)據(jù)

  13. uchar yanwu;                                                 //用于讀取ADC數(shù)據(jù)
  14. uchar yushe_yanwu=100;                                //煙霧預(yù)設(shè)值

  15. //運(yùn)行模式  
  16. uchar Mode=0;                                                 //  =1是設(shè)置煙霧閥值        =0是正常監(jiān)控模式

  17. //管腳聲明
  18. sbit Led_Reg                =P2^2;                                 //紅燈
  19. sbit Buzzer                     =P1^5;                                 //蜂鳴器
  20. sbit Fan                     =P3^3;                                 //



  21. /********************************************************************
  22. * 名稱 : delay_1ms()
  23. * 功能 : 延時1ms函數(shù)
  24. * 輸入 : q
  25. * 輸出 : 無
  26. ***********************************************************************/
  27. void delay_ms(uint q)
  28. {
  29.         uint i,j;
  30.         for(i=0;i<q;i++)
  31.                 for(j=0;j<110;j++);
  32. }
  33. /***********************************************************************************************************
  34. LCD1602相關(guān)函數(shù)
  35.         特殊接口說明
  36.                 RS:寄存器選擇輸入端
  37.                         RS = 1:指向數(shù)據(jù)寄存器                 數(shù)據(jù)
  38.                         RS = 0:指向指令寄存器                        命令

  39.                 RW:讀寫控制輸入端
  40.                         RW = 0:寫操作                 RW = 1:讀操作

  41.                 E:使能信號輸入端
  42.                         讀操作時,高電平有效;
  43.                         寫操作時,下降沿有效;
  44. ***********************************************************************************************************/

  45. //LCD管腳聲明 (RW引腳實(shí)物直接接地,因為本設(shè)計只用到液晶的寫操作,RW引腳一直是低電平)
  46. sbit LCDRS = P2^6;                                //寄存器選擇輸入端,RS = 1 指向數(shù)據(jù)(讀或?qū)憯?shù)據(jù))        RS = 0指向指令(讀或?qū)懨睿?br />
  47. sbit LCDEN = P2^7;
  48. sbit D0                 = P0^0;
  49. sbit D1                 = P0^1;
  50. sbit D2                 = P0^2;
  51. sbit D3                 = P0^3;
  52. sbit D4                 = P0^4;
  53. sbit D5                 = P0^5;
  54. sbit D6                 = P0^6;
  55. sbit D7                 = P0^7;



  56. //LCD延時
  57. void LCDdelay(uint z)                  //該延時大約100us(不精確,液晶操作的延時不要求很精確)
  58. {
  59.         uint x,y;
  60.         for(x=z;x>0;x--)
  61.                 for(y=10;y>0;y--);
  62. }

  63. void LCD_WriteData(u8 dat)         
  64. {
  65.         if(dat&0x01)D0=1;else D0=0;
  66.         if(dat&0x02)D1=1;else D1=0;
  67.         if(dat&0x04)D2=1;else D2=0;
  68.         if(dat&0x08)D3=1;else D3=0;
  69.         if(dat&0x10)D4=1;else D4=0;
  70.         if(dat&0x20)D5=1;else D5=0;
  71.         if(dat&0x40)D6=1;else D6=0;
  72.         if(dat&0x80)D7=1;else D7=0;
  73. }
  74. //寫命令
  75. void write_com(uchar com)
  76. {
  77.         LCDRS=0;                                //RS = 0 ,指向數(shù)據(jù)寄存器,                          
  78.         LCD_WriteData(com);
  79. //  DAT=com;
  80.         LCDdelay(5);
  81.         LCDEN=1;
  82.         LCDdelay(5);
  83.         LCDEN=0;
  84. }
  85. //寫數(shù)據(jù)
  86. void write_data(uchar date)
  87. {
  88.         LCDRS=1;
  89.         LCD_WriteData(date);
  90. //  DAT=date;
  91.         LCDdelay(5);
  92.         LCDEN=1;
  93.         LCDdelay(5);
  94.         LCDEN=0;
  95. }

  96. /*------------------------------------------------
  97.               選擇寫入位置
  98.         x = 0        表示寫入第一行, y是列
  99.         x = 1          表示寫入第二行, y是列
  100. ------------------------------------------------*/
  101. void SelectPosition(unsigned char x,unsigned char y)                 
  102. {     
  103.         if (x == 0)
  104.         {     
  105.                 write_com(0x80 + y);     //表示第一行
  106.         }
  107.         else
  108.         {      
  109.                 write_com(0xC0 + y);      //表示第二行
  110.         }        
  111. }
  112. /*------------------------------------------------
  113.               寫入字符串函數(shù)
  114.                 x是行,y是列,*s是寫入的數(shù)據(jù)
  115. ------------------------------------------------*/
  116. void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s)
  117. {     
  118.         SelectPosition(x,y) ;
  119.         while (*s)
  120.         {     
  121.                 write_data( *s);     
  122.                 s++;     
  123.         }
  124. }
  125. //========================================================================
  126. // 函數(shù): void LCD_Write_Char(u8 x,u8 y,u16 s,u8 l)
  127. // 應(yīng)用: LCD_Write_Char(0,1,366,4) ;
  128. // 描述: 在第0行第一個字節(jié)位置顯示366的后4位,顯示結(jié)果為 0366
  129. // 參數(shù): x:行,y:列,s:要顯示的字,l:顯示的位數(shù)
  130. // 返回: none.
  131. // 版本: VER1.0
  132. // 備注: 最大顯示65535
  133. //========================================================================
  134. void LCD_Write_Char(u8 x,u8 y,u16 s,u8 l)
  135. {     
  136.         SelectPosition(x,y) ;

  137.         if(l>=5)
  138.                 write_data(0x30+s/10000%10);        //萬位
  139.         if(l>=4)
  140.                 write_data(0x30+s/1000%10);                //千位
  141.         if(l>=3)
  142.                 write_data(0x30+s/100%10);                //百位
  143.         if(l>=2)
  144.                 write_data(0x30+s/10%10);                        //十位
  145.         if(l>=1)
  146.                 write_data(0x30+s%10);                //個位

  147. }
復(fù)制代碼

全部資料51hei下載地址:
煙霧報警器.zip (142.14 KB, 下載次數(shù): 184)


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:269211 發(fā)表于 2018-10-31 09:28 | 只看該作者
請問您這個煙霧報警模塊的型號是哪一個?
回復(fù)

使用道具 舉報

板凳
ID:410399 發(fā)表于 2018-11-2 15:24 來自手機(jī) | 只看該作者
chaoself 發(fā)表于 2018-10-31 09:28
請問您這個煙霧報警模塊的型號是哪一個?

MQ-2煙霧傳感器
回復(fù)

使用道具 舉報

地板
ID:509148 發(fā)表于 2019-4-11 13:45 | 只看該作者
void LCD_WriteData(u8 dat)          
{
        if(dat&0x01)D0=1;else D0=0;
        if(dat&0x02)D1=1;else D1=0;
        if(dat&0x04)D2=1;else D2=0;
        if(dat&0x08)D3=1;else D3=0;
        if(dat&0x10)D4=1;else D4=0;
        if(dat&0x20)D5=1;else D5=0;
        if(dat&0x40)D6=1;else D6=0;
        if(dat&0x80)D7=1;else D7=0;
}這段代碼是什么意思?什么作用?
回復(fù)

使用道具 舉報

5#
ID:503551 發(fā)表于 2019-6-1 10:55 | 只看該作者
你好,請問你的程序是完全可以運(yùn)行的嗎,為什么我實(shí)際燒錄的時候沒有反應(yīng)
回復(fù)

使用道具 舉報

6#
ID:768338 發(fā)表于 2020-6-14 17:00 | 只看該作者
你好,請問煙霧報警器壓縮包里有代碼嗎?
回復(fù)

使用道具 舉報

7#
ID:786582 發(fā)表于 2021-3-14 22:31 | 只看該作者
chaoself 發(fā)表于 2018-10-31 09:28
請問您這個煙霧報警模塊的型號是哪一個?

應(yīng)該是MQ2煙霧傳感器吧
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩av高清| 国产精品1区 | 久久精品国产一区二区三区 | 天天视频一区二区三区 | 久草视| 中文字幕国产日韩 | 国产成人精品综合 | 国产精品一区二区无线 | 99色视频 | 国产女人第一次做爰毛片 | 国产成人a亚洲精品 | 成人免费网站 | 亚洲免费婷婷 | 精产国产伦理一二三区 | 亚洲精选久久 | 人人插人人 | 91免费小视频 | 9999国产精品欧美久久久久久 | 91天堂| 国产精品国产精品国产专区不蜜 | 亚洲日韩欧美一区二区在线 | 亚洲欧洲一区二区 | 欧美日韩a| 日韩欧美国产精品综合嫩v 一区中文字幕 | 久久久www成人免费无遮挡大片 | a国产一区二区免费入口 | 刘亦菲国产毛片bd | 久草久 | 免费同性女女aaa免费网站 | 久在线 | 久久精品色欧美aⅴ一区二区 | 国产伦一区二区三区四区 | 香蕉视频一区二区 | 日韩成人在线观看 | 无码日韩精品一区二区免费 | 九色91视频| 欧美精品乱码久久久久久按摩 | 亚洲精品www| 国产激情精品一区二区三区 | 亚洲福利电影网 | 99爱国产|