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

上传人:牧羊曲112 文档编号:3345762 上传时间:2023-03-12 格式:DOCX 页数:5 大小:38.08KB
返回 下载 相关 举报
华科HUST微机原理并行IO接口实验独立式开关输入实验报告.docx_第1页
第1页 / 共5页
华科HUST微机原理并行IO接口实验独立式开关输入实验报告.docx_第2页
第2页 / 共5页
华科HUST微机原理并行IO接口实验独立式开关输入实验报告.docx_第3页
第3页 / 共5页
华科HUST微机原理并行IO接口实验独立式开关输入实验报告.docx_第4页
第4页 / 共5页
华科HUST微机原理并行IO接口实验独立式开关输入实验报告.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《华科HUST微机原理并行IO接口实验独立式开关输入实验报告.docx》由会员分享,可在线阅读,更多相关《华科HUST微机原理并行IO接口实验独立式开关输入实验报告.docx(5页珍藏版)》请在三一办公上搜索。

1、华科HUST微机原理并行IO接口实验独立式开关输入实验报告微机原理实验报告 学号 姓名 专业 通信1301 罗杰 指导教师 院 电信学院 并行I/O接口实验 一、实验目的 1、掌握GPIO IP核的工作原理和使用方法。 2、掌握IO接口程序控制方法 1)查询方式 2)中断方式 3)延时方式 3、掌握中断控制方式的IO接口设计原理 4、掌握中断程序设计方法 二、实验任务 使用查询、中断两个方式做独立式开关输入,将开关状态显示到console。 三、硬件电路框图 四、硬件平台建立 1 创建XPS工程 创建basesystem文件夹,建立最小系统。启动XPS,打开system.xmp工程文件。 2

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灯

3、输出,从GPIO2_IO接口接入 展开External Ports项可看到SW与LED的外部接口 五、软件平台建立 1.查询 源代码 #includestdio.h #includexil_io.h #includexil_types.h #define gpio_ctrl 0x40000004 #define gpio_data 0x40000000 #define gpio1_ctrl 0x4000000c #define gpio1_data 0x40000008 intmain(void) u16 SW,psw; /定义两个输入,psw作比较信号 /输入 /输出 /赋初值0给两个输入信

4、号 Xil_Out16(gpio_ctrl,0xffff); Xil_Out16(gpio1_ctrl,0x0); psw=SW=0x00; while(1) return 0; Xil_Out16(gpio1_data,SW); if(psw!=SW) SW=Xil_In16(gpio1_data); xil_printf(the Switch state is 0x%Xnr,SW);/显示开关状态 /判断SW与PSW是否相等 /定义通道1地址 /定义数据1地址 /定义通道2地址 /定义数据2地址 SW=Xil_In16(gpio1_data); psw=SW; 状态显示: 实验流程图: 2

5、 中断 源代码: #includexgpio.h #includexparameters.h #includexintc.h #includestdio.h #includexil_io.h XGpio swled; XIntc intc; int swstate; int pshdip; voidInitialize; voidGPIOHandler(void * CallBackRef); intmain voidInitialize microblaze_enable_interrupts; microblaze_register_handler(XInterruptHandler)XI

6、ntc_InterruptHandler,(XIntc_Start(&intc, XIN_REAL_MODE); 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); XIntc_Initialize(&intc,XPAR_AXI_INTC_0_DEVICE_ID ); XGpio_In

7、terruptEnable(&swled, 1); XGpio_InterruptGlobalEnable(&swled); /XGpio_InterruptClear(&swled,1); XGpio_Initialize(&swled, XPAR_AXI_GPIO_0_DEVICE_ID); XGpio_SetDataDirection(&swled, 1, 0xffff); XGpio_SetDataDirection(&swled, 2, 0x0); Initialize; while(1) if(pshdip) return 0; xil_printf(the Switch stat

8、e is 0x %xnr,swstate); pshdip=0; /实例化intc void *)&intc); voidGPIOHandler(void * CallBackRef) swstate= XGpio_DiscreteRead(&swled, 1); pshdip=1; XGpio_DiscreteWrite(&swled, 2, swstate); XGpio_InterruptClear(&swled, 1); 状态显示: 实验流程图: 六、实验小结 在这个实验的过程中,令我觉得最困难的不是硬件部分的理解和搭建,而是软件部分代码的理解,由于代码中利用到了中断,所以对中断状态的理解和使用上面遇到了一些问题。通过与同学交流,和看书上的相关内容,最后我也把代码理解了,这样就很好地把整个实验的过程都理解了。总的来说,本次实验做得还比较轻松,原理方面容易掌握,操作方面也容易实验。希望综合项目的实验也一样顺利。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号