SOPC技术LED流水灯设计 - 图文(6)

2019-05-26 20:23

可看到变化。

扩展实验程序:(花样流水灯) //////////////////////////////////////////////// //使用的是CPU内部内存

//NIOS II的工程路径最好不要有汉字和一些特殊字符,最好用英文

////////////////////////////////////////////////

#include \

#include \#include \

/* 流水灯花样,低电平点亮,注意调用时候用了取反操作 */ const alt_u32 LED_TBL[] = {

0x00, 0xFF, // 全部熄灭后,再全部点亮

0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, // 依次逐个点亮

0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, // 依次逐个

叠加

0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, // 依次逐个递减

0x81, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x81, // 两个靠拢后分开

0x81, 0xC3, 0xE7, 0xFF, 0xFF, 0xE7, 0xC3, 0x81 // 从两边叠加后递减 };

/******************************************************************** * 名 称:main()

* 功 能:控制LED 流水显示。

********************************************************************/ int main (void) { alt_u8 i; alt_u32 j; while (1) {

for (i=0; i<42; i++) { /* 流水灯花样显示 */

IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, ~LED_TBL[i]); j = 0;

while (j<100000) //延时 j++; } } return 0; }

接下来,我们总结一下这节内容。我们来对比一下寄存器操作方式不 API 之间有什么联系和异同,上面癿程序,如果用NIOS II IDE提供的API 来写,那么如下图所示

IOWR_ALTERA_AVALON_PIO

是一个宍,在

altera_avalon_pio_regs.h 中,其定义如下(大家可以按住 ctrl

键后,用鼠标点击进入定义所在的位置)

大家可以看到,它是一个 IOWR的宏,而IOWR的具体写法我就在此不详细说了(大家感兴趣的可以去 NIOS 的源码),反正就是对硬件地址的控制。我的做法就是绕过这个大圈子,直接去控制它的寄存器。 大家可能有点纳闷,我们的结构体中定的了四个变量,但却用了 DATA 一个,在这说明一下原因,首先是 DIRECTION。返个是 IO 的方向,就是说是输入还是输出,或者是双向的。因为在我们构建PIO 模块的构成中有了一个选项,如下图所示,红圈2,我们选择了输出(Output ports only),也就是我们在底局就已经固定了它的方向,所以在软件中就还需要在定义了。还有两个变量是涉及到中断时才会用到,所以在这个程序中也没有用到。

我要提醒大家一句,我虽然提倡大家用操作寄存器方式编程,但并不希望所有的程序都按这种方式来写,比如说对 flash 的操作,我们就可以使用 API 来写,因为 flash的操作相对复杂,而利用API可以径简单得几个语句就能完成,

没必要自己来写。

扩展数码管实验

一. 添加CPU

二. 添加on_chip的ram。 三. 添加 JTAG_UART

四. 添加三个PIO口为输出口,做为

位选输出。

五. 再添加8个PIO口为输出口,作

为段选输出。 注意的地方:

PIO的命名

位选的PIO命名为SMG_BIT 段选的PIO命名为SMG_SEG 实验程序:

//程序功能显示0到9的任意字符,动态显示。

//NIOS II工程路径不能有汉字 和特殊的字符

#include \#include \


SOPC技术LED流水灯设计 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018-2019学年大学生新学期学习计划2000字

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: