新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機查表程序的自動生成技術

        單片機查表程序的自動生成技術

        作者: 時間:2012-11-15 來源:網絡 收藏

        假設定時器用TMR0,預分頻系數為256,晶振的振蕩頻率為4MHz,則最大延時為65.535ms。如下(其中與A.C相同或類似的均略去):

        /*B.C*/
        ……
        fprintf(fp,SUB2 MOVWF BUF);
        fprintf(fp,MOVLW HIGH($+4));
        fprintf(fp,MOVWF PCLATH);
        fprintf(fp,MOVF BUF,W);
        fprintf(fp,ORG 200H,F); /*表格從200H開始,避免跨頁*/
        fprintf(fp,ADDWF PLC,F);
        for(i=0;i=254;i++)
        {ad=i;
        v=ad*5/255; /*求相應于A/D值的電壓V*/
        I=100*v/3; /*求相應的電流I*/
        T=1033.58/(I+11.1111)-0.2222; /*按式(3)求相應的延時時間*/
        T0=256-T*1000*256; /*轉換為時間常數*/
        k=T0+0.5;
        if(k0)k=0;
        if(k>255)k=255;
        fprintf(fp,)
        RETLW.%d;AD=.%d,I=%5.1f(A),T=%5.1f(ms),k,i,I,T);
        }
        ……
        形成的程序如下(共255行表格,略去其中的大部分表格):
        ;B.asm
        SUB2 MOVWF BUF
        MOVLW HIGH($+4)
        MOVWF PCLATH
        MOVF BUF,W
        ORG 200H
        ADDWF PCL,F
        RETLW .0;AD=.0,I=0.0(A),T=92.8(ms)
        ……
        RETLW .116;AD=.27,I=17.6(A),T=35.7(ms)
        RETLW .120;AD=.28,I=18.3(A),T=34.9(ms)
        RETLW .123;AD=.29,I=19.0(A),T=34.2(ms)
        RETLW .125;AD=.30,I=19.6(A),T=33.4(ms)
        ……
        RETLW .234;AD=.254,I=166.0(A),T=5.6(ms)

        進行電流采樣A/D,把A/D結果賦給W,CALL

        SUB2便可得到相應的延時時間常數W。

        3 結論

        利用高級語言程序,可以完成許多難以完成或需要進行大量計算才能完成的復雜運算,計算精度高。單片機利用此結果進行插值運行速度要快得多。典型的4MHz晶振時,需要的運算時間為10μs。限于篇幅,本文只給出兩個實例,實際上它可以用于單片機測控系統中的許多方面,如模糊控制中的模糊規則的推理、非線性傳感器的特性讀取以及其它方面。

        晶振相關文章:晶振原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 二连浩特市| 福建省| 正定县| 甘孜县| 二手房| 苍溪县| 昂仁县| 巢湖市| 枣阳市| 邛崃市| 龙山县| 师宗县| 白水县| 册亨县| 株洲市| 高州市| 铜梁县| 六安市| 东丰县| 右玉县| 合作市| 板桥市| 清涧县| 阳朔县| 瑞安市| 治多县| 集贤县| 乌恰县| 宜良县| 桐庐县| 湘潭市| 石楼县| 都昌县| 蓬安县| 拜城县| 林口县| 栖霞市| 清丰县| 平舆县| 共和县| 四平市|