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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)秒表精確計(jì)時(shí)

          51單片機(jī)秒表精確計(jì)時(shí)

          作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò) 收藏
          #include
          #include"intrins.h"
          #define uint unsigned int
          #define uchar unsigned char
          uint second ;
          code unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
          uchar code DIS_BIT[10]={0xff,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8};
          uchar count=0;
          /*void delay(int j) //delay 1 ms
          {
          uchar i;
          while(j--)
          for(i=1;i<=250;i++)
          {
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          }
          } */
          void init(void)
          {
          TMOD=0x01;
          TH0=(65536-50000)/256; //預(yù)先 設(shè)定定時(shí)器 初值,50毫秒
          TL0=(65536-50000)%256;
          EA=1; //開啟 總中斷
          ET0=1; //開啟定時(shí)器 0 中斷
          TR0=1; //定時(shí)器 0 啟動(dòng)計(jì)數(shù)
          }
          void display(uint result)
          {
          P2=table[result/1000];
          P1=DIS_BIT[3];
          //delay(900);
          P2=table[result%1000/100];
          P1=DIS_BIT[2];
          //delay(900);
          P2=table[result%1000%100/10];
          P1=DIS_BIT[1];
          //delay(900);
          P2=table[result%1000%100%10];
          P1=DIS_BIT[0];
          //delay(900);
          }
          void main()
          {
          init();
          while(1)
          {
          display(second);
          }
          }
          void time0(void) interrupt 1
          {
          count++; //50ms太短,閃爍頻率太快
          if(count==20) //用變量 count 延長(zhǎng)到100ms,根據(jù)自己的需要,調(diào)整參數(shù)或者定時(shí)器初始值來(lái)改成時(shí)間量
          {
          count=0;
          second++;
          if(second>59)
          {
          second=0;
          }
          }
          }


          評(píng)論


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

          關(guān)閉