利用8255A实现拨动开关和LED流水点亮实验

合集下载

微机实验-流水灯8255

微机实验-流水灯8255

电子信息工程系实验报告课程名称:微机原理与接口技术实验项目名称:8255并行接口流水灯实验 实验时间:2009.12班级: 姓名: 学号:一、实 验 目 的:(1)掌握8255的工作方式及应用编程。

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

二、实 验 设备:PC 机一台,实验箱及外部线路一套。

三、实验内容:编写程序,使8255的A 口作为LED 灯的输出,实现8位数据灯的相对循环显示。

(思考:用B 口的一位作为输入,控制LED 灯的循环方向。

)四、实 验 原理:INTEL8255是一种通用的可编程并行I /O 接口芯片,是专为INTEL 公司的微处理器设计的,也可用于其它系列的微型机系统中。

利用8086汇编指令系统,编制初始化程序,可以变更8255 的工作方式,通用性强,使用灵活。

8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。

可与外设并行进行数据交换。

A 口和B 口内具有中断控制逻辑,在外设与CPU 之间可用中断方式进行信息交换。

8255能与许多外部设备连接,例如:键盘、显示器、打印机等。

1、8255芯片特性(1)一个并行输入/输出的LSI 芯片,多功能的I/O 器件,可作为CPU 总线与外围的接口.(2)具有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种模式。

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

CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU 进行通讯;/CS=1时,8255无法与CPU 做数据传输.RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU 发送数据或状态信息,即CPU 从8255读取信息或数据。

利用8255A实现LED的流水点亮实验

利用8255A实现LED的流水点亮实验
moval,00000100b
outdx,al
;-
movdx,211h
moval,00000000b
outdx,al
movdx,210h
moval,40h
outdx,al
movdx,211h
moval,00000010b
outdx,al
;A
movdx,211h
moval,00000000b
outdx,al
moval,7fh
outdx,al
movdx,211h
moval,00100000b
outdx,al
;2
movdx,211h
moval,00000000b
outdx,al
movdx,210h
moval,5bh
outdx,al
movdx,211h
moval,00010000b
outdx,al
;5
movdx,211h
movdx,210h
moval,77h
outdx,al
movdx,211h
moval,00000001b
outdx,al
loop lp ;转至lp
jmplop ;跳至lop
hlt ;使处理器处于暂时停机状态.
codeends
end start
在数码管上显示“8255-A”。
三、实验分析
实验要求利用8255芯片8个开关来控制8个LED灯的开关。我们在课堂上学过8255有ABC三个口,可以输入和输入。因此首先可以想到的就是,把PA口A0-A7接8个波动开关K1-K7,并将A口调整为读入。同时将A口读入的信号用B口输出,这样就可以通过拨动开关来控制LED灯的明灭。为了让灯亮的时间足够人眼分辨出来,需要在程序里加入延时语句,其中加零语句就可以实现延时。

流水灯 和 8255基本输入输出

流水灯 和 8255基本输入输出

4.3 8255A可编程并行接口实验4.3.1 实验目的1、掌握8255A并行接口芯片的基本结构及工作原理。

2、掌握8255A工作方式0的特点及其使用方法。

3、掌握8255A的A口或B口工作于方式1时的特点及其使用方法;掌握方式1输入或输出时C口用作联络信号的引脚的定义及功能。

4.3.2 实验提示基本输入输出实验程序流程图流水灯显示实验程序流程图4.3.3 实验内容1.基本输入输出实验。

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

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

完整源代码:code segmentassume cs:codestart: mov al,10000010bmov dx, 1443hout dx, alnext: mov dx, 1441hin al, dxmov dx, 1442hout dx, almov ah,0bhint 21hcmp al,0je nextmov ah,4chint 21hcode endsend start2.流水灯显示实验。

编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。

完整源代码:MY8255_A EQU 1460HMY8255_B EQU 1461HMY8255_C EQU 1462HMY8255_MODE EQU 1463HDA TA SEGMENTLA DB ?LB DB ?DA TA ENDSCODE SEGMENTA SSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODEMOV AL,80HOUT DX,ALMOV DX,MY8255_AMOV AL,7FHOUT DX,ALMOV LA,ALMOV DX,MY8255_BMOV AL,0FEHOUT DX,ALMOV LB,ALCALL DALL YA1: MOV AL,LAROR AL,1MOV LA,ALMOV DX,MY8255_AOUT DX,ALMOV AL,LBROL AL,1MOV LB,ALMOV DX,MY8255_BOUT DX,ALCALL DALL YCALL BREAKJMP A1DALL Y: MOV CX,3FFHD1: MOV AX,0FFFFHD2: DEC AXJNZ D2LOOP D1RETBREAK PROC NEARMOV AH,06HMOV DL,0FFHINT 21HJE RETURNMOV AX,4C00HINT 21HRETURN:RETBREAK ENDPCODE ENDSEND START实验小结:通过本次实验,我对8255并行接口有了进一步的了解,实验过程中,有很多问题使得实验很难进行,最后通过和同学的讨论并且在网上查资料等,问题很快得到了解决。

《微机系统与接口技术》8255流水灯实验报告

《微机系统与接口技术》8255流水灯实验报告

《微机系统与接口技术》预习报告学院:计算机学院专业:网络工程班级学号:学生姓名:小发实验日期:指导老师:成绩评定:五邑大学计算机学院制表一,实验目的1,学习并掌握8255 的工作方式及其应用。

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

3,掌握程序固化及脱机运行程序的方法。

二,实验设备PC机器一台,TD-PITE实验装置或TD-PITC实验装置一套三,实验内容1,基本输入输出实验。

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

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

2,流水灯显示实验。

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

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

实验接线图如图 6 所示,按图连接实验线路图。

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

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

(2)编写实验程序,经编译、连接无误后装入系统。

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

(4)点击“调试”下拉菜单中的“固化程序”项,将程序固化到系统存储器中。

(5)将短路跳线 JDBG 的短路块短接到 RUN 端,然后按复位按键,观察程序是否正常运行;关闭实验箱电源,稍等后再次打开电源,看固化的程序是否运行,验证程序功能。

(6)实验完毕后,请将短路跳线 JDBG 的短路块短接到 DBG 端。

图1-4 8255基本输入输出实验接线图实验程序清单(A82551.ASM)SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX, 0646HMOV AL, 90HOUT DX, ALAA1: MOV DX, 0640HIN AL, DXCALL DELAYMOV DX, 0642HOUT DX, ALJMP AA1DELAY: PUSH CXMOV CX, 0F00HAA2:PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START流水灯显示实验:使 8255 的 A 口和 B 口均为输出,数据灯 D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与 D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。

8255和LED数码管显示实验

8255和LED数码管显示实验

实验四 8255和LED 数码管显示实验一、实验目的1.掌握并行接口8255A 的工作原理及使用方法。

2.了解七段数码管显示数字的原理。

3.掌握多位数码显示的接口技术。

二、实验电路实验电路如图2及图3所示。

三、实验内容1.静态显示:如图2所示,将8255A 的A 口PA0~PA6分别与七段数码管的段码驱动输入端a ~g 相连。

编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来,按其它键程序退出。

用Proteus 仿真软件搭建硬件电路,实现静态显示,完成系统的调试运行,并讲解搭建调试全过程。

用屏幕录像软件进行全过程录像,以MP4格式保存提交,提交仿真程序文件,完成实验报告的书写。

2.动态显示:按图3连接好电路,七段数码管段码连接不变,两个数码管的位码驱动输入端S1、S0分别接8255C 口的PC1、PC0。

编程在两个数码管上显示56,按任意键程序退出。

用Proteus 仿真软件搭建硬件电路,。

要求:在Proteus 仿真软件上搭建硬件系统,采用一个8255芯片实现两个数码管动态显示数字‘56’,完成系统的调试运行,并讲解搭建调试全过程。

用屏幕录像软件进行全过程录像,以MP4格式保存提交,提交仿真程序文件,完成实验报告的书写。

四、实验程序和结果<1>静态显示;************************************************ ;* 键盘输入数据(0-9)控制LED 数码管显示(静态显示) * ;************************************************ IO8255A EQU 288HP A 6P A 5P C 0 P A 4P A 3g f e d c b aS1 S0图3 动态态显示电路+5VP A 6P A 5P A 4C S P A 3g f e d c b a288H~ 28BH8255图2 静态显示电路 dp S3 S2 S1 S0IO8255CON EQU 28BHDATA SEGMENTLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHMESG DB 0DH,0AH,'INPUT A NUM (0--9),OTHER KEY IS EXIT:',0DH,0AH,'$' DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,IO8255CON ;使8255的A口为输出方式MOV AX,80HOUT DX,ALSSS:MOV DX,OFFSET MESG ;显示提示信息MOV AH,09HINT 21HMOV AH,01 ;从键盘接收字符INT 21HCMP AL,'0' ;是否小于0JB EXIT ;若是则退出CMP AL,'9' ;是否大于9JA EXIT ;若是则退出SUB AL,30H ;将所得字符的ASCII码减30HMOV BX,OFFSET LED ;BX为数码表的起始地址XLAT ;求出相应的段码MOV DX,IO8255A ;从8255的A口输出OUT DX,ALJMP SSS ;转SSSEXIT: MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START<2>动态显示DATA SEGMENTINPORT EQU 2400H-280HIO8255A EQU INPORT+288HIO8255C EQU INPORT+28AHIO8255CTR EQU INPORT+28BHMESGL DB 0DH,0AH,’PRESS ANY KEY TO EXIT!’,0DH,0AH,’$’DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESGL ; 提示显示信息MOV AH,9INT 21HMOV DX,IO8255CTR ;将8255设为A口输出MOV AL,80HOUT DX,ALLOOP1:MOV DX,IO8255AMOV AL,6DHOUT DX,ALMOV DX,IO8255CMOV AL,2OUT DX,ALMOV CX,3000HDELAY:LOOP DELAY ;延时MOV DX,IO8255CMOV AL,0OUT DX,AL ; 关数码管MOV DX,IO8255AMOV AL,7DHOUT DX,ALMOV DX,IO8255CMOV AL,1OUT DX,ALMOV CX,3000HDELAY1:LOOP DELAY1 ;延时MOV AH,0BHINT 21HCMP AL,0JNZ EXIT ;按任意键退出JMP LOOP1EXIT:MOV DX,IO8255CMOV AL,0 ;关掉数码管显示OUT DX,ALMOV AX,4C00H ;返回DOSINT 21HCODE ENDSEND START。

(完整word版)利用8255A芯片实现流水灯闪烁设计

(完整word版)利用8255A芯片实现流水灯闪烁设计

目录摘要··2第1章利用8255A芯片实现流水灯闪烁设计的概述··2第2章三种方案的论述与最终方案的确定··22.1 第一种方案的论述··22.2 第二种方案的论述··52.3 第三种方案(最终方案)的论证··10第3章测试结果及体会心得··13第4章致谢··14第5章参考文献··14附录1 方案一Proteus仿真电路效果图··15附录2 方案一源程序代码··16附录3 方案二Proteus仿真电路效果图··18附录4 方案二源程序代码··19附录5 方案三(最终方案)Proteus仿真电路效果图··20附录6 方案三(最终方案)源程序代码··21摘要:8255A是一种通用的可编程并行I/O接口芯片(Programmable Peripherial Interface),它是为Inter系列微处理器设计的配套电路,也可用于其它微处理器系统中。

通过对它进行编程,芯片可工作于不同的工作方式。

此次课程设计的目的就是利用端口和8255协同工作来实现LED 显示功能,对8255A芯片进行编程使流水灯左移或右移,通过延时程序使流水灯进行顺序点亮。

通过这次课程设计掌握8255A的功能特点、工作原理以及显示器接口的基本原理与方法技术。

关键词:8086芯片AT89C51单片机8255A芯片LED流水灯第1章利用8255A芯片实现流水灯闪烁设计的概述流水灯在日常的生活中有着广泛的应用,例如,许多楼面上的彩灯广告就是应用了流水灯设计。

此次的课程设计的题目是利用了端口和8255A协同工作来实现LED显示功能,编写程序,使用8255的A口和B口均为输出,接8个或16个发光二极管,实现流水灯的显示效果。

8255并口控制器应用实验

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 STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX,MY8255_MODE ;初始化8255工作方式MOV AL, 82H ;工作方式0,A口输出,B口输入OUT DX,ALLOOP1: MOV DX,MY8255_B ;读B口IN AL,DXMOV DX,MY8255_A ;写A口OUT DX,ALMOV AH,1 ;判断是否有按键按下INT 16HJZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出INT 21HCODE ENDSEND START(代码结束)(2)流水灯显示实验实验说明:使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。

可编程并行接口芯片8255的应用实验

可编程并行接口芯片8255的应用实验

图一、产生500us方波图二、按键控制LED亮
图三、流水灯依次点亮4、实验程序流程框图和程序清单
程序一、
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP ZHP
ORG 0100H
MAIN: MOV DPTR, #03H
MOV A, #95H
MOVX @DPTR, A
MOV TMOD, #02H
SETB EA
SETB ET0
MOV TH0, #06H
图四、产生500us方波图五、按键控制LED亮
图六、流水灯依次点亮
6、实验总结
本次实验是使用8255扩展外部I/O口,在本次实验中,我认为最为重要的就是电路图的设计以及其地址的计算,在弄清楚该问题的情况下,本次实验就没有什么很大的问题了。

7、思考题
1、在8255PC口上外接8个发光二极管,利用8255PC口的置位/复位控制字控制其按某种规律变化。

程序三、
CJNE R1, #11H, ZHP。

8255流水灯实验((

8255流水灯实验((

8255流水灯实验((1)设计题目分析编写程序,使用8255的A 口和B 口均为输出,实现16位流水灯显示效果2)功能扩展i:将流水灯设计成可以正着流水,也可以倒着流水ii:通过开关对流水灯闪烁的速度进行控制,高电平时为快,低电平时为慢速2)总体方案设计分析要求用8255的A 口和B 口做为输出,接16个发光二极管,从而实现16位流水灯的显示效果,基本的界限可如下图A所示,在C 口的地两位接两个开关,实现两个扩展功能的控制。

i:基本流水灯显示电路A 口和B 口两个端口不能同时复制,从而在试验中可以用BX进行需要复制的数据的存储,因为BX可以分从BH BL两个部分进行独立的操作,在本次试验中用BH对A 口进行赋值,用BL对B 口进行赋值,通过演示一段时间再对BH BL进行移位和输出,实现流水灯的效果。

ii:正反方向选择把PC.0 口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.0为高电平的时候则灯进行左移,同时 B 口与A 口相反。

iii:快慢速度控制把PC.1 口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.1为高电平的时候则延时的时间缩短,使得流水灯的流水速度加快,低电平的时候则进行延时的时间变长,使得流水灯的流水速度加快。

3硬件原理设计A该模块的WR.RD分别练到PC总线接口模块的XIOW和XIOR B该模块的数据(AD0~AD7 )、地址线(A0~A7)分别连到PC 总线接口模块的数据(D0~D7 )、地址线(A0~A7 )C 8255模块选通线CA连到PC总线接口模块的IOY3D 8255的PA0~PA7连到发光二极管的L1~L8;8255的PB0~PB7连到发光二极管的L9~L16E 8255的PC0 PC1分别练到开关K0 K1F软件流程框图及程序清单图A实验中肮凶的连按设置控制字,对A 口B 口赋匾分别保存在BH BUBH右移左移卩*保护现场程序代码MY8255_A EQU 09860HMY8255_B EQU 09861HMY8255_C EQU 09862H MY8255_MODE EQU 09863H CODE SEGMENTASSUME CS:CODESTART:MOV DX,MY8255_MODEMOV AL,81HOUT DX,ALMOV CL,0XOR BX,BXMOV DX,MY8255_BMOV AL,0FEHMOV BL,ALOUT DX,ALMOV DX,MY8255_AMOV AL,7FHMOV BH,ALOUT DX,ALA1:ROL BL,1ROR BH,1A3:PUSH BXCALL BREAKCALL DELAYPOP BXMOV DX,MY8255_AMOV AL,BHOUT DX,ALMOV DX,MY8255_BMOV AL,BLOUT DX,ALMOV DX,MY8255_C IN AL,DX AND AL,01HJNZ A2JMP A1A2:ROL BH,1ROR BL,1JMP A3 ;设置A 口、B 口方式0 输出,C 口低四位方式0 输出; 将BX 清零;对A 口、B 口赋值,并将值保存在BH BL中;对BH BL做出相应的移位;保护现场; 调用任意键退出程序; 调用延时程序;恢复现场;将移位后的结果输出;将C 都的数据输入; 查看PC0 口是否有数据输入,改变流水灯的方向;结果不全为0,则跳转MOV CX,0FFFHK1:MOV BX,0FFFH K2:DEC BXCMP BX,1000HJNE K2MOV DX,MY8255_CIN AL,DXAND AL,02HJNZ K3LOOP K1K3:RET DELAY ENDP BREAK PROC NEAR MOV AH,06H MOVDL,0FFHINT 21HJE RETURNMOV AX,4C00H INT 21H RETURN:RET BREAK ENDP CODE ENDSEND START ;将C 口的数据输入;查看PC1 是否有输入,改变延时,使得延时的时间变快结果不全为0.则跳转;按任意键退出。

使用8255A控制led

使用8255A控制led

单片机第五周任务一.实验要求8255A的A口作为输出功能,连接8盏LED灯。

8255A的B口作为输入功能,连接8个按钮。

当B口的某一按钮按下,对应的LED灯就点亮同时。

同时,数码管上显示对应的按键号。

如B口按钮1按下,1号LED灯就点亮,8段数码管显示1.二.硬件分析三.代码分析#include<reg52.h> //单片机头文件#include<absacc.h> //扩展地址解析头文件#define PAC XBYTE[0x7FFF] //控制地址定义#define PA XBYTE[0x7CFF] //A口地址定义#define PB XBYTE[0x7DFF] //B口地址定义#define PC XBYTE[0x7EFF] //C口地址定义#define uint unsigned int#define uchar unsigned charsbit RST=P1^0; //复位引脚定义sbit RD1=P3^7; //读引脚定义sbit RW=P3^6; //写引脚定义unsigned char codeTab[]={0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80};//共阳数码管码表void main(void) //主函数{RST=1; //复位置1RST=0; //复位置0PAC=0x82; //设控制字PB=0xff;PA=0xff;P1=0xff;while(1){switch(PB){case 0xfe:{P1=Tab[0];PA=0xfe;break;}case 0xfd:{P1=Tab[1];PA=0xfd;break;}case 0xfb:{P1=Tab[2];PA=0xfb;break;}case 0xf7:{P1=Tab[3];PA=0xf7;break;case 0xef:{P1=Tab[4];PA=0xef;break;}case 0xdf:{P1=Tab[5];PA=0xdf;break;}case 0xbf:{P1=Tab[6];PA=0xbf;break;}case 0x7f:{P1=Tab[7];PA=0x7f;break;}case 0xff:{P1=0xff;PA=0xff;break;}}}}四.我对8255A的理解8255A是一种可编程的I/O接口芯片,可以与MCS-51系统单片机以及外设直接相连,广泛用作外部并行I/O扩展接口。

实验5 可编程并行接口芯片8255A的使用

实验5 可编程并行接口芯片8255A的使用

(2)
编写程序,实现流水灯功能。
2、交通灯实验: (1实验连线: 1)该模块的WR、RD分别连到PC104总线接口模块的IOWR、IORD。选 通线CE连到IOY0。 2 )该模块的数据(AD0 ~AD7 )、地址线(A0 ~A7)分别连到PC104 总线接口模块的数据(D0~D7)、地址线(A0~A7)。 3)8255的PA0-L7、PA1-L6、PA2-L5、PA3-L3、PA4-L2、PA5-L1。 编制程序。
四、实验原理
五、实验步骤
1、流水灯实验: (1) 实验连线 1)该模块的WR、RD分别连到PC104总线接口模块的IOWR、IORD。 2 ) 该 模 块 的 数 据 ( AD0 ~ AD7 ) 、 地 址 线 ( A0 ~ A7 ) 分 别 连 到 PC104总线接口模块的数据(D0~D7)、地址线(A0~A7)。 3)8255模块选通线CE连到PC104总线接口模块的IOY0。 4 ) 8255 的PA0 ~ PA7 连到发光二极管的 L1 ~ L8 ;8255 的 PB0 ~ PB7 连 到发光二极管的L9~L16。
3、I/O输入输出实验: (1) 实验连线 该模块的WR、RD分别连到PC104总线接口模块的IOWR、IORD。 该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到PC104总线接口 模块的数据(D0~D7)、地址线(A0~A7)。 8255模块选通线CE连到PC104总线接口模块的IOY0。 8255的PA0~PA7接开关K0~K7,8255的PB0~PB7接发光二极管L1~L8。 (2)编制程序。
实验4 可编程并行接口芯片8255A的使用
一、实验目的
了解可编程并行接口芯片8255的内部结构、工作方式 熟悉8255初始化编程及应用。

利用8255A实现拨动开关和LED流水点亮实验

利用8255A实现拨动开关和LED流水点亮实验

实验二:利用8255A实现拨动开关和LED流水点亮实验安全0901 王宇航 09283020实验报告1.实验目的:该实验的目的在于掌握8255A和微机接口的连接方法,了解8255A的基本的工作原理和编程方法。

掌握使用8255并行接口连接拨动开关,控制LED显示输出的技术。

2.实验步骤:按图3-2将8255端口A与8位拨动开关连接,8255端口B与8位LED连接,选择8255 为方式0工作,编程序完成LED实时显示开关状态的功能,即每位LED对应一位开关状态。

开关往下拨动,对应LED灭,开关往上拨动,对应LED点亮。

当执行程序后LED按K1-K8初始设定的值点亮,并向右流动(8255A工作在方式0)。

同时在6位数码管显示:8255-1编程涉及8255端口地址有四个,由于8255片选信号线与地址译码区的200~2FH连接,即8255的I/O偏移地址为0~3,加上前一个实验所获知的I/O基址,两者相加之后才是最终访问8255的I/O地址。

注意,该地址一定是一个16位数,所以I/O操作要使用IN AL,DX 和OUT DX, AL指令。

3.实验代码:code segment ;定义代码段assume cs:codestart:;初始化,设置A口B口的工作方式mov dx,203h ;8255命令口地址mov al,10010000b ;控制字out dx,al;让数码管显示8255-A;显示A口输入的数并循环移位xor ax,ax ;将ax清零mov bl,0lop:;自定义的标号mov dx,200h ;给dx赋值(送到寄存器中)in al,dx ;将200h送给寄存器al;m ov dx,201h;o ut dx,al ;把al的值送给dx端口;j mp lop ;段内转移cmp al,ah ;al和ah进行比较jz next ;跳转到nextmov ah,almov bl,ahrol bl,1 ;不带进位循环左移1位next:ror bl,1 ;不带进位循环右移1位mov al,blmov dx,201hout dx,almov cx,3fffhlp: ; 从lp到最后都是表示显示8255-A这个字,它的作用是实现灯的延时,即保证灯的闪烁时间不至于过快,如果去除的话在人眼的视觉暂留情况下将可能产生连续不断的灯光闪烁,使得间隔时间太短。

实验四 8255与LED数码管的显示

实验四 8255与LED数码管的显示

实验四8255a与LED数码管的显示一. 实验目的掌握8255A的编程原理与LED数码管的显示方法。

二. 实验环境硬件环境:奔3以上处理器,512MB以上内存空间软件环境:windowsXP以上操作系统,emu8086编译环境,Proteus7.5sp3。

三.实验内容与完成情况1.仿真电路图2.实验原理(1)8255A可编程I/O接口芯片具有三种工作方式:方式0(简单的输入输出方式)、方式1(选通式输入/输出方式)和方式2(双向数据传送方式)。

它分别能够控制把CPU的控制命令或输出数据送至相应的端口,也可以控制把外设的状态信息或输入的数据通过相应端口送至CPU。

(2)8255芯片具有三个数据端口A、B和C。

每个端口都为8位,可以由编程来选择作为输入端口或输出端口。

在一般情况下,常利用A、B两个端口来完成与外设之间的数据交换过程,而利用C端口来完成与外设的状态控制信息的交换过程。

3.实验过程首先打开电源,由8086向8255a发出指令,选定8255的工作方式,然后,读A口数据,高四位清零,取LED灯偏移地址。

当4个按钮的开关情况发生变化时,电信号的变化被读入8255a,经一系列的信号处理,从B口输出到LED灯显示数字。

4.编程调试程序data segment; add your data here!PORTD EQU 66H ;CPU-8255控制寄存器PORTA EQU 60H ;8086 A1接8255 A0;A2 接8255A1PORTB EQU 62HPORTC EQU 64HREGIS EQU 10010000B ;A IN, B OUT,AB口工作方式0LED DB 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH,77H,7cH,39H,5eH,79H,71H data endsstack segmentdw 128 dup(0)stack endscode segmentASSUME CS:code, DS:dataBEGIN:MOV DX,PORTD ;设置8255工作方式MOV AL,REGIS ;control byteOUT DX,ALG1: MOV DX,PORTAIN AL,DX ;读A口数据AND AL,00001111B ;高四位清零;数码管译码MOV BX,OFFSET LEDXLAT ;取LED表;-------------PUSH CXMOV CX,40H ;延时DELAY:LOOP DELAYPOP CX;-------------MOV DX,PORTBOUT DX,ALJMP G1code endsend BEGIN ; set entry point and stop the assembler.四.出现的问题1.不知道如何选定8255a的A,B,C三个端口的工作状态;2.对74ls183的电信号处理机制不清楚。

8255LED流水灯控制

8255LED流水灯控制

8255LED流水灯控制实验四8255led流水灯控制实验一、实验目的1、认识8255接口芯片、学习其在微机系统中的应用;2、学习8255编程原理;3.掌握LED水灯的汇编语言编程方法。

2、实验仪器1、dj-598kc开发系统1台2、pc机1台三、实验内容1.8086实验箱主系统电路组成★该流水灯系统采用8255芯片扩展连接“led灯”模块。

★ 测试仪包括12个发光二极管和相应的驱动电路,如下图所示。

LED控制信号输入端子l1-l12。

当输入端为低电平“0”时,LED点亮,否则LED熄灭。

2、8255编程要点指南8255是一种通用可编程并行接口芯片。

它提供三个I/O端口。

每个端口都可以编程以多种方式工作。

它广泛应用于中小型系统。

其组成结构如下图所示。

★三个i/o口,分别是pa口、pb口和pc口。

每个口提供八根数据线,如pa口线(pa0~pa7),用于连接外设。

★ dB、CB和ab总线用于连接三条CPU总线,dB用于接收来自CPU的控制命令字或数据,CB用于选择8255数据端口的读写操作,ab用于选择读写哪个端口。

★a组和b组控制电路用于编程控制pa口、pb口和pc口的工作方式选择。

见下图控制命令字格式。

如果端口a的模式0用于控制LED灯,则控制字为1000000B=80h。

★编程控制方法a、将控制命令字设置为使端口a在模式0下工作-将控制命令字写入控制端口。

b、输出要点亮的LED数据——将照明数据写入端口A。

c.8255基地址为0ff28h,则a口地址0ff28h,b口地址0ff29h,c口地址0ff2ah,控制口地址0ff2bh。

3.实验系统的建设和使用a.键盘显示器设置:jk开关置“系统”处,进入监控状态。

c、电路连接:8255A芯片a口pa0-pa7依次连接ll-l8,B口pb0-pb3依次连接l9-l12。

d.接通实验仪电源,+5vled指示灯正常发光,实验仪数码管显示闪动p.,说明实验仪初始化成功,处于待命状态。

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 有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本实验也是如此。

实验中,8255A工作于基本输入输出方式(方式0)。

七、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。

例如:K2置于L位置,则对应的LED2应该点亮。

八、程序框图(实验程序名:t8255.asm)开始设置8255工作方式读A口输出至B口结束九、程序源代码清单:assume cs:codecode segment publicorg 100hstart: mov dx,04a6h ;控制寄存器地址mov ax,90h ;设置为A口输入,B口输出out dx,axstart1:mov dx,04a0hin al,axmov dx,04a2hout dx,aljmp start1code endsend start十、扩展要求程序全速运行之后,实现流水灯。

通过开关控制流水灯的流水方向。

十一、实验代码assume cs:codecode segment publicorg 100hstart:mov dx,04a6hmov ax,90hout dx,axmov bh,0fehstart1:mov dx,04a0hin al,dxand al,1hcmp al,0jz LR:ror bh,1jmp OutputL:rol bh,1Output:mov dx,04a2hmov al,bhout dx,almov cx,0fffhABC:loop ABCjmp start1code endsend start十二、实验收获通过本实验,我们掌握8255A的编程原理。

广东海洋大学 微机原理实验报告 实验四 8255A接口实验

广东海洋大学 微机原理实验报告 实验四   8255A接口实验

GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称8255A接口实验课程名称课程号
学院(系) 信息学院专业电气工程及其自动化班级电气1123 学生姓名许学儒学号201211631325 实验地点科技楼实验日期
一、实验目的
1.掌握TDN86/88教学系统的基本操作
2.掌握8255A可编程并行通信接口芯片的使用。

二、实验内容
通过按键来控制发光二极管的显示。

当k0按下,二极管从低到高循环点亮;按下k1,二极管从高到低循环点亮;其他按键所有的发光二极管闪烁。

三、实验步骤
1.硬件接口及接口地址如下,8255的数据线、地址线和控制线分别与系统总线相连,A、B、C三个端口以排针形式引出,供实验使用。

按要求接好电路。

2.根据接线及端口地址,编写源程序。

3.运行程序,拨动开关,查看LED是否能按照实验要求点亮。

四、调试结果及调试分析
五、结论与心得
实验难点:8255A的初始化,流水灯程序的编写,扩展并口的地址计算等。

心得:本次实验顺利完成,通过本次实验后掌握了8255A扩展并口的应用与相关程序的编写。

成绩指导教师日期
注:请用A4纸书写,不够另附纸。

第1页,共1页。

利用8255A芯片实现流水灯闪烁设计

利用8255A芯片实现流水灯闪烁设计

目录摘要 (2)第1章利用8255A芯片实现流水灯闪烁设计的概述 (2)第2章三种方案的论述与最终方案的确定 (2)2.1第一种方案的论述 (2)2.2第二种方案的论述 (5)2.3第三种方案(最终方案)的论证 (10)第3章测试结果及体会心得 (13)第4章致谢 (14)第5章参考文献 (14)附录1 方案一Proteus仿真电路效果图 (15)附录2 方案一源程序代码 (16)附录3 方案二Proteus仿真电路效果图 (18)附录4 方案二源程序代码 (19)附录5 方案三(最终方案)Proteus仿真电路效果图 (20)附录6 方案三(最终方案)源程序代码 (21)摘要:8255A是一种通用的可编程并行I/O接口芯片(Programmable Peripherial Interface),它是为Inter系列微处理器设计的配套电路,也可用于其它微处理器系统中。

通过对它进行编程,芯片可工作于不同的工作方式。

此次课程设计的目的就是利用端口和8255协同工作来实现LED显示功能,对8255A芯片进行编程使流水灯左移或右移,通过延时程序使流水灯进行顺序点亮。

通过这次课程设计掌握8255A的功能特点、工作原理以及显示器接口的基本原理与方法技术。

关键词:8086芯片AT89C51单片机8255A芯片LED流水灯第1章利用8255A芯片实现流水灯闪烁设计的概述流水灯在日常的生活中有着广泛的应用,例如,许多楼面上的彩灯广告就是应用了流水灯设计。

此次的课程设计的题目是利用了端口和8255A协同工作来实现LED显示功能,编写程序,使用8255的A口和B口均为输出,接8个或16个发光二极管,实现流水灯的显示效果。

在实验中8255A的A和B两个端口不能同时赋值,从而我们可以用通用寄存器BX对所需要赋值的数据进行存储,因为BX可以分从高8位寄存器BH和低8位寄存器BL两部分进行独立的操作,我们用寄存器BH对A口进行赋值,用寄存器BL对B口进行赋值,通过延时一段时间再对BH 和BL进行移位和输出,实现了流水灯的效果。

8255A与开关电路的实验

8255A与开关电路的实验

8255A与开关电路的实验一、实验目的和要求1.掌握8255A并行接口芯片的原理及片成方法;2.掌握读取开关状态的方法。

二、实验内容和原理1.实验内容编写程序,通过8255A借口芯片,读取开关状态,并在PC机屏幕上显示出来。

线路连接:实验中共有8个逻辑开关8255A端口C的8位连接8个。

线路连接如图1所示。

开关向上拨时,8255A相应的端口输出高电平“1”;开关向下拨时,相应端口输出低电平“0”。

流程图程序流程图如图2所示图2 8255A与开关电路程序流程图程序:DATA SEGMENTIOPORT EQU 0D880H-280HIO8255C EQU IOPORT+282H ;地址IO8255T EQU IOPORT+283HTAB DB '1 2 3 4 5 6 7 8 ',0DH,0AH,'$'MESS DB 'PLEASE ENTER ANY KEY WHEN READY!',0DH,0AH,'$' DATA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, ES:DATA, SS:STACK START: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AH,09HMOV DX,OFFSET MESSINT 21H ;显示提示信息Mov AH,01H ;按任意键开始INT 21HMOV DX,IO8255T ;控制端口MOV AL,99H ;控制字OUT DX,ALMOV DX,IO8255CIN AL,DXMOV BL,AL ;K1-K8信息送BL MOV AH,09HMOV DX,OFFSET TABINT 21H ;显示表头MOV CL,08H ;显示K1-K8 BBB: MOV DL,BLCALL DISPSHL BL,1LOOP BBBMOV AX,4C00HINT 21HDISP PROC NEAR ;显示字符子程序 PUSH AXPUSH CXMOV CL,07HAND DL,80HSHR DL,CLPOP CXADD DL,30HMOV AH,02HINT 21HMOV DL,20HINT 21HPOP AXRETDISP ENDPCODE ENDSEND START2.实验原理8255A由与CPU的接口电路,内容控制逻辑电路和外设连接的输入/输出接口电路三部分组成。

汇编语言实现通过8255A和4个开关控制实现8个LED灯全亮、全灭、从左至右、从右至左跑马灯式点亮

汇编语言实现通过8255A和4个开关控制实现8个LED灯全亮、全灭、从左至右、从右至左跑马灯式点亮

汇编语⾔实现通过8255A和4个开关控制实现8个LED灯全亮、全灭、从左⾄右、从右⾄左跑马灯式点亮汇编代码及解释如下:1 .MODEL TINY2 .STACK 1003 .DATA4 .CODE5 start:6 ; set segment registers:7 mov bl,0feh ;先将bl通⽤寄存器的值置为1111 1110(实验室的实验箱中电路没有设置反相器,故设为7个1,1个0)8 mov dx,273h ;将273h送⼊地址寄存器dx,根据课本P169中8255A的端⼝操作表,由于273h中3对应0011,故A1A0=11,对应数据总线->控制寄存器,即为写⼊控制字做准备9 mov al,10000010b ;将1000 0010写⼊al通⽤寄存器中10out dx,al ;将1000 0010设为8255A的控制字,根据课本P171中8255A的⽅式选择控制字可知D7...D1D0=1...10,故B⼝输⼊C⼝输出(以上四⾏为8255A的初始化程序)11 go: mov al,0ffh ;初始化al通⽤寄存器,初始化其值为1111 111112 mov dx,272h ;将272h送⼊地址寄存器dx,根据课本P169中8255A的端⼝操作表,由于272h中2对应0010,故A1A0=10,对应C⼝13out dx,al ;将al中的数据写⼊dx对应端⼝(即将al中数据写⼊C⼝)14 mov dx,271h ;将271h送⼊地址寄存器dx,根据课本P169中8255A的端⼝操作表,由于271h中1对应0010,故A1A0=01,对应B⼝15in al,dx ;将al中的数据读⼊dx对应端⼝(即将al中数据读⼊B⼝)16 and al,0fh ;对al寄存器中的8位值进⾏and(与)运算,只取后4位17 cmp al,0eh ;cmp⽐较al中的值和0e,若相等,则zf标志位为1,执⾏jz指令18 jz st119 cmp al,0dh20 jz nd121 cmp al,0bh22 jz rd123 cmp al,07h24 jz th125 jmp go26 st1: mov bl,0feh27 mov dx,272h28 mov al,00h29out dx,al30 jmp go31 nd1: mov bl,0feh32 mov dx,272h33 mov al,0ffh34out dx,al35 jmp go36 rd1: mov dx,272h37 mov al,bl38out dx,al39 rol bl,1 ;rol中的l代表left,rol为循环左移指令,移位后经过ffff次loop再次jmp到go段重新执⾏,下同40 mov cx,0ffffh41 lo1:loop lo142 jmp go43 th1: mov dx,272h44 mov al,bl45out dx,al46 ror bl,147 mov cx,0ffffh48 lo2:loop lo249 jmp go50 end start。

《微机系统与接口技术》8255流水灯实验报告

《微机系统与接口技术》8255流水灯实验报告

微机系统与接口技术:8255流水灯实验报告实验目的本次实验的目的是加深对8255芯片的理解,掌握8255口的输入、输出和中断原理,在此基础上,实现8255流水灯的控制。

实验原理8255芯片8255是一个可编程的并行输入 / 输出设备,拥有三个可编程I / O端口(Port A,Port B和Port C)。

篮牙分别对应着六个可用的I / O线路。

8255芯片可通过编程来设置8255设备的I / O方式,实现不同的应用。

8255芯片也支持中断请求(IRQ)和中断响应(IRQACK)。

流水灯流水灯是一种LED应用,即多个LED依次熄灭和点亮,形成一个具有动态效果同的图形。

在此次实验中,我们将通过8255口控制流水灯的状态,从而实现LED的流动效果。

实验步骤硬件实现本实验用到的硬件包括:8255芯片、LED灯、电路图板、电缆和电源。

在构建电路时,请按照以下步骤操作:1.首先,将8255芯片插入电路图板上的8255插槽中。

注意芯片的方向应该正确,否则芯片可能会被损坏。

2.将三个分别对应Port A, Port B和Port C的引脚与相应的电路元件进行连接。

在此,我们需要连接6个灯泡和6个电阻,其中每个电阻都应与一个电源连接。

3.最后,将电源输入并连接到电路图板,并打开电源。

软件实现为了控制流水灯的状态,我们将使用汇编程序编写代码,在8255口上进行读/写操作。

具体步骤如下:1.设置8255口的方式。

在此处,我们需要将8255口设置为模式0,即所有口都是单向的,其中Port A和Port B都是输出口,Port C则是输入口。

2.将Port A设为11111111。

这将设置第一个LED灯亮起。

3.然后,依次将Port A的状态更改为10111111,10011111,10001111等,以便LED灯以递减的顺序熄灭。

4.最后,在将Port A的状态设置为00000000之后,程序跳转到开始执行第二个LED的流动。

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

实验二:利用8255A实现拨动开关和LED流水点亮实验
安全0901 王宇航 09283020
实验报告
1.实验目的:
该实验的目的在于掌握8255A和微机接口的连接方法,了解8255A的基本的工作原理和编程方法。

掌握使用8255并行接口连接拨动开关,控制LED显示输出的技术。

2.实验步骤:
按图3-2将8255端口A与8位拨动开关连接,8255端口B与8位LED连接,选择8255 为方式0工作,编程序完成LED实时显示开关状态的功能,即每位LED对应一位开关状态。

开关往下拨动,对应LED灭,开关往上拨动,对应LED点亮。

当执行程序后LED按K1-K8初始设定的值点亮,并向右流动(8255A工作在方式0)。

同时在6位数码管显示:8255-1
编程涉及8255端口地址有四个,由于8255片选信号线与地址译码区的200~2FH连接,即8255的I/O偏移地址为0~3,加上前一个实验所获知的I/O基址,两者相加之后才是最终访问8255的I/O地址。

注意,该地址一定是一个16位数,所以I/O操作要使用IN AL,DX 和OUT DX, AL指令。

3.实验代码:
code segment ;定义代码段
assume cs:code
start:;初始化,设置A口B口的工作方式
mov dx,203h ;8255命令口地址
mov al,10010000b ;控制字
out dx,al
;让数码管显示8255-A
;显示A口输入的数并循环移位
xor ax,ax ;将ax清零
mov bl,0
lop:;自定义的标号
mov dx,200h ;给dx赋值(送到寄存器中)
in al,dx ;将200h送给寄存器al
;m ov dx,201h
;o ut dx,al ;把al的值送给dx端口
;j mp lop ;段内转移
cmp al,ah ;al和ah进行比较
jz next ;跳转到next
mov ah,al
mov bl,ah
rol bl,1 ;不带进位循环左移1位
next:
ror bl,1 ;不带进位循环右移1位
mov al,bl
mov dx,201h
out dx,al
mov cx,3fffh
lp: ; 从lp到最后都是表示显示8255-A这个字,它的作用是实现灯的延时,即保证灯的闪烁时间不至于过快,如果去除的话在人眼的视觉暂留情况下将可能产生连续不断的灯光闪烁,使得间隔时间太短。

;8
mov dx,211h
mov al,00000000b
out dx,al
mov dx,210h
mov al,7fh
out dx,al
mov al,00100000b out dx,al
;2 mov dx,211h
mov al,00000000b out dx,al
mov dx,210h
mov al,5bh
out dx,al
mov dx,211h
mov al,00010000b out dx,al
;5 mov dx,211h
mov al,00000000b out dx,al
mov dx,210h
mov al,6dh
out dx,al
mov dx,211h
mov al,00001000b out dx,al
;5 mov dx,211h
mov al,00000000b out dx,al
mov dx,210h
mov al,6dh
out dx,al
mov dx,211h
mov al,00000100b out dx,al
;- mov dx,211h
mov al,00000000b out dx,al
mov dx,210h
mov al,40h
out dx,al
mov dx,211h
mov al,00000010b out dx,al
;A
mov al,00000000b
out dx,al
mov dx,210h
mov al,77h
out dx,al
mov dx,211h
mov al,00000001b
out dx,al
loop lp ;转至lp
jmp lop ;跳至lop
hlt ; 使处理器处于暂时停机状态.
code ends
end start
4.实验程序流程图:。

相关文档
最新文档