<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于1602液晶的溫度感應器

          基于1602液晶的溫度感應器

          作者: 時間:2016-11-25 來源:網(wǎng)絡 收藏
          1602液晶單片機初學者必學的資源,其操作簡單,可讀可寫,相比數(shù)碼管而言,其顯示更為簡單。這里就不再介紹1602的具體特點和功能,可以去百度一下,可以搜索到很多資料。下面是我結合天祥視頻寫的一個溫度感應器

          --------------------------------------------------------------------------------------------------

          本文引用地址:http://www.ex-cimer.com/article/201611/321148.htm

          #include
          #define uint unsigned int
          #define uchar unsigned char
          uchar code table[]="The Tem is C";// 初始化溫度
          uchar code table1[]="00:00:00"; //初始化時間
          uchar code table2[]="MON TUE WEN THU FRI SAT SUN";//周日表
          uchar code wendu[]="0123456789"; //溫度顯示表
          sbit lcdrs=P1^4; //讀取命令選擇
          sbit lcdrw=P1^5; //讀/寫數(shù)據(jù)選擇
          sbit lcden=P1^6; //使能信號

          uint num;
          uchar count,shi,fen,miao,xq,t,tt;
          void delay(uint z);


          void write_com(uchar com)
          {
          lcdrs=0;
          P2=com;
          delay(5);
          lcden=1;
          delay(5);
          lcden=0;
          }

          void write_date(uchar date)
          {
          lcdrs=1;
          P2=date;
          delay(5);
          lcden=1;
          delay(5);
          lcden=0;
          }

          void init()
          {
          lcden=0;
          lcdrw=0;
          write_com(0x38);
          write_com(0x0c);
          write_com(0x06);
          write_com(0x80);

          write_com(0x80+0x40);
          for(num=0;num<16;num++)
          write_date(table[num]);

          write_com(0x80+0x0c);
          for(num=0;num<3;num++)
          write_date(table2[num]);

          write_com(0x80+0x02);
          for(num=0;num<8;num++)
          write_date(table1[num]);
          TMOD=0x01;
          TH0=(65536-50000)/256;
          TL0=(65536-50000)%6;
          EA=1;
          ET0=1;//開定時器0中斷
          TR0=1;//啟動定時器
          }

          void write_sfm(uchar add,uchar date) //第一個參數(shù)為地址,第二個參數(shù)為數(shù)據(jù) 修改時間
          {
          uchar shi,ge;
          shi=date/10;
          ge=date;
          write_com(0x80+0x02+add); //先確定地址
          write_date(0x30+shi); //數(shù)值分別送
          write_date(0x30+ge);
          }
          void write_xq(uchar xq)//參數(shù)代表位置
          {
          write_com(0x80+0x0c);
          for(num=xq;numwrite_date(table2[num]);
          }


          void showtime()
          {
          xq=0;

          if(count==20)
          {
          count=0;
          miao++;
          if(miao==60)
          {
          miao=0;
          fen++;
          if(fen==60)
          {
          fen=0;
          shi++;
          if(shi==24)
          {
          shi=0;
          xq+=4;
          if(xq==28)
          xq=0;
          write_xq(xq);
          }
          write_sfm(0,shi);
          }
          write_sfm(3,fen);
          }
          write_sfm(6,miao);
          }
          }

          void main()
          {
          init();
          showtime();
          while(1)
          {
          showtime();
          if(t==20)
          {
          t=0;
          tt++;
          if(tt==30)//30s采集一次溫度
          {
          tt=0;
          }
          }
          }

          }

          void timer0() interrupt 1
          {
          TH0=(65536-50000)/256;
          TL0=(65536-50000)%6;
          count++;t++;
          }
          void delay(uint z)
          {
          uchar x,y;
          for(x=z;x>0;x--)
          for(y=110;y>0;y--);
          }



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();