华科_HUST_微机原理_并行IO接口实验_独立式开关输入_实验报告

合集下载

华中科技大学微机接口课程设计实验报告

华中科技大学微机接口课程设计实验报告

《微机接口技术》课程设计报告设计题:人工降雨系统指导老师:谭支鹏、熊自立、陈永平设计时间:2013.10.28 至2013.11.1人工降雨系统设计一、课程设计目的1、掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统。

2、掌握基本接口电路的综合应用。

3、掌握接口电路的驱动程序和界面软件的设计与编制,学会调试与测试接口软件的一般方法。

4、微机接口技术及接口芯片的综合应用。

5、在干旱了一段时间后,进行人工降雨。

不同的季节,大自然不降雨对生活生产的影响不同,要控制好等待多久才进行人工降雨,以及降雨的量。

二、课程设计要求设计一个模拟的微机应用系统。

要求该系统综合应用实验台上的多种资源(并行接口、串行接口及其它接口和传感器)设计满足选题要求的符合实际应用的硬件系统,编制主控程序;执行元件驱动程序;通信程序等相应的软件,实现主控中心微机与终端机的远距离传送以及远程控制或监测功能。

由一个主控机(上位机)和若干个下位机组成,上位机与下位机利用串行通讯接口进行连接,构成一个完整系统。

主控机负责数据处理,下位机负责接口访问,接口所需的芯片功能需要通过FPGA自己设计实现。

基于FPGA设计的芯片功能可以是一个完整的功能芯片,也可以只是你在应用需要的芯片某项功能即可。

验收的时候会根据实现的情况作出评价。

(1)主控机:在屏幕上用数字、图形、表格、曲线等方式直观地显示数据/状态处理的结果和过程。

(2)下位机:用实验台的声光部件描述当前监控/操作的工作状态,按主控机的命令驱动执行元件并返回状态和结果。

题目要求:1.用实验台上的信号电源模拟湿度计的信号电压。

2.用实验台上的LED和扬声器模拟加湿动作及报警信号。

3.用实验台上的步进电机模拟水泵动作。

4.上位机实现图形监控。

(模拟)三、课程设计内容及过程1.系统总体结构图1) 系统硬件由主控机(其中一台微机)、终端机(另一台位微机)和执行部件组成。

华中科技大学计算机原理实验报告

华中科技大学计算机原理实验报告

电气学科大类《计算机原理与应用实验》课程实验报告电气与电子工程学院级姓名:学号:专业班号:日期:2014年1月7日实验成绩:评阅人:实验评分表目录实验评分表错误!未指定书签。

实验一:软件安装与使用错误!未指定书签。

一、实验目的错误!未指定书签。

二、实验设备错误!未指定书签。

三、实验任务错误!未指定书签。

四、实验原理错误!未指定书签。

五、实验内容错误!未指定书签。

六、实验过程及结果错误!未指定书签。

七、实验感想八、参考文献实验二:汇编语言实例讲解与程序编写一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验三:基于软件的最小系统硬件设计一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验四:基于最小系统的汇编程序设计一、实验目的错误!未指定书签。

二、实验设备错误!未指定书签。

三、实验任务错误!未指定书签。

四、实验原理错误!未指定书签。

五、实验内容六、实验过程及结果七、实验感想八、参考文献实验五:并行接口实验(演示实验)一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验六:工频测频接口电路设计与实现一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验一:软件安装与使用一、实验目的通过本实验学习软件的安装与使用。

二、实验设备微机一台,仿真软件三、实验任务.安装仿真软件。

.利用仿真软件编程。

四、实验原理仿真软件就是在下的一种仿真软件,它可以仿真模拟的程序运行,并且可以直观地观察寄存器的变化情况。

结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟),还有一个循序渐进的指导工具。

这对刚开始学组合语言的人会是一个很有用的工具。

它会在模拟器中一步一步的编译程序码并执行,视觉化的工作环境让它更容易使用。

华科计算机并行实验报告

华科计算机并行实验报告

课程设计报告题目:并行实验报告课程名称:并行编程原理与实践专业班级:学号:姓名:指导教师:报告日期:计算机科学与技术学院目录1,实验一 (1)1 实验目的与要求 (1)1.1实验目的 (1)1.2实验要求 (1)2 实验内容 (1)2.1.1熟悉pthread编程 (1)2.1.2简单的thread编程 (2)2.2.1熟悉openMP编程 (3)2.3.1熟悉MPI编程 (4)2,实验2~5 (7)1 实验目的与要求 (7)2 算法描述 (7)3.实验方案 (8)4实验结果与分析 (8)3 心得体会 (10)附录: (10)3 蒙特.卡罗算法求π的并行优化 (19)1.蒙特.卡罗算法基本思想 (19)2.工作过程 (20)3.算法描述 (20)4 设计与实现 (21)5 结果比较与分析 (23)6 思考与总结 (24)1,实验一1 实验目的与要求1.1实验目的1)熟悉并行开发环境,能进行简单程序的并行开发,在Linux下熟练操作。

2)熟悉一些并行工具,如pthread,OpenMP,MPI等进行并行编程3)培养并行编程的意识1.2实验要求1)利用pthread、OpenMP、MPI等工具,在Linux下进行简单的并行编程,并且掌握其编译、运行的方法。

2)理解并行计算的基础,理解pthread、OpenMP、MPI等并行方法。

2 实验内容2.1.1熟悉pthread编程Linux系统下的多线程遵循POSIX线程接口,称为 pthread。

编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。

下面是pthread编程的几个常用函数:1,int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict attr, void *(*start_rtn)(void),void *restrict arg);返回值:若是成功建立线程返回0,否则返回错误的编号形式参数:pthread_t *restrict tidp 要创建的线程的线程id指针const pthread_attr_t *restrict attr 创建线程时的线程属性void* (start_rtn)(void) 返回值是void类型的指针函数void *restrict arg start_rtn的行参2 , int pthread_join( pthread_t thread, void **retval );thread表示线程ID,与线程中的pid概念类似;retval用于存储等待线程的返回值连接函数pthread_join()是一种在线程间完成同步的方法。

微机原理实验报告串行IO接口

微机原理实验报告串行IO接口

微机原理实验报告串⾏IO接⼝微机原理实验预习报告串⾏I/O接⼝实验1)理解RS232串⾏通信协议以及接⼝设计2)理解SPI串⾏通信协议3)掌握RS232串⾏接⼝设计4)掌握SPI串⾏接⼝设计5)掌握串⾏AD/DA接⼝设计⼆实验任务SPI接⼝DA转换输出锯齿波满量程下的锯齿波硬件电路框图软件流程图四实现步骤硬件实现1、加⼊中断控制器和SPI总线接⼝2、配置SPI接⼝参数,:⼀次传输16位数据,分频⽐为4,SCLK的频率为25MHz3、端⼝连接配置4、UCF配置软件实现1、导出到SDK2、建⽴⼀个新的空⼯程3、将源码加⼊新的c源⽂件中源代码及注释:#include"xparameters.h"#include"xspi.h"#include"xintc.h"#include"xil_exception.h"#define BUFFER_SIZE 2void SpiIntrHandler(void *CallBackRef, u32 StatusEvent, u32 ByteCount); //⽤户定义的SPI终端服务程序static XIntc IntcInstance;static XSpi SpiInstance;volatile int TransferInProgress;//中断结束状态标志int Error;u8 ReadBuffer[BUFFER_SIZE];u8 WriteBuffer[BUFFER_SIZE];int main(void)int Status,Count;Status = XSpi_Initialize(&SpiInstance,XPAR_SPI_0_DEVICE_ID);Status = XSpi_Initialize(&SpiInstance,XPAR_INTC_0_DEVICE_ID);Status = XIntc_Connect(&IntcInstance, XPAR_INTC_0_SPI_0_VEC_ID, (XInterruptHandler) XSpi_InterruptHandler,(void *)&SpiInstance);Status = XIntc_Start(&IntcInstance, XIN_REAL_MODE);XIntc_Enable(&IntcInstance, XPAR_INTC_0_SPI_0_VEC_ID);microblaze_register_handler((XInterruptHandler)XIntc_InterruptHandler, &IntcInstance); microblaze_enable_interrupts();//设置SPI接⼝⽤户中断服务函数XSpi_SetStatusHandler(&SpiInstance,&SpiInstance,(XSpi_StatusHandler) SpiIntrHandler); //配置SPI接⼝⼯作模式Status = XSpi_SetOptions(&SpiInstance,XSP_MASTER_OPTION|XSP_CLK_PHASE_1_OPTION);//设置从设备选择信号Status = XSpi_SetSlaveSelect(&SpiInstance,1);//使能SPI接⼝XSpi_Start(&SpiInstance);//循环输出数据到SPI接⼝控制DAC输出锯齿波while(1){WriteBuffer[0] = (u8) (Count);//SPI输出数据的低8位WriteBuffer[1] = (u8) (Count>>8)&0x0f;// SPI输出数据的⾼8位,其中⾼4位清零,使得Vout正常输出电压Count=Count+32;if (Count==4096)Count=0;//12位DAC转换数据达到最⼤值时,恢复到0TransferInProgress = TRUE; // 设置传输状态标志为1XSpi_Transfer(&SpiInstance, WriteBuffer, (void*)0, 2);//⼀次传输2个字节while (TransferInProgress);// 等待传输结束}return XST_SUCCESS;}void SpiIntrHandler(void *CallBackRef, u32 StatusEvent, u32 ByteCount){TransferInProgress = FALSE;//进⼊中断表⽰传输结束,修改传输状态标志为0if (StatusEvent != XST_SPI_TRANSFER_DONE){Error++;}}五实验验证观察峰峰值为3.3v左右,即为满量程的⼯作电压六实验总结1)通过实验学会了在AXI总线上连接SPI接⼝2)学会了并⾏I/O接⼝的设计3)知道了波形的输出条件和量程的选择。

微机接口技术实验报告并行接口实验

微机接口技术实验报告并行接口实验

微机接口技术实验报告并行接口实验系别: 计算机科学与技术完成时间: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. 引言微机原理实验是计算机科学与技术专业的一门重要实验课程之一。

通过该实验,学生可以了解并学习微机系统的基本原理和结构,培养对计算机硬件的基本操作和维护能力。

本报告将详细介绍我们在并口实验中所进行的实验步骤、实验结果和实验心得。

2. 实验目的本次实验的目的是通过并口实验,了解并实践如何使用并行口控制外部设备。

并口是计算机上常见的接口之一,用于与外部设备进行数据交互,例如打印机、键盘、LED灯等。

通过本次实验,我们将学会如何通过编程的方式控制并口输出信号,进而控制外部设备的工作。

3. 实验步骤(1)准备工作:首先,我们需要准备一台支持并口的计算机,并确保系统已经安装了合适的驱动程序。

然后,我们需要连接一根并口数据线,将计算机与外部设备连接起来。

(2)编程环境搭建:我们要使用的编程语言是C语言,所以需要在计算机上配置相应的编译器和开发环境。

(3)编写代码:接下来,我们需要编写一段简单的代码,来控制并口输出信号。

这段代码通常包括对并口寄存器的读写操作。

我们可以使用IO口的寄存器来设置输出状态和控制外部设备的工作。

(4)测试与调试:在编写完代码后,我们需要进行测试和调试。

通过观察外部设备的反应,可以判断代码是否正确地控制了并口输出信号。

如果出现问题,我们可以通过查看代码和调试信息来找出问题的原因。

4. 实验结果我们按照上述步骤完成了实验,并取得了如下实验结果:(1)成功控制外部设备:通过编写控制代码,我们成功地控制了与计算机连接的外部设备。

例如,我们可以在LED灯上显示相应的图案和文字。

(2)了解并口寄存器操作:通过本次实验,我们对并口寄存器的操作有了更深入的了解。

我们学会了如何设置输出状态和控制外部设备的工作模式。

(3)掌握数据传输方法:在实验过程中,我们还掌握了一些基本的数据传输方法。

例如,我们可以通过并口将数据传输给外部设备或从外部设备接收数据。

5. 实验心得通过本次并口实验,我们对微机系统的基本原理和结构有了更深入的了解。

微机原理实验---并行接口实验

微机原理实验---并行接口实验

微机原理实验---并行接口实验
并行接口(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 灯并输出。

华科微机接口课程设计报告范文

华科微机接口课程设计报告范文

华科微机接口课程设计报告范文指导老师:周功业学生姓名:李中亚学生学号:U202214238所在班级:计算机0803班同组成员:崔泽波、扈泓达、傅强设计题:货物计费计数运输系统设计时间:2022.9.5至2022.9.9一、课程设计目的学习并行接口、步进电机、开关量接口、声光系统、并行通讯、8253定时/计数器、波特率时钟、串行通信接口、A/D,D/A转换器、数据采集程序的设计原理与方法,掌握其控制程序的编写。

1.掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统;2.掌握基本接口电路的综合应用3.掌握接口电路的驱动程序和界面软件的设计与编制,学会调试与测试接口软件的一般方法;二、课程设计任务结合实际应用,设计一微机应用系统,要求该系统综合应用并行接口、串行接口,定器接口、中断接口、模拟接口等等,实现主控中心微机与下位机实现远距离传送,以及远程控制、监测功能。

三、课程设计要求由一个主控机监控和若干个下位机组成,主控机负责数据处理,下位机负责访问接口。

主控机:在显示屏上用数字、图形、表格、曲线等直观数据处理的过程。

下位机:在显示屏上或用实验台的声光描述当前监控的工作状态。

四、课程设计内容(一)选题及题目要求设计方案选择:货物计费计数运输系统1.用实验台上的开关信号模拟上货请求信号。

2.用实验台上的LED和扬声器模拟上/下货时状态信息。

3.用实验台上的步进电机的正反转模拟运输动作。

4.上位机实现图形监控。

(模拟)(二)设计功能说明1.上货过程:在下位机通过键盘输入货物类型、数量,按上货按钮SW2开始请求上货,这时下位机向上位机发送一个上货请求和货物类型、数量,上位机接收到上货请求后通过界面显示请求的货物类型和数量,按下SW2按钮允许上货,下位机接收到允许命令,扬声器响起,开始上货,LED计数器由零开始加1,步进电机开始正转,直到上货结束,此时下位机LED灯显示的数字为货物数量;2.下货过程:在下位机通过键盘输入货物类型、数量,按下货按钮SW3开始请求下货,这时下位机向上位机发送一个下货请求和货物类型、数量,上位机接收到下货请求后通过界面显示请求的货物类型和数量,按下SW4按钮允许下货,下位机接收到允许命令,扬声器响起,开始下货,LED计数器由零开始加1,步进电机开始反转,直到下货结束,此时下位机LED灯显示的数字为货物数量;3.当上/下货结束时,由主机计算费用,将费用数据传给下位机并显示,下位机按下交费按钮SW4表示交费结束,上位机和下位机均回到初始状态。

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

微机原理实验报告
学号
姓名
专业通信1301
指导教师罗杰
院(系、所)电信学院
并行I/O接口实验
一、实验目的
1、掌握GPIO IP核的工作原理和使用方法。

2、掌握IO接口程序控制方法
1)查询方式
2)中断方式
3)延时方式
3、掌握中断控制方式的IO接口设计原理
4、掌握中断程序设计方法
二、实验任务
使用查询、中断两个方式做独立式开关输入,将开关状态显示到console。

三、硬件电路框图
四、硬件平台建立
1 创建XPS工程
创建basesystem文件夹,建立最小系统。

启动XPS,打开system.xmp工程文件。

2 添加和配置GPIO IP核
在XPS主界面左边窗口选择IP Cataiong标签,点击General Purpose I/O展开。

添加AXI Genaral Purpose I/O。

配置开关与led灯分别有16个,将其分别设置为16
在ucf文件中添加相应代码
3、添加和配置中断控制器IP核
在XPS主界面左边窗口选择Clock, Reset and Interrupt标签,点击AXI Interrupt
Controller展开。

将INTERRUPT引脚选择axi_intc.c_INTERRUPT。

设置中断输入
4、产生外部GPIO链接
SW为开关输入,从GPIO_IO接口接入,LED灯输出,从GPIO2_IO接口接入展开External Ports项可看到SW与LED的外部接口
五、软件平台建立
1.查询
源代码
#include"stdio.h"
#include"xil_io.h"
#include"xil_types.h"
#define gpio_ctrl 0x40000004 //定义通道1地址
#define gpio_data 0x40000000 //定义数据1地址
#define gpio1_ctrl 0x4000000c //定义通道2地址
#define gpio1_data 0x40000008 //定义数据2地址
int main(void)
{
u16 SW,psw; //定义两个输入,psw作比较信号
Xil_Out16(gpio_ctrl,0xffff); //输入
Xil_Out16(gpio1_ctrl,0x0); //输出
psw=SW=0x00; //赋初值0给两个输入信号
while(1)
{
SW=Xil_In16(gpio1_data);
Xil_Out16(gpio1_data,SW);
if(psw!=SW) //判断SW与PSW是否相等
{
psw=SW;
SW=Xil_In16(gpio1_data);
xil_printf("the Switch state is 0x%X\n\r",SW);//显示开关状态}
}
return 0;
}
状态显示:
实验流程图:
2 中断
源代码:
#include"xgpio.h"
#include"xparameters.h" #include"xintc.h"
#include"stdio.h"
#include"xil_io.h"
XGpio swled;
XIntc intc;//实例化intc
int swstate;
int pshdip;
void Initialize();
void GPIOHandler(void * CallBackRef);
int main()
{
Initialize();
while(1)
{
if(pshdip)
{
xil_printf("the Switch state is 0x %x\n\r",swstate);
pshdip=0;
}
}
return 0;
}
void Initialize()
{
XGpio_Initialize(&swled, XPAR_AXI_GPIO_0_DEVICE_ID);
XGpio_SetDataDirection(&swled, 1, 0xffff);
XGpio_SetDataDirection(&swled, 2, 0x0);
XGpio_InterruptEnable(&swled, 1);
XGpio_InterruptGlobalEnable(&swled);
//XGpio_InterruptClear(&swled,1);
XIntc_Initialize(&intc,XPAR_AXI_INTC_0_DEVICE_ID );
XIntc_Connect(&intc, XPAR_AXI_INTC_0_AXI_GPIO_0_IP2INTC_IRPT_INTR, (XInterruptHandler)GPIOHandler, (void *)&swled);
XIntc_Enable(&intc, XPAR_AXI_INTC_0_AXI_GPIO_0_IP2INTC_IRPT_INTR);
microblaze_enable_interrupts();
microblaze_register_handler((XInterruptHandler)XIntc_InterruptHandler,( void *)&intc);
XIntc_Start(&intc, XIN_REAL_MODE);
void GPIOHandler(void * CallBackRef)
{
swstate= XGpio_DiscreteRead(&swled, 1); pshdip=1;
XGpio_DiscreteWrite(&swled, 2, swstate);
XGpio_InterruptClear(&swled, 1);
状态显示:
}
实验流程图:
六、实验小结
在这个实验的过程中,令我觉得最困难的不是硬件部分的理解和搭建,而是软件部分代码的理解,由于代码中利用到了中断,所以对中断状态的理解和使用上面遇到了一些问题。

通过与同学交流,和看书上的相关内容,最后我也把代码理解了,这样就很好地把整个实验的过程都理解了。

总的来说,本次实验做得还比较轻松,原理方面容易掌握,操作方面也容易实验。

希望综合项目的实验也一样顺利。

相关文档
最新文档