并行口实验实验报告
- 格式:doc
- 大小:99.50 KB
- 文档页数:2
一、实验目的1、熟悉Proteus软件和Keil软件的使用方法。
2、熟悉单片机应用电路的设计方法。
3、掌握单片机并行I/O口的直接应用方法。
4、掌握单片机应用程序的设计和调试方法。
二、设计要求1、用Proteus软件画出电路原理图。
要求在P1.0至P1.7口线上分别接LED0至LED7八个发光二极管,在P3.0口线上接一蜂鸣器。
2、编写程序:要求LED0至LED7以秒速率循环右移。
3、编写程序:要求LED0至LED7以秒速率循环左移。
4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。
三、电路原理图四、实验程序流程框图和程序清单/***********(1)LED0~LED7以秒速率循环右移**************/MAIN: MOV A, #11111110BLOOP: MOV P1, A ;LED0灯亮,其他全灭LCALL DELAY1s ;调用1s延时子程序RL A ;累加器内容循环左移LJMP LOOP ;继续循环/***********1s延时子程序*******************/DELAY1s:MOV R7, #0A7HDL1: MOV R6, #0ABHDL0: MOV R5, #10HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1NOPRETEND/***********(2)LED0~LED7以秒速率循环左移**************/ORG 0000HMAIN: MOV A, #01111111BLOOP: MOV P1, A ;LED7灯亮,其他全灭LCALL DELAY1s ;调用1s 延时子程序RR A ;累加器内容循环右移 LJMP LOOP ;继续循环 /********************1s 延时子程序**********************/ DELAY1s:MOV R7, #0A7HDL1: MOV R6, #0ABHDL0: MOV R5,#10HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1NOP RETEND/**********(3)要求在灯循环移动的同时,蜂鸣器逐位报警 **************/ORG 0000HMAIN: MOV A, #11111110BLOOP: MOV P1, A ;LED0灯亮,其他全灭CPL P3.0 ;开蜂鸣器 LCALL DELAY05s ;调用0.5秒延时子程序 SETB P3.0 ;关蜂鸣器 LCALL DELAY05s ;调用0.5秒延时子程序 RL A ;累加器内容循环左移 LJMP LOOP ;继续循环/*********0.5s 延时子程序****************/DELAY05s:MOV R7, #17H DL1: MOV R6, #98HDL0: MOV R5, #46H DJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1RETEND六、实验总结通过本次实验,我熟悉了Proteus软件和Keil软件的使用方法,熟悉了单片机应用电路的设计方法。
微机接口技术实验报告并行接口实验系别: 计算机科学与技术完成时间: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。
微机原理实验---并行接口实验
并行接口(Parallel Port)是一种广泛使用的计算机外围设备接口。
它通常用于连接打印机、扫描仪、摄像头等设备,以实现数据的传输和控制。
本实验旨在教授学生使用并行接口实现数据输入和输出的基本功能,以提高学生对计算机外围设备的理解和应用能力。
具体实验步骤如下:
材料及设备:
1. 一台计算机
2. 并行数据线(Parallel Data Cable)
3. 并口测试器(Parallel Port Tester)
4. 8位开关(8-bit Switch)
5. LED 灯(LED Light)
实验步骤:
1. 将并行数据线连接至计算机的并行接口,并将另一端连接至并口测试器。
2. 使用并口测试器测试并行接口是否正常。
若测试失败,可检查并行接口是否损坏或驱动程序是否正确安装。
3. 将 8 位开关连接至并口测试器的数据输出端,连接正确后,将 8 位开关的位置设置为 0。
4. 运行实验程序,将数据从计算机输出至并口测试器。
5. 将 LED 灯连接至并口测试器的数据输入端,将计算机输入的数据传输至 LED 灯并输出。
实验二、利用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这个字,它的作用是实现灯的延时,即保证灯的闪烁时间不至于过快,如果去除的话在人眼的视觉暂留情况下将可能产生连续不断的灯光闪烁,使得间隔时间太短。
实验一并行口实验一、实验目的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。
并行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. IBM PC机或兼容机2. 8255芯片3. 连接线缆四、实验步骤1. 将8255芯片连接到计算机的并口接口,确保连接正确稳固。
2. 打开计算机并进入操作系统。
3. 编写并口控制程序。
在程序中,首先需要设置8255芯片为输出模式,然后通过与8255芯片对应的数据寄存器将需要输出的数据写入,并通过使能信号控制数据传输。
4. 运行编写好的程序,观察程序运行的结果。
五、实验结果与分析通过实验发现,在编写并口控制程序的过程中,需要正确设置8255芯片的工作模式和相应的寄存器,否则无法实现正确的数据传输。
其中,使能信号的控制也是关键的一步,通过正确的控制使能信号,才能实现数据的传输与输出。
六、实验总结通过本次并口实验,我们深入学习和掌握了微机原理中并口的基本原理和工作方式。
实验中我们了解到,在编写并口控制程序时需要对8255芯片的寄存器进行正确的设置,以确保数据传输和输出的正确性。
并口具有很高的灵活性和通信能力,能够广泛应用于各种数据输入输出的需求中。
然而,本次实验仅是对并口实验的基础性操作,实际应用中还需要根据具体需求进行更复杂的编程和控制。
为了更好地应用并口,建议在掌握基本操作的基础上,进一步学习并口的高级应用和相关技术。
最后,本次实验不仅提高了我们对微机原理的理解,也加深了我们对硬件与软件配合的理解。
通过实际动手实验,我们更加深入地理解了微机原理并口实验的基本原理与操作方法。
大理大学
实验报告
课程名称:微机原理与接口技术
学院:工程学院
专业:
年级:班级:
姓名:羽卒兰cl 学号:
指导教师:
2016 年 6 月2 日
大理大学教务处制
图 3-2
源代码:
L8255_CMD EQU 2A3H ;8255A的控制器的地址
L8255_PA EQU 2A0H ;8255A的A端口的地址
L8255_PB EQU 2A1H ;8255A的B端口的地址
CODE SEGMENT ;定义代码段
ASSUME CS:CODE,DS:CODE
START:MOV DX,L8255_CMD ;8255A初始化
MOV AL,90H ;8255A方式0,A端口输入,B端口输出,根据条件在8255A的控制字找出对
3.8255A的基本性能:
可编程通用并行输入/输出接口电路
通用性强,使用灵活,通过它CPU可直接与外设相连
具有三个相互独立的输入/输出端口
A端口、B端口、C端口
三个端口可联合使用,构成具有握手联络信号的并行接口
端口有多种工作方式可供选择
A口有三种工作方式:方式0、1、2
B口有二种工作方式:方式0、方式1
C口有一种工作方式:方式0
A口和B口工作方式是由写入控制寄存器的工作方式控制字决定的;
A口和B口的工作方式的设置是相互独立的。
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进行流水灯的操作实验。