微机8255并行接口实验实验六

合集下载

微机原理8255实验报告

微机原理8255实验报告
三、 实验分析:外设(开关 k、LED)为简单外设 随时准备好,故可采用 无 条件传送方式,通过之前学习的 8255 知识,将程序编写完成。
四、 实验过程中遇到的问题:在第一次编写完成后,我们调试失败了,通 过检查,发现程序有一个指令编写错误,纠正后,程序仍然编译失败, 连续好几次都没有成功,后来通过向同学请教,发现我们在改正之前没 有进行复位,导致错误没有纠正,按照正确的过程改正后,终于调试成 功了,我们看到随着电脑屏幕上的程序一条条执行,LED 灯准确地将开 关的状态输出,实验终于成功了。
微机原理与接口技术实验报告
姓名
学号
专业年级
实验题目
8255 并行接口实验
实验目的 实验内容
通过实验了解 8255 的工作原理,并在实验中熟悉 8255 的初始化编程,巩固学
习的理论知识,将理论转化为实践。
实验题 1 编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。即当 开关 ki 置于 L 时,对应发光二极管 LEDi 点亮;置于 H 时熄灭
实验题 2 编写程序,使得当开关 k1 置于 L 时,LED1~LED2 皆亮; k1 置于 H 时, LED1~LED2 皆灭
实验分析
一、首先按照以下的实验连线将电路连接好: CS8255 CS0 PA0~PA1 开关 K1~K2 PB0~PB1 发光二极管 LED1~LED2
二、(打开实验箱电源)PC 机运行 8086 调试软件 TECH86---串口 COM3 或 COM4—PREST 键 编辑程序,单步运行,调试程序 调试通过后,全速运行程序,观看实验结果
start
实验二:
assume cs:code
code segment public
org

8255并行口实验

8255并行口实验
以前在单片机基础实验中做过LED显示实验和数码管显示实验,所以这两个实验比较好做。在第二个实验中,分别置全开和全关时想用这些代码实现
JZ NEXT
MOV AL,00H
NEXT:MOVAL,0FFH

结果无论开关是否闭合,全都不亮,后来发现只需在中间加上个跳转语句就行了。
实验程序如下
附录
实验题1:
ASSUME CS:CODE学号
113200880200057
专业年级
电子信息工程2008级
实验题目
8255并行口实验
实验目的
1、掌握可编程并行接口8255的初始化及其应用
2、掌握汇编语言源程序的设计方法
实验内容
实验内容1:8255A的A口作为输入口,与逻辑电平开关K1~K8相连。8255A的B口作为输出口,与发光二极管LED1~LED8相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。即当开关ki置于L时,对应发光二极管LEDi点亮;置于H时熄灭。
TEST AL,01H;测试PA0的状态
JZ NEXT;PA0为0则跳转
MOV AL,00H;否则全亮
JMP LOOP2
NEXT:MOV AL,0FFH;置全灭
LOOP2:MOV DX,04A2H
OUT DX,AL;输出,控制灯的开关
JMP LOOP1
CODE ENDS
END START
CODE SEGMENT PUBLIC
ORG 100H
START:MOVAL,10010000B
MOV DX,04A6H
OUT DX,AL;送出8255的控制字
LOOP1:MOV DX,04A0H
IN AL,DX;读入A口的状态

06实验六:8255并行口实验

06实验六:8255并行口实验

INC
JNZ
AL
INOUT ;若无,则继续自A口输入,B口输出

化。(当逻辑电平开关某位置于 L 时,对应的发光二极管点
亮;置于 H 时,对应的发光二极管熄灭。) 4、记录实验现象和相关数据。
设置8255为A口输入,
B口输出(90H)。
MOV
AH,0BH ;判断是否有按键
INT
INC JNZ
21H
AL INOUT ;若无,继续A口输入,B口输出
IOPORT EQU IO8255A EQU
START: MOV MOV OUT INOUT: MOV
DX,IO8255CON AL,90H DX,AL DX,IO8255A
;设置8255为A口输入,B口输出
;从A口输入一数据
IN
MOV OUT MOV INT
AL,DX
DX,IO8255B DX,AL AH,0BH 21H ;判断是否有按键 ;从B口输出刚才自A口所输入的数据
制用。本实验主要用到A 口输入和B 口输出,实验中,8255A 工作于基本
输入输出方式(方式 0)。
实验步骤:
1、实验接线: CS0 — 8255CS,PA0~PA7 — 平推开关的输出 K1~K8, PB0~PB7 — 发光二极管的 输入 LED1~LED8。 2、编写相应程序完成软件部分。 3、调试通过后,运行程序时拨动开关,观察发光二极管的变
实验六:8255并行口实验
实验目的要求:
1、了解并行接口芯片8255A的基本特点和使用。
2、掌握控制8255A并行口的基本编程方法。
实验内容:
8255A的A口作为输入口,与逻辑电平开关相连。8255A 的B口作为 输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发 光二极管上显示出来。 8255A 是比较常用的一种并行接口芯片,有三组 8 位的输入输出端 口,通常将 A 端口作为输入用,B 端口作为输出用,C 端口作为辅助控

微机实验 可编程并行接口8255

微机实验  可编程并行接口8255

微机原理实验报告实验题目:可编程并行接口8255一、实验目的1、掌握8255的基本输入输出和PC端口位控的工作方式及应用编程。

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

二、实验知识回顾8255控制字1、控制方式2、C端口置位复位控制字三、实验内容1、 8255流水灯显示,首先用逻辑电平开关预置一个数字,从A口读入,写入01H到C端口上,左移一次在进行输出,A口读入数据作为左移次数,这样循环下去,从而实现流水灯的显示。

2、用PC端口位控制法控制LED灯,依次点亮LED灯。

四、实验器材微机原理实验箱1个电脑(带TPC-USB软件)1台插线若干五、实现过程1、8255流水灯显示(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,90h ;方式0A口输入C口输出out dx,al ;mov dx,io8255a ;A口的地址存入dxin al,dx ;从dx也就是A口读入数据mov la,al ;读入的数据暂存在la变量mov dx,io8255c ;C口的地址存入dxmov al,01h ;将寄存器最低位置零out dx,al ;置位后的值输入给dx,也就是C口mov lb,al ;置位后的值暂存于变量lbloop1:call delaymov al,la ;将A口数据写入CX用以计数mov ch,00hmov cl,laloop2:call delaymov al,lbrol al,1 ;在寄存器内进行位移操作mov lb,al ;将操作后的结果重新写入变量al,为后面调用做准备mov dx,io8255c ;dx代表C口的地址out dx,al ;将al中存储的值写入dx,即C口mov ah,1 ;选择dos的模式为从键盘读取数据int 16h ;进入中断jnz quit ;ZF为0则跳到quitdec cx ;计数器减一jnz loop2 ;若cx!=0,跳到loop2quit:mov ax,4c00h ;结束程序并退出int 21hdelay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start2、位控设置C口输出点亮LED(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,00001111b ;位控设置C口最高位为1out dx,almov cx,7 ;剩余未点亮灯数为7 loop1:call delaydec aldec alout dx,aldec cxjnz loop1delay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start(3)实验结果图六、小结通过本次试验,我进一步了解了8255的可编程性,以及如何正确的通过程序控制8255,也更加熟悉了8255 C 端口的位控输出。

微机原理实验 可编程并行接口 8255 实验

微机原理实验 可编程并行接口 8255 实验
(4)读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。
2、8255A的工作方式:
方式0—基本输入输出方式;方式1—选通输入输出方式;方式2—双向选通输入输出方式
3、8255A的状态字:
图1可编程并行接口8255电路
五、实验电路及连线
1、流水灯实验:
(1)实验连线
该模块的WR、RD分别连到MCU主模块的WR、RD。
该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到MCU主模块的数据(AD0~AD7)、地址线(A0~A7)。
8255模块选通线CS连到MCU主模块的地址A15。
8255的PA0~PA7连到发光二极管的L0~L7。
(2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。C端口包含一个8位数据输出锁存器及缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。
(3)A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部
(2) I/O输入输出实验:利用8255的A口读取开关状态,8255的B口把状态送发光二极管显示
四、实验原理
1、8255A的内部结构:
(1)数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。输入输的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。

可编程并行IO接口8255实验

可编程并行IO接口8255实验

实验六可编程并行I/O接口8255实验【知识点训练】8255有 1 个控制口和3个8 位数据口(PA口、PB口和PC口),控制口用于写入控制命令,控制各数据口的工作方式和数据传送方向;数据口用于外设与CPU 进行数据通信,三个I/O口通过控制口设置为输入口或输出口。

PA口和PB 口的8位不可独立使用,PC口可分为两个独立的4位接口。

8255有 2 种工作方式,其中方式0 为基本输入/输出方式,在这种工作方式下,三个端口作为输出口时均具有锁存功能,适用于无条件传送数据的场合。

8255的地址线A0和A1通过锁存器与单片机的A0 、A1 相连,用于决定4个I/O端口地址,当A1A0分别取值00、01、10、11时,对应选择PA 口、PB 口、PC 口和控制口。

8255的使能信号经地址译码器与单片机高位地址线相连,用于选中8255接口。

使用可编程型I/O芯片时要先写控制字,且要写入控制口,数据输入输出使用PA,PB 口。

【实验内容】8255的PA口接有8个拨动开关,PB口接有8个发光二极管,PA口方式0输入,PB 口方式0输出。

编程实现:当开关全为“1”或全为“0”时,8个发光二极管左循环依次点亮或右循环依次点亮;当开关非全“1”或非全“0”时,则将开关状态显示在发光二极管上。

【实验连线】将8255的PA口(PA0 ~ PA7)接至8个开关,PB口(PB0-PB7)接至8个发光二极管。

【实验程序】#include <reg51.h>#include <absacc.h>#define PA8255 XBYTE[0X2000]#define PB8255 XBYTE[0X2001]#define CON8255 XBYTE[0X2003]#define uchar unsigned char#define uint unsigned intvoid delay(uint xms){uint i,j;for ( i=xms; i>0; i-- )for ( j=110; j>0; j-- );}void main(){uchar Switch, i; // Switch为开关变量,i为循环变量CON8255=0X90; //写8255控制字do{Switch=PA8255;if(Switch==0xff) //读入开关状态//如果开关为全“1”{for( i=0; i<8; i++){PB8255=~(0x01<<i); //8个发光二极管左循环依次点亮delay(500);}}else if(Switch==0x00) //如果开关为全“0”{for( i=0; i<8; i++){PB8255=~(0x80>>i); //8个发光二极管右循环依次点亮delay(500);}}elsePB8255=Switch; //发光二极管显示对应开关状态}while(1);}。

实验六---8255并行输入输出

实验六---8255并行输入输出

实验六---8255并行输入输出一、实验目的1.了解并熟悉8255并行输入输出控制器的功能和工作原理;二、实验原理1.8255芯片介绍8255是一种常用的并行输入/输出接口芯片,可用于微处理机系统中的输入/输出控制输出,根据中文名可以看出,8255有三种工作方式即口A、口B和控制口。

8255所有的输入/输出都是双向的,它可以通过输入输出口的命令字来在不同的模式下工作。

在输出模式下,82555可以通过端口A、B控制外围设备的输出操作,在输入模式下,8255可以通过端口A、B实现对外围设备的输入操作。

控制口是用来控制8255写作模式或读作状态字,并对端口进行初始化操作。

8255在不同的模式下有不同的编程方法和操作方法,因此需要在实际应用中选择不同的工作模式。

8255有三个I/O端口A、B、C,每个端口都有8位。

这里解释一下控制端口的意义,地址为0B4H的控制端口是连续读或写8255内部状态寄存器的地址,而后面的一个读或写就表示读或写操作的类型,如果该端口被写入了“控制字”则8255按照控制字工作,否则会在该端口读出输入状态字。

在读或写操作的时候向控制端口写入的二进制数在图3-8中给出了。

表3-2:8255访问口定义地址口分类名称端口A0B0H输出Port A输入ControlCout端口Cin端口2.8255的编程方式方式0:即I/O挂接方式,这种方式下A、B、C三个端口为并行I/O口时,其与MCU的接线和编程方式与单片机内部I/O端口的连接和编程方式相同。

方式1:即输入输出口不一样。

在这种片内Ram中的地址空间0~7地址单元内写入相应的端口或方式的控制字后,该8255工作在相应的方式。

即:方式0:读出的是8位端口A的状态,写操作为将数据送到端口A;方式2:是把C口分配为两部分——高4位为输入,低4位为输出,它与方式1类似。

端口C的所有状态和很多控制功能都由C口寄存器存储。

方式2:“端口C字符型输入输出方式”,在这种方式下,端口C的8个位分成两部分,4个位作为输入的,4个位作为输出的。

并行接口8255实验报告

并行接口8255实验报告

并行接口8255实验一、实验目的1.掌握可编程并行接口电路8255的工作原理及初始化方法2.掌握8255在实际应用中的硬件连接及编程应用二、实验要求根据实验室现有条件,针对实验任务,设计实验方案并进行实现三、实验内容通过使用8255,8253实现一个倒计时设备,具体的方法是,用户逐个打开开关,然后8255定时读取开关状态并输出给二极管,当所有灯都亮起时,输出一个高电平给Gate0,对8253而言,要求每1s查看一次用户是否摁下了所有开关,一旦是这样蜂鸣器就会响起来,然后给8253送一个锁存命令,查看计数器1和计数器0当前的计数值,锁存两个计数值,便于后期的计算和数据处理。

四、实验线路图其中,8255的各个端口分别是:F0H,F2H,F4H,F6H 8253的各个端口分别是:F8H,F9H,FAH,FBH 五、实验程序清单CSEG SEGMENTASSUME CS:CSEGSTART:;初始化8255和8253MOV DX,F6HMOV AL,1001000BOUT DX,ALMOV DX,FBHMOV AL,01110110BOUT DX,ALMOV AL,00110110B;选择8253计数器1MOV DX,F8HMOV AL,0OUT DX,ALMOV AL,10OUT DX,AL;选择8253计数器0MOV DX,FGHMOV AL,0OUT DX,ALMOV AL,10MOV CX,2000H;用CX延时,读取开关状态 NEXT:OUT DX,ALMOV DX,F2HIN DX,AL;输出开关状态,此时亮起灯,如果灯全亮起,蜂鸣器响起MOV DX,F4HOUT DX,ALLOOP NEXT;锁存两个计数器的计数值MOV AL,00110110BMOV DX,F8HOUT DX,ALMOV AL,01110110BMOV DX,F9HOUT DX,ALCSEG ENDSEND START六、实验总结及体会1.实验总结:本次实验中我设计了8086连接8253和8255的相关电路,并且与输出设备相连接,也重新复习了数电的知识,通过学习微机原理和汇编语言这门接近底层的语言我意识到代码与底层的交互是怎样实现的,也有利于我学习其他的高级语言。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

深圳大学实验报告课程名称:微型计算机技术
实验项目名称:8255并行接口实验
学院,专业:计算机科学与技术
指导教师:骆剑平
报告人:学号:班级:计科2班
同组人:无
实验时间:2014年6月11日
实验报告提交时间:2014年6月16日
教务处制
实验目的与要求:
实验目的:
1. 学习并掌握8255 的工作方式及其应用;
2. 掌握8255 典型应用电路的接法。

实验设备
PC机一台,TD-PITE 实验装置一套。

实验方法、步骤:
实验内容:
1. 基本输入输出实验。

编写程序,使8255 的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。

要求只要开关拨动,数据灯的显示就发生相应改变。

2. 流水灯显示实验。

编写程序,使8255 的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。

实验原理
并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。

CPU和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。

8255可编程外围接口芯片是Intel公司生产的通用并行I/O 接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。

8255 的内部结构及引脚如图2-6-1 所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2-6-2所示。

实验步骤:
1. 基本输入输出实验
本实验使8255 端口A工作在方式0 并作为输入口,端口B工作在方式0 并作为输出口。

用一组开关信号接入端口A,端口B 输出线接至一组数据灯上,然后通过对8255 芯片编程来
实现输入输出功能。

具体实验步骤如下述:
(1)实验接线图如图2-6-3所示,按图连接实验线路图;
(2)编写实验程序,经编译、连接无误后装入系统;
(3)运行程序,改变拨动开关,同时观察LED 显示,验证程序功能。

实验程序清单
SSTACK SEGMENT STACK DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT ASSUME CS:CODE START: MOV DX, 0646H MOV AL, 90H
OUT DX, AL
AA1: MOV DX, 0640H IN AL, DX
CALL DELAY
MOV DX, 0642H
OUT DX, AL
JMP AA1
DELAY: PUSH CX
MOV CX, 0F00H
AA2: PUSH AX
POP AX
LOOP AA2
POP CX
RET
CODE ENDS
END START
实验过程截图:
实验箱接线图如下:
代码截图:
实验效果图:
流水灯显示实验
使8255的A口和B口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。

实验接线图如图2-6-5
所示。

实验步骤如下所述:
(1)按图2-6-5连接实验线路图;
(2)编写实验程序,经编译、链接无误后装入系统;
(3)运行程序,观察LED 灯的显示,验证程序功能;
(4)自己改变流水灯的方式,编写程序。

实验程序清单
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX, 0646H
MOV AL, 80H
OUT DX, AL
MOV BX, 8001H
AA1: MOV DX, 0640H
MOV AL, BH
OUT DX, AL
ROR BH, 1
MOV DX, 0642H
MOV AL, BL
OUT DX, AL
ROL BL, 1
CALL DELAY
CALL DELAY
JMP AA1
DELAY: PUSH CX
MOV CX, 0F000H AA2: PUSH AX POP AX
LOOP AA2
POP CX
RET
CODE ENDS
END START
实验接线图如下:实验代码截图:
实验效果截图如下:
实验结论:
1.基本输入输出实验
本实验使8255 端口A工作在方式0 并作为输入口,端口B工作在方式0 并作为输出口。

用一组开关信号接入端口A,端口B 输出线接至一组数据灯上,然后通过对8255 芯片编程实现了输入输出功能。

2.流水灯显示实验
使8255的A口和B口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。

指导教师批阅意见:
成绩评定:
指导教师签字:
年月日
备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。

2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。

相关文档
最新文档