<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        單片機流水線計數器設計

        作者:佚名   來源:本站原創   點擊數:  更新時間:2014年03月08日   【字體:

         幾年晚上一個網友找我做流水線計數器,于是想起了半年前我上傳到百度文庫的這個文檔。呵呵,當年

        濰坊學院第二屆電子設計大賽

        #include <AT89X52.H>

        #define uint unsigned int

        #define uchar unsigned char

         

        uchar code tabel[]={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};// 這個數組存放0~9

        uint counter;//定義計數器,用來計量脈沖次數

        sbit wei_ge=P1^0; //定義位選引腳

        sbit wei_shi=P1^1;

        sbit wei_bai=P1^2;

        sbit wei_qian=P1^3;

        sbit BUZZER=P2^0;

         

        void delay_(unsigned int j)

         

        {

         unsigned int k;

         while (--j!=0)

         {

         for (k=0;k<600;k++);

        }

        }

         

         

        /*延時子程序*******************************************************/

        void delay(uint xms)

        {

         uint j;

         for(;xms>0;xms--)

          for(j=110;j>0;j--);

        }

        /*數碼管掃描顯示子程序************************************************/

        void shuma_show(uint date)

        {

         uchar ge,shi,bai,qian;//數碼管顯示變量聲明

         ge=date%10;//個位數換算

         shi=date/10%10;//十位換算

         bai=date/100%10;//百位換算

         qian=date/1000;//千位換算

         

         wei_ge=1;//打開個位顯示

         P0=tabel[ge]; //數據輸入數碼管內

         delay(2);//延時顯示2ms

         wei_ge=0;//關閉個位顯示

         wei_shi=1;//打開個位顯示

         P0=tabel[shi]; //數據輸入數碼管內

         delay(2);//延時顯示2ms

         wei_shi=0;//關閉個位顯示

         wei_bai=1;//打開個位顯示

         P0=tabel[bai]; //數據輸入數碼管內

         delay(2);//延時顯示2ms

         wei_bai=0;//關閉個位顯示

         wei_qian=1;//打開個位顯示

         P0=tabel[qian]; //數據輸入數碼管內

         delay(2);//延時顯示2ms

         wei_qian=0;//關閉個位顯示    

        }

        /*初始化子程序**********************************************************/

        void inti()

        {

         wei_ge=wei_shi=wei_bai=wei_qian=0;//各I/O口初始化

         TMOD=0x05;//設置計數器0工作方式1,為16位計數器,且為外部計數

         TH0=0;//計數器高8位裝0

         TL0=0;//計數器低8位裝0

         

         TR0=1;//開計數器

        }

        /*主程序***************************************************************/

        void main()

        {

        BUZZER=0;

         inti();

         while(1)

         {

         

          counter=TH0*255+TL0;//讀計數器數據

         

          }

         

         

          if(counter==1000)

        {

        TH0=TL0=0;

        } //計滿清零

          shuma_show(counter);//數碼管掃描顯示

          if((counter%100==0)&& counter!=0)//逢百提醒

           {

           

        BUZZER=1;

        delay(500);

        BUZZER=1;

         }

         }

        }

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮