0

私は8051手続きで働きたいです。私がやりたいことは、遅延の手順を宣言し、それを LED の点滅に使用することです。Keil uVision3を使用してコードを記述しています。私はたくさんグーグルで検索しましたが、何の助けも見つかりませんでした。以下は私のプログラムのサンプルコードです。

ORG 00h

MOV P0, #00h
MOV P1, #00h
MOV P2, #00h
MOV P3, #00h

CALL DELAY PROC     ;calling delay procedure to produce some delay.


DELAY PROC           ;procedure implementation starts here for generating some delay

    MOV R0, #255

    NOW:
    DJNE R0, 0 , HERE

    MOV R1, #255

    HERE: 
    DJNE R1, 0, NOW

    RET
    ENDP


END

このコードでは、いくつかの構文エラーが発生します。プロシージャを宣言するための正しい構文とその使用方法は何ですか。私のコードのどこが間違っているのか、私を正しくしてください。私はあなたに感謝します。

4

2 に答える 2

0

単純な 8051 チップの場合は、手順を宣言する必要さえありません。ラベルを付けて呼び出すだけです。そのような:

    ACALL delay
    ; ... main progam continues here
    ; make sure you don't fall through into your procedure!

delay:
    ; ... procedure code here ...
    RET

手順を宣言したい場合は、keil マニュアルに従って、次のようにする必要があります。

    CALL delay
    ; ... main progam continues here
    ; make sure you don't fall through into your procedure!

delay PROC
    ; ... procedure code here ...
    RET
delay ENDP
于 2013-01-21T22:45:00.423 に答える