Pixiv - KiraraShss
实验一 8255并行接口实验
887 字
4 分钟
实验一 8255并行接口实验
实验一 8255并行接口实验
1. 实验内容
基础部分
编写一个基本输入输出程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求:数据灯的显示随开关动态变化。
拓展部分
在基础实验上增加如下功能:
- 若开关 K7~K0 均为高电平,则程序退出。
-
- 当 K0 为高电平时,数据灯高4位亮;
- 当 K0 为低电平时,数据灯低4位亮。
-
- 当 K1K0=00 时,数据灯全部熄灭;
- 当 K1K0=01 时,数据灯低4位亮;
- 当 K1K0=10 时,数据灯高4位亮;
- 当 K1K0=11 时,数据灯全亮。
2. 注意事项
- 连线时注意与输入输出接口地址相对应
信号线
编址空间
主片8259
20H、21H
从片8259
A0H、A1H
扩展I/O接口
IOY0
0600H~063FH
IOY1
0640H~067FH
IOY2
0680H~06BFH
IOY3
06C0H~06FFH
- 8255芯片控制字:

3. 连线

4. 实验代码
基础实验:
;IOY1 —— 0640HP8255A EQU 0640HP8255B EQU 0642HP8255C EQU 0644HP8255MODE EQU 0646H
CODE SEGMENT ASSUME CS:CODESTART: MOV DX, P8255MODE MOV AL, 90H ;初始化8255:A口输入,B口输出 OUT DX, ALMAIN: MOV DX, P8255A ;A口读开关状态 IN AL, DX MOV DX, P8255B ;B口送LED状态 OUT DX, AL JMP MAINCODE ENDS END START扩展实验:
1.
P8255A EQU 0640HP8255B EQU 0642HP8255C EQU 0644HP8255MODE EQU 0646H
CODE SEGMENT ASSUME CS:CODESTART: MOV DX, P8255MODE MOV AL, 90H ;初始化8255:A口输入,B口输出 OUT DX, ALMAIN: MOV DX, P8255A ;A口读开关状态 IN AL, DX CMP AL, 0FFH ;判断是否开关全部为高 JZ EXIT ;若是,退出程序 MOV DX, P8255B ;B口送LED状态 OUT DX, AL JMP MAINEXIT: MOV AH,4CH INT 21HCODE ENDS END START2.
P8255A EQU 0640HP8255B EQU 0642HP8255C EQU 0644HP8255MODE EQU 0646H
CODE SEGMENT ASSUME CS:CODESTART: MOV DX, P8255MODE MOV AL, 90H ;初始化8255:A口输入,B口输出 OUT DX, ALMAIN: MOV DX, P8255A ;A口读开关状态 IN AL, DX CMP AL, 0FFH ;判断是否开关全部为高 JZ EXIT ;若是,退出程序 AND AL, 01H ;取低位 CMP AL, 01H JNZ L1 ;若K0未打开,点亮低四位 MOV AL, 0F0H ;否则,点亮高四位 JMP OUTPUTL1: MOV AL, 0FH ;点亮低四位OUTPUT: MOV DX, P8255B ;B口送LED状态 OUT DX, AL JMP MAINEXIT: MOV AH,4CH INT 21HCODE ENDS END START3.
P8255A EQU 0640HP8255B EQU 0642HP8255C EQU 0644HP8255MODE EQU 0646H
CODE SEGMENT ASSUME CS:CODESTART: MOV DX, P8255MODE MOV AL, 90H ;初始化8255:A口输入,B口输出 OUT DX, ALMAIN: MOV DX, P8255A ;A口读开关状态 IN AL, DX CMP AL, 0FFH ;判断是否开关全部为高 JZ EXIT ;若是,退出程序 AND AL, 03H ;取低2位 CMP AL, 0H JNZ L1 ;非00 MOV AL, 00H ;00:全灭 JMP OUTPUTL1: CMP AL, 1H JNZ L2 ;非01 MOV AL, 0FH ;01:点亮低四位 JMP OUTPUTL2: CMP AL, 2H JNZ L3 ;非11 MOV AL, 0F0H ;01:点亮高四位 JMP OUTPUTL2: MOV AL, 0FFH ;11:全部点亮OUTPUT: MOV DX, P8255B ;B口送LED状态 OUT DX, AL JMP MAINEXIT: MOV AH,4CH INT 21HCODE ENDS END START另一种实现方法:
P8255A EQU 0640HP8255B EQU 0642HP8255C EQU 0644HP8255MODE EQU 0646H
CODE SEGMENT ASSUME CS:CODESTART: MOV DX, P8255MODE MOV AL, 90H ;初始化8255:A口输入,B口输出 OUT DX, ALMAIN: MOV BL, 00H MOV DX, P8255A ;A口读开关状态 IN AL, DX CMP AL, 0FFH ;判断是否开关全部为高 JZ EXIT ;若是,退出程序 PUSH AX ;保存状态LOWL: AND AL, 01H ;检测K0 JZ HIGHL ;K0=0 OR BL, 0FH ;点亮低4位HIGHL: AND AL, 02H ;检测K1 JZ OUTPUT ;K1=0 OR BL, 0F0H ;点亮高4位OUTPUT: MOV AL, BL MOV DX, P8255B ;B口送LED状态 OUT DX, AL JMP MAINEXIT: MOV AH,4CH INT 21HCODE ENDS END START文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
实验一 8255并行接口实验
https://mathison2020.github.io/posts/2022-11-11-mcexp1/ 相关文章 智能推荐
1
实验八 数码管显示实验
微机实验 实验八 数码管显示实验1. 实验内容基础部分 用一片 8255 接口芯片的 A 口和 B 口分别连接数码管段码接口(ABCDEFG、Dp)和位码接口(X1~X6)。编写程序实现以下两种显示方式: 使六位数码管从右到左逐位显示移动的数字 0 到 9,即数字 0 从最右端移动到最左端,数字 1 从最右端移动到最左端,….,
2
实验四 A/D转换实验
微机实验 实验四 A/D转换实验1. 实验内容基础+扩展部分 编写实验程序,将 ADC 单元中提供的 0V~5V 信号源作为 ADC0809 的模拟输入量,进行 A/D 转换,转换结果通过 8 位 LED 进行显示。分别使用延时等待、查询和中断三种方式实现本实验的实验内容。 2. 实验原理 延时方式:又名等待方式、定时采样方式,
3
实验五 D/A转换实验
微机实验 实验五 D/A转换实验1. 实验内容基础部分 编写程序,产生周期的锯齿波、矩形波、三角波和阶梯波,经 D/A 转换,显示在软件模拟示波器上。要求:每种波形的周期数、阶梯波的阶梯数可通过参数设置。 扩展部分 在软件模拟示波器上显示锯齿波、矩形波、三角波和阶梯波,并使用单脉冲开关KK1在四种波形间进行切换。 2. 实验原理
4
实验二 存储器扩展实验
微机实验 实验二 存储器扩展实验1. 实验内容基础部分 编写实验程序,将 0000H~000FH(16个十六位的数据)写入SRAM从 8000:0000H 起始的一段空间中,并通过系统命令查看该存储空间,检查写入数据是否正确。 要求:分别按规则字、非规则字和字节三种方式将数据写入存储器,并观察实验结果。 拓展部分 编写程序实现如
5
实验三 8259中断优先级实验
微机实验 实验三 8259中断优先级实验1. 实验内容基础部分 编写中断实验程序: 主程序通过 8255 的 PB 口输出 0FFH,使数据灯 D0~D7 全亮; IR6中断服务程序使绿灯亮(红灯灭),延时一段时间后返回主程序; IR7中断服务程序使红灯亮(绿灯灭),延时一段时间后返回主程序。 要求: 按单脉冲开关 KK1:响应
随机文章 随机推荐