急!!AT89C51 单片机汇编语言程序求解

2024-12-14 06:04:39
推荐回答(3个)
回答1:

应该不难吧。每一步解说没用的。 

你的延时都太短了,实际上哪里有这么短的延时。

SN_G BIT P1.0

SN_Y BIT P1.1

SN_R BIT P1.2

EW_G BIT P1.5

EW_Y BIT P1.6

EW_R BIT P1.7

ORG 00H

AJMP MAIN

ORG 30H

MAIN:

MOV P1,#00H

SETB EW_R

SETB SN_G

ACALL D01S

ACALL D01S

CLR EW_R

CLR SN_G

SETB EW_Y

SETB SN_Y

ACALL D01S

CLR EW_Y

CLR SN_Y

SETB SN_R

SETB EW_G

ACALL D01S

ACALL D01S

CLR SN_R

CLR EW_G

SETB EW_Y

SETB SN_Y

ACALL D01S

AJMP MAIN


D01S:

MOV R7,#250

MOV R6,#200

DJNZ R6,$

DJNZ R7,$-4

RET

 

END 

 

给你放慢10倍看看效果 

回答2:

SR EQU P1.2
SG EQU P1.0
SY EQU P1.1
ER EQU P1.7
EG EQU P1.5
EY EQU P1.6

ORG 0
SETB SR;SSR
CLR SG;CSG
CLR SY;CSY
CLR ER;CER
SETB EG;SEG
CLR EY;CEY
LCALL DELAY200MS
CLR EG
SETB EY
LCALL DELAY100MS
SETB ER
CLR EG
CLR EY
CLR SR
SETB SG
CLR SY
LCALL DELAY200MS
CLR SG
SETB SY
LCALL DELAY100MS
LJMP 0

DELAY200MS:
LCALL DELAY100MS
LCALL DELAY100MS
RET
DELAY100MS:
MOV R0,#10H
DR1DELAY:MOV R1,#0FFH
DR2DELAY:MOV R2,#0FFH
DJNZ R2,$
DJNZ R1,DR2DELAY
DJNZ R0,DR1DELAY
RET
END

回答3:

这个题是相当简单,多加学习,自己可以写得出来