77范文网 - 专业文章范例文档资料分享平台

基于SOPC的彩灯控制器设计 - 图文(3)

来源:网络收集 时间:2020-02-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

7 结束语

通过两周的课程设计对SOPC系统有了更进一步的理解,并了解其设计过程,初步掌握了通过SOPC Build对基于NIOS II软核的SOPC系统的定制。采用SOPC技术设计并实现的芯片是面向特定用户的芯片,它能最大程度满足嵌入式系统的要求,减少了产品设计复杂性和开发成本,缩短了产品开发的时间。因此,SOPC 技术及应用的特点决定它可以为复杂的板上系统提供一种更高效更稳定的解决方案。

每一次课程设计都能从中学到可课本上没有的知识,积累一些处理问题的经验。困难是有的,但必须要有耐心,不放弃,慢慢的,最终课程设计还是能成功做出来的,虽然不是很完美。这次的课程设计,前面的NiosII软核的定制还是很顺利的,因为学习过,而且实验也做过多次,但在后面的程序设计就不那么顺利了,多次出错。经过慢慢的调试,最终发现时按键出了问题。第一是按键消抖不合理;第二是按键消抖之后没有松手检导致按键次数出了问题,不能出现预期效果。最终经过不厌倦的调试与修改把程序修改好了,彩灯控制系统可按照要求正常运行起来了!

这次课程设计,让我更加清楚的认识到自己知识的局限性,进一步发现了自己的不足,对问题考虑的不周到,也让我找到了前进的方向,为以后的设计又积累了一次经验,相信在将来的设计中一定会设计的更好!

8 参考文献

【1】 宋彩利,康磊.数字系统设计与SOPC技术.西安交通大学出版社.2012.10

【2】 潘松,黄继业,曾毓. SOPC 技术实用教程.清华大学出版社,2004 . 6.

【3】 周立功.SOPC嵌入式系统基础教程[M].北京航空航天出版社.2006.11.

6

9 附 录

彩灯控制系统源代码:

#include \#include \

#include \#include \

alt_u8 flag=0;

int main(void) __attribute__ ((weak, alias(\

int isKeyPress()//判断是否有按键按下 { if(0 == IORD_ALTERA_AVALON_PIO_DATA(CONTROL_BASE)) { //usleep(10);//消抖 if(0 ==

IORD_ALTERA_AVALON_PIO_DATA(CONTROL_BASE)) { //if(0 !=

IORD_ALTERA_AVALON_PIO_DATA(CONTROL_BASE))//松手检测 { if(4 == flag) flag = 0; else flag++; } return 0; } } return 1; }

void style0(alt_u8 temp) { alt_u8 j=0;

7

for(j=0;j<2;j++) { if(0 == isKeyPress())//判断是否有按键按下 break; if(0 == j) { temp = 0; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp); usleep(800000); } else { temp = 0xff; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp); usleep(800000); } } }

void style1(alt_u8 temp)//奇偶间隔闪亮 { alt_u8 j=0; for(j=0;j<2;j++) { if(0 == isKeyPress())//判断是否有按键按下 break; if(0 == j) { temp = 0x55; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp); usleep(800000); } else { temp = 0xaa;

8

IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp); usleep(800000); } } }

void style2(alt_u8 temp)//左移 { alt_u8 a,b,j=0; temp = 0xfe; for(j=1;j<8;j++) { if(0 == isKeyPress())//判断是否有按键按下 break; a=temp<>(8-j); IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, (a|b)); usleep(800000); } }

void style3(alt_u8 temp)//右移 { alt_u8 a,b,j=0; temp = 0xfe; for(j=1;j<8;j++) { if(0 == isKeyPress())//判断是否有按键按下 break; a=temp>>j; b=temp<<(8-j); IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, (a|b)); usleep(800000); } }

9

void style4(alt_u8 temp)//逐个点亮 { temp = 0xfe; alt_u8 j=0; for(j=1;j<8;j++) { if(0 == isKeyPress())//判断是否有按键按下 break; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp); usleep(800000); temp = temp << 1; } }

int alt_main(void) { alt_u8 led = 0; flag = 0; while(1) { if(0 ==

IORD_ALTERA_AVALON_PIO_DATA(CONTROL_BASE)) { usleep(50);//消抖 if(0 ==

IORD_ALTERA_AVALON_PIO_DATA(CONTROL_BASE)) { //if(0 !=

IORD_ALTERA_AVALON_PIO_DATA(CONTROL_BASE))//松手检测 { if(4 == flag) flag = 0; else flag++; } } } switch(flag)

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库基于SOPC的彩灯控制器设计 - 图文(3)在线全文阅读。

基于SOPC的彩灯控制器设计 - 图文(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/769759.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: