色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MEGA16單片機定時器(16位)源代碼

          MEGA16單片機定時器(16位)源代碼

          作者: 時間:2016-12-01 來源:網絡 收藏
          /*
          程序名: mega16a 芯片16位定時計數(shù)器;
          概括: 學會了控制8位定時器,16位定時器和它如出一轍,Its a piece of cake!
          在芯片開發(fā)板上實現(xiàn)精確一秒閃爍...
          心得 : 電子技術和音樂一樣 ,都是一門藝術,令人回味...
          finish time: 2014年3月8日19:33:10;
          作者 : 肖邦;
          */
          #include <avr/io.h> //頭文件;
          typedef unsigned char uint8 ; //在程序中用 uint8 相當于寫 unsigned char ;
          typedef unsigned int uint16; //用法同上;
          void reset_io(void) //初始化所有io口;
          {
          DDRA=0XFF;
          PORTA=0X00;
          DDRB=0XFF;
          PORTB=0X00;
          DDRC=0XFF;
          PORTC=0X00;
          PORTC|=1<<5; //12864液晶屏復位引腳置1;
          PORTC&=~(1<<5); //12864 清零 (復位) ;
          PORTC|=1<<5; //12864液晶屏復位引腳置1;
          DDRD=0XFF;
          PORTD=0X00;
          }
          int main(void) //主函數(shù)!!!!!
          {
          uint16 num=0;
          reset_io(); //初始化io口;
          TCNT1=0xff44; //設置定時器初始值,1毫秒溢出一次 0xff45==65536-(12兆/64分頻*0.001秒);
          TCCR1B=0x03; //( 64分頻 )設置定時器分頻并開啟定時器;
          PORTB=1<<2;
          while(1)
          {
          if(TIFR&0X04) //一旦溢出標志位置一,就進入;
          {
          // PORTA^=0XFF; //物理引腳PA口跳變,此語句沒用;
          num++;
          if(num==1000) {PORTA^=0XFF;num=0;} 每一毫秒num變量加一,加1000次是你秒;
          TCNT1=0XFF44; //回復初始值;
          TIFR|=0X04; //此語句很重要!!!!!!溢出標志位只有置一才會自動清零;
          }
          }
          }


          關鍵詞: MEGA16單片機定時

          評論


          技術專區(qū)

          關閉