<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

作者: 時(shí)間:2013-02-17 來(lái)源:網(wǎng)絡(luò ) 收藏

  addr=0x7F6;//給一個(gè)原來(lái)的存儲地址

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

  current_dat=Rdat;//將讀出的數據還給通用的輔助字節變量

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

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

  }

  else {

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

  }

  31個(gè)字節保存8個(gè)“位”

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

  #defineuint unsigned int

  #defineuchar unsigned char

  uintaddr;

  ucharWdat,Rdat;

  uchar bdatacurrent_dat;//在可位尋址區定義unsigned char類(lèi)型的字節變量current_dat

  sbitsign_bit1= current_dat^0;//用關(guān)鍵字sbit 定義位變量來(lái)獨立訪(fǎng)問(wèn)可尋址位對象中的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賦值給寫(xiě)E2PROM的緩沖單元Wdat

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

  }

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

  addr=0x7F6;//給一個(gè)原來(lái)的存儲地址

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

  current_dat=Rdat;

  //將讀出的數據還給通用的輔助字節變量

  }

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

  結語(yǔ)

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


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: C51編程 自定義 標志位

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>