搜索
您的当前位置:首页正文

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

2020-11-12 来源:星星旅游
微机原理实验报告串⾏IO接⼝

微机原理实验预习报告串⾏I/O接⼝实验1)理解RS232串⾏通信协议以及接⼝设计2)理解SPI串⾏通信协议3)掌握RS232串⾏接⼝设计4)掌握SPI串⾏接⼝设计5)掌握串⾏AD/DA接⼝设计⼆实验任务

SPI接⼝DA转换输出锯齿波满量程下的锯齿波

硬件电路框图

软件流程图

四实现步骤硬件实现

1、加⼊中断控制器和SPI总线接⼝

2、配置SPI接⼝参数,:⼀次传输16位数据,分频⽐为4,SCLK的频率为25MHz

3、端⼝连接配置

4、UCF配置

软件实现1、导出到SDK

2、建⽴⼀个新的空⼯程

3、将源码加⼊新的c源⽂件中

源代码及注释:#include\"xparameters.h\"#include\"xspi.h\"#include\"xintc.h\"#include\"xil_exception.h\"#define BUFFER_SIZE 2

void 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)知道了波形的输出条件和量程的选择

因篇幅问题不能全部显示,请点此查看更多更全内容

Top