电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> EDA开发应用 >> Proteus >> 正文

Proteus7.5仿真8255流水灯原理图

作者:佚名    文章来源:本站原创    点击数:    更新时间:2018-01-24

8255流水灯显示代码

; You may customize this and other start-up templates;

; The location of this template is c:\emu8086\inc\0_com_template.txt

org 100h

;T8255-2.asm

;8255流水灯显示实验

;****************根据查看端口资源修改下列符号值*******************

IOY0 EQU 00H ;片选IOY0对应的端口始地址

;*****************************************************************

MY8255_A EQU IOY0+00H*2 ;8255的A口地址

MY8255_B EQU IOY0+01H*2 ;8255的B口地址

MY8255_C EQU IOY0+02H*2 ;8255的C口地址

MY8255_MODE EQU IOY0+03H*2 ;8255的控制寄存器地址

DATA SEGMENT

LA DB 1 DUP

LB DB 1 DUP

AXX DW 1 BUP

CXX DW 1 BUP

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV DX,MY8255_MODE ;定义8255工作方式

MOV AL,80H ;工作方式0,A口和B口为输出

OUT DX,AL

BEGIN: MOV DX,MY8255_A ;写A口发出的起始数据

MOV AL,01H

OUT DX,AL

MOV LA,AL

MOV DX,MY8255_B ;写B口发出的起始数据

MOV AL,80H

OUT DX,AL

MOV LB,AL

MOV CX,7

LOOP1: CALL DALLY

MOV AL,LA ;将A口起始数据左移再写入A口

ROL AL,1

MOV LA,AL

MOV DX,MY8255_A

OUT DX,AL

MOV AL,LB ;将B口起始数据右移再写入B口

ROR AL,1

MOV LB,AL

MOV DX,MY8255_B

OUT DX,AL

LOOP LOOP1

MOV CX,7

LOOP2: CALL DALLY

MOV AL,LA ;将A口起始数据右移再写入A口

ROR AL,1

MOV LA,AL

MOV DX,MY8255_A

OUT DX,AL

MOV AL,LB ;将B口起始数据左移再写入B口

ROL AL,1

MOV LB,AL

MOV DX,MY8255_B

OUT DX,AL

LOOP LOOP2

JMP BEGIN ;流水灯重新开始

DALLY PROC ;软件延时子程序

MOV CXX,CX

MOV AXX,AX ;这里本应该用堆栈,我用CXX,AXX变量代替了。

MOV CX,0FH

D1: MOV AX,0FFFH

D2: DEC AX

JNZ D2

LOOP D1

MOV AX,AXX

MOV CX,CXX

RET

DALLY ENDP

CODE ENDS

END START

ret

Proteus7.5仿真8255流水灯原理图

 

Proteus7.5仿真8255流水灯原理图 

效果图

 

Tags:Proteus,仿真,8255流水灯原理图  
责任编辑:admin
  • 上一篇文章:
  • 下一篇文章: 没有了
  • 请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
    1分 2分 3分 4分 5分

    还可以输入 200 个字
    [ 查看全部 ] 网友评论
    关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
    返回顶部
    刷新页面
    下到页底
    晶体管查询