zoukankan      html  css  js  c++  java
  • 汇编(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   
    每个人都会有一段异常艰难的时光 。 生活的压力 , 工作的失意 , 学业的压力。 爱的惶惶不可终日。 挺过来的 ,人生就会豁然开朗。 挺不过来的 ,时间也会教你 ,怎么与它们握手言和 ,所以不必害怕的。 ——杨绛
  • 相关阅读:
    Java Json 数据下划线与驼峰格式进行相互转换
    php 将数组转换网址URL参数
    Swagger2常用注解及其说明 (转)
    Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念(转)
    bootstrap.css.map 404
    Git发生SSL certificate problem: certificate ha错误的解决方法
    防火墙禁ping:虚拟机ping不通主机,但主机可以ping虚拟机
    PhpStorm本地断点调试
    Java语言中姐种遍历List的方法总结
    Ubuntu18.04安装mysql5.7
  • 原文地址:https://www.cnblogs.com/zhai1997/p/12108144.html
Copyright © 2011-2022 走看看