课程设计"智能双色灯"


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;PowerBy:strouven
;Email:zhongwangxia@163.com
;homepage:http://blog.greycode.cn
;2008年11月14日 12:56:15
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
D1      EQU 50H
D2      EQU 50H
D3      EQU 02H  
Z8279    EQU       212H
D8279    EQU       210H
LEDMOD   EQU       00   ;左边输入,八位显示外部译码八位显示
LEDFEQ   EQU       38H ;扫描频率
DATA    SEGMENT
PB      DB ?
DATA    ENDS
STACK   SEGMENT STACK
STA     DW 50 DUP(?)
TOP     EQU LENGTH STA
STACK   ENDS
CODE    SEGMENT
ASSUME  CS:CODE,DS:DATA
START:  
	PUSH    CS
        POP     DS   
	
        MOV     DX,203H    ;设置为全输出
        MOV     AL,80H
        OUT     DX,AL
        MOV     DX,202H
        MOV     AL,0FFH
        OUT     DX,AL       ;清LED
      
	;MOV     DX,202H       ;全红      
	MOV     AL,0FH;全红
	mov 	dx,202h
        OUT     DX,AL
        CALL    disled3s

        
BG:      
	mov dx,202h
	MOV     AL,10010110B;01101001B   ;南北绿,东西红
        OUT     DX,AL
        call disled15s
 		      
       
        mov     Al,00000110B;OR      AL,90H         ;南北黄
        OUT     DX,AL
        ;MOV     BX,D1
        ;CALL    DLY
	call disled3s
        MOV     AL,01101001B;10010110B  ;南北红,东西绿
        OUT     DX,AL
        MOV     BX,D2
        call disled15s

        mov AL,00001001B;OR      AL,60H
        OUT     DX,AL
        call disled3s ;                                          
        JMP     BG

LED  DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H
      DB  5EH,79H,71H
DLY     PROC NEAR


        PUSH    CX
DDD:    MOV     CX,7ffH		
CCC:    LOOP    CCC
        DEC     BX
        CMP     BX,0
        JNE     DDD
        POP     CX
        RET
        DLY     ENDP


DISLED15s   PROC NEAR
	PUSH DX
	PUSH CX
	MOV       DX,Z8279
	MOV       AL,LEDMOD
	OUT       DX,AL
	
	MOV       AL,LEDFEQ
	OUT       DX,AL
	
	MOV       CX,08H  ;
XZ:  MOV       DX,D8279;
	MOV       AL,00H  ;清〇
	OUT       DX,AL   ;
    LOOP  XZ	
	mov dx,z8279
	mov al,83h
	out dx,al ;右起第四位


	mov dx,d8279
	mov al,06h ;在第四位显示1(十位数)
	out dx,al

	mov cx,05H
loop5s: 
	mov dx,z8279;
	mov ax,82h  ;右起第三位显示个位数
	out dx,al  ;
	
	MOV ax,cx   ;;;;;;;;;;;;;;;;;;;;;
        LEA bx,led  ;
        XLAT        ;个位显示数字54321
        mov dx,d8279;
        OUT dx,al   ; ;;;;;;;;;;;;;;;;;;;
	    MOV     BX,D1
        CALL    DLY
loop loop5s
	mov dx,d8279;;;;;;;;;;;;;;;;;;;;;;;
	mov ax,3fH  ;个位显示0
	out dx,al   ;;;;;;;;;;;;;;;;;;;;;;;
	MOV     BX,D1
    CALL    DLY 
	mov dx,z8279;
	mov ax,83h  ;
	out dx,al   ;
	
	mov dx,d8279;;;;;;;;;;;;;;;
	mov ax,3fh  ;十位显示0
	out dx,al   ;;;;;;;;;;;;;;;
	

	mov cx,09H
loop9s: 
	mov dx,z8279;
	mov ax,82h  ;右起第三位显示个位数
	out dx,al   ;	
	MOV ax,cx   ;;;;;;;;;;;;;;;;;;;;;;;;
        LEA bx,led  ;
        XLAT        ;个位显示数字9876554321
        mov dx,d8279;
        OUT dx,al   ; ;;;;;;;;;;;;;;;;;;;;;;
       MOV     BX,D1
       CALL    DLY
loop loop9s
	mov dx,d8279;;;;;;;;;;;;;;;;;;;;;;;
	mov ax,3fH  ;个位显示0
	out dx,al   ;;;;;;;;;;;;;;;;;;;;;;;

	pop cx
	pop dx
	ret
DISLED15s ENDP


delay proc near
	push cx
	mov cx,0fffh
	loop $
	pop cx
	ret
delay endp
	 
disled3s proc near
	
	push cx
	push dx
	
	MOV       DX,Z8279
	MOV       AL,LEDMOD
	OUT       DX,AL
	
	MOV       AL,LEDFEQ
	OUT       DX,AL
	
	MOV       CX,08H  ;
XZ1:  MOV       DX,D8279;
	MOV       AL,00H  ;清〇
	OUT       DX,AL   ;
LOOP  XZ1	
	mov cx,03H
loop3s: 
	mov dx,z8279;
	mov ax,82h  ;右起第三位显示个位数
	out dx,al   ;
	
	MOV ax,cx   ;;;;;;;;;;;;;;;;;;;;;
        LEA bx,led  ;
        XLAT        ;个位显示数字321
        mov dx,d8279;
        OUT dx,al   ; ;;;;;;;;;;;;;;;;;;;
	    MOV     BX,D1
        CALL    DLY
loop loop3s
	mov dx,d8279;;;;;;;;;;;;;;;;;;;;;;;
	mov ax,3fH  ;个位显示0
	out dx,al   ;;;;;;;;;;;;;;;;;;;;;;;

	pop cx
	pop dx
	ret
disled3s endp


CODE    ENDS
END     START




发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>