微机原理-可编程并行接口实验--利用8255A芯片设计接口电路并编程实现
实验七 8255A 并行口实验

实验七8255A 并行口实验(二)一、实验目的掌握通过8255A 并行口传输数据的方法,以控制发光二极管的亮与灭。
二、实验内容用8255 做输出口,控制十二个发光管亮灭,模拟交通灯管理。
三、实验程序CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0FF2BH;8255控制口IOAPT EQU 0FF28H;PA口IOBPT EQU 0FF29H;PB口IOCPT EQU 0FF2AH;PC口ORG 11E0HSTART: MOV AL,82H;PB输入,PA,PC输出MOV DX,IOCONPTOUT DX,AL;写命令字MOV DX,IOBPT;读PB口IN AL,DXMOV BYTE PTR DS:[0601H],AL;保存PBMOV DX,IOCONPT;8255控制口MOV AL,80HOUT DX,AL;写命令字,PA,PB,PC输出MOV DX,IOBPTMOV AL,DS:[0601H]OR AL,0F0HOUT DX,AL;将读入的PB状态重新置到PB上MOV DX,IOCPTMOV AL,0F0HOUT DX,AL;四路口红灯全亮CALL DELAY1;延时IOLED0:MOV AL,10100101BMOV DX,IOCPTOUT DX,AL;南北绿灯亮,东西红灯亮;-----------------------------------------------CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时;------------------------此处为南北绿灯亮的时间-------------OR AL,0F0HOUT DX,AL;南北绿灯灭,东西红灯亮MOV CX,8IOLED1:MOV DX,IOBPTMOV AL,DS:[0601H]AND AL,10101111BOUT DX,AL;南北黄灯亮,东西黄灯亮CALL DELAY2;延时 --------------南北黄灯闪烁时间OR AL,01010000BOUT DX,AL;南北黄灯灭,东西黄灯灭CALL DELAY2;延时LOOP IOLED1;南北黄灯闪烁8次MOV DX,IOCPTMOV AL,0F0HOUT DX,AL;四路口红灯全亮;----------------------------------------------------------CALL DELAY2;延时;----------------------此处为四路口红灯全亮时间---------------- MOV AL,01011010BOUT DX,AL;东西绿灯亮,南北红灯亮;---------------------------------------------------------CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时;----------------------此处为东西绿灯亮的时间-----------------------------------OR AL,0F0HOUT DX,AL;东西绿灯灭MOV CX,8IOLED2:MOV DX,IOBPTMOV AL,DS:[0601H]AND AL,01011111BOUT DX,AL;东西黄灯亮,CALL DELAY2;延时 --------------东西黄灯闪烁时间OR AL,10100000BOUT DX,AL;东西黄灯灭,CALL DELAY2;延时LOOP IOLED2;东西黄灯闪烁8次,南北黄灯亦然MOV DX,IOCPTMOV AL,0F0HOUT DX,AL;四路口红灯全亮;---------------------------------------------------------- CALL DELAY2;延时;----------------------此处为四路口红灯全亮时间------------ JMP IOLED0;循环继续DELAY1:PUSH AXPUSH CXMOV CX,0030HDELY2:CALL DELAY2;延时,DELAY1延时是DELAY2的48倍LOOP DELY2POP CXPOP AXRETDELAY2:PUSH CXMOV CX,8000HDELA1:LOOP DELA1POP CXRETCODE ENDSEND START四、实验结果本实验实现了双路口的,交通灯循环。
微机原理 可编程接口芯片8255A及应用

第七章
参考程序片断: MOV AL, 10010000B ; 控制字 OUT 0F6H, AL ; 写入控制字 LP: IN AL, 0F0H ; 从A口读入开关状态 OUT 0F2H, AL ; B口控制LED,指示开关状态 CALL DELAY1S JMP LP
思考:
若地址大于FFH,则程序应该怎么改?
dp g f e d c b a
g
d
b
c
DP
g f e d c b a 1
阴 极
0
1
1
0
1
36
1
0
第七章
十六进制数共阴极的七段显示码表
十六进制数字
0 1 2 3 4 5 6
七段显示码
3FH 06H 5BH 4FH 66H 6DH 7DH
十六进制数字
8 9 A b C d E
七段显示码
7FH 6FH 77H 7CH 39H 5EH 79H
内部逻辑 6
端口C (低4位)
B 组B 端口
PC3~PC0
(8位)
PB7~PB0
CPU接口
外设接口
第七章
8255A与系统的连接示意图
7
第七章
3、各部分功能简介
数据端口
A、B、C:可用来和外设传送信息;每
个端口8位,通过编程设定其为输入口或输出口;
工作方式 0 1 8255数据端口功能表 B口 A口 C口
教材第九章内容
第七章
可编程外围接口芯片8255A及其应用
7.1 8255A的工作原理
一、8255A的结构和功能
二、8255A的控制字及初始化编程 三、8255A工作方式和C口状态字
杭电微机原理8255A并口实验讲义

微型计算机原理与接口技术实验报告实验名称:8255A并行口实验(一)8255A并行口实验(二)2015年12月9日实验四8255A并行口实验(一)一、实验目的1. 掌握8255A和微机接口方法;2. 掌握8255A的工作方式和编程原理二、实验内容用8255PA口控制PB 口。
三、实验接线图四、编程指南1.8255A芯片简介:8255A可编程外围接口芯片是INTEL公司生产的通用并行接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0:基本输入/输出方式;方式I :选通输入/输出方式;方式2:双向选通工作方式;2. 使8255A端口A工作在方式0并作为输入口,读取KI-K8个开关量,PB 口工作在方式0作为输出口。
五、实验程序框图六、实验步骤1. 断电连接导线,8255A 芯片A 口的PA0-PA7依次和开关量输入KI-K8相 连,8255A 芯片 B 口的 PB0-PB7依次接 LI-L8 ;2. 在PC 机和实验系统联机状态下,新建实验程序,编辑完成后进行保存(保存后缀为.asm 文件); 3. 编译下载;4. 全速运行,运行程序。
七、实验程序CODE SEGMENT MAIN PROC FARASSUME CS:CODEMAIN ENDP CODE ENDSEND MAINSTART: MOV DX, 0FF2BHMOV AL, 90H OUT DX, ALTEST: MOV DX, 0FF28HIN AL, DXMOV DX, 0FF29H OUT DX, AL JMP TEST;控制字寄存器 ;控制字;写入控制字 ;指向A 口;从A 口读入开关状态 ;指向B 口;B 口控制LED ,指示开关状态 ;进行下一轮检测 图4-2八、实验结果闭合或断开开关,相应的发光二极管会亮或灭。
九、实验中遇到的问题及解决方式问题:编程过程中不知道此实验平台的8255A的端口地址解决:查阅实验指导书中对实验平台的简介,最终得到了口地址。
实验三可编程并行接口

实验三可编程并行接口一、实验目的掌握8255方式0的工作原理及使用方法。
二、实验内容1.实验电路如图3-1,8255的C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
2.编程从8255的C口输入数据,再从A口输出。
3.由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不用,编程时需要了解当前的微机使用那段IO地址并进行处理。
L0L1L2L3L4L5L6L7K0K1K2K3K4K5K6K7图3-14. 在以上实验基础之上,改变程序,实现LED灯L0-L7依次循环亮,实现跑马灯的效果。
一、编程提示1.8255控制寄存器端口地址 28BH,A口的地址 288H,C口地址28AH。
二、参考流程图如图3-2所示。
三、参考程序源程序清单如下:ioport equ 0E400h-0280hio8255a equ ioport+288hio8255b equ ioport+28bhio8255c equ ioport+28ahcode segmentassume cs:codestart:mov dx,io8255bmov al,008bhout dx,al ;设8255为C口输入,A口输出inout: mov dx,io8255c ;从C口输入一数据in al,dxcall disp ;调显示子程序mov dx,io8255a ;从A口输出刚才自C口out dx,al ;所输入的数据Mov dl,0ffh ;判断是否有按键mov ah,06hint 21hjz inout ;若无,则继续自C口输入,A口输出mov ah,4ch ;否则返回int 21hdisp proc near ;显示子程序push dxand al,0fh ;首先取低四位mov dl,alcmp dl,9 ;判断是否<=9jle num ;若是则为'0'-'9',ASCII码加30Hadd dl,7 ;否则为'A'-'F',ASCII码加37Hnum: add dl,30hmov ah,02h ;显示int 21hmov dl,0dh ;加回车符int 21hmov dl,0ah ;加换行符int 21hpop dxret ;子程序返回disp endpcode endsend start四、实验结果1. LED灯L0~L7依次发光2. 开关K0-K7控制LED显示电路显示数字,并且在屏幕上输出输入的数字图3-3图3-4五、实验总结通过本次试验,我掌握了可编程并行接口8255和微机的硬件连接方法,编程方法,并加深了对可编程并行接口8255的工作方式理解及编程方法。
最新8255实验报告

最新8255实验报告实验目的:本次实验旨在熟悉并掌握Intel 8255A可编程并行接口的功能及其编程方法。
通过实验,学习如何利用8255A实现并行数据的输入输出操作,并了解其在微型计算机系统中的应用。
实验设备与器件:1. 微机实验箱及接口电路板2. Intel 8255A 可编程并行接口芯片3. 8位微处理器(如8086)4. 示波器、逻辑笔等测试工具实验原理:Intel 8255A是一种3态可编程并行输入/输出接口芯片,具有三个8位并行I/O端口:端口A、端口B和端口C。
端口A和端口B可用于输入输出,端口C分为两个4位端口C1和C2,可分别进行输入输出操作。
8255A通过控制字寄存器(控制字1和控制字2)来设置工作模式和端口方向。
实验步骤:1. 初始化8255A:通过编程设置控制字寄存器,定义端口A、B的工作模式(例如,端口A为输入,端口B为输出)和端口C的配置(C1和C2的输入输出模式)。
2. 编写程序代码,实现端口A的数据读取和端口B的数据输出。
3. 使用示波器检测端口C的输入输出信号,验证其功能。
4. 通过改变控制字寄存器的设置,观察并记录端口工作模式变化后的行为。
实验结果:1. 端口A成功读取了外部输入的二进制数据,并在显示器上显示出来。
2. 端口B按照程序设定输出了相应的控制信号,通过LED灯或其他指示设备得到了验证。
3. 端口C1和C2在不同的控制字设置下,能够正确地执行输入输出操作,信号波形通过示波器得到了确认。
实验结论:通过本次实验,我们成功地对Intel 8255A可编程并行接口进行了编程和操作,实现了并行数据的输入输出。
实验结果表明,8255A在并行接口通信中具有重要作用,能够提高数据传输效率,适用于需要高速并行数据传输的场合。
微机原理实验 可编程并行接口 8255 实验

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输入的状态信息都是通过这个缓冲器传送的。
微机原理实验报告

微机原理实验报告班级:自动化72组员梁慕佳 07054031张乐 07054033张林鹏 07054034实验一:8255 并行接口实验1 实验目的1. 学习并掌握8255 的工作方式及其应用;2. 掌握8255 典型应用电路的接法。
2 实验设备PC机一台,TD-PITE 实验装置一套。
3 实验内容1. 基本输入输出实验。
编写程序,使8255 的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2. 流水灯显示实验。
编写程序,使8255 的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
4 实验原理并行接口是以数据的字节为单位与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所示。
图2-6-1 8255内部结构及外部引脚图图2-6-2 8255控制字格式5 实验步骤1. 基本输入输出实验本实验使8255 端口A工作在方式0 并作为输入口,端口B工作在方式0 并作为输出口。
用一组开关信号接入端口A,端口B 输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。
具体实验步骤如下述:(1)实验接线图如图2-6-3所示,按图连接实验线路图;(2)编写实验程序,经编译、连接无误后装入系统;(3)运行程序,改变拨动开关,同时观察LED 显示,验证程序功能。
实验五 可编程并行接口(8255A)

实验五可编程并行接口(8255A)一.实验目的1.掌握8255A方式0的工作原理及使用方法二.实验内容1.按下面图4-1可编程并行口接口8255A电路连接线路,如下图所示:图4-1可编程并行口接口8255A2.编写程序,实现从PC口读入开关状态,然后在PA口输出开关状态。
编程可参考如下流程图:其中288H是8255A芯片的PA口地址。
三.编程提示1.PA口地址=(DC00H-280H)+288H=0DC08H,其余端口地址可依此类推。
下面是整个接口程序的参考源程序,请补充完整8255A并行口输出实验,8255A工作于方式0。
stack segment para stackX db 100 dup(?)stack endsdata segmentY db 100 dup(?)data endscode segment 'code'assume cs:code,ds:data,ss:stackstart: mov ax,datamov ds,ax____________ ;8255A初始化next: ___________ ;从PC口输入数据;从PA口输出数据__________以下语句是用于判断是否按下ESC键,如果按下则退出。
mov dl , 0ffHmov ah , 06Hint 21hjz next ;无键按下则继续从PC口读入数据mov ah , 4chint 21hcode endsend start2. 编译及运行将上述程序对应的工程建立在E:\wjyl\bxk目录下,编译、连接、构建后生成exe文件。
运行不能直接在WINXP系统下,必须在纯DOS系统下。
四.思考题1. 8255A的工作方式0的特点是什么?2.这个程序里有查询环节吗?如果有,作用是什么?。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理实验
实验五可编程并行接口实验
一、实验目的
1. 理解可编程并行接口8255A芯片的结构和功能;
2. 掌握8255A芯片初始化程序的设计方法;
3. 掌握8255A芯片与CPU信号的连接方法以及并行接口设计和编程方法;
4. 掌握七段数码管的静态和动态显示原理;
5. 掌握利用七段数码管显示计算数机内部信息。
二、实验内容
1. ※●利用8255A芯片设计接口电路并编程实现:A口输出数据,驱动四个LED,使其顺序显示‘0’~‘F’的二进制状态,每个状态保持1秒钟。
(1)电路框图
(2)源程序
(3)运行结果
2. ※●设计接口电路并编程实现:两个七段数码管分别显示“HP”,字符保持3秒钟后两个数码管同时熄灭。
(1)电路框图
(2)源程序
(3)运行结果
HP字符显示3秒后同时熄灭
3. 通过对8255A芯片的实验,对比实验五、实验六,谈谈你对8255A的认识和体会以及输入输出接口调试的过程;
8255A是可编程并行I/O接口芯片,通过对它进行编程,可实现无条件、有条件和中断方式的接口电路。
它适合于外部设备和微机之间进行近距离、大量和快速的信息交换,比如微机与并行接口打印机或者磁盘驱动器等。
输入输出接口调试过程:先搞清四个端口地址,然后根据所要实现的功能对控制端口写控制字,然后对其他端口进行数据交换,验证硬件电路的正确性。
4.简单叙述数码管接口电路设计的原则和调试方法;
送入数码管的数据分为段码和位码,段码决定数码管显示什么样的字符,位码决定哪一位的数码管显示该字符。
调试时,先对连接段码的端口送入数据,然后对连接位码的端口送入数据,观察数码管的显示状态,改变位码端口数据,继续观察数码管的显示状态。
不能先送位码,再送段码,即不能先点亮再显示,因为这样可能会在段码未稳定之前显示错误的字符。
5. 叙述七段数码管动态显示延时时间长短对视觉有何影响?
延时程序的作用是保持当前显示数码管足够时间,同时稳定显示效果,以形
成视觉暂留。
人眼的视觉暂留时间大概在二十四分之一秒左右,所以一般电视电影至少是24帧以上,才会看起来是连续的动作,延时的时间设置小于40ms即可,延时太短会加重cpu的负担,延时太长,则看起来是不断闪烁的,不能连续显示。
三、实验分析
本次实验电路连线简单,但是理解起来有一点困难,要明白8255A控制字的作用,第二个题为了显示完美的三秒HP,也需要不断地计算和尝试。
实验过程中,也遇到了一些问题,比如:
1. 一开始连好电路编译成功,但是运行后出现了严重仿真错误SPICE failed to connect pin v+,后来发现是8255A的隐藏管脚没有设置好,将VCC为VDD,GND 为VSS后错误消失。
2.写代码粗心RET 打成了REG,编译错误。
3.设置控制字时在10100000后忘加二进制B,出现错误struction or register not accepted in current CPU mode.
4.第二题在送段码位码之前忘记关显示,结果一上电先显示88.
5.第二题一开始只在P显示后调用了延时,H显示后未延时,导致运行结果只显示P.。