• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機編程技巧整理

    51單片機編程技巧整理

    作者: 時間:2013-02-05 來源:網絡 收藏

    1.定義的不要太多。低128位為用戶定義的存放區域(默認時),也可以把放在高128位,但容易出錯,盡量少放,最好不放。通過*.M51可以查看內存變量的存放,最好不要超過110個字節,否則程序無法運行或出錯。

    2.如一個變量多處使用可定義為全局變量。例如循環變量i、j,盡量減少參數傳遞。

    3.靜態變量最好放在程序存儲區,用code定義。

    4.變量應定義為無符號數,像標志位等僅占一位的變量應定義為bit。

    5.子程序在main()主程序之后的應事先聲明,放在前面的不用聲明。

    6.變量、子程序定義但沒使用,系統給出警告。

    7.雖然局部變量和全局變量不同名,但運行時可能被全局變量改變。

    8.程序在編譯后,有可能產生非常大的文件。比如原來5k,編譯后變成10k,這是C匯編時程序空間分配太隨意造成的。可首先屏蔽一部分程序編譯,然后再去屏蔽再編譯,可恢復,或一部分一部分復制到另一個文件中編譯。

    9.如產生脈沖信號用到定時器,要去掉脈沖信號時,應先關定時器,再按要求把電平置為高電平或低電平。

    10.可使用軟件實現“看門狗”功能。比如:一個程序運行一個循環需要50ms,則定時器可定位100ms,當超過100ms時,程序將復位,在程序循環最下面都重裝定時器或重置定時器參數。

    11.為了提高所求值的精度,可多次測量,然后排序,去掉最大值和最小值,求平均值,或直接求平均值。

    12.可使用一個定時器進行多個定時。一般來說,兩個定時器對大一點的程序就不夠用了,假如幾個定時時間分別為10ms、200us、50ms,則定時值可定位200us,另設兩個變量即可。在需要多個定時時,找到他們的最小公約數定時即可。

    13.我們往單片機中寫程序時,寫的是*.hex,不要被它的大小所迷惑,對于8k的單片機,小于20k的程序都可寫進去。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 保山市| 炉霍县| 加查县| 新源县| 岫岩| 禹州市| 莱州市| 千阳县| 远安县| 合作市| 杭锦后旗| 湖北省| 蒙山县| 扶风县| 北宁市| 安阳县| 耿马| 甘洛县| 舞阳县| 壤塘县| 桐庐县| 大方县| 乌鲁木齐县| 南通市| 关岭| 东阳市| 金沙县| 岢岚县| 通州市| 安乡县| 那曲县| 永顺县| 桦川县| 延安市| 淮北市| 阿瓦提县| 西昌市| 白河县| 靖宇县| 大宁县| 太湖县|