⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trlight2.asm

📁 是模拟交通灯亮灭规律的小程序,是并口的实验
💻 ASM
字号:
PA55 EQU 0DC00H-200H+218H
PB55 EQU 0DC00H-200H+219H
PC55 EQU 0DC00H-200H+21AH
P55CTL EQU 0DC00H-200H+21BH
data segment
	message db 'Enter any key can exit to dos!',0dh,0ah,'$'
	;pb db ?
data ends
STACKS segment
	sta dw 50 dup(?)
STACKS ends
code segment
;main proc far
	assume cs:code,ds:data,ss:STACKS
start:  mov ax,data
	mov ds,ax  ;段初始化
	mov ax,stacks
	mov ss,ax
	mov ah,09h
	mov dx,offset message
        int 21h  ;显示信息
	;mov dx,PB55
	;in al,dx
	;mov pb,al
	mov al,80h
	mov dx,P55CTL
	out dx,al;写控制字
 allred:mov dx,PB55
	mov al,0FFH
	;or al,0f0h
	out dx,al;黄灯灭
	mov dx,PC55
	mov al,0f0h
	out dx,al;红灯全亮,绿灯全灭
	call delay_long
allow_13:mov dx,PC55
	mov al,0a5h;10100101(c)
	out dx,al;1,3口绿灯亮,2,4口红灯亮
	call delay_long
        call delay_long
        call delay_long
allow_24:;or al,0f0h
	;out dx,al
	MOV DX,PC55
	MOV AL,0F5H; 1,3绿灯灭
	out dx,al
        mov cx,4d
yellow_13:;mov al,pb
	mov dx,PB55
	MOV al,0afh
	out dx,al;点亮1,3黄灯
     ;   call delay_short
      ;  call delay_short
       ; call delay_short
       call delay_long
	;or al,50h
	MOV AL,0FFH
	out dx,al;灭1,3黄灯
       ; call delay_short
        ;call delay_short
       ; call delay_short
       call delay_long
	loop yellow_13
	MOV DX,PC55
	MOV AL,0F0H
	OUT DX,AL;红灯全亮
	call delay_long

	mov dx,PC55
	mov al,5ah;c:01011010
	out dx,al;点亮2,4绿灯,1,3红灯
	call delay_long

	;or al,0a0h;c:11111010
	MOV AL,0FAH
	out dx,al
        mov cx,4d
yellow_24:mov al,5FH
	mov dx,PB55
	;and al,5fh;c:0101....
	out dx,al
	call delay_short
	;or al,0f0h;c:1111....
	MOV AL,0FFH
	out dx,al;灭2,4黄灯
        call delay_long
	loop yellow_24
	mov dx,PC55
	mov al,0f0h;c:11110000
	out dx,al;点亮4个红灯,灭4个绿灯
	call delay_long
	;mov ah,0bh
	;mov dl,0ffh
	;int 21h  ;判断有无键按下
	;inc al
	MOV AH,01H
	INT 16H
	JNZ return
	jmp allow_13

return:mov ax,4c00h
	int 21h;返回dos
	;ret
;main endp
delay_short proc near
	push cx
	mov cx,8000h
loop1:loop loop1
	pop cx
	RET
delay_short endp

delay_long proc near
	push cx
	mov cx,0FFFFh
loop2:call delay_short
	loop loop2
	pop cx
	ret
delay_long endp

code ends
	end start
	

	

  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -