版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、各专业全套优秀毕业设计图纸等级:湖南工程学院课 程 设 计课程名称 嵌入式系统课程设计 课题名称 基于sopc的彩灯控制器设计专 业 电子科学与技术 班 级 1102 班 学 号 2011010402 姓 名 德 指导教师 李 延 平 2014 年 12 月 08 日湖南工程学院课程设计任务书课程名称:嵌入式系统课程设计 题目:基于sopc的彩灯控制器设计 专业班级: 电科1102 班 学生姓名: 学号: 指导老师:李延平 审 批:任务书下达日期 2014年 11 月 24日设计完成日期 2014年 12月 08日 设计内容与设计要求一 设计内容:采用sopc技术设计一个彩灯控制器;1、 功能
2、要求1) 配置nios ii软核系统;2) 在基于eclipse的nios 集成开发环境 (ide)上开发彩灯控制器3) 至少实现8个led,3种以上的花色。2、 功能扩展自拟二 设计要求:1 设计思路清晰,给出整体设计框图2 nios ii处理器选择配置合理;3 仿真 、调试、验证电路模块;4 撰写设计报告。目 录1 设计思路12 系统框图13 niosii软核配置14 原理图设计35 软件设计35.1 工程创建35.2 程序设计45.3 控制流程图45.4 软件调试56 实物演示57 结束语68 参考文献69 附 录81 设计思路完整的基于nios的sopc系统是一个软硬件复合的系统,在开
3、发时可以分为硬件和软件两个部分。本设计通过quartusii软件内置的sopc builder定制一个基于nios ii软核的sopc系统,加入必要的存储器及io,然后编写动态扫描程序对pio进行操作来完成彩灯动态显示的功能。本系统的软件设计在基于eclipse的nios 集成开发环境 (ide)上进行开发,编写彩灯控制器程序,实现8个led多种样式亮灭的变换。2 系统框图图1 基于niosii 软核的sopc彩灯控制系统框图3 niosii软核配置按照彩灯控制系统框图用sopc builder 定制nios ii 系统。本系统包含“cpu、onchip_rom、onchip_ram、led_
4、pio、control”。添加niosii cpu core 。nios ii 有三种标准:经济型、标准型、全功能型。这里选择经济型。分别添加片内ram、片内rom“。添加io 口,8 位输出,对应开发板上8 个led;1位输入,对应开发板上的按键。8位输出端口及1位输入端口分别添加到系统中,分别该名称位“led_pio”、“control”(软件开发编程时要与这里模块组件名称一致)。图2 添加所需的组件系统niosii 所需组件添加完毕,自动分配基地址和中断,生成niosii.sopcinfo文件。 图 3 自动生成niosii核成功图4 生成niosii软核元件符号4 原理图设计由生成的n
5、iosii软核作为主部件,加入时钟输入和复位键和控制键输入,再加上8位的输出(连接8个led)构成彩灯控制系统的原理图。图5 总原理图5 软件设计5.1 工程创建通过“nios ii softeare build tools for eclipse”进行彩灯控制系统的软件设计。新建一个“nios ii application and bsp from template”工程,选择刚刚生成nois文件“niosii.sopcinfo”,即可连接到cpu。project template选择“hello world”模板。图6 基于eclipse的nios 工程创建5.2 程序设计程序中数据结构定
6、义是与nois软核定制的组件名一致的。彩灯输出对应pio组件的“led_pio”,连接开发板的led;输入控制对应pio组件的“control”,连接开发板上的按键。程序代码见附录。5.3 控制流程图图7 彩灯控制流程图5.4 软件调试通过eclipse自带的调试工具对程序设置断点进行调试。图8 调试程序6 实物演示 图9 奇偶数位灯间隔亮灭 图10彩灯左移与右移7 结束语通过两周的课程设计对sopc系统有了更进一步的理解,并了解其设计过程,初步掌握了通过sopc build对基于nios ii软核的sopc系统的定制。采用sopc技术设计并实现的芯片是面向特定用户的芯片,它能最大程度满足嵌入
7、式系统的要求,减少了产品设计复杂性和开发成本,缩短了产品开发的时间。因此,sopc 技术及应用的特点决定它可以为复杂的板上系统提供一种更高效更稳定的解决方案。每一次课程设计都能从中学到可课本上没有的知识,积累一些处理问题的经验。困难是有的,但必须要有耐心,不放弃,慢慢的,最终课程设计还是能成功做出来的,虽然不是很完美。这次的课程设计,前面的niosii软核的定制还是很顺利的,因为学习过,而且实验也做过多次,但在后面的程序设计就不那么顺利了,多次出错。经过慢慢的调试,最终发现时按键出了问题。第一是按键消抖不合理;第二是按键消抖之后没有松手检导致按键次数出了问题,不能出现预期效果。最终经过不厌倦的
8、调试与修改把程序修改好了,彩灯控制系统可按照要求正常运行起来了!这次课程设计,让我更加清楚的认识到自己知识的局限性,进一步发现了自己的不足,对问题考虑的不周到,也让我找到了前进的方向,为以后的设计又积累了一次经验,相信在将来的设计中一定会设计的更好!8 参考文献【1】 宋彩利,康磊.数字系统设计与sopc技术.西安交通大学出版社.2012.10【2】 潘松,黄继业,曾毓. sopc 技术实用教程.清华大学出版社,2004 . 6.【3】 周立功.sopc嵌入式系统基础教程m.北京航空航天出版社.2006.11.9 附 录彩灯控制系统源代码:#include stdio.h#include sy
9、stem.h#include altera_avalon_pio_regs.h#include alt_types.halt_u8 flag=0;int main(void) _attribute_ (weak, alias(alt_main);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(con
10、trol_base)/松手检测if(4 = flag)flag = 0;elseflag+;return 0;return 1;void style0(alt_u8 temp)alt_u8 j=0;for(j=0;j2;j+)if(0 = iskeypress()/判断是否有按键按下break;if(0 = j)temp = 0;iowr_altera_avalon_pio_data(led_pio_base, temp);usleep(800000);elsetemp = 0xff;iowr_altera_avalon_pio_data(led_pio_base, temp);usleep(
11、800000);void style1(alt_u8 temp)/奇偶间隔闪亮alt_u8 j=0;for(j=0;j2;j+)if(0 = iskeypress()/判断是否有按键按下break;if(0 = j)temp = 0x55;iowr_altera_avalon_pio_data(led_pio_base, temp);usleep(800000);elsetemp = 0xaa;iowr_altera_avalon_pio_data(led_pio_base, temp);usleep(800000);void style2(alt_u8 temp)/左移 alt_u8 a,b
12、,j=0;temp = 0xfe;for(j=1;j8;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;jj;b=temp(8-j);iowr_altera_avalon_pio_data(led_pio_base, (a|b);usleep(800000);void style4(alt_u8
13、temp)/逐个点亮temp = 0xfe;alt_u8 j=0;for(j=1;j8;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
14、_data(control_base)/if(0 != iord_altera_avalon_pio_data(control_base)/松手检测if(4 = flag)flag = 0;elseflag+;switch(flag)case 0: style0(led); break;/全部间隔闪亮case 1: style1(led); break;/奇偶间隔闪亮case 2: style2(led); break;/左移case 3: style3(led); break;/右移case 4: style4(led); break;/逐个点亮13电气信息学院课程设计评分表项 目评 价优良中及格差设计方案合理性与创造性(10%)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《陆游生平上课》课件
- 2024-2025年河南中考物理试卷及答案
- 2024年全球视野下的SWOT分析法课件解析
- 山羊兹拉特草原课件:2024年教学新视角
- 起重机械指挥试题题库及答案
- 旅统基1表、2表、3表、4表、5表
- 2024年新版课件:轻松学会三角形面积
- 1查勘定损要求和流程
- 人教版(八年级)初二上册历史期中测试题及答案
- 小学语文经典美文老友蔡澜
- 职业生涯规划概述课件
- 九年级英语《Unit 6 When was it invented》说课稿
- 马渭丽《月光下的中国》
- 2024届高考英语复习语法填空课件
- 原地8字舞龙课课件高一上学期体育与健康人教版
- 如何有效应对学习中的困难和挑战
- 医院感染管理培训课件消毒剂的选择与使用
- 平台分销返佣合作协议
- 中国城市行政代码
- 低纤维蛋白原血症的护理查房
- 数学4教材介绍
评论
0/150
提交评论