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

          新聞中心

          MSP430與DS1302之1602顯示

          作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò) 收藏
          #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.ex-cimer.com/article/201612/324673.htm

          /**************宏定義***************/
          #define DS_RST BIT7 //DS_RST = P2.7
          #define DS_SCL BIT5 //DS_SCL = P2.5
          #define DS_SDA BIT6 //DS_SDA = P2.6
          #define DS_RST_IN P2DIR &= ~DS_RST
          #define DS_RST_OUT P2DIR |= DS_RST
          #define DS_RST0 P2OUT &= ~DS_RST
          #define DS_RST1 P2OUT |= DS_RST
          #define DS_SCL_IN P2DIR &= ~DS_SCL
          #define DS_SCL_OUT P2DIR |= DS_SCL
          #define DS_SCL0 P2OUT &= ~DS_SCL
          #define DS_SCL1 P2OUT |= DS_SCL
          #define DS_SDA_IN P2DIR &= ~DS_SDA
          #define DS_SDA_OUT P2DIR |= DS_SDA
          #define DS_SDA0 P2OUT &= ~DS_SDA
          #define DS_SDA1 P2OUT |= DS_SDA
          #define DS_SDA_BIT P2IN & DS_SDA
          ucharflag;//定義一個(gè)讀標(biāo)志位
          uchar second,minute,hour,week,day,month,year;//秒、分、時(shí)、星期、日、月、年
          /*******************************************
          函數(shù)名稱:delay
          功 能:延時(shí)一段時(shí)間
          參 數(shù):time--延時(shí)長(zhǎng)度
          ********************************************/
          void delay(uint time)
          {
          uint i;
          for(i = 0;i < time;i++) _NOP();
          }
          /*******************************************
          函數(shù)名稱:Delay5ms 功 能:延時(shí)約5ms
          ********************************************/
          void Delay5ms(void)
          {
          uint i=40000;
          while (i != 0)
          {
          i--;
          }
          }
          /*******************************************
          函數(shù)名稱:WaitForEnable
          功 能:等待1602液晶完成內(nèi)部操作
          ********************************************/
          void WaitForEnable(void)
          {
          P4DIR &= 0x00; //將P4口切換為輸入狀態(tài)
          CLR_RS;
          SET_RW;
          _NOP();
          SET_EN;
          _NOP();
          _NOP();

          while((P4IN & Busy)!=0); //檢測(cè)忙標(biāo)志
          CLR_EN;
          P4DIR |= 0xFF; //將P4口切換為輸出狀態(tài)
          }
          /*******************************************
          函數(shù)名稱:write_com
          功 能:向液晶模塊寫入命令
          ********************************************/
          void write_com(uchar cmd)
          {
          WaitForEnable(); // 檢測(cè)忙信號(hào)?

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

          SET_EN; //產(chǎn)生使能脈沖信號(hào)
          _NOP();
          _NOP();
          CLR_EN;
          }

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

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

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

          write_com(0x38);//規(guī)定的復(fù)位操作
          Delay5ms();
          write_com(0x38);
          Delay5ms();
          write_com(0x38);
          Delay5ms();
          write_com(0x38);//顯示模式設(shè)置
          write_com(0x06);//寫字符時(shí)整體不移動(dòng)
          write_com(0x0c);//顯示開,不開游標(biāo),不閃爍
          write_com(0x01);//顯示清屏

          Write1602(0x80,2);
          Write1602(0x81,0);
          Write1602(0x80+4,-);
          Write1602(0x80+7,-);
          Write1602(0x80+0x40+5,:);
          Write1602(0x80+0x40+8,:);


          }


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

          關(guān)鍵詞: MSP430DS13021602顯

          評(píng)論


          技術(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); })();