新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于PIC16F877A的簡易數字頻率計

        基于PIC16F877A的簡易數字頻率計

        作者: 時間:2010-12-28 來源:網絡 收藏

          while(1) {
          ccpint(); //CCP模塊工作于捕捉方式初始化
          initial(); //系統其它部分初始化
          if(FLAG2==0) {
          s[0]=COUNTER; //第一個存儲COUNTER的值
          s[1]=0X0A;
          s[2]=0X0A;
          s[3]=0X0A; //后面的LED將顯示DARK
          }
          display( ); //調用顯示子程序
          keyscan(); //鍵盤掃描
          data=0x00; //存儲數組指針賦初值
          TMR1H=0;
          TMR1L=0; //定時器1清0
          CCP1IF=0; //清除CCP1的中斷標志,以免中斷一打開就進入
          //中斷
          ei( ); //中斷允許
          TMR1ON=1; //定時器1開
          while(1){
          if(COUNT==0)break;
          } //等待中斷次數結束
          di(); //禁止中斷
          TMR1ON=0; //關閉定時器
          keyscan(); //鍵盤掃描
          if(FLAG1==1) keyserve() ; //若確實有鍵按下,則調用鍵服務程序
          if(FLAG2==0) continue; //如果沒有按下確定鍵,則終止此次循環,
          //繼續進行測量
          //如果按下了確定鍵,則進行下面的數值轉換和顯示工作
          if(COUNTER==0x01) FREQUENCY(); //COUNTER=1,則需要進行處理
          if(COUNTER==0x02) PERIOD(); //COUNTER=2,則需要進行周期處理
          if(COUNTER==0x03) OCCUPATIONAL();//COUNTER=3,則需要進行占空比處理
          if(COUNTER==0x04) PULSE(); //COUNTER=4,則需要進行脈寬處理
          k=5;
          if(RE51){
          RE5=RE5*1000; //若RE51,則乘以1 000,保證小數點的精度
          k=0x00;
          }
          else if(RE510){
          RE5=RE5*1000; //若RE510,則乘以1 000,保證小數點的精度
          k=0x00;
          }
          else if(RE5100){
          RE5=RE5*100; //若RE5100,則乘以100,保證小數點的精度
          k=0x01;
          }
          else if(RE51000){
          RE5=RE5*10; //若RE51000,則乘以10,保證小數點的精度
          k=0x02;
          }
          else RE5=RE5 ;
          uo=(int)RE5;
          sprintf(s,%4d,uo); //把需要顯示的數據轉換成4位ASII碼,且放入數
          //組S中
          display();
          }
          }

        本文引用地址:http://www.104case.com/article/173039.htm

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阜平县| 凤冈县| 嘉义县| 盘锦市| 宁南县| 涿鹿县| 姜堰市| 聊城市| 台江县| 长汀县| 黄龙县| 商城县| 凤台县| 体育| 高台县| 陕西省| 峨眉山市| 巫山县| 依安县| 大化| 新宁县| 广德县| 义乌市| 禄丰县| 塘沽区| 宜章县| 宣威市| 滁州市| 潮州市| 吕梁市| 农安县| 莒南县| 井冈山市| 丹寨县| 成都市| 赤壁市| 泗水县| 安丘市| 灌云县| 萝北县| 洛南县|