<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > C51編程中的自定義“位”及其保存方案

          C51編程中的自定義“位”及其保存方案

          作者: 時間:2013-02-17 來源:網(wǎng)絡 收藏

            addr=0x7F6;//給一個原來的存儲地址

            REEPROM();//調用讀取E2PROM的子程序

            current_dat=Rdat;//將讀出的數(shù)據(jù)還給通用的輔助字節(jié)變量

            if(current_dat==0xA5) {//判斷讀出的數(shù)據(jù)是否等于“0xA5”

            switch_sign=1;//將翻轉“switch_sign”置“1”

            }

            else {

            switch_sign=0;//將翻轉“switch_sign”置“0”

            }

            31個字節(jié)保存8個“位”

            用保存一個的字節(jié)變量來復原一個的過程上文已敘述了,接下來闡述1個字節(jié)變量保存8個自定義“位”的方案。1個字節(jié)變量保存8個自定義“位”的方案很多,例5是其中比較理想的一種:

            #defineuint unsigned int

            #defineuchar unsigned char

            uintaddr;

            ucharWdat,Rdat;

            uchar bdatacurrent_dat;//在可位尋址區(qū)定義unsigned char類型的字節(jié)變量current_dat

            sbitsign_bit1= current_dat^0;//用關鍵字sbit 定義位變量來獨立訪問可尋址位對象中的1位

            sbitsign_bit2= current_dat^1;//自定義標志位2

            sbitsign_bit3= current_dat^2;//自定義標志位3

            ……

            sbitsign_bit8= current_dat^7;//自定義標志位8

            ……

            void Bit_save() {//自定義標志位保存子程序

            addr=0x7F6;//給予存儲地址

            Wdat= current_dat;//將current_dat賦值給寫E2PROM的緩沖單元Wdat

            save_data();//調用保存子程序存儲current_dat數(shù)據(jù)

            }

            void Bit_comeback() {//自定義標志位復原子程序

            addr=0x7F6;//給一個原來的存儲地址

            REEPROM();//調用讀取E2PROM的子程序

            current_dat=Rdat;

            //將讀出的數(shù)據(jù)還給通用的輔助字節(jié)變量

            }

            以上這段程序所闡述的,也許是有關自定義位操作及其保存的一種最簡捷的方案了。首先是在可位尋址區(qū)定義ucsigned char類型的通用字節(jié)變量current_dat,再用關鍵字“sbit”定義位變量來獨立訪問可尋址位對象的其中一位。這樣將自定義標志位提高到類同于特殊功能寄存器(SFR)中可位訪問的方式來操作了——字節(jié)變量current_dat中的8個位各自可以獨立操作,且其保存或讀出復原都只要直接將字節(jié)變量current_dat進行保存或讀取即可,無須像其他方案那樣需要進行邏輯與、邏輯或等的輔助操作。

            結語

            單片機的C語言編程中不一定都要有自定義的標志位,但是在某些場合運用了自定義的標志位,會使整個程序顯得簡潔而明快。當然,對于自定義標志位的保存也是視其具體情況而定——應該說是不得已而為之的。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();