主题:急求用8255编交通灯程序
dopewang
[专家分:0] 发布于 2005-12-27 22:05:00
[font=黑体][/font][color=FF0000][/color]
回复列表 (共5个回复)
沙发
56726301 [专家分:0] 发布于 2006-01-01 22:48:00
我初学者 编的不好啊!!
qq 56726301
STACK SEGMENT STACK
DW 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,DS:CODE
ORG 0100H
MAIN PROC FAR
START1: XOR AX,AX
XOR BX,BX
XOR CX,CX
XOR DX,DX
MOV SI,50H
MOV [SI],WORD PTR 65535D
MOV [SI+2],WORD PTR 65535D
MOV [SI+4],WORD PTR 65535D
MOV [SI+6],WORD PTR 303H
MOV AL,10010010B
MOV DX,[SI+6]
OUT DX,AL
CALL REDA1
CALL REDB1
CALL GREAB1
CALL GRECD1
CALL YEALLY1
MOV CX,3H
START: CALL REDA0
CALL REDB0
CALL DELAY6
CALL REDA1
CALL GREAB0
CALL DELAY12
CALL GREAB1
CALL REDB1
MOV BX,8H
B1: CALL YEALLY0
CALL DELAY1
CALL YEALLY1
CALL DELAY1
DEC BX
JNZ B1
CALL REDA0
CALL GRECD0
CALL DELAY12
CALL REDA1
CALL GRECD1
MOV BX,8H
C1: CALL YEALLY0
CALL DELAY1
CALL YEALLY1
CALL DELAY1
DEC BX
JNZ C1
CALL REDB0
LOOP START
RET
MAIN ENDP
DELAY12 PROC NEAR
PUSH CX
PUSH BX
PUSH AX
MOV BX,6553D
X1: MOV CX,[SI]
X2: LOOP X2
DEC BX
JNZ X1
POP AX
POP BX
POP CX
RET
DELAY12 ENDP
DELAY6 PROC NEAR
PUSH CX
PUSH BX
PUSH AX
MOV BX,6553D
Y1: MOV CX,[SI+2]
Y2: LOOP Y2
DEC BX
JNZ Y1
POP AX
POP BX
POP CX
RET
DELAY6 ENDP
DELAY1 PROC NEAR
PUSH CX
PUSH BX
PUSH AX
MOV BX,6553D
Z1: MOV CX,[SI+4]
Z2: LOOP Z2
DEC BX
JNZ Z1
POP AX
POP BX
POP CX
RET
DELAY1 ENDP
REDA0 PROC NEAR
PUSH DX
PUSH AX
MOV AX,[SI+6]
MOV DX,AX
MOV AL,00000000B
OUT DX,AL
POP AX
POP DX
RET
REDA0 ENDP
板凳
56726301 [专家分:0] 发布于 2006-01-01 22:49:00
REDA1 PROC NEAR
PUSH DX
PUSH AX
MOV AX,[SI+6]
MOV DX,AX
MOV AL,00000001B
OUT DX,AL
POP AX
POP DX
RET
REDA1 ENDP
REDB0 PROC NEAR
PUSH DX
PUSH AX
MOV AX,[SI+6]
MOV DX,AX
MOV AL,00000010B
OUT DX,AL
POP AX
POP DX
RET
REDB0 ENDP
REDB1 PROC NEAR
PUSH DX
PUSH AX
MOV AX,[SI+6]
MOV DX,AX
MOV AL,0000011B
OUT DX,AL
POP AX
POP DX
RET
REDB1 ENDP
GREAB0 PROC NEAR
PUSH DX
PUSH AX
MOV AX,[SI+6]
MOV DX,AX
MOV AL,00000100B
OUT DX,AL
POP AX
POP DX
RET
GREAB0 ENDP
GREAB1 PROC NEAR
PUSH DX
PUSH AX
MOV AX,[SI+6]
MOV DX,AX
MOV AL,00000101B
OUT DX,AL
POP AX
POP DX
RET
GREAB1 ENDP
GRECD0 PROC NEAR
PUSH DX
PUSH AX
MOV AX,[SI+6]
MOV DX,AX
MOV AL,00000110B
OUT DX,AL
POP AX
POP DX
RET
GRECD0 ENDP
GRECD1 PROC NEAR
PUSH DX
PUSH AX
MOV AX,[SI+6]
MOV DX,AX
MOV AL,00000111B
OUT DX,AL
POP AX
POP DX
RET
GRECD1 ENDP
YEALLY0 PROC NEAR
PUSH DX
PUSH AX
MOV AX,[SI+6]
MOV DX,AX
MOV AL,00001000B
OUT DX,AL
POP AX
POP DX
RET
YEALLY0 ENDP
YEALLY1 PROC NEAR
PUSH DX
PUSH AX
MOV AX,[SI+6]
MOV DX,AX
MOV AL,00001001B
OUT DX,AL
POP AX
POP DX
RET
YEALLY1 ENDP
CODE ENDS
END START1
3 楼
56726301 [专家分:0] 发布于 2006-01-01 22:49:00
大家顶我啊!!!
4 楼
zxcqwe [专家分:0] 发布于 2006-06-02 19:49:00
顶一下
5 楼
THREE [专家分:0] 发布于 2007-01-04 23:21:00
多谢了!我也有用……
我来回复