- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE \* MERGEFORMAT 17
综合实验 NiosII数字钟设计
单 位: 信息工程学院
班 级: 07级7班
学 号: 1071000253
姓 名: 康宇晨
指导老师: 邱德惠
首 都 师 范 大 学
2010年5月
设计概述
用Nios II DE2开发板的LCD显示电子钟的日期和时间,LCD分两行显示,第一行显示年月日,第二行显示时分秒。用输入按钮BUTTON来控制LCD行修改,通过Nios II IDE进行软件设计。
设计要求
1.掌握Nios II系统的设计和使用方法;
2.学习通过Nios II IDE进行软件设计的方法;
3.实现在液晶屏上显示时间和日期,并可以对其进行设置。
实验环境
DE2 开发板
QuartusII 7.2
SOPC Builder 7.2
NiosII IDE 7.2
设计方案(总体设计、软件设计、硬件设计)
1. 总体设计要实现以下两个功能:
(1). 在液晶屏上显示时间,日期
(2). 对时间、日期能够进行设置
建立新工程clock
2. 硬件系统组成设计
根据系统要实现的功能和开发板配置,需要用到的DE2开发板上的外围器件有:
LCD:电子钟显示屏幕
按钮:电子钟设置功能键
CFI Flash存储器:存储软、硬件程序
SDRAM存储器:程序运行时将其导入SDRAM
根据所用到的外设和器件特性,在SOPC Builder中建立系统要添加的模块包括:NiosII CPU定时器,按键PIO,LCD, 外部存储器总线(Avalon三态桥),外部SDRAM控制器,外部Flash接口。
打开SOPC Buider,系统名称为sopc_clock
加入SDRAM组件
加入Flash Memory 组件
加入外部存储器总线(Avalon三态桥)
加入按键PIO
加入LCD
加入NiosII CPU定时器,选择标准型的
元件添加完后,要为每个外设分配及地址和中断请求优先级(IRQ),在System中选择Auto-Assign Base Address和Auto-Assign IRQs命令,这两个命令可分别简单分配外设基地址和中断优先级。然后生成Nios II系统。
然后生成顶层文件,将Nios II系统模块加入到顶层文件中,如图所示原理图
进行引脚锁定,并编译,然后进行硬件下载
3.软件系统设计
要实现系统所需的功能,大量的工作应该集中在软件设计和优化上。电子钟的软件功能主要分为显示、设置和时间算法三大部分。
eq \o\ac(○,1)显示部分的功能包括:显示时间(小时:分钟:秒)和 显示日期(年-月-日)
eq \o\ac(○,2)设置部分的功能包括:设置小时,设置分钟,设置年份,设置月份,设置日期和退出设置。
设置部分的程序主要用在对按键的响应。在编写程序前要对DE2开发板上的四个按键BUTTON功能进行如下分配:
(1). 主菜单
BUTTON0:设置选择键,可依次选择设置时、分、秒和年、月、日
BUTTON1:显示日期键
BUTTON2:显示时间键
(2). 子菜单(即进入对某个选项设置后的按键功能):
BUTTON1:选项数字增加
BUTTON2:选项数字减少
BUTTON3:退出对选项的设置,返回主菜单
eq \o\ac(○,3)时间算法部分的功能包括:时间累加和确定每个月的最大天数,使年、月、日能正确累加
软件代码
1.count_binary.c的代码:
#include count_binary.h
//程序每秒钟检测一次按钮的状态,对日期和时间进行设置
#include alt_types.h
#include stdio.h
#include string.h
#include unistd.h
#include system.h
#include sys/alt_irq.h
#include altera_avalon_pio_regs.h
#include lcd.h
volatile int edge_capture;
void LCD_Init()
{
//LCD初始化
lcd_write_cmd(LCD_BASE,0x38);
usleep(2000);
lcd_write_cmd(LCD_BASE,0x0C);
usleep(2000);
lcd_write_cmd(LCD_BASE,0x01);
usleep(2000);
lcd_write_cmd(LCD_BASE,0x06);
usleep(2000);
lcd_write_cmd(LCD_BASE,0x80);
usleep(2000);
}
vo
您可能关注的文档
最近下载
- 草果栽培技术.ppt VIP
- 药物设计软件:Schrodinger二次开发_(16).Schrodinger插件开发与使用.docx VIP
- 浙江省9+1高中联盟2024-2025学年高二上学期11月期中考试物理试题(含答案).docx VIP
- 教育研究导论(宁虹主编)笔记.pdf VIP
- 药物设计软件:Schrodinger二次开发_(15).自定义分子力场与参数化.docx VIP
- 2019年高铁动车广告,高铁车身广告,高铁广告价格.pdf VIP
- 高考数学考点题型全归纳.pdf VIP
- 万华化学安全管理实践.pdf VIP
- 丹纳赫DBS管理系统.pptx VIP
- 金属焊接软件:SYSWELD二次开发_(6).焊接热源模型开发.docx VIP
文档评论(0)