当前位置: 首页> 科技> 数码 > 中国建设官网登录入口_刷钻网站_微信营销方案_网站建设方案外包

中国建设官网登录入口_刷钻网站_微信营销方案_网站建设方案外包

时间:2025/9/5 14:36:26来源:https://blog.csdn.net/ADI_OP/article/details/147043718 浏览次数:0次
中国建设官网登录入口_刷钻网站_微信营销方案_网站建设方案外包

作者的话

ADI的双核DSP,最早的一颗是Blackfin系列的BF561,这颗DSP我用了很久,比较熟悉,且写过一些给新手的教程。

硬件准备

ADZS-BF561-EZKIT开发板:ADI原厂评估板

AD-ICE20000仿真器:ADI现阶段性能最好的DSP仿真器

产品链接:https://item.taobao.com/item.htm?id=753233120844

软件准备

Visual DSP++5.1.2
CCES2.11.1

硬件环境的搭建

在这里插入图片描述

程序内容

利用 ADSP-BF561 处理器 EBIU(外部总线接口单元)与 CPLD 的无缝连接,通过对异步 Bank3 的写操作,从而实现数码管和 LED 的程序控制。

实现原理

利用 CPLD 做一个 LED 控制器,用于动态扫描 LED 的显示。通过 BF561 的 EBIU接口控制 LED 的显示字符。

在这里插入图片描述

我设计了 2 个数码管和 8 个 LED 指示灯。数码管和 LED 复用数据总线,采用 74HC245 作为总线驱动芯片。CPLD 内部固化了一个 LED 控制器,控制器采用动态扫描的方式维持 LED 显示。使用时 ADSP-BF561 处理器只需通过 EBIU 接口向 CPLD 内部的LED 控制器送入需要显示的内容,LED 控制器会自动将所要显示的数据锁存,并通过扫描维持该数据的显示,直到 BF561 重新向控制器送入数据信息。

在这里插入图片描述

其中pLED_DAT_OUT的数据D0-D7分别对应的数码管的8段a-h。

实验时驱动代码的编写过程要按照以下步骤进行

第一:向pCtrOut_Flag_OE寄存器写入数据,使能驱动器HC245 LED_OE=0。
第二:选择写入地址向pCtrOut_Flag_B对应的LED_A1和LED_A0写入数据。
第三:向pLED_DAT_OUT寄存器写入要显示的参数。
第四:控制pCtrIner_Flag寄存器的LEDCS位,使其产生一个上升沿,此时数据写入相应的寄存器:

pCtrOut_Flag_OE映射的物理地址为:0x20350000
pCtrIner_Flag映射的物理地址为:0x20360000
pCtrOut_Flag_B映射的物理地址为:0x20380000
pLED_DAT_OUT映射的物理地址为:0x20390000

核心代码分析

void leddisplay(uint8_t LEDNum,uint8_t data)
{
switch(LEDNum)
{
case 1: *pCtrOut_Flag_B = 0x00; break; // LED_A1=0 LED_A1=0
case 2: *pCtrOut_Flag_B = 0x00| LED_A0; break; // LED_A1=0 LED_A1=1
case 3: *pCtrOut_Flag_B = 0x00| LED_A1; break; // LED_A1=1 LED_A1=1
default: printf(“ERROR!\n”); break;
}
*pLED_DAT_OUT =data; // 输出显示数据
*pCtrIner_Flag_OE =0x00; // LEDCS 位为 0
mdelay(10000);
*pCtrIner_Flag_OE =0x04; // LEDCS 位为 1
}

程序运行结果

  1. 首先看到 8 个 LED 灯循环被点亮。
  2. 数码管显示从 99 递减到 00。

在这里插入图片描述

源码下载

我上传到我的下载专区了,有需要的自取。

关键字:中国建设官网登录入口_刷钻网站_微信营销方案_网站建设方案外包

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: