使用マイクロコントローラでは、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 。 }