アクセスint型のメソッド8051のバイト

使用マイクロコントローラでは、unsigned int型2バイト、unsigned char型1バイト。マイクロコントローラは、バイトのアドレス指定が実装されています。バイト16ビットアドレッシングを使用するのはよくないです、

建設のアレイで使用することはできません。

実際の開発プロセスでは、DPTRを使用するだけでなく、タイマーTL0、TH0ニブルのように。

私たちは、より自然なものを割り当てるために使用することができますint型を定義する必要があります。

そして、低0xffの8、1つのバイトを取得します。DPTRは低いバイトまたはタイマーの下位バイトに配置することができます。

左8つのint型、および、高INT 0xFFの8ビットバイトの後に、高バイトDPTRタイマのバイトにまたは高移動しました。

これは非常に面倒です。

実際に、我々は簡単に構造体と組合は直接マイクロコントローラ51は、INTに記憶されている方法をも観察することができ、高い及び低いバイトの一の段階のintタイプで得できます。

INT MCU 51は、下位バイトに格納された2つの連続したバイト、下位アドレスに格納されている上位バイト、高いアドレスに、で見つけることができます。

 

実装は次のとおりです。

まず、2つのunsigned char型の内側INT_BYTEの構造の定義、

次いで組合がunsigned int型、および定義された上位2バイトで定義します。

共有メモリ内の変数の間に私たちのガイド組合。すなわち、第一アドレスNUMであり、2つが同じである変数をバイト!

2つのバイトは、その後バイト、バイト2バイトのHであり、NUMは、Lは、高及び低バイトに対応するNUMです。

テストの実験:

 私たちは、この値0xff0fたnum個のHLを与えて、変数のHL U16を定義します。

その後、我々は、高バイトに下位バイト、P1ポートにP0ポートを与えます。

デバッガ、開いているポート、実行します。

int型8のレベルを取得するのは非常に簡単で、非常に良いです。もちろん、変数HLに追加

ウィンドウにでも一目を見て!

 

同様に、我々はunsigned long型を試すことができ、彼は4つのバイトを占めています。また、下位アドレスの上位バイトインチ

Pythonの構造体ああに解析するとき、それが使用され、小端のデータ記憶装置です。「<」、「>」識別されるよう覚えて使用する場合は、

誤解を払拭することができ、マイクロコントローラを学ぶように思われます。

最後に、我々は多重化を提供するために、自作のコードライブラリとしてこれを使用することができます。最後に、コードを置きます:

#include <intrins.h> 
の#include " stc89.h " 
/ * 
このコードは、HWによって書き込まれる
qq.comで12969722で
* / 
構造体INT_BYTE { 
    符号なしチャーH。
    符号なしチャーL。
}。
組合UINT16 {typedefの
    符号なしのint NUM;
    構造体 INT_BYTEのバイト
} U16。

構造体BYTE_BIT { 
    符号なしchar型A1。
    符号なしchar型A2; 
    符号なしchar型A3。
    符号なし文字A4; 
}。
組合UBYTE {typedefの
    符号なしの長い  バイト構造体BYTE_BITのB; 
} U8。

ボイドメイン(ボイド){ 
    U16のHL。
    U8のUBIT。
    hl.num = 0xff0f 
    P0 = HL。バイト.L。
    P1 = HL。バイト.H。
    UBIT。バイト = 0xf0f1f2f3 
}

 

 

おすすめ

転載: www.cnblogs.com/yjphhw/p/11352756.html