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

📄 8255.asm

📁 微机实验 8253 8098 82
💻 ASM
字号:
;***********************************;
;*    十字路口红绿灯模拟演示程序   *;
;* 端口各灯的设置:                 *;
;*   1红 1黄 1绿 0 0 2红 2黄 2绿   *;
;***********************************;
data segment
ioport          equ 0c400h-0280h
io8255a         equ ioport+28ah
io8255b         equ ioport+28bh
portc1  db  24h,44h,04h,44h,04h,44h,04h   ;六个灯可能
	db  81h,82h,80h,82h,80h,82h,80h   ;的状态数据
	db  0ffh                          ;结束标志
data ends
code  segment
      assume  cs:code,ds:data
start:
	mov   ax,data
	mov   ds,ax
	mov   dx,io8255b
	mov   al,90h
	out   dx,al           ;设置8255为C口输出
	mov   dx,io8255a
re_on:  mov   bx,0
on:     mov   al,portc1[bx]
	cmp   al,0ffh
	jz    re_on
	out   dx,al           ;点亮相应的灯
	inc   bx
	mov   cx,3000        ;参数赋初值
	test  al,21h          ;是否有绿灯亮
	jz    de1             ;没有,短延时
	mov   cx,0ffffh       ;有,长延时
de1:    mov   di,0ffffh         ;di赋初值5000
de0:    dec   di              ;减1计数
	jnz   de0             ;di不为0
	loop  de1
	push dx
	mov ah,06h
	mov dl,0ffh
	int 21h
	pop dx
	jz  on                ;没有,转到on
exit:   mov   ah,4ch          ;返回
	int   21h
code ends
	end start

⌨️ 快捷键说明

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