8255并行口扩展控制

8255并行口扩展控制
8255并行口扩展控制

桂林电子科技大学微机单片机接口

指导老师:吴兆华

学生:史海玲

学号:092011110

桂林电子科技大学机电工程学院

《微机综合设计》设计报告

一、设计题目 (1)

二、设计内容与要求 (1)

三、设计目的意义 (1)

四、系统硬件电路图 (1)

五、程序流程图与源程序 (2)

5.1 程序流程图 (2)

5.2 源程序 (3)

六、系统功能分析与说明 (3)

6.1 总体功能实现说明 (3)

6.2 元器件的选择及功能介绍 (3)

6.2.1 元器件的选择 (3)

6.2.2 元器件的功能介绍 (4)

七、设计体会 (8)

八、参考文献 (9)

《8255并行口扩展控制》设计报告

一、设计题目

8255并行口扩展控制

二、设计内容与要求

用8051单片机控制实现8255的PB口输出数据等于PA口输入数据

三、设计目的意义

1、通过8255并行口扩展控制,进一步熟悉和掌握单片机的结构及工作原理,加深对单片机理

论知识的理解;

2、掌握单片机内部功能模块的应用;

3、掌握单片机的接口及相关外围芯片的特性、使用与控制方法;

4、掌握单片机的编程方法,调试方法;

5、掌握单片机应用系统的构建和使用,为以后设计和实现单片机应用系统打下良好的基础。

四、系统硬件电路图

(1) 8255并行口扩展控制硬件电路原理图如下:

图1:电路原理图

(2)8255并行口扩展控制硬件电路仿真图:

图2:电路仿真图(3) PCB图如下:

图3:PCB图五、程序流程图与源程序

5.1 程序流程图

5.2 源程序

ORG 0000H ;程序入口

MOV DPTR,#7FFFH ;送控制口地址

MOV A,#90H ;送8255状态字至控制口

MOVX @DPTR,A

LOOP:MOV DPTR,#7CFFH ;送PA口地址

MOVX A,@DPTR ;读PA口状态

MOV DPTR,#7DFFH ;送PB口地址

MOVX @DPTR,A ;把PA口状态送至PB口

JMP LOOP ;循环

END

六、系统功能分析与说明

6.1 总体功能实现说明

本次设计单片机采用89S51,它是一种低功耗、高性能的8位CMOS微控制器。片内含有4KB 的存储器(EPEROM),与8031引脚和指令系统完全兼容。

89S51的VCC接+5V,VSS接地。复位引脚RESET外接RC电路和复位开关,可以实现人工复位。本系统采用按键电平复位,如硬件图所示。XTAL1和XTAL2引脚外接12MHZ晶振和

两个30PF的电容。一般,单片机系统中高集成度芯片的电源端都应并联虑波电容,但此系统中只需扩展一个8255并对发光二极管进行控制,而不需要精确控制,所以没有接虑波电容。从系统实际运行情况看,没有接虑波电容未对系统稳定性造成影响。

89S51单片机中,没有单独的地址总线和数据总线,而是和P0口和P2口公用的:P0口分时地作为低8位地址线和8位数据线用,P2口则作为高8位地址线用。所以有16条地址线和8条数据线,但要注意,他们不是独立的总线,而是和I/O端口合用的。本系统是扩展8255,用到了89S51的P0口作为低8位地址线和数据线,高8位地址则由P2口控制,P2.0接在8255的A0上,P2.1接在A1上,8255的片选由P2.7控制。

本系统中要求实现8255的PB口输出数据等于PA口输入数据,我的做法是:在PA口接上开关,控制高低电平的变化;PB口则接上发光二极管,通过发光二极管的亮灭情况可知PB口的输出状态以及PA输入状态,从而达到系统的要求。为了很好地保护发光二极管,在每个发光二极管的回路上接上限流电阻,大小为1K,PA口的电阻大小为10K。当按下PA口的开关时,PB口相应的发光二极管将亮起。本设计可用于抢答器设计等领域。

6.2 元器件的选择及功能介绍

6.2.1 元器件的选择

元器件是整个综合实践的基础,所以元器件的选择和型号的确定是十分重要的。对元件的选择,一般必须需要考虑的有以下几个方面:

(1)电气性能;

(2)占地效率;

(3)成本和供应;

(4)元件可靠性和使用环境条件;

(5)和设计规范的吻合;

(6)合适的工艺和设备规范;

(7)可组装性、可测试性、可返修性;

(8)与制造相关的资料是否完整可得(如元件完整详细外行尺寸、引脚材料、工艺温度限制等)。

此设计中我们通过查阅资料选择了以下元器件:如表1所示,基本上实现了我们要求的功能。

6.2.2 元器件的功能介绍

(1) ATM89S51主要功能特性:

图4:MCS-51单片机的基本结构

AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU 暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP 和PLCC等三种封装形式,以适应不同产品的需求。

主要功能特性:

·兼容MCS-51指令系统

·32个双向I/O口

·2个16位可编程定时/计数器

·全双工UART串行中断口线

·2个外部中断源

·中断唤醒省电模式

·看门狗(WDT)电路

·灵活的ISP字节和分页编程

·4k可反复擦写(>1000次)ISP Flash ROM

·4.5-5.5V工作电压

·时钟频率0-33MHz

·128x8bit内部RAM

·低功耗空闲和省电模式

·3级加密位

·软件设置空闲和省电功能

·双数据寄存器指针

(2) 89S51 的并行接口

89S51单片机有4个8位的并行接口,记作P0、Pl、P2和P3,共32根I/O线。每个口主要由四部分构成:端口锁存器、输入缓冲器、输出驱动器和引至芯片外的端口引脚。它们都是

双向通道,每一条I/O线都能独立地用作输入或输出。作输出时数据可以锁存,作输入时数据可以缓冲。但这四个通道的功能不完全相同。P0口和P2口内部各有一个2选1的选择器,受内部控制信号的控制,在如图位置则是处在I/O口工作方式。四个接口在进行I/O方式时,特性基本相同:

①作为输出口用时,内部带锁存器,故可以直接和外设相连、不必外加锁存器。

②作为输入口用时,有两种工作方式,即所谓读端口和读引脚。读端口时实际上并不从外部读人数据,而只是把端口锁存器中的内容读人到内部总线,经过某种运算和变换后,再写回到端口锁存器。属于这类操作的指令很多,加对端口内容取反等等。而读引脚时才真正地把外部的数据读入到内部总线。逻辑图中各有两个输入缓冲器,CPU根据不同的指令,分别发出“读

端口”或“读引脚”信号,以完成两种不同的读操作。

③在端口作为外部输入线,也就是读引脚时,要先通过指令,把端口锁存器置l,然后再实行读引脚操作,否则就可能读入出错。若不先对端口置1,端口锁存器中原来状态有可能为0,加到输出驱动场效应管栅极的信号为l,该场效应管就导通,对地呈现低阻抗。这时即使引脚上访入的是1信号,也会因端口的低阻抗而使信号变低,使得外加的1信号读入后不一定是1。若先执行置1操作,则可以驱动场效应管截止,引脚信号直接加到三态缓冲器,实现正确的读入。由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为“推双向”口。这四个接口特性上的差别主要是P0、P2和P3都还有第二功能,而P1口则只能用作I/O口。89S51的芯片引脚中没有专门的地址总线和数据总线,在向外扩展存贮器和接口时,由P2口输出地址总线的高8位A15-A8,由P0口输出地址总线的低8位A7-A0,同时对P0口采用了总线复用技术,P0口又兼作8位双向数据总线D7-D0,即由P0口分时输出低8位地址或输人/输出8位数据,在不作总线扩展用时,P0口和P2口可以作为普通I/O口使用。P0口作为低8位地址总线和8位数据总线用时,内部控制信号使MUX开关倒向上端,从而使地址/数据信号通过输出驱动器输出。当向外部存贮器读写时,P0口就用作低8位地址和数据总线用。这时P0口是一个真正的双向口.P2口还可以作为高8位地址总线用,同样通过Mux开关的倒换来完成。P2在外部存贮器读写时(地址大于FFH)作高8位地址线用。

P3口的每一位都有各自的第二功能,见表2。

表2:通道P3的第二功能

四个接口的负载能力也不相同。P1、P2、P3口都能驱动三个LSTTLl,并且不需外加电阻就能直接驱动MOS电路。P0口在驱动TTL电路时能带八个略TTL门,但驱动MOS电路时若作为地址/数据总线,可以直接驱动,而作为I/O口时,格外接上拉电阻(电阻接vcc),才能驱动MOS电路.

(3) 发光二级管的基本原理说明

发光二极管(LED)是用半导体材料制作的正向偏置的PN结二极管.其发光机理是当在PN 结两端注入正向电流时,注入的非平衡载流子(电子-空穴对)在扩散过程中复合发光,这种发射过程主要对应光的自发发射过程.发光二极管具有可靠性较高,室温下连续工作时间长、光功率-电流线性度好等显著优点,而且由于此项技术已经发展得比较成熟,所以其价格非常便宜.因此在一些简易的光纤传感器的设计中,如果LED能够胜任,选用它作为光源即可大大降低整个传感器的成本.然而LED的发光机理决定了它存在着很多的不足,如输出功率小、发射角大、谱线宽、响应速度低等.因此,在一些需要功率高、调制速率快、单色性好的光源的传感器设计中,就不得不以提高成本为代价,选用其它更高性能的光源.

(4) 8255特性

①一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。

②具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口。它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B 口及C口(低4位,PC0~PC3)。A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。

(5) 8255引脚功能

RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。

CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输。

RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。

WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。

D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。

PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。

PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。'

A0,A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。

当A0=0,A1=0时,PA口被选择;

当A0=0,A1=1时,PB口被选择;

当A0=1,A1=0时,PC口被选择;

当A0=1,A1=1时,控制寄存器被选择。

七、设计体会

微机综合设计是对我们大学所学知识的总结和运用,对我们的综合能力有很大的帮助和提高。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

因为课程所学的都是理论知识,而从理论到实践是需要一定过程的,微机综合设计就是一次很好的锻炼机会对于我们这些以后可能从事控制行业的人来说有着举足轻重的作用。时间过得很快,两周的微机综合设计就这样结束了。之前我对自己没什么信心,总听别人说,做电路板容易调电路板才是真正烦人的事,还没开始我就担心自己不能顺利完成,不过我还是对自己说了,在学校这样一个好的平台,这样一个小小任务都完成不了那以后走上工作岗位了我还能有什么作为。经过师兄们的辅导之后我信心倍增,相信只要自己努力了肯定会有收获的,况且在我们之前那么多师兄师姐也都走过去了,我又不比别人差,肯定能顺利完成任务的。

回顾起此次单片机课程设计,至今我仍感慨颇多。的确,从选题到确定所用的元器件,从理论到实践,在整整两个星期里,可以说得是酸甜苦辣啊,但是我却真正从这次课设中学到很多很多的东西,经过这次课设不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没

有提过的知识。经过这次课设让我更加注意到理论与实践相结合的重要性,虽然我在理论的学习中成绩很不错,但一到实践还是遇到很多困难,毕竟在这之前没有接触过这样的设计,所以说这次课程设计对我的意义重大。

这次设计要求每个人单独完成。由于我选的题目接线比较复杂,如果用万用板来完成这次设计,那么板上的布线将会很复杂,也不美观,所以通过利用万用板是件之后我决定自己做一块PCB板。之前没有学过怎样制作PCB板,所以刚开始的时候也是一头雾水。经过师兄们和同学的细心地指导下,终于把制作PCB板的整个流程熟悉了一遍。培养了自己动手能力之外,还让自己从中学习了很多新的知识。

当前期工作都完成之后就开始焊接元器件了,还没焊好之前总害怕自己做出来的板不能顺利工作。等到把所有元器件都焊接完成之后,烧入程序一试,果真跟之前的预感一样:系统不能正常工作。心里很着急,不过我并没有慌了手脚,而是积极寻找资料,查出问题的所在。最后发现单片机上的31端口没有接高点平,自己以为接上这条线之后系统应该能顺利工作了,没想到还是不行,这时有点着急了,发现系统有两条跳线没有接上,真是大意。经过努力地找资料,最后发现8255的复位端口要接地,这条线一接上,系统终于能正常工作了。

通过自己的动手,亲身体验到了理论与实践真的有太大的差距,理论只是基础并不是全部。在做板的过程中必须一直保持谨慎,因为一个小小的失误可能让你花费很长的时间去调试。当你正为调不出结果而发愁时,一个小小的成功会给你带来无语伦比的喜悦,那种感觉真的很美妙。

这次课设对于我而言有着重要的意义,不仅丰富了知识,也提高了自己的动手能力。在挫折与喜悦之中我得到了发展,这次课设必将在我的人生中留下美好的回忆。

八、参考文献

[1] 徐惠民,安德宁.单片微型计算机原理、接口及应用.2版.北京:北京邮电大学出版社,2006

[2] 李忠国,陈刚.单片机应用技能实训.北京:人民邮电出版社,2006

[3] 肖洪兵.跟我学用单片机.2版.北京:北京航空航天大学出版社,2006

[4] 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用.北京:清华大学出版社,2004

8255并口实验详解

xxxx大学计算机学院实验报告

一、实验内容与要求 1.1 实验内容 (1)8255方式0实验 从8255端口C输入数据,再从端口A输出 (2)8255方式1输出实验 编程实现每按一次单脉冲按钮产生一个正脉冲,使8255产生一次中断服务:依次输出01H,02H,04H,08H,10H,20H,40H,80H使L0~L7依次发光,中断8次结束。 (3)8255方式1输入实验 编程实现:每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务:读取逻辑电平开关预置的ASCII码,在屏幕上显示其对应的字符,中断8次结束。 1.2 实验要求 (1)8255方式0实验 实验预期效果:拨动逻辑开关,启动程序,开关打开的对应灯可以亮起。改变开关的状态,灯的亮暗也随之改变。 (2)8255方式1输出实验 实验预期效果:按一次单脉冲按钮,L0亮起;以后每按一次,后面的灯依次会亮起。中断8次结束。 (3)8255方式1输入实验 实验预期效果:每按一次单脉冲按钮读取逻辑电平开关预置的ASCII码,在屏幕上显示其对应的字符,中断8次结束。 二、实验原理与硬件连线 2.1 实验原理 CPU通过指令将控制字写入8255A的控制端口设置它的工作方式。8255A有两个控制字:方式选择控制字和端口C置位/复位控制字,这两个控制字均写入同一个控制端口地址(端口选择

先A1A0=11) 8255A有3种工作方式:方式0——基本输入/输出方式;方式1——选通输入/输出方式;方式2——双向传输方式。方向选择控制字用于设置各端口的工作方式。 方式0称为基本输入/输出方式。该方式下,端口A、端口B、端口C的高4位和端口C的低4位均可独立地设为输入或输出数据端口。在方式0时,8255A与CPU时间没有应答联络信号,可用于无条件传送或查询方式数据传送场合。采用查询方式传送时,可以将端口A、端口B 作为数据端口,用端口C存放外部设备状态信息,用于CPU查询。 方式1称为选通输入/输出方式。该方式下,端口A、端口B可作为数据传输口,而端口C 的一些引脚规定作为端口A、端口B的联络控制信号,有固定的搭配规定。在方式1时,CPU和8255A之间有应答联络信号,所以采用中断方式或程序查询方式传送数据。 当端口A作为方式1输入时,端口C的PC3、PC4、PC5作为端口A的联络控制信号。 当端口A作为方式1输出时,端口C的PC7、PC6、PC3作为端口A的联络控制信号。 状态字通过读端口C获得。需要强调,从端口C读出的状态字与端口C的外部引脚的状态无关。 2.2 硬件连线 (1)8255方式0实验1 连接实验电路,8255端口C接逻辑电平开关K0~K7,端口A接LED显示电路 L0~L7 U18 8255 K0 K1 K5 L0 L1 L2 L3 L4 L5 L6 L7图2-2-1 实验一接线

实验 并行IO口8255扩展

实验三并行I/O口8255扩展 一、实验目的 1、了解8255A芯片的结构以及编程方法 2、掌握通过8255A并行口读取开关数据的方法 二、实验说明 本次实验用通过8255扩展接口,仅通过P0端口控制8只集成式7段数码管的显示控制。8255A的PA、PB 端口分别连接8位数码管的段码和位码,程序控制数码管滚动显示一串数字。 三、实验线路图 四、实验步骤 1、先建立文件夹“ex3”,然后建立“ex3”工程项目,最后建立源程序文件“ex3.c”,输入如下源程序;/******************************************* 实验3:用8255实现接口扩展 ******************************************/ #include #include #define uchar unsigned char

#define uint unsigned int //PA,PB,PC端口及命令端口地址定义 #define PA XBYTE[0x0000] //定义8255A地址 #define PB XBYTE[0x0001] //定义8255B地址 #define PC XBYTE[0x0002] //定义8255B地址 #define COM XBYTE[0x0003] //定义8255B控制寄存器地址 //待显示字符队列编码 uchar code DSY_CODE_Queue[ ]= {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xA4,0xC0,0xC0,0x80,0xC0,0x80,0xF9,0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; //共阳极的7段集成式数码管对应编码 // 0:0xc0 // 1:0xcf // 2:0xa4 // 3:0xb0 // 4:0x99 // 5:0x92 // 6:0x82 // 7:0xf8 // 8:0x80 // 9:0x90 // A:0x88 // B:0x83 // C:0xc6 // D:0xa1 // E:0x86 // F:0x8e // DOT:0x7f //数码管选通 uchar DSY_Index[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //延时 void DelayMS (uint ms) {uchar i; while(ms--) for (i=0;i<120;i++); } /********主程序********/ void main( ) { uchar i,j,k; //8255工作方式选择:PA,PB均输出,工作方式0 COM=0x80; while(1)

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

深圳大学实验报告课程名称:微型计算机技术 实验项目名称: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 显示,验证程序功能。

实验6.1_8255并行接口与交通灯控制

8255端口地址: 控制寄存器地址28BH A口的地址288H B口的地址289H C口的地址28AH 实验程序: DATA SEGMENT BUF1 EQU 00100100B ;南北绿灯亮东西红灯亮BUF2 EQU 01000100B ;南北黄灯亮东西红灯亮BUF3 EQU 00000100B ;南北灯灭东西红灯亮BUF4 EQU 10000001B ;南北红灯亮东西绿灯亮BUF5 EQU 10000010B ;南北红灯亮东西黄灯亮BUF6 EQU 10000000B ;南北红灯亮东西灯灭DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,80H MOV DX,28BH OUT AX,AL ALL: MOV AL,BUF1 MOV DX,28AH OUT DX,AL CALL DELAYL MOV CX,5 YEL1: MOV AL,BUF2 MOV DX,28AH OUT DX,AL CALL DELAYS MOV AL,BUF3 MOV DX,28AH OUT DX,AL CALL DELAYS LOOP YEL1 MOV AL,BUF4 MOV DX,28AH OUT DX,AL CALL DELAYL MOV CX,4 YEL21: MOV AL,BUF5 MOV DX,28AH

OUT DX,AL CALL DELAYS MOV AL,BUF6 MOV DX,28AH OUT DX,AL CALL DELAYS LOOP YEL2 JMP ALL MOV AH,4CH INT 21H DELAYL PROC NEAR ;长延时 PUSH CX PUSH DI Y1:MOV CX,2000H X1:MOV DI,2000H DEC DI JNE X1 LOOP Y1 POP DI POP CX RET DELAYL ENDP DELAYS PROC NEAR ;短延时 PUSH CX PUSH DI Y2:MOV CX,500H X2:MOV DI,1000H DEC DI JNE X2 LOOP Y2 POP DI POP CX RET DELAYS ENDP CODE ENDS END START 桂林电子科技大学信息与通信学院

实验二 8255A并行接口实验

实验二 8255A并行接口实验(一) 一实验目的 1、掌握通过8255A并行口传输数据控制LED发光二极管的亮灭;进一 步熟悉软件编程环境。 二实验设备 1、微机系统一套; 2、TPC-3型微机接口实验系统一台; 3、导线若干。 三实验内容 1、基础部分:用8255A的A端口控制8个LED发光二极管的亮和灭(端口 输出为1则亮,输出为0则灭)。其中L0―L2为东西方向,L5―L7为南北 方向、L3-L4不用,PA口与相应的发光二极管驱动信号输入端相连,输入端 为1时发光二极管亮。接线如图4-5所示。 图4-5 编制程序,通过8255A控制发光二极管,以模拟交通灯的管理。 2.提高部分:利用开关K0,K1的控制,以模拟几种交通灯的管理,具体要求 为: K0K1灯控制 00正常运行 01南北路口绿灯亮、东西路口红灯亮 10东西路口绿灯亮、南北路口红灯亮 3.如果模拟车流量大小来来决定红绿灯交通时间,请问你有什么解决办法。如果 能解决请加以解释并编程调试。

四、编程提示: 1.要完成本实验,首先必须了解交通灯的亮灭规律。设有一个十字路口,南北、东西方向初始态为四个路口的红灯全亮。之后,南北路口的绿灯亮,东西 路口的红灯亮,南北路口方向通车。延迟一段时间后,南北路口的绿灯熄灭, 而南北路口的黄灯开始闪烁。闪烁8次后,南北路口的红灯亮,同时东西路口 的绿灯亮,东西路口方向开始通车。延迟一段时间后,东西路口的绿灯熄灭, 而黄灯开始闪烁。闪烁苦干次后,再切换到南北路口方向。之后,重复上述过 程。 2.程序中应设定好8255A的工作模式,使三个端口均工作于方式0,并处于输出态 3.8255A的A端口地址为:288H B端口地址为:289H C端口地址为:28AH 控制口地址为:28BH 五、实验要求: 1.做好实验预习和准备工作,并写出预习报告(要求写出实验的流程图及程序),熟练掌握8255A编程原理及编程方法。 2.实验操作的最低要求是要做出实验内容的基础部分,然后根据实际操作能力争取做出实验内容的提高部分及回答实验内容的第三部分问题。 3.写出实验报告,内容为: 1)实验目的; 2)实验设备; 3)实验中遇到的问题及解决问题的分析思路与办法,问题定位及问题的性质; 4)对本实验的建议及有何创新。 ;这是自动生成的代码模板 STACKS SEGMENT STACK ;堆栈段 DW 128 DUP(?) ;注意这里只有128个字节 STACKS ENDS DATAS SEGMENT ;数据段 ;请在这里定义您的数据 DATAS ENDS CODES SEGMENT ;代码段 ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS ;初始化 MOV DS,AX

8255并行口实验实验报告

8255并行口实验实验报告 作者: 一、实验目的 掌握8255A的编程原理。 二、实验设备 CPU挂箱、8086CPU模块。 三、实验内容 8255A的A口作为输入口,与逻辑电平开关相连。8255A的B口作为输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。 四、实验原理介绍 本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。 五、实验步骤 1、实验接线 CS0?CS8255; PA0~PA7?平推开关的输出K1~K8; PB0~PB7?发光二极管的输入LED1~LED8。 2、编程并全速或单步运行。 3、全速运行时拨动开关,观察发光二极管的变化。当开关某位置于L 时,对应的发光二极管点亮,置于H时熄灭。 六、实验提示 实验也是如此。实验中,8255A工作于基本8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本输入输出方式(方式0)。 七、实验结果 程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如:K2置于L位置,则对应的LED2应该点亮。 八、程序框图(实验程序名:t8255.asm)

开始 设置8255工作方式 读A口 输出至B口 结束 九、程序源代码清单: assume cs:code code segment public org 100h start: mov dx,04a6h ;控制寄存器地址 mov ax,90h ;设 置为A口输入,B口输出 out dx,ax mov al,0feh start1:mov dx,04a2h 芯片的 入口地址 out dx,al mov bl,al mov dx ,04a0h in al,dx test ax,01h jz strat2 mov al ,bl rol al,1 流水灯循环左移 mov bl,al mov cx,3000h 设置cx为灯闪烁时间对应的循环次数 add: loop add jmp start1 无条件跳转至start1 strat2:mov al,bl mov dx,04a2h out dx,al ror al,1 流水灯循环左移 mov bl, al mov cx,3000h add1: loop add jmp start 无条件跳转至start code ends end start 十、实验总结 通过该实验,掌握了8255A的编程原理,学会了用汇编语言来编写程序控制8255A进行流水灯的操作实验。

实验十三 8255A 并行接口实验

实验十三8255A 并行接口实验 一、实验目的 1、学习并掌握8255A的各种工作方式及其应用。 2、学习在接口实验单元上构造实验电路。 3、掌握8255A工作于中断方式的应用。 二、实验设备 1、EAT598实验教学系统一台。 2、连接线若干。 三、实验内容 8225A可编程并行接口芯片 8255A可编程外围接口芯片是Intel公司生产的通用可编程并行I/O接口芯片,它具有A、B、C三个8位并行接口,用+5V单电源供电,有三种工作方式: 方式0——基本输入/出方式 方式1——选通输入/出方式 方式2——双向选通工作方式 c82590 equ 200h c82591 equ 201h d8255a equ 210h d8255b equ 211h c8255 equ 213h stack segment stack dw 64 dup(?) stack ends code segment assume cs:code,ss:stack start: cli mov dx,c8255 mov al,86h out dx,al mov al,05h push ds mov ax,0000h ;修改中断向量表内容 mov ds,ax mov ax,offset ir0 mov si,0020h mov [si],ax

mov ax,8100h ;程序的加载段地址为8100h mov si,0022h mov [si],ax pop ds mov al,13h mov dx,c82590 out dx,al nop nop mov al,8 mov dx,c82591 out dx,al nop nop mov al,3 out dx,al nop nop mov al,0 out dx,al nop nop again: sti hlt jmp again ir0: mov dx,d8255b in al,dx mov dx,d8255a out dx,al iret code ends end start 四、报告要求 1、总结8255A可编程并行接口芯片的编程方法 (1)将DIP8开关SA9拨向ON系统状态,8255A的片选信号CS8255接译码器的输出210H,地址为210H~213H; (2)端口B输入线PB0~PB7接一组开关K0~K7; (3)端口A输出线PA0~PA7接至一组发光二极管L0~L7。. 编写程序,使8255A端口A工作在方式0并作为输出口,端口B工作于方式1并作为输入口,则端口C的PC2成为选通信号输入端 STB,PC0成为中断请求信号输出端INTRb。 B 当B口数据就绪后,通过发 STB信号来请求CPU读取端口B数据并送端口A输出显示。 B

8255A并行口实验

实验四 1

OUT DX,AL INC DX OUT DX,AL MOV CX,0800H LOOP $ NOT AL JMP P11 CODE ENDS END H1 8255A并行口实验㈡PA输入、PB输出 一、实验目的 ⑴掌握8255A和微机接口方法。 ⑵掌握8255A的工作方式和编程原理。 二、实验内容 用8255 PA作开关量输入口,PB作输出口。 编程提示 8255A芯片简介 8255A可编程外围接口芯片是Intel公司生产的通用并行接口芯片,它具有A、B、C三个并行接口,用+5V电源供电,能在以下三种方式下工作: 方式0:基本输入/输出方式 方式1:选通输入/输出方式 方式2:双向选通工作方式 使8255A端口A工作在方式0并作为输入口,读取K1—K8八个开关量,送PB 口显示。PB口工作在方式0作为输出口。 实验步骤 ⑴按实验电路图连接线路: ①8255A芯片A口的AP0~PA7依次和开关量输入插孔K1~K8相连。 ②8255A芯片B口的AB0~PB7依次接L1~L8 ⑵运行实验程序。 在系统处“P.”状态时,输入32E0,按EXEC键, 拨动K1~K8、L1~L8会跟着亮灭。 -----------------硬件实验二8255A并行口实验(2) PA输入,PB输出------------- CODE SEGMENT 2

ASSUME CS:CODE,DS:CODE,ES:CODE ORG 32E0H PA EQU 0FFD8H PB EQU 0FFD9H PC EQU 0FFDAH PCTL EQU 0FFDBH H2: MOV DX,PCTL MOV AL,90H OUT DX,AL P2: MOV DX,PA IN AL,DX INC DX OUT DX,AL JMP P2 CODE ENDS END H2 3

8255并行接口实验

8255并行接口实验 4.5.1 实验目的 1. 学习并掌握8255的工作方式及其应用。 2. 掌握8255典型应用电路的接法。 3. 掌握程序固化及脱机运行程序的方法。 4.5.2 实验设备 PC 机一台,TD-PITE 实验装置或TD-PITC 实验装置一套。 4.5.3 实验内容 1. 基本输入输出实验。编写程序,使8255的A 口为输入,B 口为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。 2. 流水灯显示实验。编写程序,使8255的A 口和B 口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。 4.5.4 实验原理 I/O I/O I/O I/O PA7-PA0 PC7-PC4 PC3-PC0 PB7-PB0 图4.31 8255内部结构及外部引脚图 并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A 、B 、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图4.31所示,8255工作方式控制字和C 口按位置位/复位控制字格式如图4.32所示。

位(a )工作方式控制字 (b )C 口按位置位/复位控制字 1 图4.32 8255控制字格式 8255实验单元电路图如图4.33所示: 图4.33 8255实验单元电路图 4.5.5 实验步骤 1. 基本输入输出实验 本实验使8255端口A 工作在方式0并作为输入口,端口B 工作在方式0并作为输出口。用一组开关信号接入端口A ,端口B 输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下述: (1)实验接线图如图4.34所示,按图连接实验线路图。 (2)编写实验程序,经编译、连接无误后装入系统。 (3)运行程序,改变拨动开关,同时观察LED 显示,验证程序功能。 (4)点击“调试”下拉菜单中的“固化程序”项,将程序固化到系统存储器中。 (5)将短路跳线JDBG 的短路块短接到RUN 端,然后按复位按键,观察程序是否正常运行;关闭实验箱电源,稍等后再次打开电源,看固化的程序是否运行,验证程序功能。 (6)实验完毕后,请将短路跳线JDBG 的短路块短接到DBG 端。

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

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

东南大学 《微机实验及课程设计》 实验报告 实验六 8255并行输入输出

姓名:学号: 专业:测控技术与仪器实验室: 516 同组人员:评定成绩: 一、实验目的 1)掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示; 2)掌握8段数码管的动态刷新显示控制; 二、(1)实验内容(必做) 6-1、8段数码管静态显示:编程从键盘输入一位十进制数字(0~9),在数码管上显示出来。 6-2、8段数码管动态显示:在两个数码管上同时显示不同的两位数字或字母,保持不变直至退出。(如56或7f) (2)实验内容(必做一题,选做一题) 6-3 静态显示:用逻辑电平开关预置某个数字(0~9)的ASCII码,将该数据用8255的C口读入,并用A口输出,并在数码管显示出来;如果预置的ASCII 码不是数字(0~9),数码管显示E字母。 6-4 动态显示:在两个数码管上滚动循环显示不同的0~f字符。(即开始时两个数码管显示01,12,23,34 ··f0,一直循环直至退出) 三、实验原理 (1)实验预备知识

图 八段式LED 数码管的符号和引脚 (2) 6-1流程图:

N Y 将对应段码输 结 6-1源代码: data segment ioport equ 0ec00h-0280h io8255a equ ioport+288h ;8255A口地址 io8255b equ ioport+28bh ;8255控制寄存器端口地址 led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码mesg1 db 0dh,0ah,'Input a num (0--9h):',0dh,0ah,'$';提示data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dx,io8255b ;使8255的A口为输出方式 mov ax,80h

单片机8255并行口扩展控制系统设计

单片机最小应用系统 设 计 报 告 指导老师: 学生: 学号: 机电工程学院 年月日

目录 一、设计题目 (3) 二、设计内容与要求 (3) 三、设计目的意义 (3) 四、系统硬件电路图 (3) 五、程序流程图与源程序 (4) 六、系统功能分析与说明 (6) 七、设计体会 (11) 八、参考文献 (12)

一、设计题目 8255并行口扩展控制系统设计。利用单片机AT89S51控制实现8255的PB口输出数据等于PA口输入数据。 二、设计内容与要求 (1)利用单片机AT89S51与8255A设计一个扩展控制系统设计。 (3)要求使用的元器件数目最少,电路尽可能简单。 (4)电源电压为+5V。 三、设计目的意义 1、通过8255并行口扩展控制,进一步熟悉和掌握单片机的结构及工作原理,加 深对单片机理论知识的理解; 2、掌握单片机内部功能模块的应用; 3、掌握单片机的接口及相关外围芯片的特性、使用与控制方法; 4、掌握单片机的编程方法,调试方法; 5、掌握单片机应用系统的构建和使用,为以后设计和实现单片机应用系统打下 良好的基础。 四、系统硬件电路图

(2) PCB图如下: 图2:PCB图 五、程序流程图与源程序 5.1 程序流程图

图3:程序流程图5.2 源程序 #include #define RD P0_3 #define WR P3_7 #define A0 P0_0 #define A1 P0_1 #define REST P3_6 #define CS P0_2 void main(void) { unsigned char get_data; CS=0; REST=1; REST=0; RD=1; P2=0x90; A0=1; A1=1; WR=0; WR=1; ///////////////////////////////////////// 以前是初始化 P2=0xff; A0=0; A1=0; WR=0; WR=1; P2 = 0xff; while(1) { A0=0; A1=0; RD=0;

8255A并行口实验(二)内容

上海电力学院实验报告计算机硬件实验课程 题目:8255A并行口实验(二)内容 班级: 姓名: 学号:

一、实验目的 掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。 二、实验内容 1、实验原理 实验原理图如图所示,PB4 ~ PB7和PC0 ~ PC7分别与发光二极管电路L1~ L12 相连,本实验为模拟交通灯实验。交通灯的亮灭规律如下: 设有一个十字路口,1、3为南北方向,2、4为东西方向,初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车; 延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1 、3 路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复 上述过程。 8255A的PB4~ PB7对应黄灯,PC0 ~ PC3对应红灯,PC4~ PC7对应绿灯。8255A工作于模式0,并置为输出。由于各发光二极管为共阳极,使其点亮 应使8255A相应端口清0。 2、实验线路连接 (1) CS-8255插孔连译码输出Y7插孔。 (2) L1 - PC4 L4 - PC5 L7 - PC6 L10 - PC7 L2 - PB4 L5 - PB5 L8 - PB6 L11 - PB7 L3 - PC0 L6 - PC1 L9 - PC2 L12 - PC3

三、实验框图 四、实验程序 CODE SEGMENT ASSUME CS:CODE IOCONPT EQU 0FF2BH IOAPT EQU 0FF28H IOBPT EQU 0FF29H IOCPT EQU 0FF2AH ORG 10e0H START:MOV DX,IOCONPT MOV AL,80H

实验二可编程并行接口(8255方式0).doc

实验二 一、实验题目:可编程并行接口(8255方式0) 二、实验目的 掌握8255方式0的工作原理及使用方法。 三、实验内容 1、按下图连线。 2、编程从8255C口输入数据,再从A口输出. 四、程序流程图 五、源程序 ioport equ 0d400h-0280h io8255a equ ioport+288h io8255b equ ioport+28bh io8255c equ ioport+28ah

code segment assume cs:code start: mov dx,io8255b ;设8255为C口输入,A口输出 mov al,8bh out dx,al inout: mov dx,io8255c ;从C口输入一数据 in al,dx mov dx,io8255a ;从A口输出刚才自C口 out dx,al ;所输入的数据 mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h jz inout ;若无,则继续自C口输入,A口输出 mov ah,4ch ;否则返回DOS int 21h code ends end start 六、实验结果分析 按上述的代码执行,观察LED灯的状态,可以发现实验结果和预期的相同:打开K0,关闭K1、K2、K3、K4、K5、K6、K7,L0亮; 打开K1,关闭K0、K2、K3、K4、K5、K6、K7,L1亮; 打开K2,关闭K0、K1、K3、K4、K5、K6、K7,L2亮; 打开K3,关闭K0、K1、K2、K4、K5、K6、K7,L3亮; 打开K4,关闭K0、K1、K2、K3、K5、K6、K7,L4亮; 打开K5,关闭K0、K1、K2、K3、K4、K6、K7,L5亮; 打开K6,关闭K0、K1、K2、K3、K4、K5、K7,L6亮; 打开K7,关闭K0、K1、K2、K3、K4、K5、K6,L7亮; 按任意键,退出该实验。 七、实验心得 1、通过本次实验,了解了8255芯片的基本内部结构和它的管脚,掌握了8255方式0的工作原理及使用方法, 2、本次实验前,自己认真地做了预习,实验过程中,认真思考,积极探索,实验后,查阅资料,提炼总结。总的来说,基本完成了实验要求和任务。

用8255扩展并行输入输出接口(流水灯程序)

用8255A扩展并行输入输出接口(流水灯程序)+作者:杜康 #include #include #include //头文件 #define PA8255 XBYTE[0x0000] /*定义8255A口地址*/ #define PB8255 XBYTE[0x2000] /*定义8255B口地址*/ #define COM8255 XBYTE[0x6000] /*定义8255控制口地址*/ void time(unsigned int ucMs);//延时单位:ms void main(void) { unsigned char led; P1=0xef; led=P1; COM8255=0x82;//初始化8255 time(50); //延时50ms while(1) { PA8255=led;

led=_crol_(led,1); time(500); //延时0.5s } } void delay_5us(void)//延时5us { _nop_(); _nop_(); } void delay_50us(void)//延时50us { unsigned char i; for(i=0;i<4;i++) { delay_5us(); } } void delay_100us(void)//延时100us { delay_50us(); delay_50us(); }

void time(unsigned int ucMs)//延时单位:ms { unsigned char j; while(ucMs>0) { for(j=0;j<10;j++) delay_100us(); ucMs--; } }

微机原理实验8255并行口实验PA输入、PB输出

8255A并行口实验PA输入、PB输出利用LED等显示 程序 LCD EQU 07FE0H LCDWI EQU LCD+0 ;写命令 LCDWD EQU LCD+1 ;写数据 LCDRS EQU LCD+2 ;读状态 LCDRD EQU LCD+3 ;读数据 PA EQU 0FFD8H PB EQU 0FFD9H PC EQU 0FFDAH PCTL EQU 0FFDBH code segment assume cs:code lin db 0 col db 0 num db 0 dis_num db 0 temp0 db 0 temp1 db 0 count db 0 org 1000h start: MOV DX,PCTL MOV AL,90H OUT DX,AL call init_lcd mov al,3 call delay2 mov count,0 mov bx,offset tab0 mov lin,0 mov col,0 mov num,16 call dis_english GOON: MOV DX,PA IN AL,DX TEST AL,01H JE GOON1 TEST AL,02H JE GOON2

TEST AL,04H JZ GOON3 TEST AL,08H JE GOON4 TEST AL,10H JE GOON5 TEST AL,20H JE GOON6 TEST AL,40H JE GOON7 TEST AL,80H JZ GOON8 JMP GOON9 GOON1: JMP KEY1 GOON2: JMP KEY2 GOON3: JMP KEY3 GOON4: JMP KEY4 GOON5: JMP KEY5 GOON6: JMP KEY6 GOON7: JMP KEY7 GOON8: JMP KEY8 GOON9: mov bx,offset tab9 mov lin,1 mov col,0 mov num,16 call dis_english MOV DX,PB MOV AL,0FFH OUT DX,AL JMP GOON KEY1: MOV DX,PB MOV AL,0FEH OUT DX,AL mov bx,offset tab1 mov lin,1 mov col,0 mov num,16 call dis_english JMP GOON KEY2: MOV DX,PB MOV AL,0FDH OUT DX,AL

8255并口控制器应用实验

实验一8255并口控制器应用实验 一、实验目的 1. 掌握8255 的工作方式及应用编程。 2. 掌握8255 典型应用电路接法。 二、实验内容 1. 基本输入输出实验。编写程序,使8255 的A 口为输出, B 口为输入, 完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。 2.流水灯显示实验。编写程序,使8255 的A 口和 B 口均为输出,实现16 位数据灯的相对循环显示。 三、实验所用仪表及设备 1. 要PC微机一台。 2. TD-PIT 实验系统一套。 四、实验原理与步骤 1.8255简介 并行接口是以字节或字为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。 Intel公司的可编程通用并行接口芯片8255具有 A 、B 、C 三个并行接口。提供以下三种工作方式:方式0—基本输入/出方式、方式1—选通输入/出方式、方式2—双向选通方式。8255的引脚如图10-1 所示,8255的工作方式控制字和 C 口按位置位/复位制字格式如图10-2(a)和(b)所示。

图10-1 8255的内部结构及引脚 图10-2(a)工作方式控制字 2.基本输入输出实验 让8255的端口A作为输出口工作在方式0,端口 B 作为输入口工作在方式0。用一组开关信号接入端口B ,端口A的输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。

图10-3 8255基本输入输出实验参考接线图 实验步骤如下: 1)确认从PC 机引出的两根扁平电缆已经连接在实验平台上。 2)参考图10-3 所示连接实验线路。 3)首先运行CHECK 程序,查看I / O空间始地址。 4)利用查出的地址编写程序,编写或修改参考程序,编译链接。 5)运行程序,拨动开关,看数据灯显示是否正确。 参考程序如下: ;***************根据CHECK配置信息修改下列符号值***************** PCI_INTCSR EQU 0CC38H ;PCI卡中断控制寄存器地址IOY0 EQU 0C400H ;***************************************************************** MY8255_A EQU IOY0+00H*4 ;8255计数器0端口地址 MY8255_B EQU IOY0+01H*4 ;8255计数器1端口地址

实验五 8255并行接口应用实验

实验五 8255并行接口应用实验 一实验目的 1.1学习并掌握8255的各种工作方式及其应用。 1.2学习在系统接口实验单元上构造实验电路。 二实验设备 2.1 TDN86/88+教学实验系统。 2.2微型计算机(PC机)一台。 三实验内容 3.1系统中的8255芯片 3.1.1 8255可编程并行接口芯片介绍 8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口用+5V单电源供电,能在以下三种方式下工作: 方式0—基本输入/输出方式方式1—选通输入/输出方式 方式2—双向选通工作方式 8255的内部结构及引脚如图9-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图9-2所示。(两个控制字为同一个端口地址,8355根据写入数据的最高位未识别当前为哪个控制字,该最高位为图9—-2中的特征位)。

图 9-1 8255内部引脚及结构 图 9-2 8255的控制字格式 3.1.2 系统中的8255芯片 8255的数据线片选信号线、地址线、读写控制线等部分分别与系统总线相连,其A 、B 、C 三个端口以排针形式引出,供8255实验使用,其线路如图9-3所示,端口地址如表9-1所示。 图 9-3 系统中的8255线路 表 9-1 8255端口地址 3.1.3接口实验单元中的开关和 发光二极管电路

图9-4 拨动开关和发光二极管电路 3.2 8255接口应用实验 3.2.1 8255接口应用实验(1) 3.2.1.1 实验要求: 按图9-5所示接线,编写程序,使8255端口A工作方式0并作为输出口,端 口B工作方式1并作为输入口,则端口C的PC2成为选通信号输入端STB B,PC0成为中断请求信号输出端INTR B。;当B口数据就绪后,通过发STB B信号来请求CPU读取端口B数据并送端口A输出显示。 图9-5 8255接口应用实验(1)接线图(KK1-初态为“1”) 3.2.1.2 参考程序 STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE START: CLI ;关中断,IF=0 MOV AL,086H ;10000110A□方式0,输出,PC4-PC7输出 OUT 63H,AL ;B□方式1,输入,PC3-PC0输出 MOV AL,05H ;使B端口处于中断允许状态(对PC2置位, OUT 63H,AL ;使B端口内部INTE B=1,允许中断) PUSH DS MOV AX,0000H ;

8255并口控制器应用实验

8255并口控制器应用实验 一、实验目的 1. 掌握8255 的工作方式及应用编程。 2. 掌握8255 典型应用电路的接法。 二、实验内容 1. 基本输入输出实验。编写程序,使8255 的A 口为输出,B 口为输入,完 成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。 2.流水灯显示实验。编写程序,使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正 相反,由右向左,每次仅点亮一个灯,循环显示。 四、实验原理与步骤 实验步骤 (1)基本输入输出实验 实验说明: 本实验使8255的端口A作为输出口工作在方式0,端口 B 作为输入口工作在方式0。用一组开关信号接入端口B,端口A 输出线接至一组数据灯上,然 后通过对8255 芯片编程来实现输入输出功能。 图3-2 8255基本输入输出实验参考接线图 实验步骤如下: ①实验接线图如图3-2所示,按图连接实验线路图。 ②运行Tdpit 集成操作软件,根据实验内容,调用程序代码(T8255-1.ASM), 填写程序代码中的空缺处,编译、链接。 ③运行程序,改变拨动开关,同时观察LED 显示,验证程序功能。

实验代码如下: IOY0 EQU 9860H ;片选IOY0对应的端口始地址 MY8255_A EQU 9860H ;8255的A口地址 MY8255_B EQU 9861H ;8255的B口地址 MY8255_C EQU 9862H ;8255的C口地址 MY8255_MODE EQU 9863H ;8255的控制寄存器地址 STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE START: MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL, 82H ;工作方式0,A口输出,B口输入 OUT DX,AL LOOP1: MOV DX,MY8255_B ;读B口 IN AL,DX MOV DX,MY8255_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-3所示。

相关文档
最新文档