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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > avr atmega16做的頻率計 利用輸入捕獲功能

          avr atmega16做的頻率計 利用輸入捕獲功能

          作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://cafeforensic.com/article/201611/316377.htm


          /*****************************************
          * 基于頻率計程序設(shè)計 *
          * 功 能:頻率計 *
          * 時鐘頻率:內(nèi)部8M *
          頻率計最大頻率范圍。proteus測的65K 左右
          MADE BY LYQ
          *****************************************/
          #include
          #include
          #include "1602.c"
          #define uint unsigned int
          #define uchar unsigned char
          #pragma interrupt_handler timer1_capture:6
          #pragma interrupt_handler timer1_over:9
          uint Freq=0;
          uint i;
          uchar a=0;
          uchar data[6]={0,0,0,0,0,0};//顯示初值,最后一個0是結(jié)束符,方便液晶顯示


          void timer1_init()
          {
          TIMSK=(1<TCCR1B=(1<TCNT1=0X85ed;// ###定時1s#########
          TIFR=(1<//SREG=SREG&0x7f;
          }
          void hz(uint i,uchar *p) //顯示處理,+48(0x30) 0的ASCII碼。。是因為液晶顯示的是ASCII碼
          {


          p[4]=i%10+48;//個
          p[3]=i/10%10+48;//十
          p[2]=i/100%10+48;//百
          p[1]=i/1000%10+48;//千
          p[0]=i/10000%10+48;//萬
          }


          void main()
          {
          timer1_init();
          init_1602();//液晶初始化

          DDRD=0x00;
          PORTD=0xff;//設(shè)置D口為帶上拉電阻輸入
          SREG|=0x80;
          LCD_write_string(3,0,"MADE BY LYQ");
          LCD_write_string(11,1,"Hz");
          while(1)
          {
          if(a)
          {
          a=0;
          hz(i,data);
          LCD_write_string(6,1,data); //顯示

          }
          }
          }

          void timer1_capture()//產(chǎn)生捕獲中斷
          {
          Freq++;
          }

          void timer1_over()//每秒產(chǎn)生中斷一次
          {
          TCNT1=0X85ed;//
          i=Freq;
          a=1;
          Freq=0;
          }



          評論


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

          關(guān)閉