VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > 汇编语言 >
  • 汇编(8255A的方式0)

方式0也叫做基本输入/输出方式,PA口和PB口可以通过方式控制线规定输入口或输出口,PC口分为两个4位端口,高4位为一个端口,低4位为一个端口。

 

 

1、程序解析:

(1)MOV AL,81H

 

 这是8255A的工作方式控制字:即把PA口设置为方式0,输出,PC口上半部分定义为输出,PB口指定为方式0,输出,PC口下半部分指定为输入。

(2)MOV AL 0FH 

 

 0有效,D4、D5、D6属于无效字段没有实际意义置零,D3、D2、D1全为1,代表选择PC7,PC7位置高,使STB=1,置位为1。

2、汇编程序:

(1)先初始化:控制口地址(303H)、工作方式控制字、置位/复位控制字(拉低或拉高PC7即STRB),内存首地址、字符个数

(2)两个循环:小循环读取设备的状态,设备空闲后开始读取数据,然后拉低STB(初始为高),因为负脉冲数据使得能够输出,然后再将STB置高,只要没输入结束,继续循环。


ORG 100H MOV DX,303H ;8255A的控制口地址,这里设8255A的控制口地址为303H MOV AL,81H ;工作方式控制字(初始化) OUT DX,AL ;送到控制口 MOV AL 0FH ;按位置位/复位控制字,PC7位置高,使STB=1(控制线), OUT DX,AL MOV SI,OFFSET BUF ;打印字符的内存首址,SI为源变址寄存器 MOV CX,OFFH ;打印字符个数 L:MOV DX,302H IN Al,DX  ;读取状态 AND AL,04H JNZ L ;忙则等待,不忙则向PA口送数 MOV DX 300H ;PA口地址 MOV AL,[SI] ;从内存取数字 OUT DX,AL ;送数到 PA口 MOV DX,303H ;8255A的控制口,这里设8255A的控制口地址为303H MOV AL,0EH ;PC7位置低,使STB=0(控制线) OUT DX,Al NOP ;延时 NOP MOV AL,0FH ;PC7位置高,使STB=1(控制线) OUT DX,Al INC SI DEC CX JNZ L MOV AL,4CH INT 21H BUF DB

 

__EOF__


本文作者怀梦想,致远方 本文链接:https://www.cnblogs.com/zhai1997/p/12108144.html


相关教程