简单并行接口实验报告
- 格式:docx
- 大小:335.86 KB
- 文档页数:6
实验二 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.实验操作的最低要求是要做出实验内容的基础部分,然后根据实际操作能力争取做出实验内容的提高部分及回答实验内容的第三部分问题。
微机接口技术实验报告并行接口实验系别: 计算机科学与技术完成时间:2012-5-15一、实验目的1.熟悉并行接口电路;2.掌握8255并行接口芯片及8253定时器的应用及其编程技术。
二、实验内容及要求通过对8255芯片的编程,使得实验台上的步进电机按顺时针或逆时方向转动,同时扬声器(模拟电子琴)做高8度和低8度循环发音:1. 控制步进电机转动和电子琴发音;2.使用K0控制步进电机顺逆时针转动和电子琴发高低音;3.使用K1控制步进电机和电子琴速度(分快和慢两种速度);4.使用K2启动和停止步进电机转动和电子琴发音。
三、实验原理1、可编程并行芯片8255A并行接口即同时在多根I/O线上,以数据字节或字为单位实现CPU通过I/O端口与I/O 设备或被控制对象之间的信息传递,如计算机与打印机,A/D和D/A转换器,开关量接口等。
8255及其改进型8255A是最广泛应用的并行I/O接口。
8255A的主要性能参数如下:(1)8255A内共有4个端口,分别为口A、口B、口C和控制端口。
前三个端口为8位并行I/O端口,常用于传送数据信息;控制端口是用于接收CPU送来的控制命令,即控制字。
(2)8255A芯片可以三种不同的工作方式与I/O设备进行数据传输,具体方式由控制字来设定。
(3)8255与CPU之间交互信息可以使用中断方式进行。
它内部有三个中断源,分别产生与方式1(1个)和方式2(2个)中。
(4)8255A所有信号与TTL信号兼容,可直接与CPU的三总线连接使用。
(5)8255A使用单一的+5V电源,单项时钟。
8255A的三种工作方式:方式0——基本的输入/输出方式,方式1——选通的输入/输出方式,方式2——双向的输入/输出方式。
本次实验采用方式0,将口A和口B作为输出,分别控制步进电机的旋转和电子琴的发音,口C作为控制输入端。
根据端口编址及寻址方式,设定端口A的地址为288H,端口B地址为289H,端口C地址为28AH,控制端口的地址为28BH。
实验一并行口实验一、实验目的1、掌握51汇编语言设计和调试方法。
2、掌握protues软件平台的操作步骤。
二、实验内容及步骤(一)、在单片机外部扩展8KB RAM芯片6264,其地址范围为0000H~1FFFH。
将片内ROM从1000H开始的存放的15个数据转存到外部RAM 1000H开始的单元中。
请编写程序实现。
查看并给出外部RAM地址为1000H~100EH的内容。
(提示:程序中定义的数据存放在内部ROM中。
ORG 1000HData1:DB 11h,22h,33h、、、、、FFh )图1 电路原理图实验步骤:1、运行protues 7软件。
或者双击打开实验一中的shiy1_P0.DSN。
2、记事本编辑51汇编源程序。
3、按图2~图4步骤添加、编译源程序。
4、编译通过后,运行程序。
观察8051 CPU寄存器、RAM、SFR的内容,及外部RAM 1000H开始的内容。
步骤见图5~图9。
图2 添加源代码图3 编译源代码图4 编译成功提示图5 运行程序图6 选择8051 CPU寄存器、RAM、SFR图7 打开8051 CPU寄存器、RAM、SFR图8 暂停运行程序,打开外部RAM(即U3)窗口(二)编写汇编程序,用P1口控制LED灯,显示为流水灯的形式。
按图10所示电路原理图,搭接电路,编写程序,实现功能。
图10 P2口控制流水灯显示(三)实验箱的连接1、将实验箱与计算机通过USB口连接。
2、运行桌面上的下载器“风标电子ISP”。
3、选中“擦除芯片”、“编程Flash”、“校验Flash”。
然后点击“打开文件”,选择由自己编写的汇编程序成功编译生成的hex文件,最后点击“自动编程”将程序下载到实验箱的单片机。
三、实验报告1、实验一程序:ORG 0000HAJMP STARTORG 80HSTART:MOV DPTR,#1000HMOV R7,#0EHLP: MOV A,#0HMOVC A,@A+DPTRMOVX @DPTR,AINC DPTRDJNZ R7,LPSJMP $ORG 1000HDB 11H,22H,33H,44H,55H,66H,77H,88H,99H,0AAH,0BBH,0CCH,0DDH,0EEH,0FFH AJMP $END2、实验二程序ORG 0000HAJMP STARTORG 80HSTART: MOV R2,#7MOV A,#0FEH ;ACC中先装入LED1亮的数据(二进制的11111110)MOV P1,A ;将ACC的数据送P1口LOOP1: RL A ;将ACC的数据左移一位MOV P1,ALCALL DELAYDJNZ R2,LOOP1MOV A,#0FEHMOV P1,AMOV R3,#8LOOP2: RR AMOV P1,ALCALL DELAYDJNZ R3,LOOP2AJMP STARTORG 1000HDELAY: MOV R0,#200 ;延时子程序DL1: MOV R1,#250DL2: NOPNOPDJNZ R1,DL2DJNZ R0,DL1RETEND。
实验报告实验中学 电子信息技术实验教学中心专业年级 2011级测控技术与仪器 实验课程 微机原理及实验 姓 名 实验名称 实验10:并行接口实验 学 号 提交日期2013.11.28成 绩一、实验目的1.掌握8255的基本工作原理和编程方法;2.掌握8255与简单输入/输出设备的连接与控制方法。
二、实验内容利用一片8255实现以下功能:(编写成两个完整程序)1.将8255的A 口接8个LED ,L0∽L7,8255的B 口接8个开关K0∽K7,编程实现当Ki 闭合时,L0∽Li 的LED 亮。
若同时有多个开关闭合,以最高序号的开关为准,若无开关闭合,都不亮。
按任意键退出。
2.将8255的A 口接8个LED ,L0∽L7。
从键盘接收单字符,当接收字符为“0”∽“7”时,对应的L0∽L7亮,若为其它字符,LED 都灭。
按ESC 键退出。
三、实验步骤(1). 源程序:①.将8255的A 口接8个LED ,L0∽L7,8255的B 口接8个开关K0∽K7,编程实现当Ki 闭合时,L0∽Li 的LED 亮。
若同时有多个开关闭合,以最高序号的开关为准,若无开关PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA78255PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7LKCS闭合,都不亮。
按任意键退出。
data segmenttab db 1,3,7,15,31,63,127,255 ;对应开关0,1,2,3,4,5,6,7data endscode segmentassume cs:code,ds:data ;段说明go: mov ax,data ;数据段填装mov ds,axmov dx,0c003hmov al,10000010b ;设置8255A的A口工作在方式0,输出,B 口工作在方式0,输入out dx,all1: mov dx,0c001hin al,dx ;读取从PB端口输入的数据mov dx,0c000hmov cx,8 ;置循环次数l2: test al,128 ;测试al与128的大小jnz l3 ;不等时转l3shl al,1 ;左移一位loop l2 ;循环l2mov al,0;mov dx,0c000hout dx,al ;PA端口清0jmp l1l3: mov si,cxmov al,tab[si-1] ;将开关序号存放在al中mov dx,0c000hout dx,al ;PA端口输出开关序号mov ah,6 ;判断是否有按键mov dl,0ffh ;AH=06 直接控制台I/O DL=FF(输入)DL=字符(输出) AL=输入字符int 21hjz l1mov ah,4ch ;结束int 21hcode endsend go②.将8255的A口接8个LED,L0∽L7。
并行接口实验并行接口是指在计算机系统中,采用多个数据传输通道同时传输数据的接口形式。
由于多个通道同时进行数据传输,所以并行接口的传输速度比串行接口快很多,因此被广泛应用于高速数据传输的领域,如服务器、高速网络接口等。
本次实验我们将学习如何配置并使用并行接口,以及如何实现数据的并行传输。
首先,我们需要准备以下硬件设备:1. 具有并行接口的计算机2. 并口线3. LED灯4. 电阻(1kΩ)5. 连接线接下来,我们将详细介绍实验步骤:步骤1:连接并口线首先,我们需要将并口线的连接头插入计算机的并行接口,然后将另一端连接到LED灯的正极。
为了防止短路现象的发生,我们需要在LED灯的负极和接口线之间接入一个电阻(1kΩ)。
步骤2:配置计算机并行接口在计算机中打开设备管理器,并找到“并口”这一设备,并在其属性中查看其端口地址。
根据实际情况配置并行接口的端口地址,可以选择在BIOS中修改端口地址,也可以在控制面板中的“设备管理器”中进行端口配置。
步骤3:编写代码接下来,我们需要编写一段程序,以控制LED灯的开关。
这里我们使用C语言进行编程,代码如下:#include <stdio.h>#include <conio.h>#include <dos.h>这段代码的功能是在并行接口的端口地址为0x378的位置上输出0xFF,即打开LED灯,然后延迟1秒后立即关闭LED灯。
步骤4:编译程序我们需要使用TurboC++编译器将上述代码编译成可执行文件,首先需要在TurboC++的主界面中选择“New” 创建一个新的工程,然后在工程中添加上述代码,并选择“Compile”进行编译,编译成功后即可得到可执行文件。
在DOS命令行中,进入可执行文件所在的目录,输入可执行文件名,程序即可运行,LED灯将在1秒内闪烁一次。
至此,我们已经完成了并行接口实验的所有步骤,通过本次实验我们可以学习到如何使用并行接口和实现数据的并行传输,同时也可以更加深入地了解计算机的硬件结构和软件编程知识。
并行I/O接口实验报告一、实验目的1.掌握GPIO IP 核的工作原理和使用方法。
2.掌握IO接口程序控制方法3.掌握中断控制方式的IO接口设计原理4.掌握中断程序设计方法二、实验任务使用查询、中断两个方式做独立式开关输入,将开关的状态显示到console。
三、硬件平台建立1.硬件框图2.通过xps建立最小系统,打开system.xmp文件3.添加和配置GPIO核,并改写ucf文件4添加和配置中断控制器IP核5产生外部GPIO连接四、软件平台建立1.软件流程图2.查询代码/** gpio.c** Created on: 2017-5-24* Author: 201511*/#include "xparameters.h"#include "xgpio.h"#include "xintc.h"#include "stdio.h"void Initialize();void Delay_50ms();void PushBtnHanler(void*CallBackRef);void SwitchHandler(void*CallBackRef);XGpio Dips;XIntc intCtr1;int pshDip;int state1;int main(){Initialize();xil_printf("\r\nRunning GpioInputInterrupt!\r\n");while(1){if(pshDip) //若按下按键,则打印信息{xil_printf("Switch Interrupt Trigger!!!the state is 0x%X\n\r",state1);pshDip=0;}}return 0;}void Initialize(){//初始化Dips实例,并设定其为输入方式XGpio_Initialize(&Dips,XPAR_DIP_DEVICE_ID);XGpio_SetDataDirection(&Dips,1,0xff);//初始化intCtrl实例XIntc_Initialize(&inCtrl,XPAR_AXI_INTC_0_DEVICE_ID);//GPIO中断使能XGpio_InterruptEnable(&Dips,1);XGpio_InterruptGlobalEnable(&Dips);//对中断控制器进行中断源使能XIntc_Enable(&intCtrl,XPAR_AXI_INTC_0_DIP_IP2INTC_IRPT_INTR);//注册中断服务函数XIntc_Connect(&intCtrl,XPAR_AXI_INTC_0_DIP_IP2INTC_IRPT_INTR,(XInterruptHandler)SwitchHandler,(void*)0);microblaze_enable_interrupts(); //允许处理器处理中断;//注册中断控制器处理函数microblaze_register_handler((XInterruptHandler)XIntc_InterruptHandler,(void*) &intCtrl);XIntc_Start(&inCtrl,XIN_REAL_MODE); //启动中断控制器}void Delay_50ms(){int i;for(i=0;i<5000000;i++);}void SwitchHandler(void*CallBackRef){state1=XGpio_DiscreteRead(&Dips,1); //读取Switch开关的状态值pshDip=1;XGpio_InterruptClear(&Dips,1); //清除中断位置}3.端口修改3.五、实验小结在这个实验中,主要分为两个部分,一个部分是硬件设计,另一个部分是软件设计,对我来说在硬件设计部分容易在操作步骤上出问题,很容易点错,而软件上,虽然代码比较少,但是不太容易一理解,由于采用API函数,所以会持续性的调用函数。
并行接口8255实验一、实验目的1.掌握可编程并行接口电路8255的工作原理及初始化方法2.掌握8255在实际应用中的硬件连接及编程应用二、实验要求根据实验室现有条件,针对实验任务,设计实验方案并进行实现三、实验内容通过使用8255,8253实现一个倒计时设备,具体的方法是,用户逐个打开开关,然后8255定时读取开关状态并输出给二极管,当所有灯都亮起时,输出一个高电平给Gate0,对8253而言,要求每1s查看一次用户是否摁下了所有开关,一旦是这样蜂鸣器就会响起来,然后给8253送一个锁存命令,查看计数器1和计数器0当前的计数值,锁存两个计数值,便于后期的计算和数据处理。
四、实验线路图其中,8255的各个端口分别是:F0H,F2H,F4H,F6H 8253的各个端口分别是:F8H,F9H,FAH,FBH 五、实验程序清单CSEG SEGMENTASSUME CS:CSEGSTART:;初始化8255和8253MOV DX,F6HMOV AL,1001000BOUT DX,ALMOV DX,FBHMOV AL,01110110BOUT DX,ALMOV AL,00110110B;选择8253计数器1MOV DX,F8HMOV AL,0OUT DX,ALMOV AL,10OUT DX,AL;选择8253计数器0MOV DX,FGHMOV AL,0OUT DX,ALMOV AL,10MOV CX,2000H;用CX延时,读取开关状态 NEXT:OUT DX,ALMOV DX,F2HIN DX,AL;输出开关状态,此时亮起灯,如果灯全亮起,蜂鸣器响起MOV DX,F4HOUT DX,ALLOOP NEXT;锁存两个计数器的计数值MOV AL,00110110BMOV DX,F8HOUT DX,ALMOV AL,01110110BMOV DX,F9HOUT DX,ALCSEG ENDSEND START六、实验总结及体会1.实验总结:本次实验中我设计了8086连接8253和8255的相关电路,并且与输出设备相连接,也重新复习了数电的知识,通过学习微机原理和汇编语言这门接近底层的语言我意识到代码与底层的交互是怎样实现的,也有利于我学习其他的高级语言。
微机原理实验报告实验名称8255可编程并行接口实验一、实验目的1、掌握8255芯片结构及工作方式,2、熟悉8255并行口扩展的编程。
二、实验设备1、Lab6000p实验教学系统;2、IBM-PC机三、系统中的8255模块Lab6000p实验箱中的8255模块连线如下图所示:图1 8255模块的连线AD0~AD7、A0、A1、RESET、/WR、/RD已分别连至系统总线DB0~DB7、AB0、AB1、RESET、/IOW、/IOR;8255_CS、PA口、PB口、PC口引出留给用户连接。
三、实验内容和实验步骤1、8255基本输入输出方式――开关控制LED显示1)实验要求开关拨上LED亮,开关拨下LED灭。
2)电路连接图2 电路连接图8255_CS连至地址译码/CS0,PA口连至LED电平显示模块,PB口连至开关电路。
3)程序框图图4 程序框图4)程序代码见附录程序2.15)实验步骤1、在Lab6000p实验箱上完成连接电路;2、开启计算机电源,开启Lab6000p实验箱电源;3、启动WAVE6000软件;4、确认WAVE6000与Lab6000p连接;5、输入源代码;6、编译源代码(F9);7、单步运行源代码(F8),观察每条指令执行结果;8、连续运行程序,上下拨动开关观察LED显示情况。
2、8255选通输入方式――开关控制LED显示1)实验要求开关上的逻辑信号在选通信号有效时读入微处理器,并送到LED显示。
2)电路连接将选通信号(单脉冲)接到PC2,其余连线和实验1中的相同。
3)程序框图图5 程序框图4)程序代码见附录程序2.25)实验步骤1、在Lab6000p实验箱上完成连接电路;2、开启计算机电源,开启Lab6000p实验箱电源;3、启动WAVE6000软件;4、确认WAVE6000与Lab6000p连接;5、输入源代码;6、编译源代码(F9);7、单步运行源代码(F8),观察每条指令执行结果;8、连续运行程序,上下拨动开关观察LED显示情况。
实验一 8255并行接口实验
一、实验目的和要求
1.学习利用并行接口芯片8255构成并行接口电路的基本方法。
2.熟悉掌握并行接口芯片8255的基本性能及在实际应用中硬件连接、初始化
编程方法。
二、实验内容
编写程序,使8255的219口为输出口,218为输入口,从218口将K0~K7作为一个字读入,再从219口输出这一反码字节。
三、实验算法
先初始化8255,将219口设置为输出口,218为输入口;再通过输入指令从8255的218口读入数据;最后通过输出指令将数据从8255的219口输出,在灯上显示出来。
四、实验电路图
电路图如下所示:
五、程序清单
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX,21BH ;初始化8255
MOV AL,90H
OUT DX,AL
BG: MOV DX,218H ;从8255的218口(即A口)读入数据
IN AL,DX ;数据存放到AL里
MOV DX,219H ;从8255的219口(即B口)输出数据
OUT DX,AL
JMP BG ;无限循环输入输出
CODE ENDS
END START
六、实验现象、结果与分析
随意扳动K0~K7,218口接收输入的数据,219口输出相应的数据到L0~L7,使对应指示灯亮。
七、实验体会
通过本实验了解8255的工作特性,初步知道了怎么用8255进行编程控制。
八、主要仪器设备
计算机、接口实验箱平台。
简单并行接口实验报告
班级:电信1001 姓名:张贵彬学号:201046830213
实验一锁存器74LS273
一、实验目的
掌握简单并行接口的工作原理及使用方法。
二、实验内容
1、按简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实
验台上的“或门”)。
74LS273为八D触发器,8个D输入端分别接数据总线
D0~D7,8个Q输出端接LED显示电路L0~L7。
2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,
根据8个发光二极管发光情况验证正确性。
三、编程提示
上述并行输出接口的地址为2A8H,并行输入接口的地址为2A0H,通过上述并行接口电路输出数据需要3条指令:
MOV AL,数据
MOV DX,2A8H
OUT DX,AL
通过上述并行接口输入数据需要2条指令:
MOV DX,2ADH
IN AL,DX
四、实验电路图
五、实验流程图
六、实验程序
ls273 equ2a8h
code segment
assume cs:code
start:
mov ah,2;回车符
mov dl,0dh
int21h
mov ah,1;等待键盘输入
int21h
cmp al,27;判断是否为ESC键
je exit ;若是则退出
mov dx,ls273 ;若不是,从2A8H输出其ASCII码out dx,al
jmp start ;转start
exit: mov ah,4ch;返回
int21h
code ends
end start
七、实验结果
实验二数据缓冲器74LS244
一、实验目的
掌握简单并行接口的工作原理及使用方法。
二、实验内容
1、按下面图2-2简单并行输入接口电路图连接电路(74LS244插通用插座,
74LS32用实验台上的“或门”)。
74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。
2、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将
其对应字母在屏幕上显示出来。
三、编程提示
1、上述并行输出接口的地址为2A8H,并行输入接口的地址为2A0H,通过
上述并行接口电路输出数据需要3条指令:
MOV AL,数据
MOV DX,2A8H
OUT DX,AL
通过上述并行接口输入数据需要2条指令:
MOV DX,2ADH
IN AL,DX
四、实验电路图
五、实验流程图
六、实验程序
ls244 equ2a0h
code segment
assume cs:code
start:mov dx,ls244 ;从2A0输入一数据in al,dx
mov dl,al;将所读数据保存在DL中mov ah,02
int21h
mov dl,0dh;显示回车符
int21h
mov dl,0ah;显示换行符
int21h
mov ah,06;是否有键按下
mov dl,0ffh
int21h
jnz exit
je start ;若无,则转start
exit: mov ah,4ch;返回
int21h
code ends
end start
七、实验结果。