200分急求《微机原理与汇编语言》有关红绿灯的一个实验的指令代码

一个大2的《微机原理和汇编语言》课程里的一个小实验
具体的实验内容和要求可以到http://www.forsee.net.cn/里面去看
十字路口交通灯的变化规律要求:
(1)上面路口的绿灯,下面路口的红灯同时亮30秒左右。(2)上面路口的黄灯闪烁若干次,同时下面路口红灯继续亮。(3)上面路口的红灯,下面路口的绿灯同时亮30秒左右。(4)上面路口的红灯继续亮,同时下面路口的黄灯闪烁若干次。(5)转(1)重复。
具体的实验内容和要求请到 http://www.forsee.net.cn/ 里面去看
注意:!!!!
代码问题已经解决
请帮我详细翻译下 这个 代码
翻译的 好220分 就是你的 !!!

ASSUME CS:CODE
CODE SEGMENT PUBLIC
ORG 100H
START:
MOV AX,04A6H
MOV DX,AX
MOV AL,10000000B
OUT DX,AL
LOOP1:
MOV DX,04A0H
MOV AL,00100001B
OUT DX,AL
CALL DELAY2
MOV CX,3H
LOOP2:
MOV AL,00001001B
OUT DX,AL
CALL DELAY1
MOV AL,00000001B
OUT DX,AL
CALL DELAY1
LOOP LOOP2
MOV AL,00010010B
CALL DELAY2
MOV CX,3H
LOOP3:
MOV AL,00000110B
OUT DX,AL
CALL DELAY1
MOV AL,00000010B
OUT DX,AL
CALL DELAY1
LOOP LOOP3
JMP LOOP1
DELAY1 PROC NEAR
PUSH CX
MOV CX,8000H
CCC:
LOOP CCC
POP CX
RET
DELAY1 ENDP
DELAY2 PROC NEAR
PUSH AX
PUSH CX
MOV CX,0030
UUU:CALL DELAY1
LOOP UUU
POP CX
POP CX
POP AX
RET
DELAY2 ENDP
CODE ENDS
END START
实验箱说明:通用片选地址见下述:
CS0:? 04A0H-04AFH? 偶地址有效、实验程序I/0口地址

真是太感谢你了
不知道你的端口对应哪个灯阿

ASSUME CS:CODE
CODE SEGMENT PUBLIC
ORG 100H ;程序存放的首地址
START:
MOV AX,04A6H
MOV DX,AX
MOV AL,10000000B
OUT DX,AL ;将10000000B输出到地址为04A6H的端口
LOOP1:
MOV DX,04A0H
MOV AL,00100001B
OUT DX,AL ;将00100001B输出到地址为04A0H的端口
CALL DELAY2 ;延时
MOV CX,3H
LOOP2:
MOV AL,00001001B
OUT DX,AL ;将00001001B输出到地址为04A0H的端口
CALL DELAY1 ;延时
MOV AL,00000001B
OUT DX,AL ;将00000001B输出到地址为04A0H的端口
CALL DELAY1 ;延时
LOOP LOOP2 ;loop2开始的语句循环执行三次
MOV AL,00010010B
CALL DELAY2 ;延时
MOV CX,3H
LOOP3:
MOV AL,00000110B
OUT DX,AL ;将00000110B输出到地址为04A0H的端口
CALL DELAY1 ;延时
MOV AL,00000010B
OUT DX,AL ;将00000010B输出到地址为04A0H的端口
CALL DELAY1 ;延时
LOOP LOOP3 ;loop3开始的语句循环执行三次
JMP LOOP1
DELAY1 PROC NEAR ;延时子程序
PUSH CX
MOV CX,8000H
CCC:
LOOP CCC
POP CX
RET
DELAY1 ENDP
DELAY2 PROC NEAR ;延时子程序
PUSH AX
PUSH CX
MOV CX,0030
UUU:CALL DELAY1
LOOP UUU
POP CX
POP CX
POP AX
RET
DELAY2 ENDP
CODE ENDS
END START
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-12-06
基于单片机的简易交通灯控制系统汇编语言程序

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP TT0

ORG 001BH

LJMP TT1

ORG 0030H

MAIN: MOV R6,#100 ;主程序

MOV DPTR,#BLOCK

MOV SCON,#0H

CLR F0

MOV TMOD,#12H ;初始化

MOV TH1,#0D8H

MOV TL1,#0F0H

SETB EA

SETB ET1

SETB ET0

MOV 20H,#7

MOV 21H,#3

MOV 22H,#10

ST1: SETB P0.4 ;第一个状态

SETB P0.6

SETB P0.7

CLR P0.3

CLR P2.1

SETB TR1

JNB F0,$

CLR F0

DEC 20H

DEC 22H

TZ1: MOV R2,20H

MOV R3,22H

ACALL SHOW ;SHOW NUMBER调用子程序

MOV A,20H

CJNE A,#00H,ST1

MOV 20H,#7

ST2: SETB P0.3 ;第二个状态,

CLR P0.0

CLR P0.1

SETB TR1

JNB F0,$

CLR F0

DEC 21H

DEC 22H

TZ2: MOV R2,21H

MOV R3,22H

ACALL SHOW ;SHOW NUMBER调用子程序

MOV A,21H

CJNE A,#00H,ST2

MOV 21H,#3

MOV 22H,#10

ST3: SETB P0.0 ;第三个状态

SETB P0.1

CLR P0.4

SETB P2.1

CLR P2.3

SETB TR1

JNB F0,$

CLR F0

DEC 22H

DEC 20H

TZ3: MOV R2,22H

MOV R3,20H

ACALL SHOW ;SHOW NUMBER调用子程序

MOV A,20H

CJNE A,#00H,ST3

MOV 20H,#7

ST4: SETB P2.3 ;第四个状态

CLR P0.6

CLR P0.7

SETB TR1

JNB F0,$

CLR F0

DEC 22H

DEC 21H
参考资料:http://hi.baidu.com/lipengfei_jiaozi/blog/item/b7a422f36c341150342acc3c.html
第2个回答  2007-12-09
担任政务司司长:代码
代码部分公开
-1 00h
开始:
限压器斧, 04a6h
限压器的dx ,斧
限压器铝, 10000000b
出的dx ,铝
loop1 :
限压器的dx , 04a0h
限压器铝, 00100001b
出的dx ,铝
请delay2
限压器国泰航空,的3 h
loop2 :
限压器铝, 00001001b
出的dx ,铝
请delay1
限压器铝, 00000001b
出的dx ,铝
请delay1
环loop2
限压器铝, 00010010b
请delay2
限压器国泰航空,的3 h
loop3 :
限压器铝, 00000110b
出的dx ,铝
请delay1
限压器铝, 00000010b
出的dx ,铝
请delay1
环路loop3
就业选配计划loop1
delay1过程近
国泰航空推
限压器国泰航空, 8000h
矮壮素:
环路矮壮素
流行国泰航空
ret
delay1 endp
delay2过程近
把斧
国泰航空推
限压器国泰航空, 0030
uuu :请delay1
环路uuu
流行国泰航空
流行国泰航空
流行斧
ret
delay2 endp
码完
年底动工
第3个回答  2007-12-12
昨天刚写了一个交差。。我大1,大致和你说的那个一样,只不过加了数码管的显示的,共阳的。
ORG 0000H
LJMP MAIN

MAIN:
START1:
mov a,#11011011b
mov p0,a

clr p2.1
mov temp,#5
lcall shumaguan30
clr p2.0
setb p2.1

SETB P0.2
SETB P0.5
START2: mov a,#01111011b
mov p0,a
clr p2.1
mov temp,#30
lcall shumaguan30

clr p2.0
setb p2.1
mov a,#11111111b
mov p0,a

ACALL DELAY0
START3:

MOV A,#11111111b
mov p0,a

MOV A,#01111111b
mov p0,a
clr p2.1

mov temp,#3
lcall shan
clr p2.0

setb p2.1

MOV A,#11111111b
mov p0,a
lcall delay0
MOV A,#01111111b
mov p0,a
clr p2.1

mov temp,#2
LCALL shan

clr p2.0
setb p2.1

MOV A,#11111111b
mov p0,a
acall delay0
MOV A,#01111111b
mov p0,a
clr p2.1

mov temp,#1
lcall shan
clr p2.0
setb p2.1
mov a,#10111011b
mov p0,a
clr p2.1
mov temp,#3
lcall shumaguan30
setb p2.0
setb p2.1

mov a,#11111111b
mov p0,a

START4:
mov a,#11001111b
mov p0,a
clr p2.1
clr p2.0
mov temp,#25
lcall shumaguan30
clr p2.0
setb p2.1
mov a,11111111b
mov p0,a
START5:
MOV A,#11111111b
mov p0,a
ACALL DELAY0
MOV A,#11001111b
mov p0,a
clr p2.1

mov temp,#3
lcall shan
clr p2.0

setb p2.1

MOV A,#11111111b
mov p0,a
lcall delay0
MOV A,#11001111b
mov p0,a
clr p2.1

mov temp,#2

lcall shan
clr p2.0
setb p2.1

MOV A,#11111111b
mov p0,a
acall delay0
MOV A,#11001111b
mov p0,a
clr p2.1

mov temp,#1
lcall shan
clr p2.0
setb p2.1

LJMP START2

DELAY0:
MOV R5,#248
D2:MOV R7,#50
D1:MOV R6,#20
DJNZ R6,$
DJNZ R7,D1
DJNZ R5,D2
RET

shumaguan30:
a_bit equ 11h /*数码管个位树内存存放地址 */
b_bit equ 12h /*十位 */
temp equ 13h /*计数器 */

JIANFA:acall CHUFA

dec temp
mov a,temp
CJNE A,#0,next
ret
next:ljmp jianfa

CHUFA:MOV A,TEMP
MOV B,#10
DIV AB
MOV b_bit,b
mov a_bit,a
mov dptr,#numtab

MOV R0,#5 /*总共1S延迟*/

DPLL: mov R1,#250
DPLOP:MOV a,a_bit
movc A,@a+DPtr
mov p0,a
SETB p2.0
CLR p1.2
acall DLMS
SETB p1.2

MOV a,b_bit
movc a,@a+DPTR
mov p0,a
setb p2.0
clr p1.3
acall DLMS
setb p1.3
DJNZ R1,DPLOP
DJNZ R0,DPLL
RET
shan:acall CHUFA

setb p1.2
setb p1.3

ret
DLMS:MOV R7,#200
DJNZ R7,$
RET
NUMTAB:DB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h/*0到9*/
end