Y
yasm81
Guest
Proffコードを与えた私達に、私たちはそれを変更する必要が...私たちはすべてのATは学びましたasemblyステップごとのコードを行うので、私は理解しない..我々は1週間だけ1 ..誰もが考えている任意の?ここにコードさ
;:措置期間がでperiod.asm p2.0ピン
、2007年、イエスカルヴィーノ-フラ、
;
;ポートのマイクロコントローラのシリアルを使用し表¥示するために
;測定期間。接続コントローラのシリアルポート
、プログラムを端末コンピュータを使用しハイパーターミナルまたはその他の
;も握手構¥成で115200ボー、2ストップビット、パリティなし、。
;
$ MOD52
0000Hのorg
ljmp MyProgram
000BH orgの、割り込みベクトルを0タイマ
ljmpのTimer0ISR
001BH orgの
ljmpの1234H; CMON51で必要な
;カウントにR0を- R1のビットインクリメント16
Timer0ISR:
株式会社R1は
cjne R1は、#0、完了
株式会社R0を
実行:
RETI命令
;でR0を- R1の数が変換16 R4を- R3にBCDのはR2 -
とアキュムレータR5は、変更はR0をする。
;バイトをとります310マシンサイクル、28。
hex2bcd:
楽章のR2、#0;結果に00000 BCDのセット
楽章R3は、#0
楽章R4は、#0
楽章R5の、#16;ループカウンタ。
hex2bcd_L0:
楽章は、R1は、シフトR0を- R1の左はやり遂げる
RLC回路
楽章R1は、
楽章、R0を
RLC回路
楽章R0を、
楽章は、R4は、実行して、番号を運ぶ使用は、BCD をBCDのBCDの
R4はaddc、
ダ
楽章R4は、
楽章、R3は
R3はaddc、
ダ
楽章R3は、
楽章は、R2
R2のaddc、
楽章R2は、
djnz R5の、hex2bcd_L0
ret
;初期化シリアルポート
InitSerial:
CLRのTR1の;停止タイマ1
楽章、#0Fhの、ビットオートリタイマータイマーを設定1と8
anl、TMOD
orl、#20Hの
楽章は、TMOD
orl PCON、#80hが、SMOD = 1 - > kは= 2:ダブルボー
楽章のTL1、#0FFH;ボーレートを設定115200に水晶22.1184MHz
楽章Th1細胞、#0FFH
setb TR1の;スタートタイマ1
のmov SCON、#52H;、夫1シリアルポートモードでは、txrdy、rxempty
ret
、シリアルポートを介してアキュムレータの送信バイト
putchar:
定足数をTIは、putchar;送信するのを待ちますの文字の最後
CLRはTIの
のmov SBUF、
ret
;送信は、ポート、シリアルを介して終端ゼロDPTR文字列を指摘し
プット:
CLRの
dptr movc、@
jz puts_end
lcallのputchar
株式会社dptr
JMPのは置く
puts_end:
ret
;プリントBCDの番号は、R4に格納されたのR2 - R3の
printBCD:
;桁5
楽章、r2の
orl、#30Hの
lcallのputchar
;小数点
楽章、#'。
lcallのputchar
;桁4
楽章、r3に
スワップ
anl、#0Fhの
orl、#30Hの
lcallのputchar
;桁3
楽章、r3に
anl、#0Fhの
orl、#30Hの
lcallのputchar
;桁2
楽章は、R4
スワップ
anl、#0Fhの
orl、#30Hの
lcallのputchar
;桁1
楽章は、R4
anl、#0Fhの
orl、#30Hの
lcallのputchar
ret
;初期化タイマ/カウンタ0カウンタとして8ビットオートリは
InitTimer0:
setb T0の。T0の入力としてピンを有効にする
CLRのよって取り残さ;停止タイマ0
楽章、#0F0H
anl、TMOD
、orl#02Hの、ビットオートリタイマータイマーを設定0 8
楽章は、TMOD
楽章TH0、#72; 100us@22.11MHzの場合:256 - ((100e - 6)*(22.11e6/12))
楽章のIE、#送るパケット;を有効にするタイマ0割り込み、グローバル割り込み
ret
MyProgram:
楽章SPは、#80hが、設定idataの先頭にスタックポインタ
lcall InitSerial
lcallのInitTimer0
のmov dptr、#バナー
lcallは置く
永遠:
楽章TL0、#0
楽章R0を、#0
楽章R1は、#0
setb P2.0は、入力としてピンを使用して、この
;破棄不完全な期間
L0は:
定足数をP2.0、L0は
L1は:
バトンP2.0は、L1
setbよって取り残さ;スタートカウント
L2の:
定足数をP2.0、L2の
L3は:
バトンP2.0は、L3
CLRのよって取り残さは、停止R1をカウントR0を、インクリメントで100usカウントが
lcallはhex2bcd
のmov dptr、#期
lcallは置く
lcall printBCD
のmov dptr、#秒数
lcallは置く
JMPの永遠
;一部の文字列:
バナー:
デシベル0AH、0DHの
db'とPeriod.asm:措置期間(0.0000sに6.5535s)p2.0でピン'
デシベル0AH、0DHの
db'と2007年までにイエスカルヴィーノ-フラは、'
デシベル0AH、0DHの、0AH、0DHの、0
期間:
db'とのT ='
デシベル0
秒:
db'とs'は
デシベル0DHの、0
END
;:措置期間がでperiod.asm p2.0ピン
、2007年、イエスカルヴィーノ-フラ、
;
;ポートのマイクロコントローラのシリアルを使用し表¥示するために
;測定期間。接続コントローラのシリアルポート
、プログラムを端末コンピュータを使用しハイパーターミナルまたはその他の
;も握手構¥成で115200ボー、2ストップビット、パリティなし、。
;
$ MOD52
0000Hのorg
ljmp MyProgram
000BH orgの、割り込みベクトルを0タイマ
ljmpのTimer0ISR
001BH orgの
ljmpの1234H; CMON51で必要な
;カウントにR0を- R1のビットインクリメント16
Timer0ISR:
株式会社R1は
cjne R1は、#0、完了
株式会社R0を
実行:
RETI命令
;でR0を- R1の数が変換16 R4を- R3にBCDのはR2 -
とアキュムレータR5は、変更はR0をする。
;バイトをとります310マシンサイクル、28。
hex2bcd:
楽章のR2、#0;結果に00000 BCDのセット
楽章R3は、#0
楽章R4は、#0
楽章R5の、#16;ループカウンタ。
hex2bcd_L0:
楽章は、R1は、シフトR0を- R1の左はやり遂げる
RLC回路
楽章R1は、
楽章、R0を
RLC回路
楽章R0を、
楽章は、R4は、実行して、番号を運ぶ使用は、BCD をBCDのBCDの
R4はaddc、
ダ
楽章R4は、
楽章、R3は
R3はaddc、
ダ
楽章R3は、
楽章は、R2
R2のaddc、
楽章R2は、
djnz R5の、hex2bcd_L0
ret
;初期化シリアルポート
InitSerial:
CLRのTR1の;停止タイマ1
楽章、#0Fhの、ビットオートリタイマータイマーを設定1と8
anl、TMOD
orl、#20Hの
楽章は、TMOD
orl PCON、#80hが、SMOD = 1 - > kは= 2:ダブルボー
楽章のTL1、#0FFH;ボーレートを設定115200に水晶22.1184MHz
楽章Th1細胞、#0FFH
setb TR1の;スタートタイマ1
のmov SCON、#52H;、夫1シリアルポートモードでは、txrdy、rxempty
ret
、シリアルポートを介してアキュムレータの送信バイト
putchar:
定足数をTIは、putchar;送信するのを待ちますの文字の最後
CLRはTIの
のmov SBUF、
ret
;送信は、ポート、シリアルを介して終端ゼロDPTR文字列を指摘し
プット:
CLRの
dptr movc、@
jz puts_end
lcallのputchar
株式会社dptr
JMPのは置く
puts_end:
ret
;プリントBCDの番号は、R4に格納されたのR2 - R3の
printBCD:
;桁5
楽章、r2の
orl、#30Hの
lcallのputchar
;小数点
楽章、#'。
lcallのputchar
;桁4
楽章、r3に
スワップ
anl、#0Fhの
orl、#30Hの
lcallのputchar
;桁3
楽章、r3に
anl、#0Fhの
orl、#30Hの
lcallのputchar
;桁2
楽章は、R4
スワップ
anl、#0Fhの
orl、#30Hの
lcallのputchar
;桁1
楽章は、R4
anl、#0Fhの
orl、#30Hの
lcallのputchar
ret
;初期化タイマ/カウンタ0カウンタとして8ビットオートリは
InitTimer0:
setb T0の。T0の入力としてピンを有効にする
CLRのよって取り残さ;停止タイマ0
楽章、#0F0H
anl、TMOD
、orl#02Hの、ビットオートリタイマータイマーを設定0 8
楽章は、TMOD
楽章TH0、#72; 100us@22.11MHzの場合:256 - ((100e - 6)*(22.11e6/12))
楽章のIE、#送るパケット;を有効にするタイマ0割り込み、グローバル割り込み
ret
MyProgram:
楽章SPは、#80hが、設定idataの先頭にスタックポインタ
lcall InitSerial
lcallのInitTimer0
のmov dptr、#バナー
lcallは置く
永遠:
楽章TL0、#0
楽章R0を、#0
楽章R1は、#0
setb P2.0は、入力としてピンを使用して、この
;破棄不完全な期間
L0は:
定足数をP2.0、L0は
L1は:
バトンP2.0は、L1
setbよって取り残さ;スタートカウント
L2の:
定足数をP2.0、L2の
L3は:
バトンP2.0は、L3
CLRのよって取り残さは、停止R1をカウントR0を、インクリメントで100usカウントが
lcallはhex2bcd
のmov dptr、#期
lcallは置く
lcall printBCD
のmov dptr、#秒数
lcallは置く
JMPの永遠
;一部の文字列:
バナー:
デシベル0AH、0DHの
db'とPeriod.asm:措置期間(0.0000sに6.5535s)p2.0でピン'
デシベル0AH、0DHの
db'と2007年までにイエスカルヴィーノ-フラは、'
デシベル0AH、0DHの、0AH、0DHの、0
期間:
db'とのT ='
デシベル0
秒:
db'とs'は
デシベル0DHの、0
END