当前位置:   article > 正文

基于SDK+C ZYNQ开发 — 基于ADC128S102的简单电压表设计 — 数码管显示部分_zynq sdk

zynq sdk

源码下载:GitHub - Redamancy785/FPGA-Learning-Record: 项目博客:https://blog.csdn.net/weixin_51460407

 零、74HC595驱动

1、芯片介绍

移位的同时,也在进行采样。

2、时序介绍

结合数据手册分析,时序可以是如下两种情况:

即SPI可以工作在两种模式之中:

具体分析两种工作模式:

发现00模式下,SS信号短暂的拉高是有害的,所以00模式需要手动SS

 一、硬件平台

1、ADC128S102

2、ZYNQ片上SPI外设

二、系统框图

三、VIVADO端

1、构建硬件系统

2、管脚约束

管脚约束中有些管脚没有使用到,为了避免在分析综合时报错,要在xdc文件的最开始加入如下代码,即可编译通过。

set_property SEVERITY {Warning} [get_drc_checks NSTD-1]

set_property SEVERITY {Warning} [get_drc_checks RTSTAT-1]

set_property SEVERITY {Warning} [get_drc_checks UCIO-1]

四、SDK端

 使用应用库编写代码:

        以上编译库是小梅哥为开发板提供的应用库,直接添加到自己的工程中即可。可自行下载:

【ACZ7015】ACZ7015型ZYNQ+PCIE开发板用户自助服务手册 - ACZ7015开发板 - 芯路恒电子技术论坛 - Powered by Discuz!

  1. #include "COMMON.h"
  2. int main()
  3. {
  4. //初始化SPI0设备,设为主机模式 11 模式
  5. PS_SPI_Init(&SPI0, XPAR_XSPIPS_0_DEVICE_ID, XSPIPS_CLK_PRESCALE_8,
  6. XSPIPS_MASTER_OPTION | XSPIPS_CLK_PHASE_1_OPTION | XSPIPS_CLK_ACTIVE_LOW_OPTION);
  7. //用于存储数码管的编码值,依次为0,1,2,3,4,5,6,7,8,9,-,.
  8. uint8_t Seg_Code[12] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0x7F};
  9. //{段选,位选} 赋予初值,数码管编码CH- 0.000
  10. uint8_t Dig_Data[8][2] = {{0xC6,0x80},{0x89,0x40},{0xBF,0x20},{0xFF,0x10},
  11. {0x40,0x08},{0xC0,0x04},{0xC0,0x02},{0xC0,0x01}};
  12. while(1)
  13. {
  14. uint16_t i;
  15. if(i<8){
  16. PS_SPI_Transfer(&SPI0, 0, 0,Dig_Data[i], 2);
  17. i++;
  18. }
  19. else
  20. i = 0;
  21. }
  22. }

五、结果验证

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/653057
推荐阅读
相关标签
  

闽ICP备14008679号