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

          新聞中心

          ATMEGA8計(jì)數(shù)器

          作者: 時間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
          //可測1MHZ的頻率

          #include
          #include
          #define uchar unsigned char
          #define uint unsigned int
          /***********對應(yīng)的幾個數(shù)碼管顯示*****************/
          const uchar table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
          unsigned long load=0;
          uchar data[4]={0,0,0,0};//
          uint cnt=0;//定時中的中斷次數(shù)
          uchar temp=0;//超過65536時這個數(shù)需要
          //
          void display(uchar *p)
          {
          uchar i,j,sel=0x01;
          for(j=0;j<2;j++)
          for(i=0;i<4;i++)
          {PORTB=~table[p[i]];
          PORTC=sel;
          Delay_us(2000);
          sel=sel<<1;
          }
          }
          void process(unsigned long t,uchar *p)//數(shù)據(jù)處理
          {unsigned long i=t;
          if(i<=9999)
          PORTD=PORTD|0X03;
          else if((i<=99999)&&(i>9999))
          {
          i=i/100;
          PORTD=PORTD&0XFE;
          PORTD=PORTD|0X02;
          }
          else if(i>99999)
          {
          PORTD=PORTD|0X01;
          PORTD=PORTD&0XFD;
          i=i/1000;
          }
          p[3]=i/1000;
          i=i%1000;
          p[2]=i/100;
          i=i%100;
          p[1]=i/10;
          i=i%10;
          p[0]=i;
          }
          void int_io(void)
          {DDRB=DDRC=0XFF;
          DDRD=0XDF;
          PORTC=PORTB=0XFF;
          PORTD=0XFF;
          SREG=0X80;//全局使能
          TCCR1B=0X06;//計(jì)數(shù)方式:T1下降沿
          TCNT1H=0X00;//計(jì)數(shù)器賦初值
          TCNT1L=0X00;
          }
          void main(void )
          {
          int_io();
          PORTB=0X00;
          PORTC=0XFF;
          Delay_ms(500);
          PORTB=0XFF;
          /****************************/
          TCNT0=0X06;//定時計(jì)數(shù)初使值為6
          TCCR0=0X04;//T/C0工作在定時方式,系統(tǒng)時鐘256分頻
          TIMSK=0X01;//定時局部使能T/C0
          while(1)
          {
          process(load,data);
          display(data);
          if(TIFR&0X04)//用標(biāo)志位來進(jìn)行 >65536時的事件
          { // if(TIFR&0X20)
          temp++;
          TIFR=TIFR&0X04;
          }
          }
          }
          /************************/
          ///////////////以下是T0的定時中斷
          #pragma interrupt_handler time0:10
          void time0(void)
          {
          uint tep=0;//讀取高字TCNT1L的值
          cnt++;
          if(125==cnt)//125*256us,且此處用于調(diào)節(jié)精度;
          {
          cnt=0;//
          /********以下為讀取計(jì)數(shù)器的值***********/
          load=0;
          load=TCNT1L;//讀取計(jì)數(shù)器低位的值
          tep=TCNT1H*256;//讀取計(jì)數(shù)器高位的值并處理
          load=tep+load;//高位加低位
          load=load+65536*temp;//處理完的數(shù)
          /***********************/
          TCNT1H=0X00;//重新賦初值
          TCNT1L=0X00;
          temp=0;
          }
          }
          //TO用于定時,

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


          關(guān)鍵詞: ATMEGA8計(jì)數(shù)

          評論


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