【汇编与接口】并行接口8255芯片实验
文章目录
- 题目要求
- 连线图
- 流程图
- 代码及注释
题目要求
本实验要实现:用按键并通过8255并行接口来控制数码管的显示。具体如下:
(1)用8255的PA口控制数码管的段码。
(2)用8255的PC口控制数码管的位码。
(3)初始状态时,在最右侧数码管上显示0,自此,可用按键控制数码管的后续显示,具体为:
- 按一下‘l’键,显示数字的数码管向左移一位。若已到了最左端,则跳到最右端继续显示。
- 按一下‘r’键,显示数字的数码管向右移一位。若已到了最右端,则跳到最左端继续显示。
- 按一下‘u’键,显示数字的数码管不动,但其中显示的数字加1。若加到10,则设为0。
- 按一下‘d’键,显示数字的数码管不动,但其中显示的数字减1。若减到-1,则设为9。
- 按一下‘e’键,显示数字的数码管灭掉,演示结束。
- 按任何其他的键,数码管无反应。
连线图
流程图
代码及注释
DATA SEGMENTIO8255_A EQU 288HIO8255_C EQU 28AHIO8255_K EQU 28BHLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;保存各个数字的数码管亮的十六进制数BUFFER DB 0 ;BUFFER存储当前输出的数字BZ DW ? ;BZ存储位码CHAR DB ? ;CHAR存储当前输入的字母L/R/U/D/E
DATA ENDS
CODE SEGMENTASSUME CS:CODE,DS:DATA
START:MOV AX,DATAMOV DS,AXMOV DX,IO8255_K ;K命令口MOV AL,80H ;命令口写入80H,即10000000B,意味方式0,PA,PB,PC口均为输出口OUT DX,ALMOV SI,OFFSET LED ;SI指向LED,方便找到要显示的数字MOV BL,BUFFERMOV BH,01MOV BYTE PTR BZ,BHMOV BH,0ADD SI,BXMOV AL,BYTE PTR [SI] ;AL中存入0,也即将从PA口输出数字0的段码MOV DX,IO8255_A ;从PA口输出数字0段码,显示数字为0OUT DX,ALMOV AL,BYTE PTR BZMOV DX,IO8255_C ;从PC口输出位码,最后一位将用于显示OUT DX,AL
LOOPALL:
MOV SI,OFFSET LED
MOV AH,01INT 21HMOV CHAR,AL ;从键盘输入一个字母,将其存入CHARMOV BL,108CMP CHAR,BL ;与L的ASCII码比较,查看是否为LJNZ NEXT1CALL LEFT ;是L则调用LEFT子程序,否则进行下一个比较
NEXT1:MOV BL,114CMP CHAR,BL ;与R的ASCII码比较,查看是否为RJNZ NEXT2CALL RIGHT ;是R则调用RIGHT子程序,否则进行下一个比较
NEXT2:MOV BL,117CMP CHAR,BL ;与U的ASCII码比较,查看是否为UJNZ NEXT3CALL UP ;是U则调用UP子程序,否则进行下一个比较
NEXT3:MOV BL,100CMP CHAR,BL ;与D的ASCII码比较,查看是否为DJNZ NEXT4CALL DOWN ;是D则调用DOWN子程序,否则进行下一个比较
NEXT4:MOV BL,101CMP CHAR,BL ;与E的ASCII码比较,查看是否为EJNZ LOOPALLJMP EXIT ;是E则跳转到EXIT退出,否则回到循环开头
LEFT:MOV BL,BYTE PTR BZROL BL,1 ;位码循环左移一位,使用ROL保证到最左端可以回到最右端MOV BYTE PTR BZ,BLMOV SI,OFFSET LEDMOV BL,BUFFER ;BUFFER中数字直接使用MOV BH,0ADD SI,BXMOV AL,BYTE PTR [SI]MOV DX,IO8255_A ;PA口输出段码OUT DX,ALMOV AL,BYTE PTR BZMOV DX,IO8255_C ;PC口输出位码OUT DX,ALRETRIGHT:MOV BL,BYTE PTR BZROR BL,1 ;位码循环右移一位,使用ROR保证到最右端可以回到最左端MOV BYTE PTR BZ,BLMOV SI,OFFSET LEDMOV BL,BUFFERMOV BH,0ADD SI,BXMOV AL,BYTE PTR [SI]MOV DX,IO8255_AOUT DX,ALMOV AL,BYTE PTR BZMOV DX,IO8255_COUT DX,ALRETUP:MOV BL,BUFFERINC BL ;当前数字自增1MOV BH,0MOV DL,9CMP BL,DL ;如果数字加一后大于9,则将数字置零JNA NU ;否则跳到NUMOV BL,0
NU:MOV BUFFER,BL ;将新的数字存入BUFFERMOV SI,OFFSET LEDADD SI,BXMOV AL,BYTE PTR [SI] MOV DX,IO8255_AOUT DX,ALMOV AL,BYTE PTR BZMOV DX,IO8255_COUT DX,ALRETDOWN:MOV BL,BUFFERSUB BL,1 ;当前数字自减1MOV BH,0 ;若自减后小于0则将数字置9JNC ND ;否则跳到NDMOV BL,9
ND:MOV BUFFER,BL ;将新的数字存入BUFFERMOV SI,OFFSET LEDADD SI,BXMOV AL,BYTE PTR [SI]MOV DX,IO8255_AOUT DX,ALMOV AL,BYTE PTR BZMOV DX,IO8255_COUT DX,ALRETEXIT:MOV DX,IO8255_A ;数码管熄灭MOV AL,0OUT DX,ALMOV AX,4C00H ;程序中断INT 21H
CODE ENDSEND START
【汇编与接口】并行接口8255芯片实验相关推荐
- 可编程并行接口8255(实验一)
实验目的 通过实验,掌握8255工作于方式0以及设置C口为输入口,B口为输出口的方法. 实验原理 待添加 实验步骤 待添加 求控制字 A端口无关可任选 ⇒ D4D_4D4 = 0 B端口作为输出 ⇒ ...
- 【接口技术】实验五:可编程并行接口8255
文章目录 一. 实验目的 二. 实验内容 实验5-1 8255并行输入/输出实验 实验5-2 并行接口键盘反转扫描实验 一. 实验目的 了解8255芯片结构及编程方法. 了解8255输入/输出实验方法 ...
- 微型计算机系统实验总结(学习性实验:IO地址译码,可编程并行接口8255,交通灯控制实验 + 自主设计实验:汽车信号灯控制系统,电风扇控制器,洗衣机控制系统,霓虹灯,电梯控制系统)
实验配套软件: https://download.csdn.net/download/qq_39932172/11221584 实验指导用书: 教师版: https://download.csdn.n ...
- 微机实验五 —— 8255A接口电路应用设计实验(基于Proteus工具)
微机实验五 -- 8255A接口电路应用设计实验(基于Proteus工具) 复习 74LS273 74LS32 7411 8255A 一.实验题目 二.实验代码 复习 in 是读端口-(I/O) mo ...
- FPGA实现的SPI协议(二)----基于SPI接口的FLASH芯片M25P16的使用
写在前面 SPI协议系列文章: FPGA实现的SPI协议(一)----SPI驱动 FPGA实现的SPI协议(二)----基于SPI接口的FLASH芯片M25P16的使用 在上篇文章,简要介绍了SPI协 ...
- 8086汇编学习小记-王爽汇编语言实验12
8086汇编学习小记-王爽汇编语言实验12 0号中断处理程序,开始安装在0000:0200处的程序最后用死循环导致显示不出'divided error',改成直接退出就正常显示了.注意修改ss,sp之 ...
- 南邮微型计算机实验,南邮 微机原理 微型计算机与接口技术 微机原理实验.doc...
南邮 微机原理 微型计算机与接口技术 微机原理实验.doc (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 ;FILEMENT:E ...
- 计算机微机原理及接口技术实训室,《微机原理与接口技术》课程实验报告.doc...
<微机原理与接口技术>课程实验报告 实验一基本操作 一.实验目的 ? 1.熟悉Netlab MCS-51单片机实验系统的设置和使用方法 2.掌握基本MCS-51软件的编写.修改和编译的方法 ...
- 8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8。
8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8. 程序: #include<reg51.h> #include<absacc.h> #def ...
- USB-C接口 OTG协议芯片 支持同时传输数据充电
TYPE-C接口 OTG协议芯片 支持同时传输数据充电.乐得瑞科技推出LDR6028A 针对 USB Type-C 标准中的 Bridge 设备而开发的 USB-C DRP 接口 USB PD 通信芯 ...
最新文章
- Operation Queues并发编程
- 谈谈UI架构设计的演化
- Qt5应用改变窗口大小时出现黑影
- QT实现绘制3D基本形状
- 今时今日,C还适合当下之所需么?
- jrebel(破解版)+eclipse +jetty/tomcat 配置,实现热部署
- POJ 1185 炮兵阵地(状压dp)
- C语言书籍推荐从入门到进阶再到封神全套(2021年整理)
- iOS知识点,iOS开发笔记
- 元宇宙与泛娱乐的邂逅:次世代第一CP养成记
- ADO.NET 概述
- 芜湖计算机专业学校录取分数线,芜湖市各类高中2018年中考录取分数线是多少...
- 提高 Python 代码可读性的 5 个基本技巧
- 数据分析师如何做数据分析汇报
- 如何实现VMware下Ubuntu和Windows之间的复制粘贴?
- Python二进制数据处理
- PHP正则匹配全中文
- 【计算机视觉处理5】阈值处理
- 当今计算机科学发展趋势,探索计算机科学与技术的发展趋势
- cpt类型文件(.cpt)