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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用MSP430的32768Hz晶振寫的時鐘

          用MSP430的32768Hz晶振寫的時鐘

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


          }

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

          void Clock(void)
          {
          miao++;
          if(miao==60)
          {
          miao=0;
          fen++;
          if(fen==60)
          {
          fen=0;
          shi++;
          if(shi==24)
          {
          shi=0;
          }
          write_sfm(2,shi);
          }
          write_sfm(5,fen);
          }
          write_sfm(8,miao);

          }

          void keyscan()
          {

          if(keyin!=0x0f)
          {
          delay(5); //延時消抖
          if(keyin != 0x0f) //再次檢測按鍵狀態(tài)
          {
          temp=keyin;
          while(keyin != 0x0f); //等待按鍵被放開
          if(temp==0x0e)
          {
          keynum++;
          switch(keynum)
          {
          case 1:
          _DINT();
          // CCTL0 &=~ CCIE; //兩種停止時鐘的方法效果一樣
          write_com(0x80+0x40+9);
          write_com(0x0f);//光標開始閃
          break;
          case 2:
          write_com(0x80+0x40+6);break;
          case 3:
          write_com(0x80+0x40+3);break;
          case 4:
          keynum=0;
          write_com(0x0c);//開顯示,光標不顯示
          _EINT();
          // CCTL0|=CCIE; //使用相應打開時鐘的方法
          break;
          }
          }
          if(temp==0x0d)
          {
          // while(keyin != 0x0d); //等待按鍵被放開
          switch(keynum)
          {
          case 1:
          miao++;
          if(miao==60)miao=0;
          write_sfm(8,miao);
          write_com(0x80+0x40+9);
          break;
          case 2:
          fen++;
          if(fen==60)fen=0;
          write_sfm(5,fen);
          write_com(0x80+0x40+6);
          break;
          case 3:
          shi++;
          if(shi==24)shi=0;
          write_sfm(2,shi);
          write_com(0x80+0x40+3);
          break;
          }
          }

          if(temp==0x0b)
          {
          // while(keyin != 0x0d); //等待按鍵被放開
          switch(keynum)
          {
          case 1:
          miao--;
          if(miao==-1)miao=59;
          write_sfm(8,miao);
          write_com(0x80+0x40+9);
          break;
          case 2:
          fen--;
          if(fen==-1)fen=59;
          write_sfm(5,fen);
          write_com(0x80+0x40+6);
          break;
          case 3:
          shi--;
          if(shi==-1)shi=23;
          write_sfm(2,shi);
          write_com(0x80+0x40+3);
          break;
          }
          }

          }
          }
          }

          int main( void )
          { P6DIR|=BIT3;
          P6OUT|=BIT3;
          //上兩句是打開1602的背光電源

          WDTCTL = WDTPW + WDTHOLD;

          lcd_init();
          delay(500);

          write_com(0x80+0x40+4);
          write_data(:);
          write_com(0x80+0x40+7);
          write_data(:);
          write_sfm(2,shi);
          write_sfm(5,fen);
          write_sfm(8,miao);


          CCR0 = 32768 - 1;//設置定時器A的中斷時間為1S
          TACTL = TASSEL_1 + MC_1; //計數(shù)時鐘ACLK, 增計數(shù)模式
          CCTL0 |= CCIE; //使能CCR0比較中斷
          _EINT();//打開全局中斷


          P1DIR = 0xf0; //設置P1.0~P.3為輸入狀態(tài)
          // P1DIR = BIT7; //設置P1.0~P.3為輸入狀態(tài),P1.7為輸出
          // P1OUT = 0;
          //以上兩句是在沒有獨立按鍵情況下把P1_7拉低成為地線

          while(1)
          {
          keyscan();
          //本程序如果加低功耗模式會使按鍵功能失效
          }
          }

          /*******************************************
          函數(shù)名稱:TimerA_ISR
          功 能:定時器A的中斷服務函數(shù)
          ********************************************/
          #pragmavector=TIMERA0_VECTOR
          __interrupt void TimerA_ISR(void)
          {
          Clock();
          }
          //到此時鐘加按鍵完成


          上一頁 1 2 下一頁

          關鍵詞: MSP430晶振時

          評論


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