问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

微机原理8255编程

发布网友 发布时间:2022-04-24 11:05

我来回答

1个回答

热心网友 时间:2023-10-10 18:30

;;8255硬件连接及软件设置:
;;B口方式0输入,PB0~PB3分别连接K1~K4;
;;A口方式0输出,PA0~PA3外接驱动电路控制灯的4种动作;
;;驱动电路,可由74LS06、ULN2003作反相电流放大驱动继电器或固体继电器组成;
;;C口闲置;
;;按以上设置,8255方式控制字是82H ;
;;在PC机作主机的系统中,8255的4个寄存器地址是:
;;A口60H,B口61H,方式控制寄存器63H。

;;汇编程序如下:

SSEG SEGMENT PARA STACK ;堆栈段定义
DW 30H DUP(?)
SSEG ENDS

CSEG SEGMENT ;代码段定义
ASSUME CS:CSEG,DS:CSEG

ORG 200h ;主程序首址
START: MOV AL, 82H ;方式控制字
MOV DX, 63H
OUT DX, AL ;方式控制字送入方式控制寄存器
Scan: IN AL,61H ;扫描从B口读入的K1~K4状态
CALL PRC1 ;开灯、关灯
CALL PRC2 ;是否暂停
CALL PRC3 ;是否换向
CALL PRC3 ;是否移动
JMP Scan ;主程序循环

PRC1 PROC NEAR ;"开/关灯"操作 子程序定义
PUSH AX ;B口状态进栈暂存
TEST AL,00000001B ;检测PB0输入状态
JZ CloseL ;若PB0低电平,表示K1断,转CloseL处执行
OpenL: OUT 60H,AL ;若PB0高电平,表示K1通,PA0输出高电平,开灯
JMP RT1 ;转RT1处指令返回
CloseL: MOV AL,00000000B ;PA0输出低电平
OUT 60H,AL ;关灯
RT1: POP AX ;B口状态出栈
RET ;返回主程序
PRC1 ENDP ;子程序定义完毕

PRC2 PROC NEAR ;"暂停"操作 子程序定义
PUSH AX ;B口状态进栈暂存
TEST AL,00000010B ;检测PB1输入状态
JZ RT2 ;若PB1低电平,表示K2断,不暂停
PAUS: OUT 60H,AL ;若PB1高电平,表示K2通,PA1输出高电平,暂停
RT2: POP AX ;B口状态出栈
RET ;返回主程序
PRC2 ENDP ;子程序定义完毕

PRC3 PROC NEAR ;"换向"操作 子程序定义
PUSH AX ;B口状态进栈暂存
TEST AL,00000100B ;检测PB2输入状态
JZ RT3 ;若PB2低电平,表示K3断,不换向
CHG: MOV AL,00000101B ;若PB2高电平,表示K3通
OUT 60H,AL ;PA2、PA0输出高电平、换向,灯保持亮
RT3: POP AX ;B口状态出栈
RET ;返回主程序
PRC3 ENDP ;子程序定义完毕

PRC4 PROC NEAR ;"移动"操作 子程序定义
TEST AL,00001000B ;检测PB3输入状态
JZ RT4 ;若PB3低电平,表示K4断,不移动
MOVE: MOV AL,00001001B ;若PB3高电平,表示K4通
OUT 60H,AL ;PA3、PA0输出高电平、移动,灯保持亮
RT4: RET ;返回主程序
PRC4 ENDP ;子程序定义完毕

CSEG ENDS ;代码段定义完毕
END START ;主程序结束
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 跪求计算机编程高手!问:若要将8255A的端口PC6的位置为1,则应选择的置位/复位控制字为? 假设当前8255A的端口地址为60H~63H,请编程用两种方法实现将C口的PC5清0,PC1置1( 8255编程 8255A的A口有几种工作方式 试编写初始化程序,设8255A的端口A工作在方式0输入,B口工作在方式0输出,使PC5端 怎样编写8255A的初始化? (用C语言)请指教! 8255A编程的端口地址是如何确定的 一道微机原理8255A的编程题目 求解 8255A编程,急求高手,百分 大家说下蟑螂药什么最 好使? 哪种灭蟑螂药有效安全 蟑螂药如何用? 华为电池hb3973a5ecw是什么型号手机 抖音礼物栏没礼物是什么原因? 为什么抖音只有账单没有送礼物记录? 8.4支付宝手机怎么添加收款人? 抖音钱包怎么没有送礼记录栏? 友宝智能货柜为什么用不了 支付宝扫脸货柜多扣款怎么办? 支付宝在无人智能货柜上消费了没给钱会受到什么处理了? 8255A有你几种工作方式?端口A、端口B和端口C各可工作于那种方式? 8255a可编程并行接口实验1怎么把灯改成开关开时闪烁,关时灭 8255A可编程并行接口实验 简述8255的三种工作方式a/d转换器的工作原理有几种方式 8255A有几个I/O口,各有何功能? - 信息提示 hb386280ecw是华为什么型号? 可编程接口8255A端口地址的确定? 单片机8255A的基本功能是什么 8255A有几种工作方式? 华为荣耀电池型号是hb446486ecw是啥手机? 华为畅享8手机主键怎么设置 华为nova65G锁屏显示时间? 华为手机nova6桌面时间上面的数字是表示什么? 华为nova6如何设置锁屏? 热力学第二定律怎样理解? 热力学第二定律是什么? 什么是热力学第二定律?什么是熵?为什么说熵在增加?谢谢! 热力学第二定律与熵? 热力学第二定律的微观解释就是熵增加对吗?