华科 HUST 微机原理 并行IO接口实验 独立式开关输入 实验报告.docx_第1页
华科 HUST 微机原理 并行IO接口实验 独立式开关输入 实验报告.docx_第2页
华科 HUST 微机原理 并行IO接口实验 独立式开关输入 实验报告.docx_第3页
华科 HUST 微机原理 并行IO接口实验 独立式开关输入 实验报告.docx_第4页
华科 HUST 微机原理 并行IO接口实验 独立式开关输入 实验报告.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理实验报告学 号 姓 名 专 业 通信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%xnr,sw);/显示开关状态return 0;状态显示:实验流程图:2 中断 源代码:#include xgpio.h#include xparameters.h#include xintc.h#include stdio.h#include xil_io.hxgpio swled;xintc intc; /实例化intcint swstate;int pshdip;void initialize();void gpiohandler(void * callbackref);int main()initialize();while(1) if(pshdip)xil_printf(the switch state is 0x %xnr,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);状态显示:实验流程图:六、实验小结在这个实验的过程中,令我觉得最困难的不是硬件部分的理解和搭建,而是软件部分代码的理解,由于代码中利用到了中断,所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论