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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 12864液晶電子時(shí)鐘+溫度顯示

          12864液晶電子時(shí)鐘+溫度顯示

          作者: 時(shí)間:2012-08-06 來(lái)源:網(wǎng)絡(luò) 收藏

          18B20溫度傳感器控制函數(shù):

          #includereg52.h>
          #includeintrins.h>
          #include "lcd.h"
          #define uchar unsigned char
          #define uint unsigned int
          uchar temp=80,temp_L,temp_H;
          sbit DQ=P2^3;

          void delay_us(uchar i) //延時(shí)函數(shù),計(jì)算公式:延時(shí)時(shí)間T=5+2*i;
          {
          while(--i);
          }


          bit Reset_DS18B20(void) //DS18B20復(fù)位函數(shù)
          {
          bit DS18B20_exist;
          DQ=1;
          DQ=0;
          delay_us(250); //將DQ拉低480 ~ 960us,產(chǎn)生復(fù)位信號(hào)
          DQ=1; //將總線釋放,進(jìn)入接收狀態(tài)
          delay_us(30); //等待15-60us,DS18b20發(fā)出存在信號(hào),將總線拉低60-240us
          DS18B20_exist=DQ;
          delay_us(200); //存在信號(hào)持續(xù)60 ~ 240us
          if(DS18B20_exist)
          return 1; //返回1,DS18B20復(fù)位失敗,總線上無(wú)DS18B20
          else
          return 0; //返回0,DS18B20復(fù)位成功,總線上存在DS18b20
          }

          //寫(xiě)數(shù)據(jù)--線低后高
          void write_DS18B20(unsigned char value)
          {
          unsigned char i;
          for(i=0;i8;i++)
          {
          DQ=1;
          DQ=0; //將總線拉低,數(shù)據(jù)送入總線
          _nop_();
          DQ=value0x01;
          delay_us(20); //DS18b20在之后的15-60us的時(shí)間對(duì)總線數(shù)據(jù)采樣
          DQ=1; //連續(xù)寫(xiě)入將須將總線釋放至少1us
          value=value>>1;
          }
          }
          //讀數(shù)據(jù)--先低后高
          unsigned char Read_DS18B20(void)
          {
          unsigned char value,i;
          for(i=0;i8;i++)
          {
          DQ=1;
          DQ=0;
          delay_us(1); //主機(jī)將總線拉低7us,!!!!時(shí)間不能過(guò)長(zhǎng)
          DQ=1; //之后釋放總線,告訴DS18B20“讀”數(shù)據(jù)
          _nop_();
          _nop_();
          value=value>>1;
          if(DQ)
          value|=0x80; //數(shù)據(jù)讀取
          delay_us(20);

          }
          return value;
          }
          void Read_temp()
          {
          Reset_DS18B20();
          write_DS18B20(0xCC);
          write_DS18B20(0x44);
          Reset_DS18B20();
          write_DS18B20(0xcc);
          write_DS18B20(0xBE);
          temp_L=Read_DS18B20();
          temp_H=Read_DS18B20();
          temp=(temp_H*256+temp_L)/16;

          }
          -------------------------------------

          #include "lcd.h"
          #include reg52.h>
          sbit RS=P2^5; //控制端口位定義
          sbit RW=P2^6;
          sbit EN=P2^7;
          void init_()
          {
          delay(40);
          write_com(0x30);//8位數(shù)據(jù)格式,基本指令顯示
          delay(10); //延時(shí)時(shí)間
          write_com(0x30);//8位數(shù)據(jù)格式,基本指令顯示
          delay(37);
          write_com(0x0C);//開(kāi)顯示、關(guān)閉光標(biāo)
          delay(10);
          write_com(0x01);//清屏指令
          delay(10); //延時(shí)
          write_com(0x06);//設(shè)置顯示點(diǎn):指針自加1
          }
          void delay(uint t)
          {
          uint i,j;
          for(i=120;i>0;i--);
          for(j=t;j>0;j--);
          }
          /**********************************************************
          void delay_us(uchar t) //延時(shí)計(jì)算公式:5+2*t
          {
          while(--t);
          }
          ***********************************************************/
          void read_busy()
          {
          EN=0;
          RW=1;
          RS=0;
          EN=1;
          while(P00x80);
          EN=0;
          }
          void write_com(uchar com) //寫(xiě)命令
          {
          read_busy();
          EN=1;
          RS=0;
          RW=0;
          P0=com;
          delay(1);
          EN=0;

          }
          void write_dat(uchar dat) //寫(xiě)數(shù)據(jù)
          {
          read_busy();
          EN=1;
          RS=1;
          RW=0;
          P0=dat;
          delay(1);
          EN=0;
          }


          上一頁(yè) 1 2 3 4 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();