利用8255A实现LED的流水点亮实验
- 格式:docx
- 大小:126.78 KB
- 文档页数:5
实验二 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端口地址为:288HB端口地址为:289HC端口地址为:28AH控制口地址为:28BH五、实验要求:1.做好实验预习和准备工作,并写出预习报告(要求写出实验的流程图及程序),熟练掌握8255A编程原理及编程方法。
2.实验操作的最低要求是要做出实验内容的基础部分,然后根据实际操作能力争取做出实验内容的提高部分及回答实验内容的第三部分问题。
电子信息工程系实验报告课程名称:微机原理与接口技术实验项目名称: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 并行口实验(二)一、实验目的掌握通过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四、实验结果本实验实现了双路口的,交通灯循环。
成绩实验名称:单片机系统简单扩展实验
一、实验目的
1、了解单片机系统的扩展方法
2、熟悉8255A在单片机系统扩中的使用方法。
3、熟悉仿真软件Proteus以及编程软件Keil的使用。
二、实验仪器
三、实验内容
四、实验原理
实验报告
五、实验步骤
步骤:
1、根据给定的实验要求,分析实验的目的以及实验要求。
2、通过计算机仿真软件Proteus,根据实验目的设计电路,并且绘制电路原理图。
3、根据自己设计的电路,编写控制程序。
4、调试所编写的控制程序,直至程序没有语法及语意错误,可以通过编译。
5、将所编写的无错误的程序下载至仿真软件,并进行调试,根据仿真结果修改程序。
6、重复上一步骤,知道仿真效果达到实验要求,即可完成。
六、实验程序
#include <reg51.h>
#include<absacc.h>。
《微机系统与接口技术》预习报告学院:计算机学院专业:网络工程班级学号:学生姓名:小发实验日期:指导老师:成绩评定:五邑大学计算机学院制表一,实验目的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 数码管显示实验一、实验目的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。
《微机原理与接口技术》项目报告项目名称:用8255A控制LED灯右循环亮学校:系别:班级:姓名:学号:指导老师:二零一二年十一月二日项目1:8255A控制LED灯右循环亮1.项目要求与目的(1)项目要求:根据开关状态,用8255A的PB端口控制8只LED发光二极管,PA口接一只开关,编写程序实现K0闭合,LED右循环亮。
(2)项目目的:①了解8255A控制方式的设置②掌握8255A的初始化及编程方法2.项目电路连接与说明(1)项目电路连接:如图5-4所示的粗线为要接的线。
接线描述——8255A的片选CS孔用导线接至译码处的插孔,8255A的PB0-PB7用导线接至LED0-LED7,PB0用导线接至开关K1。
(2)项目说明:Intel 8255A是常用的并行可编程接口芯片,它有3个8位并行输入输出端口,可利用编程方法设置3个端口是作为输入端口还是输出端口,在使用时,要多8255A进行初始化。
本项目PB口作为输出口,PA口作为输入口,工作方式0。
当开关K1闭合时,LED灯右循环亮。
3.项目电路图用8255A控制LED灯循环亮电路如图5-4所示。
电路由8086CPU芯片、8255A芯片、8只LED发光二极管和一只开关K0等组成。
图5-44.项目程序设计1)程序流程图用8255A控制LED灯循环亮的程序流程图5-5所示。
图5-52)程序清单用8255A控制LED灯循环亮的程序清单如下。
CODE SEGMENTASSUME CS:CODESTART: MOV DX,0F6H ;8255控制端口MOV AL,90H;PB输出,PA输入OUT DX,ALMOV DX,0F2H ;PB端口地址MOV AH,3FH; ;置LED(6、7)亮初始值BG: MOV AL,AHOUT DX,AL ; 点亮LED灯CALL DELAY;调延时子程序MOV DX,0F0H;PA开关(状态)端口地址IN AL,DX ;读开关的状态TEST AL,01H;PA0=0吗?(K0闭合吗)JNZ BG ;PA0≠0,转移ROR AH,2 ; PA0=0,右移MOV DX,0F02HJMP BGDELAY PROC NEAR ;延时子程序MOV BL,100DELAY2: MOV CX,374DELAY1: NOPNOPLOOP DELAY1DEC BLJNZ DELAY2RETDELAY ENDPCODE ENDSEND START。
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 正相反,由右向左,每次仅点亮一个灯,循环显示。
用汇编语言编写8255a控制一组发光二极管的亮灭用8255a 开关控制二极管以及在显示器上的显示1.实验原理利用8255a 实验对外接输出以及对微机的控制,利用外置开关模拟二进制数字的输入,发光二极管显示,微机显示屏显示2.实物连接图K0K1K2K3K4K5 K6K73.实物接线:K1~K8接PC0~PC7CS 连接218~21FPB0~PB7接D0~D74.流程图:YNPB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 CS PC0 PC1 PC2 8255A PC3 PC4 PC5 PC6 PC7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 开始选择控制字是否跳出A,B口输出,C口输入输入控制结束4.程序清单:DA TA SEGMENTDA TA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DA TA,SS:STACK START: MOV AX,DA TAMOV DS,AXTS:MOV AH,01HINT 21HCMP AL,’Y’JE PCCMP AL,’N’JE JSPC:MOV AH,21BHMOV AL,10001001BOUT DX,ALMOV DX,21AHPUSH DXMOV DX,219H OUT DX,ALMOV DX,218H OUT DX,ALPOP DXMOV DX,218H MOV BL,ALMOV CX.0008H BBB:MOV DL,BL CALL DISPSHR BL,1LOOP BBBJMP TSJS:MOV AX,4C00H INT 21HDISP PROC NEAR PUSH AXAND DL,01H ADD DL,30H MOV AH,02HINT 21HMOV DL,20HINT 21HINT 21HPOP AXRETDISP ENDP CODE ENDS。
目录一.内容 (2)二、技术资料 (2)三.原理 (7)四、电路图 (8)五、详细设计 (9)六.流程图 (11)七.代码 (11)八.调试过程及结果 (16)九.总结: (19)十、答辩 (20)十一、参考资料 (22)一.内容利用8255并行接口控制LED发光二极管的亮灭来模拟十字路口交通灯直行和转向的控制。
设计要求如下:设有一个十字路口,东西南北方向,初始态为4个路口的红灯全亮。
之后,直行车道东西路口的绿灯亮,南北路口的红灯亮,转向灯东西路口的红灯亮,南北路口的绿灯亮。
延迟一段时间后,直行道东西路口黄灯亮,南北路口红灯亮,转向灯保持不变。
闪烁一段时间后,直行车道东西路口的红灯亮,南北路口的绿灯亮,转向灯东西路口的绿灯亮,南北路口的红灯亮。
延迟一段时间后,东西路口绿灯亮,南北路口黄灯亮,转向灯保持不变,之后,重复上述过程。
二、技术资料1、74LS1381)、74138译码器在本实验中的作用:由于在对8255A写控制字时只有C口可以实现高四位输入,低四位输出,然而集成箱中的接口不够多,因此通过74138译码器实现动态的设置到计时2)、74138译码器的功能分析:Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7S3二进制译码器74138 S2S1A2 A1 A0图一、74138译码器的引脚排列图和逻辑符号表1-3:74138译码器真值表输入输出S1 S1+S3 A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 11 0 0 1 1 1 1 1 0 1 1 1 11 0 1 0 0 1 1 1 1 0 1 1 11 0 1 0 1 1 1 1 1 1 0 1 11 0 1 1 0 1 1 1 1 1 1 0 11 0 1 1 1 0 1 1 1 1 1 1 00 d d d d 1 1 1 1 1 1 1 1d 1 0 d d 1 1 1 1 1 1 1 12、8255A1)简介8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
实验一8255a控制LED灯输出实验要求1.识别仪器上的键盘输入,在LED灯上输出相应字符(0~F)2.将仪器上原来一行4个键,共4列16个键的键盘,对应固定的LED 灯,6个一组(共6个LED灯),第七个控制第一个灯,如此循环3.按住相应键后,显示相应键值在灯上,并且松开后依然不变,直到摁到其他键,6个灯只能亮一个,并且多次按一个键,灯会从左向右循环亮。
8255A引脚图sstack segment stackdb 1024 dup(0)sstack endsdata segmentLEDtb db 0C0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb 80h,90h,88h,83h,0c6h,0a1h,86h,8ehlq db ?data endscode segment 'code'assume cs:code,ds:data,ss:sstackstart:mov ax,datamov ds,axmov dx,06c6h ;初始化控制字81hmov al,10000001bout dx,all1: mov ah,11111110B ;操作灯亮的位置mov dx,06c0h ;通过端口A实现mov al,00000000B ;初始化数码管out dx,almov cx,4 ;循环计数l2:mov dx,06c2h ;通过B端口初始化mov al,ahout dx,almov dx,06c0hmov al,00000000Bout dx,alshl ah,1 ;移位,使亮灯移位or ah,1 ;使只有一个灯亮mov dx,06c4h ;C端口操作in al,dx ;读入行,看是否是哪行为0 and al,00001111b ;高4位清零cmp al,0Fhjnz l3loop l2cmp cl,0jz l1l3: mov bx,0not aland al,00001111bl4:inc blshr al,1cmp al,0jnz l4mov al,bldec alshl al,2mov ah,4sub ah,cladd al,ahinc almov lq,aldec lqs1: cmp al,6jg s2jmp l3s2:sub al,6jmp s1s3: ;输出字符dec almov cl,almov bl,01hshl bl,clmov al,blnot almov dx,06c2hout dx,almov dx,06c0hmov si,offset LEDtbmov bl,lqmov bh,0add si,bxmov al,[si]not alout dx,aljmp s1mov ax,4c00hint 21hcode endsend start实验二汇编 8255/8253 操作主板扬声器实验要求通过汇编语言程序操作8255/8253控制主板扬声器,演奏一段乐谱(真心英雄)。
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的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扩展接口。
实验四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流水灯控制实验一、实验目的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.,说明实验仪初始化成功,处于待命状态。
实验一8255A并行口实验(一)LED显示一、实验目的(1)掌握8255A的工作原理及使用方法。
(2)通过8255实验,掌握I/O设备与CUP接口的基本原理和编程方法。
二、实验内容用8255并行口控制LED发光二极管的亮灭,使12个LED循环一次点亮。
三、实验电路四、编程提示8255A可编程接口芯片具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0:基本输入/输出方式方式1:选通输入/输出方式方式2:双向选通工作方式设置8255A端口A、B工作在方式0并处于输出方式,由于LED二极管共阳极连接,故8255端口输出为低电平即0时,LED发光二极管点亮。
五、实验步骤(1)按实验电路图连接线路:○18255A芯片A口的PA0——PA7依次接L1——L8.○28255A 芯片B口的PB0——PB3依次接L9——L12。
(2)编写实验程序运行。
程序如下:Data segmentPA EQU 0FFD8HPB EQU 0FFD9HPC EQU 0FFDAHPCTL EQU 0FFDBHData endsCode segmentAssume cs:code,ds:dataSTARTP1:mov dx,PCTLMov al,80HOut dx,alMov al,55HPll:mov dx,PAOut dx,alMov cx,0800HLoop $Not alCode endsEnd STARTP1实验三8255A并行口实验(三)控制交通灯一、实验目的掌握通过8255A并行口传输数据的方法,以控制发光二接管的亮与灭。
二、实验内容用8255作输出口,控制十二个发光二极管然灭,模拟交通灯管理。
三、实验电路四、编程提示(1)通过8255A控制发光二极管PB3、PB0、PA5、PA2对应黄灯,PB1、PA6、PA3、PA0对应红灯,PB2、PA7、PA4、PA1对应绿灯、以模拟交通灯的管理。
(2)要完成本实验,必须先了解交通灯的亮灭规律,设有一个十字路口1、3为南北方向,2、4为东西方向。
目录摘要 (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进行移位和输出,实现了流水灯的效果。
※※※※※※※※※※※※※※※※※※※※※※※※微机原理课程设计报告书课题名称 8255 并行接口流水灯显示实验姓名学号院、系、部物理与电信工程系专业指导教师一、设计任务及要求:设计任务:流水灯显示实验。
编写程序,使8255 的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
要求:指导教师签名:2009年6月8日二、指导教师评语:指导教师签名:2009 年6月8 日三、成绩验收盖章2009年6 月8日8255 并行接口流水灯显示实验一、设计目的1. 学习并掌握8255 的工作方式及其应用;2. 掌握8255 典型应用电路的接法。
二、设计要求流水灯显示实验。
编写程序,使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所示图2-6-1 8255内部结构及外部引脚图(a)工作方式控制字(b)C口按位置位/复位控制字图2-6-2 8255控制字格式图2-6-5 8255流水灯实验接线图四、使用说明使8255的A口和B口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
微机系统与接口技术: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的流动。