实验一、LED显示控制、82C55A并行接口数码管显示控制实验
实验一二 8255可编程并行接口

实验一 8255可编程并行接口一、实验目的掌握8255方式0的工作原理及使用方法,用8255实现开关状态显示、十字路口交通信号灯的模拟控制。
二、实验要求1.编写程序,设定8255的PA端口为开关量输入,PC口为开关量输出,要求将PA端口的开关状态用PC端口的对应的发光二极管显示。
2.编写程序,设定8255的PC端口为输出端口,控制四个双色(组合为红、绿、黄)灯,按交通信号灯要求模拟显示。
三、实验内容(一) 开关量显示按要求连接电路:将实验箱左下方K1~K8各点用连线连至8255的PA0~PA7;将DL1~DL8用连线连至8255的PC0~PC7;8255的片选CS用连线连至译码处的200~207插孔。
图1为部分电路示意图。
8255的PA端口接逻辑电平开关的端子K1~K8作为输入,PC端口接发光二极管显示电路的输入端子L1~L8。
根据实验要求1,编写程序从8255的A口输入数据(数据由开关设定),再从C口输出,显示在8个发光二极管上。
5.运行程序时,可用单步监控方式观察程序运行状态。
实验思考1.用编程的方法改变输出状态显示,即ON对应LED灭,OFF对应LED亮。
2.能否改变程序加载的段地址为8200H,偏移地址为2000H?在何处改动?3.通讯的波特率9600bps表示什么?4.地址选通(译码器输出)200H~207H表示何意?5.若连接线有断线,如何判断?6.若RS232通讯连接不上,如何处理?实验二交通信号灯显示交通信号灯显示按要求连接电路:将DG1~DG4,DR1~DR4用连线连至8255的PC0~PC7,8255的片选CS信号连至译码处的200~207插孔。
图2是一个用8255实现十字路口交通灯的模拟控制的电路。
图中双色发光二极管HL4、HL1作为南北路口的交通灯与8255的PC7、PC6、PC5、PC4相连;HL3、HL2作为东西路口的交通灯与8255的PC3、PC2、PC1、PC0相连。
实验1:8255开关控制实验

微机实验报告书学号:姓名:班级:同组名单:实验日期: 2012.12.21实验题目: 8255可编程并行接口实验目标:掌握8255方式0的工作与原理及使用方法。
(功能:开关K0~K7控制发光二极管L0~L7的状态。
)解题思路:1、实验硬件连线如图 6 左侧,8255c口接逻辑电平开关K0-K7,a口接LED显示电路L0-L7。
2、编程从8255c口输入数据,再从A口输出。
程序框图:见上图6右侧关键问题分析:1、8255A的使用。
8255A是一种通用的可编程并行输入输出接口芯片,有3个通道3种工作方式(40引脚)。
运用于微机系统实现并行数据的输入输出,能并行传送8位数据。
可以利用这些接口输入各种开关量和数字量数据,如各种控制开关,按钮状态等,也可以输出控制其他外设,如各种现实指示灯等。
2、按键判断。
调用DOS功能的6号子功能判断是否有按键,即当(DL)=0FFH 时,执行键盘输入操作。
若标志ZF=0,AL中放入字符的ASCII码;若标志ZF=1,表示无键按下。
这种调用用来检测键盘是否有键按下,但不等待键盘输入。
3、程序结束判断。
用条件转移指令,如若没有按键,则程序继续自PC输入,PA端输出,若有按键,则程序结束,返回DOS。
程序清单:ioport equ 0c800h-0280h ;计算机的输入端口地址为0c800,设置地址偏移量io8255a equ ioport+288hio8255b equ ioport+28bhio8255c equ ioport+28ahcode segmentassume cs:codestart: mov dx,io8255b ;选择8255a的控制字地址,设8255a为C口输入,A口输出mov al,8bh ;10001011B,PA输出,PC输入,均为方式0out dx,alzby: mov dx,io8255c ;从PC口输入一字节数据in al,dxmov dx,io8255a ;从PA口输出刚才自PC口所输入的数据out dx,almov dl,0ffh ;调用DOS系统功能调用6号子功能判断是否有按键mov ah,06hint 21hjz zby ;若无,则继续自PC口输入,PA口输出mov ah,4ch ;有按键,则程序结束,返回DOSint 21hcode endsend start运行结果:拨动K1~K8,L0~L7会跟着亮灭。
微机原理8255A并行接口按键数码管显示讨论报告

讨论课报告学校:上海电机学院 班级:电子13XX 学号:XXXXXXXX 姓名:WX一、题目:通过8255A 并行接口,8086CPU 连接LED 数码管、4X4矩阵键盘。
按下任意键,数码管显示对应键号。
二、硬件设计讨论问题:(1)CPU8086与8255A 的连接问题:● 复用引脚上的数据信号与地址信号如何分离?画出电路连接示意图,解释实现的方法。
答:将8086上的20位复用数据地址引脚分别接数据缓存器和地址锁存器在8086总线周期的T1期间作为存储器/IO 地址总线将地址锁存在地址锁存器中,另外期间作为数据总线将8位数据缓存在数据缓存器中。
缓存器与8255A 数据引脚相连,地址锁存后经过译码与地址线相连。
● 假设8255A 的芯片地址范围为80H~86H (偶地址),利用74LS138译码器实现8255A 芯DENDT/R8086AB/TBALEM/IO WRRD数据缓存 地址锁存地址译码D7~D0A0 A18255A CS WR RDA15~A3A1 A2片的片选控制,画出电路连接示意图,解释译码电路的设计原理。
8086系统有16根数据线,而8255A 只有8根数据线,将8255A 的8条数据线与低8位数据线相连。
此时8255A 的4个端口地址必须为偶地址,即8086寻址8255A 时A0脚必须为低,将8255A 的A0、A1分别接8086的A1、A2脚。
由图可见,8255A 的数据线D7~D0与8086的低8位数据总线D7~D0相连,A0必须总等于0,用地址线的A2、A1来选择片内4个端口。
图中地址线A7接译码器的G1,M/IO 与G2a 相连,A6、A5接或门输入端,或门输出与G2b 相连。
当A7A6A5=100,A4A3A0=000时,Y0=0,选中8255A ,4个端口地址分别为80H 、82H 、84H 和86H ,对应于8255A 的A 口、B 口、C 口和控制寄存器。
(2)LED 数码管与8255A 的连接问题: ● 数码管采用共阴极连接,需要驱动电路,请画出与8255APA 口的连接示意图,简要说明。
实验报告3.2(正式报告)

3.2 8255A基础实验一、实验名称8255A基础实验二、实验目的1.熟悉GX-8000试验系统;2.进一步熟悉汇编语言程序的设计、调试过程;3.掌握可编程并行接口8255A方式0的工作原理和汇编方法;三、实验内容1. LED静态显示:在8个LED上显示组内一个同学学号的后两位对应的二进制数。
2. 开关数显示:使用8255A的A口和B口,将8个逻辑开关的状态分别显示在8个LED上。
3. 七段数码管显示:在八个七段数码管上显示组内另一名同学学号。
四、实验部分1.LED静态显示实验(1)若使用8255A的A口输出学号,则实验连线如图3.6所示。
(2)根据实验要求画出程序流程图,如图3.7所示。
(3)完善8255A初始化程序:将A口设置为方式0,输出。
MOV AL, 80H ;填写8255A控制字;A口输出,方式0MOV DX, 0283H ;填写8255A控制口地址OUT DX,AL ;写8255A控制字(4)编写汇编语言程序,源代码如下。
完善该程序,并为标有“;”的代码行添加注释。
DATA SEGMENT ;定义数据段ID DB 00110011B ;定义学号变量DATA ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX;此处加入8255A初始化程序MOV AL, 80H ;填写8255A控制字;A口输出,方式0MOV DX, 0283H ;填写8255A控制口地址OUT DX,AL ;写8255A控制字MOV AL,IDMOV DX,00D0HOUT DX,AL ;CODE ENDSEND STAR 在icode集成开发环境中编译、链接、运行该程序,观察程序运行结果。
实验结果:学号所对应的二进制位所对应的LED灯正确的亮了。
2. 开关数显示实验(1)使用8255A的B口读入8个逻辑开关的状态数据,然后通过A口将状态数据输出到LED显示。
实验七 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实现LED的流水点亮实验一、实验目的该实验的目的在于让学生掌握8255A和微机接口的连接方法,了解8255A的基本的工作原理和编程方法。
二、实验内容PA口接8个拨动开关K1-K8,PB口接8个LED。
初始由开关K1-K8设定8位不同的值,当执行程序后LED按K1-K8初始设定的值点亮,并向右流动(8255A工作在0方式)。
选择完成在数码管上显示“8255-A”。
三、实验接线图图1-3 实验连线图四、实验编程提示根据难易程度,学生可以选择完成下列两个程序之一:1、LED右流水仅仅取决于第1次开关的位置,一旦LED流水开始,LED流水的次序将不再理睬开关位置的重新变化。
2、在LED右流水中,如果开关的位置发生了变化,LED右流水从变化的位置重新开始。
程序2的提示:程序要能检测到某个时间开关状态的变化,并针对变化后的开关状态右流水,因此程序中要有两个变量,一个存当前开关的状态以检测开关状态是否发生了变化,一个存LED右流水的状态,以便使LED连续右流动。
为了使流水显示明显,每个位置应加延时程序。
五、实验步骤1、根据原理图正确连接实验线路(需要连接红线)。
2、正确理解实验原理。
3、编写实验程序,并上机调试,观察实验结果。
六、实验结果程序:code segment ;定义代码段assumecs:codestart: ;初始化,设置A口B口的工作方式mov dx,203h ;8255命令口地址mov al,10010000b ;控制字outdx,alxorax,ax ;将ax清零mov bl,0lop: ;自定义的标号mov dx,200h ;给dx赋值(送到寄存器中)in al,dx ;将200h送给寄存器al;mov dx,201h;out dx,al ;把al的值送给dx端口;jmp lop ;段内转移cmpal,ah ;al和ah进行比较jz next ;跳转到nextmovah,almovbl,ahrol bl,1 ;不带进位循环左移1位next:ror bl,1 ;不带进位循环右移1位moval,blmov dx,201houtdx,almov cx,3fffhlp: ;从lp到最后都是表示显示8255-A这个字,它的作用是实现灯的延时,即保证灯的闪烁时间不至于过快,如果去除的话在人眼的视觉暂留情况下将可能产生连续不断的灯光闪烁,使得间隔时间太短。
实验五 8255并行接口实验
实验五 8255并行接口实验实验目的:1、学习并掌握8255的各种工作方式及其应用。
2、学习在系统接口实验单元上构造实验电路。
相关理论知识:一、8255可编程并行接口芯片介绍8255是Intel 公司生产的通用并行IO 接口芯片,它具有ABC 三个并行接口,能在以下三种方式下工作:方式0:基本输入/输出方式 方式1:选通输入/输出方式 方式2:双向选通工作方式8255工作方式控制字及C 口置位/复位控制字如下图所示:ABC 三60H~63H 。
8765432121222319208.50 8255A 工作方式控制字格式A 组控制B 口方式选择输出01010101X输入输出输入方式0方式1方式2B 组控制C 口(低4位)B 口方式选择输出010100输入输出输入方式0方式1C 口(高4位)D 7D 6D 5D 4D 3D 2D 1D 0A 组控制B 口方式选择输出010100101X 输入输出输入方式0方式1方式2B 组控制C 口(低4位)B 口方式选择输出010100输入输出输入方式0方式1C 口(高4位)实验内容及实验步骤:一、8255接口应用实验(1)按图所示实验线路编写程序,使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。
用一组开关信号接入端口B,端口A输出线接至一组发光二极管上,然后通过对8255芯片编程来实现输入/输出功能。
STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART: MOV AL, 82HOUT 63H ,ALA1:IN AL,61HOUT 60H,ALJMP A1CODE ENDSEND START实验步骤:(1)按图接线,接通电源。
(2)输入程序并检查无误,经汇编、连接后装入系统。
(3)运行程序,拨动开关组,观察发光二极管与开关组状态的对应关系。
led数码管显示控制实验报告
led数码管显示控制实验报告实验名称:LED数码管显示控制实验实验目的:1.了解LED数码管及其工作原理。
2.学习如何控制LED数码管显示数字。
3.加强对单片机控制IO口的编程能力。
实验器材:1.STC89C52RC单片机开发板2.数码管(共阳、共阴)3.杜邦线实验原理:LED数码管是一种数字显示组件,在工业控制、计算机等领域都有广泛应用。
LED数码管在显示数字时,通过LED管来显示数字,根据不同的管脚状态,控制LED管的导通和隔离,间隔时间来控制亮和灭的时间,从而显示出不同的数字。
在STC89C52RC单片机上,通过控制IO的高低电平来控制数码管的显示。
当要显示的数字为0~9时,需要将相应的IO输出低电平,同时将其他IO输出高电平,从而实现数字的显示。
实验步骤:1.将共阳数码管的正极连接到P0口(注意极性),并将共阴数码管的负极连接到P0口(注意极性)。
2.将STC89C52RC单片机开发板连接到电源,将USB转串口线连接到电脑。
3.打开Keil uVision5软件,创建一个新工程,配置完工程后编写控制代码(具体代码见附录)。
4.编写完成后,将代码下载到单片机中,开始实验。
实验结果:成功实现了数字0到9的显示。
通过实验,我们了解了LED数码管的工作原理,学会了控制单片机IO口进行数字的显示,加强了对单片机编程的掌握能力。
附录:代码如下:```#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit dula = P2^6;sbit wela = P2^7;uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=114;y>0;y--);}void Display(){uchar i;for(i=0;i<10;i++){P0 = table[i]; dula = 0;dula = 1;delay(500);}}。
最新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在并行接口通信中具有重要作用,能够提高数据传输效率,适用于需要高速并行数据传输的场合。
8255A可编程并行口实验_2
4.2 8255A可编程并行口实验1. 实验目的(1)掌握并行接口芯片8255A和微机接日的连接方法。
(2)掌握并行接口芯片8255A的工作方式及其编程方法。
2. 实验内容(l)实验原理。
实验原理如图4-I所示, PC口8位接8个开关K1一K8, PB口8位接8个发光二极管, 从PC口读入8位开关量送PB口显示。
拨动K1~K8,PB口上接的8个发光二极管LO~L7对应显示KI~KS的状态。
(2)实验线路连接。
1)8255A芯片PC0-PC7插孔依次接K1~K8。
2)8255A芯片PB0~PB7插孔依次接L0-L7。
3)8255A的CS插孔CS_8255接译码输出Y7插孔。
3. 实验软件框图参考流程图如图4-2所示。
4. 实验步骤(1)按图4-1连好线路。
(2)运行实验程序。
在数码管上显示“8255-1", 同时拨动K1~K8, L0~L7会跟着亮灭。
5. 实脸软件参考程序请参见本书电子课件, 文件名为H8255-1.ASM。
CODE SEGMENT ASSUME CS:CODE IOCONPT EQU 0073H IOCPT EQU 0072H IOBPT EQU 0071H START: MOV CX,8FFFH DELAY0:LOOP DELAY0MOV AL,89H MOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED1: MOV DX,IOCPT IN AL,DXMOV DX,IOBPTOUT DX,ALMOV CX,8FFFH DELAY:LOOP DELAYJMP IOLED1 CODE ENDSEND START6. 思考题(1)修改程序实现一个开关控制2个或3个灯亮灭。
IOLED1: MOV BL,ALMOV CX,4ROL AL,CXADD AL,BLMOV CX,8FFFHDELAY:LOOP DELAYJMP IOLED1(2)添加延时程序, 去掉开关连线, 实现8个灯循环亮灭。