8255并行接口实验

  • 实验目的:

1.学习并掌握8255的工作方式及其应用。

2.掌握8255典型应用电路的接法。

二、实验环境:

PC机一台,TD-PITD实验装置一套。

三、实验内容:

  1. 基本输入输出实验。编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。
  2. 流水灯显示实验。编写程序,使8255的A口和B口均为输出,数据灯D7~

D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。

实验步骤

1. 基本输入输出实验

本实验使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下述:

  1. 实验接线图如图3-1-4所示,按图连接实验线路图。
  2. 根据实验内容,编写实验程序,编译、链接。

运行程序,改变拨动开关,同时观察LED灯的显示,验证程序功能。

实验程序清单(T8255-1.ASM)

IOY0 EQU 0C000H               ;8255的CS引脚连接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的控制寄存器地址 
CODE SEGMENT                     ;定义代码段 
    ASSUME CS:CODE 
START: MOV DX,MY8255_MODE       ;8255控制端口地址为3006H 
    MOV AL,82H  ;设置8255方式控制字,A、B口工作方式0,A口输出,B口输入 
    OUT DX,AL 
LOOP1: MOV DX,MY8255_B            ;读B口发出的起始数据,B口输入 
    IN AL,DX 
    MOV DX,MY8255_A               ;写A口发出的起始数据,A口输出 
    OUT DX,AL 
    MOV AH,1                        ;判断是否有按键按下 
    INT 16H 
    JZ LOOP1                        ;无按键则跳回继续循环,有则退出 
QUIT: MOV AX,4C00H                 ;结束程序退出 
    INT 21H 
CODE ENDS 
    END START 

2. 流水灯显示实验

使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,

 

循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图3-1-5所示。实验步骤如下所述: (1) 实验接线图如图3-1-5所示,按图连接实验线路图。

  1. 根据实验内容,编写实验程序,编译、链接。
  2. 运行程序,观察LED灯的显示,验证程序功能。

自己改变流水灯的方式,编写程序。

实验程序清单(T8255-2.ASM)

IOY0 EQU 0C000H               ;8255的CS引脚连接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的控制寄存器地址 
STACK1 SEGMENT STACK         ;定义堆栈段 
    DW 256 DUP(?) 
STACK1 ENDS 
DATA SEGMENT                   ;定义数据段 LA DB ? 
LB DB ? 
DATA ENDS 
CODE SEGMENT                  ;定义代码段 
    ASSUME CS:CODE,DS:DATA 
START: MOV AX,DATA 
    MOV DS,AX 
    MOV DX,MY8255_MODE       ;8255控制端口地址为3006H 
    MOV AL,80H    ;设置8255方式控制字,A、B口工作方式0,A、B口输出 
    OUT DX,AL 
    MOV DX,MY8255_A           ;写A口发出的起始数据 
    MOV AL,80H 
    OUT DX,AL                   ;点亮数据灯D7 
    MOV LA,AL 
    MOV DX,MY8255_B           ;写B口发出的起始数据 
    MOV AL,01H 
    OUT DX,AL                   ;点亮数据灯D8 
    MOV LB,AL 
LOOP1: 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 
    MOV AH,1                    ;判断是否有按键按下 
    INT 16H 
    JZ LOOP1                    ;无按键则跳回继续循环,有则退出 
DALLY PROC NEAR               ;软件延时子程序 
    PUSH CX 
    PUSH AX 
    MOV CX,0FFFH 
D1: MOV AX,0FFFFH 
D2: DEC AX 
    JNZ D2 
    LOOP D1 
    POP AX 
    POP CX 
    RET 
DALLY ENDP 
CODE ENDS 
    END START 

3. 控制8段数码管显示实验

由8255的A口输出控制一个8段LED数码管,由B口PB3~PB0接入4位开关,

编写一段程序,用数码管显示开关状态。从题目可以得到:A口作为方式0输出,B口低端用作输入,C口没有使用,可以做为输出。则方式控制字为: 10000 010 B。开关状态:4位——16种,用LED数码管显示:0~9,A~F十六进制数显示。

实验接线图如图3-1-6所示。实验步骤如下所述: (1) 实验接线图如图3-1-6所示,按图连接实验线路图。

  1. 根据实验内容,编写实验程序,编译、链接。

运行程序,观察LED数码管的显示,验证程序功能。

实验程序清单(T8255-3.ASM)

IOY0 EQU 0C000H              ;8255的CS引脚连接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                  ;定义LED段码表 
TAB_LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H 
DATA ENDS 
CODE SEGMENT 
ASSUME DS:DATA, CS:CODE 
START: MOV AX,DATA 
MOV DS,AX 
MOV AL,82H          ;1000 0010  A端口方式0输出,B方式0输入 
MOV DX,MY8255_MODE 
OUT DX,AL 
LOOP1: MOV DX,MY8255_B 
IN AL,DX                        ;读入开关状态 
AND AL,0FH                     ;屏蔽高四位 
MOV BX,OFFSET TAB_LED       ;取LED段码表首地址 
XLAT                           ;查出AL对应的LED段控制码 
MOV DX,MY8255_A              ;8255的A端口是LED段码输出口 
OUT DX,AL                     ;输出段控制信号 
CALL DALLY 
JZ LOOP1 
DALLY PROC NEAR                    ;软件延时子程序   MOV CX,0070H 
D1: MOV AX,000FH 
D2: DEC AX   JNZ D2 
  LOOP D1 
  RET 
DALLY ENDP 
CODE ENDS   END START 

 

全部评论

相关推荐

行云流水1971:这份实习简历的优化建议: 结构清晰化:拆分 “校园经历”“实习经历” 板块(当前内容混杂),按 “实习→校园→技能” 逻辑排版,求职意向明确为具体岗位(如 “市场 / 运营实习生”)。 经历具象化:现有描述偏流程,需补充 “动作 + 数据”,比如校园活动 “负责宣传” 可加 “运营公众号发布 5 篇推文,阅读量超 2000+,带动 300 + 人参与”;实习内容补充 “协助完成 XX 任务,效率提升 X%”。 岗位匹配度:锚定目标岗位能力,比如申请运营岗,突出 “内容编辑、活动执行” 相关动作;申请市场岗,强化 “资源对接、数据统计” 细节。 信息精简:删减冗余表述(如重复的 “负责”),用短句分点,比如 “策划校园招聘会:联系 10 + 企业,组织 200 + 学生参与,到场率达 85%”。 技能落地:将 “Office、PS” 绑定经历,比如 “用 Excel 整理活动数据,输出 3 份分析表;用 PS 设计 2 张活动海报”,避免技能单独罗列。 优化后需强化 “经历 - 能力 - 岗位需求” 的关联,让实习 / 校园经历的价值更直观。 若需要进一步优化服务,私信
实习,投递多份简历没人回...
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务