新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Keil C51中變量的使用

        Keil C51中變量的使用

        作者: 時間:2011-06-23 來源:網絡 收藏

        4.6 二義性
        在標準C中如果要一個二義性,只能用枚舉類型。如:
        e.JPG
        以上程序在 時,t雖然僅有0和1兩種狀態,但在目標代碼中仍占用一個字節。此處理方法既浪費存儲資源,又延長了處理時間,這對于8086內核算不上多大問題,但在資源有限、運行速度不高的51內核中就不能不考慮了。在 中可以下方法:
        f.JPG
        這兩種方式效果是完全相同的,但在目標代碼中變量t僅占用1位(即1/8字節),而且因為51內核單片機指令系統中有位處理指令,生成的目標代碼占用內存少、運行速度快。
        4.7 特殊功能寄存器變量(包括位變量)
        特殊功能寄存器中,累加器A、寄存器B、堆棧指針SP和數據指針DPTR是歸系統使用的,在中不提供給用戶。其他的特殊功能寄存器都可以用sfr定義成變量,其中地址可以被8整除者的各位,還可以用bsfr定義成位變量。訪問這些變量,就可以對特殊功能寄存器及其可以位尋址的各位進行讀寫,達到操作單片機內部各硬件的目的。對于標準的51內核單片機,頭文件reg51.h、reg52.h或其他頭文件中已對這些特殊功能寄存器變量作了定義,用戶可以用#include將此頭文件包含進來,然后就可以使用了?,F在很多51內核兼容型單片機擴展了更多的特殊功能寄存器,這些就需要用戶自行定義,具體方法可參考器件的使用說明。
        4.8 外部數據存儲器變量
        若設置成pdata和xdata存儲類型,將把變量存儲在片外數據存儲器中。這兩種存儲類型的訪問速度最慢,非迫不得已不要使用。在使用這兩種存儲類型時,注意盡量只用它保存原始數據或最終結果,盡量減少對其訪問的次數,需要頻繁訪問的中間結果不要用它。
        4.9 用外部數據存儲器地址擴展的其他硬件
        在單片機外部擴展的其他硬件,一般都借用外部數據存儲器地址,表現為外部數據存儲器單元形式。對于這些硬件,可以用指針進行讀寫操作。例如:
        g.JPG

        結語
        C51中的變量增加了存儲類型,在使用時而顯得比標準C稍微復雜。在Keil C51中,變量的存儲類型不同,訪問變量所需要的時間也不同,由于C51內核單片機資源少、速度慢,變量存儲類型對系統工作速度的影響不可忽視。在了解變量與單片機存儲結構關系的基礎上,根據程序對變量的使用要求,合理地選擇變量的存儲類型,可以在相同的硬件上獲得更高的工作效率。

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

        存儲器相關文章:存儲器原理



        上一頁 1 2 3 下一頁

        關鍵詞: 使用 變量 C51 Keil

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 盐津县| 方正县| 金溪县| 青浦区| 武陟县| 洛南县| 高邮市| 蕉岭县| 乌拉特后旗| 西平县| 拜城县| 文化| 彭水| 连城县| 抚松县| 宿州市| 中阳县| 鹿泉市| 新宾| 冕宁县| 娄底市| 建湖县| 南宫市| 大渡口区| 栖霞市| 安国市| 宾阳县| 喀喇沁旗| 丹凤县| 岳池县| 清徐县| 始兴县| 太保市| 宝清县| 海丰县| 盐亭县| 万全县| 泰来县| 兰西县| 交城县| 西乌珠穆沁旗|