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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)ne555+HS1101溫濕度監(jiān)測系統(tǒng)仿真電路與代碼設(shè)計 求幫助

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:491841 發(fā)表于 2019-3-17 15:19 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)程序編譯出錯


單片機(jī)HS1101源程序如下:
  1. #include<reg52.h>
  2. #include <absacc.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. sbit rs=P2^0;
  6. sbit rw=P2^1;
  7. sbit en=P2^2;
  8. sbit DQ=P3^4;                //     18b20總線
  9. unsigned char  dat[9]={0};                        //溫度
  10. unsigned char  shuju1[9]={0};         //濕度


  11. uchar code table1[17]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x54,0x45,0x4d,0x50,0x2d,0x2e,0x20};        //溫度調(diào)用
  12. uchar code table2[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x53,0x48,0x49,0x25,0x2e,0x20};            //濕度調(diào)用

  13. /**************1602d調(diào)用函數(shù)*******************/
  14. void write_com(uchar com);
  15. void write_shuju(uchar shuju);
  16. void init();
  17. void delay(uchar z);

  18. /**************18b20調(diào)用函數(shù)**************/
  19. unsigned char reset(void);           //18b20初始化//
  20. void write(uchar dat);               //18b20寫時序
  21. unsigned char read(void);            //18b20讀時序                  
  22. void readtemperature(void);          //18b20讀二進(jìn)制16位溫度
  23. void yanshi(unsigned int us);

  24. /****************hs1101調(diào)用函數(shù)*************************/
  25. void readfrequency(void);                        //        讀頻率函數(shù)//
  26. bit minrange=0;                                                //濕度下限標(biāo)志位//
  27. bit maxrange=0;                                                //濕度上限標(biāo)志位//
  28. bit T0Over=0;                                                //定時器結(jié)束標(biāo)記


  29. unsigned char w,x,y;

  30. /******************主函數(shù)******************/
  31. void main()                                         
  32. {
  33.         init();
  34.         while(1)        
  35.         {
  36.                 readtemperature();        
  37.                 write_com(0x80);
  38.                 write_shuju(table1[dat[0]]);
  39.                 write_com(0x81);
  40.                 write_shuju(table1[dat[1]]);
  41.                 write_com(0x82);
  42.                 write_shuju(table1[dat[2]]);
  43.                 write_com(0x83);
  44.                 write_shuju(table1[dat[3]]);
  45.                 write_com(0x84);
  46.                 write_shuju(table1[dat[4]]);
  47.                 write_com(0x85);
  48.                 write_shuju(table1[dat[5]]);
  49.                 write_com(0x86);
  50.                 write_shuju(table1[dat[6]]);
  51.                 write_com(0x87);
  52.                 write_shuju(table1[dat[7]]);
  53.                 write_com(0x88);
  54.                 write_shuju(table1[dat[8]]);
  55.                 readfrequency();
  56.         }

  57.         
  58.          
  59.         
  60. }

  61. /*****************1602延時程序*****************/
  62. void delay(uchar z)
  63. {
  64.         uint a,b;
  65.         for(a=0;a<z;a++)
  66.                 for(b=0;b<110;b++);
  67. }

  68. /*******************1602初始化**************/
  69. void init()
  70. {
  71.         en=0;
  72.         write_com(0x38);                //設(shè)置為8位并行,顯示2行,5*7點陣顯示
  73.         write_com(0x0c);                //設(shè)置顯示開 無光標(biāo) 光標(biāo)不閃爍
  74.         write_com(0x01);                  //清屏指令
  75.         write_com(0x80);                 
  76. }

  77. /***************1602寫指令*********************/
  78. void write_com(uchar com)
  79. {
  80.         rs=0;
  81.         rw=0;
  82.         P1=com;
  83.         delay(5);
  84.         en=1;
  85.         en=0;
  86. }

  87. /**************1602寫數(shù)據(jù)**********************/
  88. void write_shuju(uchar shuju)
  89. {
  90.         rs=1;
  91.         rw=0;
  92.         P1=shuju;
  93.         delay(5);
  94.         en=1;
  95.         en=0;
  96. }

  97. /*************18b20微秒延時********************/
  98. void yanshi(unsigned int us)
  99. {
  100.         int s;
  101.         for(s=0;s<us;s++);
  102. }

  103. /************************18b20初始化********/
  104. unsigned char reset(void)
  105. {
  106.         unsigned char  presence;
  107.         DQ=0;
  108.         yanshi(60);       //大概480微秒
  109.         DQ=1;
  110.         yanshi(8);                 //延時大概50微秒
  111.         presence=DQ;
  112.         yanshi(14);
  113.         return(presence);
  114. }
  115. /*************18b20寫時序*************************/
  116. void write(unsigned char dat)
  117. {
  118.         unsigned char i;
  119.         for(i=8;i>0;i--)
  120.         {
  121.                 DQ=0;
  122.                 DQ=dat&0x01;
  123.                 yanshi(16);
  124.                 DQ=1;
  125.                 dat>>=1;
  126.         }
  127. }

  128. /***************18b20讀時序*********************/
  129. unsigned char read(void)
  130. {
  131.         unsigned char i,dat=0;
  132.         for(i=8;i>0;i--)
  133.         {
  134.                 DQ=0;
  135.                 dat>>=1;
  136.                 DQ=1;
  137.                 if(DQ)
  138.                         dat|=0x80;
  139.                 yanshi(7);
  140.         }
  141.         return (dat);
  142. }

  143. /**************18b20讀溫度**********************/
  144. void readtemperature(void)
  145. {

  146.         unsigned char temp;
  147.         int temperature;
  148.         reset();
  149.         write(0xcc);
  150.         write(0x44);
  151.         reset();
  152.         write(0xcc);
  153.         write(0xbe);
  154.         temperature=read();
  155.         temp=read();
  156.         temperature=temperature|(temp<<8);
  157.         dat[0]=10;
  158.         dat[1]=11;
  159.         dat[2]=12;
  160.         dat[3]=13;
  161.         dat[4]=16;
  162.         if(temperature<0)
  163.         {
  164.                 dat[4]=14;
  165.                 temperature=~temperature+1;
  166.         }
  167.         dat[5]=(temperature*10/16)/100;
  168.         dat[6]=((temperature*10/16)%100)/10;
  169.         dat[7]=15;
  170.         dat[8]=((temperature*10/16)%100)%10;
  171. }


  172. /****************中斷*****************************/
  173. void timer0() interrupt 1
  174. {
  175.         TR1=0;
  176.         TR0=0;
  177.         TF0=0;
  178.     ET0=0;
  179.     T0Over=1;
  180. }

  181. /*************濕度傳感器頻率采集及轉(zhuǎn)換模塊***************/
  182. void readfrequency()
  183. {
  184.         unsigned int ftequency,RH;
  185.         TMOD=0x51;
  186.         TH0=0x4C;
  187.         TL0=0X00;
  188.         TH1=0;
  189.         TL1=0;
  190.         TR1=1;
  191.         TR0=1;
  192.     ET0=1;
  193.     ET1=0;
  194.         EA=1;
  195.         T0Over=0;
  196.         while(!T0Over)
  197.         write_com(0x80+0x40);
  198.         write_shuju(table2[shuju1[0]]);
  199.         write_com(0x80+0x41);
  200.         write_shuju(table2[shuju1[1]]);
  201.         write_com(0x80+0x42);
  202.         write_shuju(table2[shuju1[2]]);
  203.         write_com(0x80+0x43);
  204.         write_shuju(table2[shuju1[3]]);
  205.         write_com(0x80+0x44);
  206.         write_shuju(table2[shuju1[4]]);
  207.         write_com(0x80+0x45);
  208.         write_shuju(table2[shuju1[5]]);
  209.         write_com(0x80+0x46);
  210.         write_shuju(table2[shuju1[6]]);
  211.         write_shuju(table2[shuju1[7]]);
  212.         write_shuju(table2[shuju1[8]]);
  213.         ftequency=(TH1*256+TL1)*20;
  214.         minrange=0;
  215.         maxrange=0;
  216.         if(ftequency)
  217.         {
  218.                 if(ftequency<6033)
  219.                         maxrange=1;
  220.                 if(ftequency>7351)
  221.                         minrange=1;                                       
  222. ^^^^^^^^余下見附件
復(fù)制代碼

程序編譯出錯,求大神指導(dǎo)我:
溫濕度檢測.zip (56.43 KB, 下載次數(shù): 58)


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

使用道具 舉報

沙發(fā)
ID:998853 發(fā)表于 2022-1-3 10:16 | 只看該作者
少個大括號吧
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品亚洲第一区在线暖暖韩国 | av看看| 精品一区二区三区在线观看国产 | 日韩成人精品一区二区三区 | 日韩一区二区av | 91精品国产乱码久久久久久久 | 久久精品国产一区二区三区 | 巨大荫蒂视频欧美另类大 | 国产精品99久久久久久大便 | 久久在线 | 亚洲三区在线播放 | 91手机精品视频 | 在线91 | 精品久久久久一区 | 欧美综合国产精品久久丁香 | 日韩精品一区二区三区第95 | 国产精品揄拍一区二区 | 国产一区2区 | 最新国产精品视频 | 免费观看羞羞视频网站 | 九九色综合 | 青青久久 | 国产二区三区 | 久久久精品一区 | 免费观看www7722午夜电影 | 青青草社区 | 大象一区| 中文字幕日韩一区 | 91视频a| 99精品免费在线观看 | 免费一级淫片aaa片毛片a级 | 久久午夜国产精品www忘忧草 | 亚洲小视频 | 成人国产精品久久 | 久久久久中文字幕 | 亚洲先锋影音 | 亚洲高清久久 | 中文字幕国产精品 | 欧美日韩免费在线 | 中文字幕精品一区二区三区在线 | 五月天婷婷激情 |