课程设计(论文)-基于arm7的电子万年历设计

上传人:aa****6 文档编号:34053166 上传时间:2018-02-20 格式:DOC 页数:28 大小:341.50KB
返回 下载 相关 举报
课程设计(论文)-基于arm7的电子万年历设计_第1页
第1页 / 共28页
课程设计(论文)-基于arm7的电子万年历设计_第2页
第2页 / 共28页
课程设计(论文)-基于arm7的电子万年历设计_第3页
第3页 / 共28页
课程设计(论文)-基于arm7的电子万年历设计_第4页
第4页 / 共28页
课程设计(论文)-基于arm7的电子万年历设计_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《课程设计(论文)-基于arm7的电子万年历设计》由会员分享,可在线阅读,更多相关《课程设计(论文)-基于arm7的电子万年历设计(28页珍藏版)》请在金锄头文库上搜索。

1、I成 绩 评 定 表学生姓名 班级学号专 业 通信工程 课程设计题目 基于 ARM7 的电子万年历设计评语组长签字:成绩日期 2015 年 7 月 19 日II课程设计任务书学 院 信息科学与工程学院 专 业 通信工程学生姓名 班级学号课程设计题目 基于 ARM7 的电子万年历设计实践教学要求与任务:1学习 ARM7 的虚拟仪器原理、设计方法和实现技巧;2掌握简单 ARM7 程序的编程实现;3学会使用 Proteus 和 Keil 连接电路图和关联源代码;4采用 ARM7 语言,实现电子万年历设计;(1)通过检索、查资料、调查研究、确定方案、画出组成系统结构方框图;(2)采用 ARM7 实现电

2、子万年历;(3)系统调试与改进,调整系统参数,分析系统运行结果;(4)写出设计总结报告。 工作计划与进度安排:20 周(上):学习 ARM7 虚拟仪器原理、设计方法和实现技巧,掌握简单 ARM7 程序的编程实现,掌握简单通信系统设计和分析方法。20 周(下):采用 ARM7 语言,实现电子万年历设计,并对万年历进行评估。指导教师:2015 年 7 月 13 日专业负责人:2015 年 7 月 13 日学院教学副院长:2015 年 7 月 13 日III目录1 系统设计 .11.1 电子显示屏特性 .11.2 按键控制 .11.3 LCD 显示端 .11.4 万年历调控电路 .21.5 万年历的

3、实现 .31.6 LCD 调试电路图 .32 软件的具体功能和要求 .42.1 基本要求 .42.2 软件设计平台的介绍及实现方法 .42.3 程序设计流程图 .43 设计总结 .63.1 proteus 仿真电路图 .63.2 Keil 源代码 .73.3 性能分析 .23参考文献 .2411 系统设计1.1 电子显示屏特性1LED 由计算机专用设备、显示屏幕、视频输入端口和系统软件等组成。2计算机及专用设备直接决定了系统的功能,可根据用户对系统的不同要求选择不同的类型3提供视频输入端口。1.2 按键控制 1用于年月日的调控,复位。2用于时分秒的置换,清屏。1.3 LCD 显示端LCD 显示

4、端如图 1 所示。图 1 LCD 显示端21.4 万年历调控电路万年历调控电路如图 2 所示。图 2 万年历调控电路31.5 万年历的实现使用调试功能,经过反复的调试终于实现了计时功能,然后通过查询资料,实现了计时过程中时钟实时更新功能及实现 LED 灯跟节奏闪烁。再经过程序的改进,实现了实时时钟和闹钟调整功能。添加了 LED 灯指示调整时间点(秒、分、时、星期、日、月、年)功能。1.6 LCD 调试电路图调试电路图如图 3 所示。4图 3 调试电路图2 软件的具体功能和要求2.1 基本要求本课题所设计的系统要求:(1) 在理解基本实验代码的基础上,掌握万年历的工作原理,基于程序控制方式的驱动

5、设计。(2) 在 proteus 中使用 ARM7 的 LPC2106 芯片并且结合 Keil 的源代码, 实 现万年历功能。(3) 编写基于万年历程序,实现代码编译。2.2 软件设计平台的介绍及实现方法本设计中采用可编程逻辑设计环境 ARM7 进行设计,Keil uVsion5 采用 C 语言进行编程。2.3 程序设计流程图万年历程序流程图如图 4 所示。5图 4 万年历程序流程图开始初始化读日期、时间写日期、时间显示子程序时间修改子程序日期修改子程序显示结果返回开关控制子程序63 设计总结73.1 proteus 仿真电路图仿真结果如图 5 所示。图 5 仿真电路图3.2 Keil 源代码

6、/* * 功能:LCD12864 液晶显示 驱动程序 */ #include config.h 8#define LCD12864_DIR IO0DIR /端口方向 #define LCD12864_CLR IO0CLR /数据清零 #define LCD12864_SET IO0SET /数据置一 #define LCD12864_PIN IO0PIN /端口状态 #define LCD12864_BUSY (1=0 & sur=(sur/2)*2)&(i=64*(sur%2)&j=(sur-12)/12)*2&i 16) / 获取年 dis_buf0=bak/1000+0; bak = b

7、ak % 1000; dis_buf1=bak/100+0; bak = bak % 100; dis_buf2=bak/10; dis_buf3=bak%10; dis_buf4=-; bak = (datas 8) / 获取月 dis_buf5=bak/10; dis_buf6=bak%10; dis_buf7=-; bak = datas / 获取日 dis_buf8=bak/10; dis_buf9=bak%10; dis_buf10= ; bak = (times 24) / 获取星期 dis_buf11=bak%10; dis_buf12= ; bak = (times 16) /

8、 获取小时 dis_buf13=bak/10; dis_buf14=bak%10; dis_buf15=:; bak = (times 8) / 获取分钟 dis_buf16=bak/10; dis_buf17=bak%10; dis_buf18=:; bak = times / 获取秒钟 dis_buf19=bak/10; dis_buf20=bak%10; 20tm0= dis_buf13; tm1= dis_buf14; tm2= dis_buf16; tm3= dis_buf17; tm4= dis_buf19; tm5= dis_buf20; year0= dis_buf2; yea

9、r1= dis_buf3; year2= dis_buf5; year3= dis_buf6; year4= dis_buf8; year5= dis_buf9; day = dis_buf11; /dayoder = dis_buf9; /* /* 名称:Weekupdated() /* 功能:更新星期 /* void Weekupdated(uint8 oder) /DispOneChinese(6,96,*(week+oder),16); DispOneChinese (6,96,*(week+oder),16); /每次循环,显示一个汉字 /* /* 名称 : Timeupdated /* 作用 : 在待机界面刷新时间 /* 参数解释 :

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号