Aug 23, 2010 #3 B bloke203 Guest こんにちは 関心をおおかげです。確かに、私が説明します。 私はピンのDB9 Rxはクロスオーバー/したhを送信との接続/ワット。私は、コンパイラのCとしているKeilのプログラムを通じて。私はチップprgmに私の次のファイルを16進dwnldそれはハイパーターミナルへ戻るいないすべてのデータではない私を与える #は<reg51.h>含まれて #は<stdio.h>含まれて #周波数を定義するのXTAL 11059200 / / CPUの発振器 #は、ボーレートを定義ボー9600 / / 9600 bpsの通信 #バッファを定義サイズのシリアル伝送/オレン8 / unsigned char型ostart / /送信バッファの開始インデックスを unsigned char型oend / /送信バッファの最後にインデックスを 文字idata outbufを[オレン];ストレージの送信/ /バッファ #バッファを定義サイズのシリアル受信/アイルン/ 8 unsigned char型istart / /受信バッファの開始インデックスを unsigned char型iend; / /受信バッファの終了インデックス 文字idata inbuf [アイルン];の受信バッファをストレージ/ / ビットsendfullは、/ /フラグ:マークは、送信バッファフル ビットsendactive / /フラグ:マークは、トランスミッタアクティブ / * *シリアル割り込みサービスルーチン * / 静的ボイドcom_isrは(ボイド)(中断1 4を使用して 炭c; /*-----受信データの割り込み。----------------------------------------*/ (場合(RI)は cは= SBUF / /文字を読む RIの= 0; / /クリア割り込み要求フラグ アイルン 場合(istart!= iend)( inbufの[は、iend &(アイルン- 1)] = Cの/ /がバッファに文字 ) ) /*------透過データが割り込み。------------------------------------*/ TIの場合(!= 0)( TIは= 0; / /クリア割り込み要求フラグ ostartするif(!= oend)(/ /場合はバッファ内の文字と SBUF = outbufを[ostart の&(オレン- 1は)]は、/ /文字を送信 sendfull = 0; / /'明確sendfull'フラグ ) 他(/ /場合は、すべての文字が送信さ sendactive = 0; / /クリア'sendactive' ) ) ) / * *関数は、ボーレートをUARTの初期化シリアルポートと。 * / ((無効com_initializeボイド) istartは= 0; / /空のバッファを送信 iend = 0; ostartは= 0; / /空のバッファを送信 oend = 0; sendactiveは= 0; / /トランスミッタアクティブではありません sendfull = 0; / /'明確sendfull'フラグ としてボーレートジェネレータ1 / /設定タイマー PCON | = 0x80を/ / 0x80に= SMOD:セットシリアルボーレートダブラ TMOD | = 0x20には、/ / 2モードに1入れ、タイマーを Th1細胞=(unsigned char型)(256 - (水晶/(16Lは*長くなっ*ボーレート))); TR1のは、= 1; / / 1開始タイマを SCON = 0x50が/ /シリアルポート受信シリアルモードを有効1、 ESは= 1; /割り込みをシリアル/有効にする ) / * * putbufは:バッファまたは伝送に書き込む文字をSBUF * / ボイドputbuf(炭c)( )sendfull(/ /送信するif(!はフルのみバッファが (もし!sendactive)(/ /場合は、トランスミッタがアクティブでない: sendactiveは= 1; / /直接の最初の文字を転送する TXDに= 1; WRの= 1; SBUFは=のC / /送信を開始するSBUFする ) 他( ESは= 0; / /無効にするシリアル割り込みバッファ中に更新 outbufはの[バッファのoend の&(オレン- 1は)]は、= Cの; /送信文字入れ/に (もし(((oend ^のostart)&オレン- 1))== 0)( sendfull = 1; フラグをする場合、バッファがいっぱいになる設定)/ / ESは= 1; /再度割り込みを有効にするシリアル/ ) ) ) / * ライブラリputcharルーチン標準*置換ルーチン。 文字* printfの出力に関数は使用してputchar。 * / char型putchar(炭c)( 文字をn')(/ /展開、新しい行の場合(¥¥ cを==': /待つまでそこにある空間内のバッファ/中;)sendfullは( putbufは(0x0D)が/ /行> <新しいCRを送信する前LFは ) /待つまでそこにある空間内のバッファ/中;)sendfullは( c)の/ /場所文字にバッファ(putbuf 戻り値(c)の; ) / * 標準ライブラリの*置換ルーチン_getkeyルーチンです。 * getcharのと文字を取得する関数は、読み取りに使用する_getkey。 * / char型_getkey(ボイド)( 炭c; はRXD = 1; RDは= 1; (中(iend == istart) までは文字を待つ/ / ) ESは= 0; / /無効にするシリアル割り込みバッファ中に更新 のC = inbuf [istart &(アイルン- 1)]; ESは= 1; /再度割り込みを有効にするシリアル/ 戻り値(c)の; ) / * シリアルI / Oを*駆動開始割り込みメインC関数 * / (無効メイン(ボイド) EAは= 1; / *を割り込み*を有効にグローバル/ )com_initialize(; / * Oの*初期化割り込み駆動シリアルI / / (中に(1) 炭c; はC = getcharの(); のprintf("¥¥ n削除すると、型指定された文字%年頃¥¥ n個のの"c); )-------------------------------------------------- ---------------------- 私のチップは、その中にROMを持っていません。それはそれですそれはなぜ作業ソ¥リューションを他のや提案を私にすることができますができますか? BRの bloke203
こんにちは 関心をおおかげです。確かに、私が説明します。 私はピンのDB9 Rxはクロスオーバー/したhを送信との接続/ワット。私は、コンパイラのCとしているKeilのプログラムを通じて。私はチップprgmに私の次のファイルを16進dwnldそれはハイパーターミナルへ戻るいないすべてのデータではない私を与える #は<reg51.h>含まれて #は<stdio.h>含まれて #周波数を定義するのXTAL 11059200 / / CPUの発振器 #は、ボーレートを定義ボー9600 / / 9600 bpsの通信 #バッファを定義サイズのシリアル伝送/オレン8 / unsigned char型ostart / /送信バッファの開始インデックスを unsigned char型oend / /送信バッファの最後にインデックスを 文字idata outbufを[オレン];ストレージの送信/ /バッファ #バッファを定義サイズのシリアル受信/アイルン/ 8 unsigned char型istart / /受信バッファの開始インデックスを unsigned char型iend; / /受信バッファの終了インデックス 文字idata inbuf [アイルン];の受信バッファをストレージ/ / ビットsendfullは、/ /フラグ:マークは、送信バッファフル ビットsendactive / /フラグ:マークは、トランスミッタアクティブ / * *シリアル割り込みサービスルーチン * / 静的ボイドcom_isrは(ボイド)(中断1 4を使用して 炭c; /*-----受信データの割り込み。----------------------------------------*/ (場合(RI)は cは= SBUF / /文字を読む RIの= 0; / /クリア割り込み要求フラグ アイルン 場合(istart!= iend)( inbufの[は、iend &(アイルン- 1)] = Cの/ /がバッファに文字 ) ) /*------透過データが割り込み。------------------------------------*/ TIの場合(!= 0)( TIは= 0; / /クリア割り込み要求フラグ ostartするif(!= oend)(/ /場合はバッファ内の文字と SBUF = outbufを[ostart の&(オレン- 1は)]は、/ /文字を送信 sendfull = 0; / /'明確sendfull'フラグ ) 他(/ /場合は、すべての文字が送信さ sendactive = 0; / /クリア'sendactive' ) ) ) / * *関数は、ボーレートをUARTの初期化シリアルポートと。 * / ((無効com_initializeボイド) istartは= 0; / /空のバッファを送信 iend = 0; ostartは= 0; / /空のバッファを送信 oend = 0; sendactiveは= 0; / /トランスミッタアクティブではありません sendfull = 0; / /'明確sendfull'フラグ としてボーレートジェネレータ1 / /設定タイマー PCON | = 0x80を/ / 0x80に= SMOD:セットシリアルボーレートダブラ TMOD | = 0x20には、/ / 2モードに1入れ、タイマーを Th1細胞=(unsigned char型)(256 - (水晶/(16Lは*長くなっ*ボーレート))); TR1のは、= 1; / / 1開始タイマを SCON = 0x50が/ /シリアルポート受信シリアルモードを有効1、 ESは= 1; /割り込みをシリアル/有効にする ) / * * putbufは:バッファまたは伝送に書き込む文字をSBUF * / ボイドputbuf(炭c)( )sendfull(/ /送信するif(!はフルのみバッファが (もし!sendactive)(/ /場合は、トランスミッタがアクティブでない: sendactiveは= 1; / /直接の最初の文字を転送する TXDに= 1; WRの= 1; SBUFは=のC / /送信を開始するSBUFする ) 他( ESは= 0; / /無効にするシリアル割り込みバッファ中に更新 outbufはの[バッファのoend の&(オレン- 1は)]は、= Cの; /送信文字入れ/に (もし(((oend ^のostart)&オレン- 1))== 0)( sendfull = 1; フラグをする場合、バッファがいっぱいになる設定)/ / ESは= 1; /再度割り込みを有効にするシリアル/ ) ) ) / * ライブラリputcharルーチン標準*置換ルーチン。 文字* printfの出力に関数は使用してputchar。 * / char型putchar(炭c)( 文字をn')(/ /展開、新しい行の場合(¥¥ cを==': /待つまでそこにある空間内のバッファ/中;)sendfullは( putbufは(0x0D)が/ /行> <新しいCRを送信する前LFは ) /待つまでそこにある空間内のバッファ/中;)sendfullは( c)の/ /場所文字にバッファ(putbuf 戻り値(c)の; ) / * 標準ライブラリの*置換ルーチン_getkeyルーチンです。 * getcharのと文字を取得する関数は、読み取りに使用する_getkey。 * / char型_getkey(ボイド)( 炭c; はRXD = 1; RDは= 1; (中(iend == istart) までは文字を待つ/ / ) ESは= 0; / /無効にするシリアル割り込みバッファ中に更新 のC = inbuf [istart &(アイルン- 1)]; ESは= 1; /再度割り込みを有効にするシリアル/ 戻り値(c)の; ) / * シリアルI / Oを*駆動開始割り込みメインC関数 * / (無効メイン(ボイド) EAは= 1; / *を割り込み*を有効にグローバル/ )com_initialize(; / * Oの*初期化割り込み駆動シリアルI / / (中に(1) 炭c; はC = getcharの(); のprintf("¥¥ n削除すると、型指定された文字%年頃¥¥ n個のの"c); )-------------------------------------------------- ---------------------- 私のチップは、その中にROMを持っていません。それはそれですそれはなぜ作業ソ¥リューションを他のや提案を私にすることができますができますか? BRの bloke203
Aug 23, 2010 #5 M mohitgadhok Guest こんにちは、 私はAt80c51RD2だった不思議プログラムを使用しているあなたは、三菱商事として午前使用して、同じプログラマが普遍的に問題をプログラミングして? 多くのおかげで、 Mohit Gadhok
こんにちは、 私はAt80c51RD2だった不思議プログラムを使用しているあなたは、三菱商事として午前使用して、同じプログラマが普遍的に問題をプログラミングして? 多くのおかげで、 Mohit Gadhok