在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MSP430與DS18B20之1602顯示

      MSP430與DS18B20之1602顯示

      作者: 時間:2016-12-02 來源:網(wǎng)絡 收藏
      #include

      typedef unsigned char uchar;
      typedef unsigned int uint;
      /**************宏定義***************/
      #define DataDir P4DIR
      #define DataPort P4OUT
      #define Busy 0x80
      #define CtrlDir P3DIR
      #define CLR_RS P3OUT&=~BIT0; //RS = P3.0
      #define SET_RS P3OUT|=BIT0;
      #define CLR_RW P3OUT&=~BIT1; //RW = P3.1
      #define SET_RW P3OUT|=BIT1;
      #define CLR_EN P3OUT&=~BIT2; //EN = P3.2
      #define SET_EN P3OUT|=BIT2;

      本文引用地址:http://www.biyoush.com/article/201612/324659.htm

      #define DQ1 P1OUT |= BIT6
      #define DQ0 P1OUT &= ~BIT6
      #define DQ_in P1DIR &= ~BIT6
      #define DQ_out P1DIR |= BIT6
      #define DQ_val (P1IN & BIT6)
      uint tvalue;
      uchar tflag;
      uchar disdata[4];

      /*******************************************
      函數(shù)名稱:Delay5ms
      功 能:延時約5ms
      參 數(shù):無
      返回值 :無
      ********************************************/
      void Delay5ms(void)
      {
      uint i=40000;
      while (i != 0)
      {
      i--;
      }
      }
      /*******************************************
      函數(shù)名稱:DelayNus
      功 能:實現(xiàn)N個微秒的延時
      參 數(shù):n--延時長度
      返回值 :無
      說明 :定時器A的計數(shù)時鐘是1MHz,CPU主頻8MHz
      所以通過定時器延時能夠得到極為精確的
      us級延時
      ********************************************/
      void DelayNus(uint n)
      {
      CCR0 = n;
      TACTL |= MC_1; //增計數(shù)到CCR0
      while(!(TACTL & BIT0)); //等待
      TACTL &= ~MC_1; //停止計數(shù)
      TACTL &= ~BIT0; //清除中斷標志
      }
      /*******************************************
      函數(shù)名稱:WaitForEnable
      功 能:等待1602液晶完成內部操作
      參 數(shù):無
      返回值 :無
      ********************************************/
      void WaitForEnable(void)
      {
      P4DIR &= 0x00; //將P4口切換為輸入狀態(tài)
      CLR_RS;
      SET_RW;
      _NOP();
      SET_EN;
      _NOP();
      _NOP();

      while((P4IN & Busy)!=0); //檢測忙標志
      CLR_EN;
      P4DIR |= 0xFF; //將P4口切換為輸出狀態(tài)
      }
      /*******************************************
      函數(shù)名稱:write_com
      功 能:向液晶模塊寫入命令
      參 數(shù):cmd--命令,
      chk--是否判忙的標志,1:判忙,0:不判
      返回值 :無
      ********************************************/
      void write_com(uchar cmd)
      {
      WaitForEnable(); // 檢測忙信號?

      CLR_RS;
      CLR_RW;
      _NOP();
      DataPort = cmd; //將命令字寫入數(shù)據(jù)端口
      _NOP();

      SET_EN; //產生使能脈沖信號
      _NOP();
      _NOP();
      CLR_EN;
      }

      /*******************************************
      函數(shù)名稱:write_data
      功 能:向液晶顯示的當前地址寫入顯示數(shù)據(jù)
      參 數(shù):data--顯示字符數(shù)據(jù)
      返回值 :無
      ********************************************/
      void write_data( uchar data )
      {
      WaitForEnable(); //等待液晶不忙
      SET_RS;
      CLR_RW;
      _NOP();
      DataPort = data; //將顯示數(shù)據(jù)寫入數(shù)據(jù)端口
      _NOP();
      SET_EN; //產生使能脈沖信號
      _NOP();
      _NOP();
      CLR_EN;
      }

      void zifuchuan(uchar *ch)
      {
      while(*ch!=0)
      write_data(*ch++);
      Delay5ms();
      }

      /*******************************************
      函數(shù)名稱:LcdReset
      功 能:對1602液晶模塊進行復位操作
      參 數(shù):無
      返回值 :無
      ********************************************/
      void LcdReset(void)
      {
      CtrlDir |= 0x07; //控制線端口設為輸出狀態(tài)
      DataDir = 0xFF; //數(shù)據(jù)端口設為輸出狀態(tài)

      write_com(0x38); //規(guī)定的復位操作
      Delay5ms();
      write_com(0x38);
      Delay5ms();
      write_com(0x38);
      Delay5ms();
      write_com(0x38); //顯示模式設置
      write_com(0x08); //顯示關閉
      write_com(0x01); //顯示清屏
      write_com(0x06); //寫字符時整體不移動
      write_com(0x0c); //顯示開,不開游標,不閃爍
      }

      /*******************************************
      函數(shù)名稱:Init_18B20
      功 能:對DS18B20進行復位操作
      參 數(shù):無
      返回值 :初始化狀態(tài)標志:1--失敗,0--成功
      ********************************************/
      uchar Init_18B20(void)
      {
      uchar Error;

      DQ_out;
      _DINT();
      DQ0;
      DelayNus(500);
      DQ1;
      DelayNus(55);
      DQ_in;
      _NOP();
      if(DQ_val)
      {
      Error = 1; //初始化失敗
      }
      else
      {
      Error = 0; //初始化成功
      }
      DQ_out;
      DQ1;
      _EINT();

      DelayNus(400);

      return Error;
      }


      上一頁 1 2 下一頁

      關鍵詞: MSP430DS18B201602顯

      評論


      技術專區(qū)

      關閉