简单并行接口实验编程

合集下载

并行计算_实验三_简单的MPI并行程序及性能分析

并行计算_实验三_简单的MPI并行程序及性能分析

并行计算_实验三_简单的MPI并行程序及性能分析一、实验背景和目的MPI(Massive Parallel Interface,大规模并行接口)是一种用于进行并行计算的通信协议和编程模型。

它可以使不同进程在分布式计算机集群上进行通信和协同工作,实现并行计算的目的。

本实验将设计和实现一个简单的MPI并行程序,并通过性能分析来评估其并行计算的效果。

二、实验内容1.设计一个简单的MPI并行程序,并解决以下问题:a.将一个矩阵A进行分块存储,并将其均匀分配给不同的进程;b.将每个进程分别计算所分配的矩阵块的平均值,并将结果发送给主进程;c.主进程将收到的结果汇总计算出矩阵A的平均值。

2.运行该MPI程序,并记录下执行时间。

3.对程序的性能进行分析:a.利用不同规模的输入数据进行测试,观察程序的运行时间与输入规模的关系;b. 使用mpiexec命令调整进程数量,观察程序的运行时间与进程数量的关系。

三、实验步骤1.程序设计和实现:a.设计一个函数用于生成输入数据-矩阵A;b.编写MPI并行程序的代码,实现矩阵块的分配和计算;c.编写主函数,调用MPI相应函数,实现进程间的通信和数据汇总计算。

2.编译和运行程序:a.使用MPI编译器将MPI并行程序编译成可执行文件;b.在集群上运行程序,并记录下执行时间。

3.性能分析:a.对不同规模的输入数据运行程序,记录下不同规模下的运行时间;b. 使用mpiexec命令调整进程数量,对不同进程数量运行程序,记录下不同进程数量下的运行时间。

四、实验结果和分析执行实验后得到的结果:1.对不同规模的输入数据运行程序,记录下不同规模下的运行时间,得到如下结果:输入规模运行时间100x1002.345s200x2005.678s300x30011.234s...从结果可以看出,随着输入规模的增加,程序的运行时间也相应增加。

2. 使用mpiexec命令调整进程数量,对不同进程数量运行程序,记录下不同进程数量下的运行时间,得到如下结果:进程数量运行时间110.345s26.789s43.456s...从结果可以看出,随着进程数量的增加,程序的运行时间逐渐减少,但当进程数量超过一定限制后,进一步增加进程数量将不再显著减少运行时间。

微机原理并行接口实验程序及解析

微机原理并行接口实验程序及解析

硬件实验注意事项( 硬件实验注意事项(二)
1.在实验台断电条件下,才能用单股导线(或 扁平电缆)连接电路; 2.线路连接完成、检查确认没有错误后,再开 通实验台电源; 3.用单股导线连接电路时,要将单股导线线头 整直,并确认线头没有断裂; 4.实验完成后,关断实验台电源,再抓住导线 (或扁平电缆)的根部,一根一根垂直拔掉连 接导线,并把连接导线整好放入实验箱。
74 HC D-bus 573 D7…D0 锁 存 器 CS573
JM6
JM5
JM4
JM3
JM2
JM1
MC1413驱动器
B口 口
A口 口
8255
CS8255
D-bus
D7…D0
实验6-2连线
CS8255 ------------------------ CS1 CS573 ---------------------SMGLT JM1...JM6---------------PB0...PB5 D0...D7-------------------a.b.c....dp
;取显示数字 ;读字型码 ;输出字型码
;左循环移位
;送B口控制的数码管位
;若显示位置大于等于6 ;返回启始位置1
;判有键动,跳出循环
;循环扫描
实验6-2源程序( 续)
delay proc near push cx mov bx,02h delay1: mov cx,0h loop $ dec bx jnz delay1 pop cx ret delay endp end ;延时子程序
74HC573锁存器地址: 0E220H
8255工作方式及控制字 8255工作方式及控制字
工作方式:基本输入/输出、选通输入/输出、双向传送 控制字:方式控制字、C口置“1”/清“0”控制字

用VB实现并行接口模拟实验

用VB实现并行接口模拟实验

用VB实现并行接口模拟实验目录:1、VB语言特点2、目的3、要求4、实验步骤5、实现功能6、实验小结7、主要参考资料摘要:可视化方法编程,第一步是“画”界面,第二步是合理安排事件,第三步才是“写”代码。

VB的集成开发环境界面,主要包括六个部分:标题栏、工具箱、属性窗口、代码编辑器窗口、工程资源管理器窗口和窗体布局窗口。

使用VB让这个接口能够接收、发送数据,并且可以有LED的工作方式和数码管的工作方式;通过简单的程序语言可以让接口实现很多的功能。

主要的功能就是可以利用滚动条的左右滑动来调整8个灯泡的循环连续速度,并且在连续循环中灯泡的颜色呈七彩色变化。

关键词:可视化编程、集成开发、控件、属性、方法、事件、变量、实验步骤。

VB语言特点:传统编程与可视化编程有较大的区别,按传统的“纯”结构化方法编程,自始至终都在“写”代码;而采用可视化方法编程,第一步是“画”界面,第二步是合理安排事件,第三步才是“写”代码,思维方式发生了非常大的变化。

人们一般用Visual一词表示可视化,这个词的英文原意是“视觉化”。

“可视的语言”这个名字可能抽象了点,但实际上它却是最直观的编程方法。

之所以叫做“可视”,是指无须编程,仅通过直观的操作方法即可完成界面的设计工作。

因此,可视化语言是目前最好的Windows应用程序开发工具。

在这种语言中引入了控件的概念,按钮、文本框都可称为控件,Command1是按钮控件,而Text1、Text2、Text3则属于文本框控件。

可视化语言把这些控件模式化、对象化,每个控件都有若干方法和事件,并通过一系列的属性来控制控件的外观。

利用这些控件,编程过程就如同画画,随意点几下鼠标,一个按钮就完成了,这些工作在使用传统编程语言的情况下,需要编写大量复杂的程序代码才能实现。

归纳起来,可视化编程语言的特点主要表现在两个方面:一是基于面向对象的思想,引入了控件的概念和事件驱动;而是程序开发过程一般遵循以下步骤,即先进行界面的绘制工作,再基于事件编写程序代码,以响应鼠标、键盘的各种动作。

微机实验 可编程并行接口8255

微机实验  可编程并行接口8255

微机原理实验报告实验题目:可编程并行接口8255一、实验目的1、掌握8255的基本输入输出和PC端口位控的工作方式及应用编程。

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

二、实验知识回顾8255控制字1、控制方式2、C端口置位复位控制字三、实验内容1、 8255流水灯显示,首先用逻辑电平开关预置一个数字,从A口读入,写入01H到C端口上,左移一次在进行输出,A口读入数据作为左移次数,这样循环下去,从而实现流水灯的显示。

2、用PC端口位控制法控制LED灯,依次点亮LED灯。

四、实验器材微机原理实验箱1个电脑(带TPC-USB软件)1台插线若干五、实现过程1、8255流水灯显示(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,90h ;方式0A口输入C口输出out dx,al ;mov dx,io8255a ;A口的地址存入dxin al,dx ;从dx也就是A口读入数据mov la,al ;读入的数据暂存在la变量mov dx,io8255c ;C口的地址存入dxmov al,01h ;将寄存器最低位置零out dx,al ;置位后的值输入给dx,也就是C口mov lb,al ;置位后的值暂存于变量lbloop1:call delaymov al,la ;将A口数据写入CX用以计数mov ch,00hmov cl,laloop2:call delaymov al,lbrol al,1 ;在寄存器内进行位移操作mov lb,al ;将操作后的结果重新写入变量al,为后面调用做准备mov dx,io8255c ;dx代表C口的地址out dx,al ;将al中存储的值写入dx,即C口mov ah,1 ;选择dos的模式为从键盘读取数据int 16h ;进入中断jnz quit ;ZF为0则跳到quitdec cx ;计数器减一jnz loop2 ;若cx!=0,跳到loop2quit:mov ax,4c00h ;结束程序并退出int 21hdelay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start2、位控设置C口输出点亮LED(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,00001111b ;位控设置C口最高位为1out dx,almov cx,7 ;剩余未点亮灯数为7 loop1:call delaydec aldec alout dx,aldec cxjnz loop1delay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start(3)实验结果图六、小结通过本次试验,我进一步了解了8255的可编程性,以及如何正确的通过程序控制8255,也更加熟悉了8255 C 端口的位控输出。

MPI综合实验报告

MPI综合实验报告

MPI综合实验报告一、实验目的本次实验旨在探究MPI并行计算技术在多节点集群中的应用,并通过编写相关代码实现一个简单的并行计算任务,验证MPI的计算能力和效果。

二、实验原理MPI(Message Passing Interface)是一种并行计算中进程间通信的标准接口。

MPI通过发送和接收消息来实现进程之间的通信,协调各个计算节点的工作。

一般而言,MPI程序由多个进程组成,每个进程可以独立地执行计算任务,当需要进行通信时,进程可以通过MPI提供的接口来发送和接收消息。

三、实验过程1.配置MPI环境在实验开始前,需要在多个节点上安装MPI环境,并确保各节点之间能够正常通信,可以互相发送和接收消息。

2.编写代码首先,需要编写一个主进程(通常为进程0)和多个子进程参与计算的代码。

主进程负责将计算任务分配给子进程,并收集子进程的计算结果。

子进程则负责进行具体的计算任务。

以下是一个简单的示例代码:```pythonfrom mpi4py import MPIif rank == 0:#主进程负责任务分配data = [i for i in range(size-1)] # 分配给每个子进程的数据for i in range(1, size):#主进程接收结果result = []for i in range(1, size):print("Result:", result)else:#子进程接收任务数据#子进程进行计算result = data * 2#子进程发送计算结果```以上代码使用了mpi4py库来实现MPI的功能。

在主进程中,首先准备要分配的数据,然后将每个子进程的数据发送给相应的子进程,并接收子进程的计算结果。

在子进程中,首先接收来自主进程的数据,然后进行计算,并将计算结果发送给主进程。

3.运行实验在配置好MPI环境和编写好代码后,将代码保存并上传到各个节点上。

然后,在主节点上执行以下命令来运行程序:``````其中,`-np 5`表示使用5个进程来进行计算。

简单并行接口实验报告

简单并行接口实验报告

实验一一、实验题目:简单并行接口74LS273二、实验目的掌握简单并行接口的工作原理及使用方法。

三、实验内容1、按下图连接线路。

2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。

四、程序流程图五、源程序ioport equ 0d400h-0280hls273 equ ioport+2a8hcode segmentassume cs:codestart:mov ah,2 ;回车符mov dl,0dhint 21hmov ah,1 ;等待键盘输入int 21hcmp al,27 ;判断是否为ESC键je exit ;若是则退出mov dx,ls273 ;若不是,从2A8H输出其ASCII码out dx,aljmp start ;转startexit: mov ah,4ch ;返回DOSint 21hcode endsend start六、实验结果分析按上述的代码执行,观察LED灯的状态,可以发现实验结果和预期的相同:键盘输入数字“1”,L0、L4、L5亮,L1、L2、L3、L6、L7不亮,为00110001,31H,即为数字“1”的ASCII值。

键盘输入字符“=”,L0、L2、L3、L4、L5亮,L1、L6、L7不亮,为00111101,3DH,即为字符“=”的ASCII值。

键盘输入字符“N”,L1、L2、L3、L6亮,L0、L4、L5、L7不亮,为01001110,4EH,即为字符“N”的ASCII值。

键盘输入回车键,L0、L2、L3亮,L1、L4、L5、L6、L7不亮,为00001101,0DH,即为回车键的ASCII值。

七、实验心得1、通过本次实验,掌握了简单并行接口的工作原理及使用方法。

2、本次实验前,自己认真地做了预习,实验过程中,认真思考,积极探索,实验后,查阅资料,提炼总结。

总的来说,基本完成了实验要求和任务。

实验五 8255并行接口实验

实验五  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)运行程序,拨动开关组,观察发光二极管与开关组状态的对应关系。

8255A可编程并行接口实验

8255A可编程并行接口实验

实验八8255A可编程并行接口实验一、实验项目用8255A可编程并行接口芯片,重复实验四的内容。

PA口作为显示输出口,PB口作为开关量输入口。

二、实验目的1.了解8255A芯片的结构及编程方法2.掌握通过8255A并行接口读取开关数据的方法三、实验原理设置好8255A各端口的工作模式:三个端口都工作于方式0,PA口作为显示输出口,PB口作为开关量输入口。

四、实验连线8255A的PA0PA7接发光二极管L1L8,PB0PB7接开关K1K8,片选信号CS8255接CS0。

五、实验电路六、程序框图七、参考程序CSEG AT 0000HLJMP START开始置控制字从B通道读入开关状态从A通道输出到发光二极管延时一段时间.23.CSEG AT 4100HPA EQU 0CFA0HPB EQU HPCTL EQU HSTART: MOV DPTR, #PCTL ;置8255A控制字,A、B、C口均工作MOV A, # H ;方式0,A、C口为输出,B口为输入MOVX @DPTR, ALOOP: MOV DPTR, #PB ;从B口读入开关状态值MOVX A,MOV DPTR, #PA ;从A口将状态值输出显示MOVX , AMOV R7, #10H ;延时DEL0: MOV R6, #0FFHDEL1: DJNZ R6,DJNZ R7,LJMP LOOPEND八、问题思考试分析改置8255A控制字,A、B、C口工作方式1,B、C口为输出,A口为输入,可不可以。

.24.。

并行接口实验

并行接口实验

并行接口实验并行接口是指在计算机系统中,采用多个数据传输通道同时传输数据的接口形式。

由于多个通道同时进行数据传输,所以并行接口的传输速度比串行接口快很多,因此被广泛应用于高速数据传输的领域,如服务器、高速网络接口等。

本次实验我们将学习如何配置并使用并行接口,以及如何实现数据的并行传输。

首先,我们需要准备以下硬件设备: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秒内闪烁一次。

至此,我们已经完成了并行接口实验的所有步骤,通过本次实验我们可以学习到如何使用并行接口和实现数据的并行传输,同时也可以更加深入地了解计算机的硬件结构和软件编程知识。

实验二、1简单并行接口

实验二、1简单并行接口

int 21h
mov ah,06 mov dl,0ffh int 21h jnz exit je start exit: mov ah,4ch int 21h code ends end 244程序流程图 ;若无,则转start ;返回DOS ;是否有键按下
八、实验结果
并行输出接口实验结果 并行输入接口实验结果
保存时输入自命名的源程序“XXX.ASM ”
为扩展名)
(“.ASM”
在“Alt+F”中,选择“EXIT ”退出文本编辑环境
3
图1
图2
使用汇编程序MASM.EXE (微软工具),对 源程序进行汇编,生成OBJ文件。 C:\> MASM (进入汇编环境) Source filename [.ASM]: xxx.asm
;返回DOS
code segment assume cs:code
start:
mov dx,2a0h
in al,dx mov dl,al mov ah,02
;从2A0输入一数据
;将所读数据保存在DL中 ;显示ASCII为DL的数据
int 21h
mov dl,0dh int 21h mov dl,0ah ;显示换行符 ;显示回车符
3
使用连接程序LINK.EXE (微软工具),对 OBJ文件进行连接。只有正确的OBJ文件,才能进 行连接操作。将OBJ文件与库函数或其他目标程序
进行连接成可执行的目标程序-EXE文件。
C:\> LINK (进入连接环境) Object Modules [.OBJ]: xxx.obj Run File [XXX.EXE]: List File [NUL.MAP]: Libraries [.LIB]: Warning: No STACK segment (忽略) There was 1 error detected. C:\> XXX.EXE (执行程序)

实验2 并行IO口的使用

实验2   并行IO口的使用
{
语句组1;
}
else if( 表达式 2)
{
语句组2;
}
...
else if( 表达式 n)
{
语句组n;
}
else
{
语句组n+1;
}
switch语句的一般形式为:
switch(表达式)
{
case常量表达式1: 语句序列1;break;
case常量表达式2: 语句序列2;break;
...
case常量表达式n: 语句序列n;break;
一、实验目的
1.进一步熟悉Keil C、proteus软件的使用方法。
2.掌握分支结构语句、运算符和数组的运用。
3.掌握LED数码管的结构和静态显示工作原理。
二、实验内容
1.程序一:按键K0~K3,用分支语句实现P0口的多值输出。
2.程序二:用循环语句实现P0口的多值输出。
3.程序三:用数组方式控制跑马灯。
程序二:运用三种基本的循环语句: for语句、while语句和do-while语句,实现D1~D8循环点亮。
程序三:用数组方式控制跑马灯。将跑马灯的全部状态用数组表达,然后用循环语句依次读取数组各元素,送P0口显示。
程序四:在P1口连接的LED数码管上循环显示“0”,“1”,“2”,“3”,“4”。思路同程序一,只不过数组元素是由共阴极数码管所对应的字形码所组成。
2)P0口与数码管之间的电阻起什么作用?
3)RST端的电路起什么作用?
4)EA接电源是什么意思?
5)XTAL1、XTAL2接的电路起什么作用?
六、体会
}
do-while语句的一般形式:
do
{
语句组; //循环体

实验一 实验一 并行接口实验-LED与数码管使用

实验一 实验一 并行接口实验-LED与数码管使用


3.2********** *** ***

4.实验总结
LED模块
八进制 3 态非反转透明锁存器-74HC573
1脚三态允许控制端低电平有效 1D~8D为数据输入端 1Q~8Q为数据输出端 74HC573引脚图
高性能硅门 CMOS 器件 当锁存使能端LE为高时,这些器件的锁存对 于数据是透明的(也就是说输出同
(1)通过单片机的P0口控制8个LED的流水灯实现学号显示;
实验内容:

(1)通过单片机的P0口控制8个LED的流水灯实现学号显 示; (2)要求实现至少3种流水效果切换,切换时间约5s; (3)通过P0口送不同的数字,实现单位数码管轮流显示 0-9数字的静态显示;



(4)通过P1口和P2送不同的数字,实现八位数码管轮流 显示0-9数字的动态显示,切换时间约1s;
实验一、并行接口实验-LED与数码管使用
实验目的:


ቤተ መጻሕፍቲ ባይዱ
(1)学习并行口做I/O口的使用方法; (2)学习从并行口输入、输出数据的程序设计方法; (3)学习发光二极管、八段数码管的驱动与动、静态显示方法。
实验要求:

(1)掌握I/O口的读写操作; (2)掌握发光二极管、八段数码管的工作原理与驱动电路设计; (3)掌握74573 八位锁存器的原理与使用方法。
(3)通过P0口送不同的数字,实现单位数码管轮流显示0-9 数字的静态显示;
(4)通过P0口和P2送不同的数字,实现八位数码管轮流显 示0-9数字的动态显示,切换时间约1s;
实验报告要求



1.实验目的 2.实验要求 3.实验内容

3.1*********

并行接口实验报告

并行接口实验报告

课程实验报告实验名称:并行接口实验专业班级:学号:姓名:同组人员:指导教师:报告日期:、实验一1. 实验目的 (3)2. 实验内容 (3)3. 实验原理 (3)4. 程序代码 (6)5. 实验体会 (9)实验一1.实验目的熟悉并行接口电路,掌握并行接口芯片8255A的应用及其编程技术。

2.实验内容通过对8255芯片的编程,使得实验台上的步进电机按顺时针或逆时方向转动,同时数码管做0-9的加计数和减计数操作:1.使用K0控制步进电机顺逆时针转动和数码管加减计数;2.使用K1控制步进电机转速和数码管显示速度(分快和慢两种速度)。

3.使用K2启动和停止步进电机转动和数码管计数显示;3.实验原理1.将8255的A、B、C端口都设置在0工作方式(基本输出/输入方式),A口输出信号控制步进电机转动和方向,B口输出信号控制数码管显示,C口输入信号控制步进电机和数码管的启动/停止,运动方向/加或减计数,运动速度/计数速度。

2.PA0-PA3输出的一个4位二进制数值用于驱动步进电机;PB0-PB7输出的一个8位二进制数值控制数码管的计数显示;PC4-PC7输出作为数码管的位选信号;PC0-PC3分别输入3个控制信号。

3.步进电机工作原理:步进电机采用两项驱动方式,每次对电机的四组线圈中的两组施加脉冲信号,并进行顺序切换使步进电机旋转,调节脉冲信号施加的顺序和频率可改变电机的旋转方向和旋转速度。

4.数码管工作原理数码管一组共4只(位)组成,每只数码管由a、b、c、d、e、f、g共7个段组成,加上小数点dp共8个段。

数码管要正常显示需要用驱动信号来驱动数码管的各个段码,从而显示我们需要的数字。

数码管的每一个段都由8255输出端口的一位信号控制,如果我们将b和c段接上正电源,其他段接地或悬空,那么b 和c段发光,此时数码管显示数字“1”,其他字形显示以此类推。

5 实验中的连线1用导线将8255芯片的PA0-PA3端口分别与步进电机的BA、BB、BC和BD连接。

实验1可编程并行接口

实验1可编程并行接口

实验一可编程并行接口实验目的1、掌握8255方式0的工作原理及使用方法实验内容1、实验电路如下图,8255C 口接逻辑电平开关 K0 — K7, A 口接LED 显示电路L0 —L7。

2、编程从8255C 口输入数据,再从 A 口输出。

、 编程提示 1、 8255控制寄存器端口地址28BH A 口的地址 288H C 口的地址28AH2、 参考流程图(如流程图)PC0r.w4 K1 K24PCIPM310rcaPC3PC 斗 ^C5ZK3* -17FA3i« -•—•■---< --------------- 13TMIS 1239KB11P 阳38KT■- -_ - ■#------------ 1037■<PCT26BH-•・€cs --0255四、程序清单CSEG SEGMENTASSUME CS:CSEGSTART: MOV DX,28BHMOV AX,10001001BOUT DX,AXNEXT:MOV DX,28AHIN AL,DX\ MOV DX,288H\ OUT DX,AL;CMP AL,00H;JNZ NEXTjmp NEXTCSEG ENDSEND START五、实验步骤1. 把A 口,C 口的电路与PA, PC,连接好,在运行程序六、实验结果改变逻辑电平开关K0 —K7的值,LED显示对应的结果,从而实现数据从 C 口输入, 从A 口输出。

七、实验分析与总结1. 微机计算机接口电路普遍采用大规模集成电路芯片,知道了使用灵活,通用性强是8255的最大的特性。

2. 知道如何在DOS下运行程序,认识了8255的工作方式。

实验二串行通讯■ 实验目的1、 了解界串行通讯的基本原理2、 掌握串行接口芯片 8251的工作原理和编程方法 ‘ 实验内容/'\1、按图接好电路,(8251插通用插座),其中8253计数器用于产生8251的发送和接收 时钟,TXT 和RXD 连在一起。

单片机并行口实验报告

单片机并行口实验报告

单片机并行口实验报告实验二并行口实验报告班级:学号:姓名:教师:一、实验目的通过实验了解8051并行口输入方式和输出方式的工作原理及编程方法。

二、实验内容1、输出实验如图4-1所示。

以8031的P2口为输出口。

通过程序控制发光二极管的亮灭。

2、输入实验如图4-1所示。

以8031的P1口为输入口。

用开关向P1.0~P1.3输入不同的状态,控制P2口P2.4~P2.7发光二极管的亮灭。

3、查询输入输出实验如图1-1所示。

以8051的P1.6或P1.0为输入位,以P2口为输出,二进制计数记录按键的次数。

图1-1三、编程提示1、输出实验程序(1)设计一组显示花样,编程使得P2口按照设计的花样重复显示。

(2)为了便于观察,每一状态加入延时程序。

2、输入实验程序开关打开,则输入为1;开关闭合,则输入为0。

读取P1.0~ P1.3的状态,并将它们输出到P2.4~ P2.7,驱动发光二极管。

所以发光二极管L1~L4的亮灭应与开关P1.0~ P1.3的设置相吻合。

3、查询输入输出程序(1)编程计数P1.0按键次数,按键不去抖动。

(2)编程计数P1.6按键次数,按键不去抖动。

(3)编程计数P1.0按键次数,按键软件延时去抖动。

观察(1)、(2)、(3)、的结果。

四、实验器材计算机,目标系统实验板五、实验步骤1、在KEILC中按要求编好程序,编译,软件调试,生成.HEX文件。

2、断开电源,按图1-1所示,连好开关及发光二极管电路。

3、下载程序。

4、调试运行程序,观察发光二极管状态。

六、C源程序清单1、#include <STC12C5A60S2.h>#define uchar unsigned char#define ON 0#define OFF 1sbit led1=P2^0;sbit led2=P2^1;sbit led3=P2^2;sbit led4=P2^3;sbit led5=P2^4;sbit led6=P2^5;sbit led7=P2^6;sbit led8=P2^7;void delay1(void);void main(void){led1=led2=led3=led4=led5=led6=led7=led8=O FF;while(1){led1=led8=ON;delay1();led2=led7=ON;delay1();led3=led6=ON;delay1();led4=led5=ON;delay1();led1=led8=OFF;delay1();led2=led7=OFF;delay1();led3=led6=OFF;delay1();led4=led5=OFF;delay1();}}void delay1(void){uchar i,j,k;for(i=0;i<10;i++)for(j=0;j<100;j++)for(k=0;k<255;k++);}2、#include<STC12C5A60S2.H>#define uchar unsigned charsbit k8=P1^0; sbit k7=P1^1; sbit k6=P1^2; sbit k5=P1^3; sbit led5=P2^4; sbit led6=P2^5; sbit led7=P2^6; sbit led8=P2^7; void main(void) {while(1){if(!k8)led5=0;if(!k7)led6=0;if(!k6)led7=0;if(!k5)led8=0;if(k8)led5=1;if(k7)led6=1;if(k6)led7=1;if(k5)led8=1;}}3、(1)和(2)#include<STC12C5A60S2.H>#define uchar unsigned char sbit k8=P1^0;sbit k2=P1^6;void main(void){uchar num1,num2;n um1=0;num2=0;while(1){if(!k8){num1++;P2=~num1;}if(!k2){num2++;P2=~num2;}}}3、(3)#include<STC12C5A60S2.H>#define uchar unsigned charvoid delay(uchar);sbit k8=P1^0;sbit k7=P1^1;sbit k6=P1^2;sbit k5=P1^3;sbit k4=P1^4;sbit k3=P1^5;sbit k2=P1^6;sbit k1=P1^7;void main(void){uchar num;n um=0;while(1){if(!k3||!k4||!k5||!k6||!k7){num++;P2=~num;delay(100);}if(!k8){num=0;P2=~num;delay(100);}}}void delay(uchar k ){uchar x,y,z;for(x=k;x>0;x--)for(y=20;y>0;y--)for(z=250;z>0;z--);}七、总结对于这次的实验来说,还是不难的,因为看懂了图1-1后,在加上原来学过的C语言,所以这三个程序还是很容易搞定的,在按键去抖动的程序中,由于k1和k2和其他的键并不一样,这两个键在硬件上已经去抖动了,。

实验2 并行IO口的使用(包涵程序答案)

实验2   并行IO口的使用(包涵程序答案)

实验二并行I/O端口的应用一一、实验目的1.进一步熟悉Kiel C软件的使用方法。

2.掌握proteus软件的使用方法。

3.熟悉C语言数据与运算4.熟悉C语言程序结构二、实验内容1.程序一:当按下按键K1~K4时,对应D1~D4点亮。

2.程序二:用循环语句实现P0口的多值输出。

3.程序三:用数组方式控制跑马灯。

4.程序四:在P2口连接的LED数码管上循环显示“0”,“1”,“2”,“3”,“4”。

三、实验仿真硬件图在Proteus软件中建立如下图2-1所示仿真模型并保存。

需要注意的是,当用Proteus来绘制比较复杂的电路时,经常会因为线太乱而影响美观,也不方便检查,使用总线方式绘制电路能很好地避免这一问题。

图2-1 并行I/O端口应用原理图在单线上点击右键编辑属性。

在线型中选择“BUS WIRE”,画出所需要的总线,连分支线时,不要直接画到总线上,先将光标靠近上面画的单线的末端(离总线近的一段),光标会出现一个选中的符号,先单击左键,再按住Ctrl键,拖动鼠标到总线的合适位置,再点击左键。

然后右键点击分支线,放置网络标号即可。

四、编程提示程序一:⒈可选用用if语句、if-else-if语句、switch语句来实现当按下按键K1~K4时,对应D1~D4点亮。

if语句的一般形式:if ( 表达式1 ){语句组1;}if ( 表达式 2){语句组2;}...if-else-if语句的一般形式:if ( 表达式 1){语句组1;}else if( 表达式 2){语句组2;}...else if( 表达式 n){语句组n;}else{语句组n+1;}switch语句的一般形式为:switch(表达式){case常量表达式1: 语句序列1;break;case常量表达式2: 语句序列2;break;...case常量表达式n: 语句序列n;break;default : 语句序列n+1}2.可采用运用三种基本的循环语句: for语句、while语句和do-while语句,实现D1~D8循环点亮。

实验二-简单并行接口-实验报告

实验二-简单并行接口-实验报告
2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。
3、按下面图二简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。
4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。
图一 图二
三、实验中使用到的程序
对于简单并行输出接口:
stack1 segment stack 'stack'
dw 32 dup(0)
stack1 ends
data segment
baseport equ 0ec00h-280h;实际基址
信 息 学 院
《汇编语言与接口技术》上机实验报告
学号:104100197
姓名:王飞
班级: 计科10C
课程名称: 汇编语言与接口技术
上机内容 简单并行接口
实验性质: □ 综合性实验 □ 设计性实验 ■ 验证实验
实验时间: 2012年5 月18 日
实验地点:睿智4号102室
实验设备 TPC—2003A微机实验箱
out dx,al
mov ah,2
mov dl,0dh
int 21h
mov ah,2
mov dl,0ah
int 21h
jmp again
exit: mov ah, 4ch
int 21h
code ends
end start
对于简单并行输入接口:
stack1 segment stack'stack'

实验1 并行IO口编程

实验1 并行IO口编程

实验一并行I/O口编程`实验目的1.了解编程环境,熟悉开发工具;2.学习汇编语言和C语言编程方法;3.学习KEIL工程设置方法和STC单片机程序下载方法。

实验内容1.(汇编程序)假设以60H为起始地址的内部RAM单元存放着8个数据,并给定一个数据在内部RAM单元50H,编程实现数据检索目的。

如果在8个数据中找到给定数据,则使用数码管指示数据位置;如果没有找到数据,则所有数码管全亮。

硬件连接如图1所示,J30与J1通过8根排线连接,JP2的PIN1(下侧靠近JP6)与J13 PIN1 VCC单根线连接,即使用P1口控制8个发光二极管。

其中地址60H~67H分别对应P1.0~P1.7,譬如检索到的数据在60H单元,则P1.0输出低电平点亮发光二极管。

图1 数据检索硬件连接图2.(C语言程序)已知数组dat[16]里存放着16个数据(数据自己编写),编程实现数据从小到大排序,并把最大值显示在P1口,要求发光二极管亮代表数字‘1’,灭代表数字‘0’。

此处的接线方法与题目1相同。

3.编制花样灯显示程序(至少3种模式),通过拨码开关控制花样灯显示效果;接线方法在题目2的基础上,连接排线J16与J24。

在连线时,可先将J24上的跳线帽取下,然后通过排线连接拨码开关与P2口,如图2所示。

图2 花样灯硬件连接图附录1.Keil C生成hex文件方法(1)选择工程选项图3 工程选项选择界面(2)选取标签图4 标签选取界面(3)选择输出HEX图5 输出HEX文件的选择界面(4)重新编译即可图6 重新编译界面2.STC单片机程序下载方法(1)运行程序图7 单片机的运行程序(2)配置方法图8 参数配置界面(3)给板子断电一下,然后重新给电即可下载程序(4)串口助手使用图9 串口调试助手的参数配置界面其他不懂的可以提前到网上查阅相关资料。

单片机实验-单片机并行IO口的应用实验

单片机实验-单片机并行IO口的应用实验

单片机并行I/O口的应用实验一、实验目的1、熟悉Proteus软件和Keil软件的使用方法。

2、熟悉单片机应用电路的设计方法。

3、掌握单片机并行I/O口的直接应用方法。

4、掌握单片机应用程序的设计和调试方法。

二、实验内容或原理1、利用单片机并行I/O口控制流水灯。

2、利用单片机并行I/O口控制蜂鸣器。

三、设计要求1、用Proteus软件画出电路原理图。

要求在P1.0至P1.7口线上分别接LED0至LED7八个发光二极管,在P3.0口线上接一蜂鸣器。

2、编写程序:要求LED0至LED7以秒速率循环右移。

3、编写程序:要求LED0至LED7以秒速率循环左移。

4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。

四、实验报告要求1、实验目的和要求。

2、设计要求。

3、实验程序流程框图和程序清单。

4、电路原理图。

5、实验结果6、实验总结。

7、思考题。

五、思考题1、编程实现LED0至LED7以十六进制计数规律亮灯?原理图:程序清单:/*(1)LED0~LED7以秒速率循环右移蜂鸣器逐位报警*/ORG 0000HMAIN:MOV A, #11111110B;赋初值LOOP:MOV P1,A ;赋值给P1口CPL P3.0 ;低电平有效LCALL DELAY ;调用延时电路SETB P3.0 ;控制蜂鸣器叫的时间间隔LCALL DELAYRL ALJMP LOOPDELAY:MOV R7,#0FFHLOOP1:MOV R6,#0F4HLOOP2:MOV R5,#02HDJNZ R5,$ ;"$"当前的PC值,R5的内容减1不为零,继续执行该语句DJNZ R6,LOOP2DJNZ R7,LOOP1RETEND/*(2)LED0~LED7以十六进制计数规律亮灯*/ORG 0000HMOV A,#0FFHLOOP: MOV P1,ALCALL DELAYDEC ACJNE A, #0FFH,LOOPMOV A, #0FFHLJMP LOOPDELAY:MOV R7, #0A7HLOOP1:MOV R6, #0ABHLOOP2:MOV R5, #10HDJNZ R5, $ ;"$"当前的PC值。

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

实验二简单并行接口
一、实验目的
掌握简单并行接口的工作原理及使用方法。

二、实验内容
1、按下面图2-1简单并行输出接口电路图连接线路(74LS273插通
用插座,74LS32用实验台上的“或门”)。

74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出
接口输出,根据8个发光二极管发光情况验证正确性。

3、按下面图2-2简单并行输入接口电路图连接电路(74LS244插通
用插座,74LS32用实验台上的“或门”)。

74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。

4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。

三、编程提示
1、上述并行输出接口的地址为2A8H,并行输入接口的地址为2A0H,通过上述并行接口电路输出数据需要3条指令:
MOV AL,数据
MOV DX,2A8H
OUT DX,AL
通过上述并行接口输入数据需要2条指令: MOV DX,2A0H
IN AL,DX
图2-1
图2-2
ls273 equ 2a8h
code segment
assume cs:code
start:
mov ah,2
mov dl,0dh
int 21h
mov ah,1
int 21h
cmp al,27
je exit
mov dx,ls273
out dx,al
jmp start
exit:mov ah,4ch
int 21h
code ends
end start
ls244 equ 2a0h
code segment
assume cs:code start: mov dx,ls244
in al,dx mov dl,al
mov ah,02
int 21h
mov dl,0dh
int 21h
mov dl,0ah
int 21h
mov ah,06
mov dl,0ffh
int 21h
jnz exit
je start
exit: mov ah,4ch
int 21h
code ends
end start。

相关文档
最新文档