新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 达州市| 泰和县| 乌审旗| 伊春市| 三都| 宁城县| 铜陵市| 科技| 高尔夫| 玉田县| 乌苏市| 远安县| 桂东县| 金平| 万州区| 喀喇沁旗| 青海省| 华宁县| 石河子市| 淮滨县| 新平| 徐州市| 泸定县| 北辰区| 永嘉县| 孝昌县| 奉节县| 绥阳县| 屏东市| 渭源县| 印江| 西和县| 莫力| 馆陶县| 贡觉县| 光山县| 常州市| 轮台县| 资源县| 天台县| 青海省|