电子万年历课程设计报告.doc_第1页
电子万年历课程设计报告.doc_第2页
电子万年历课程设计报告.doc_第3页
电子万年历课程设计报告.doc_第4页
电子万年历课程设计报告.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 大连民族学院机电信息工程学院大连民族学院机电信息工程学院 自动化系自动化系 单片机系统课程设计报告单片机系统课程设计报告 题题 目 目 电子万年历电子万年历 专专 业 业 自动化自动化 班班 级 级 114 学生姓名 学生姓名 曹学亮曹学亮 张怀宇张怀宇 马建龙马建龙 指导教师 指导教师 赵凤强赵凤强 张艳张艳 设计完成日期 设计完成日期 2013 年年 10 月月 15 日日 2 课程设计任务书 题目 电子万年历 课程设计时间 2013 9 24 2013 10 19 一 设计任务 给定 1602 液晶显示器和单片机最小系统 学习使用单片机最小系统 设计 在 1602 上显示年月日 时间和星期并能更改 完成相关的软件 二 设计内容及要求 系统设计的方案 检测电路和过程通道的设计 系统软件设计与实现 需要的详细材料和工具清单 设计的性能指标 撰写设计报告 资料归档 三 设计重点 检测电路和过程通道设计 系统软件设计 调试 四 课程设计进度要求 13 9 25 13 9 28 系统方案设计 13 9 29 13 10 5 检测电路和过程通道设计 13 10 6 13 10 7 完成系统硬件设计与实现 13 10 8 13 10 13 检测电路和过程通道设计 13 10 13 13 10 15 撰写设计报告 13 10 19 验收答辩 3 五 参阅书目 1 祁伟 杨亭 单片机 C51 程序设计教程与实验 M 北京 北京航空航天大 学出版社 2006 1 2 徐科军 传感器与检测技术 M 北京 电子工业出版社 2010 11 3 方彦军 孙健 智能仪器技术及其应用 M 北京 化学工业出版社 2004 4 4 徐爱钧 智能化测量控制仪表原理与设计 M 北京 北京航空航天大学出 版社 2004 9 目目 录录 1 任务分析和性能指标任务分析和性能指标 1 1 1 任务分析 1 1 2 性能指标 1 2 总体设计方案总体设计方案 1 2 1 硬件方案 1 2 2 软件方案 1 3 系统硬件设计系统硬件设计 2 3 1 检测电路 2 3 2 控制电路 2 4 系统软件设计系统软件设计 2 4 1 主程序设计 2 4 2 数据采集程序设计 2 4 3 监控程序设计 2 5 调试及性能分析调试及性能分析 2 5 1 调试分析 2 5 1 1 软件调试 2 5 1 2 硬件调试 2 5 1 3 系统功能调试 3 5 2 性能分析 3 总总 结结 3 参考文献参考文献 4 4 附录附录 1 元器件清单元器件清单 5 附录附录 2 调试系统照片调试系统照片 6 1 1 1 任务分析和性能指标任务分析和性能指标 1 1 任务分析 电子万年历是日常生活中常见的小型电子产品 其形式多种多样 小到带 有日期的电子腕表 大到公共场所悬挂的大型电子日历 此外 眼下我们还常 能在宾馆 饭店等场所见到一种带有年 月 日 时 分 秒 星期甚至节气 等信息的电子日历牌 电子日历的主要功能是给人们提供时间和日期信息 无论其形式如何 从 外部都可分为显示和校准两部分 为使电子日历协调工作 整个系统从功能上 可分为实时时钟 显示和键盘三个模块 分别完成时间和日期的计算以及人机 交互的管理等 1 2 性能指标 实时时钟 RTC Real Time Clock 是系统的核心 其运行精度直接影 响产品质量 实时时钟的实现有两种方案可选 一是利用单片机系统时钟和中 断完成时间和日期的计算 二是利用专用时钟芯片 前者不用附加芯片 系统 简单 但是累计误差较大 只有 短时计时才可使用 长时间计时一般都采用后 者 后者采用 32 768KHz 晶体振荡器振作 为脉冲源 内部的 15 位计数器刚好 产生标准秒脉冲 该类芯片除时钟计时外 还有年 月日和星期的计算功能 并 且还可计算闰年 芯片初始化后可脱离 CPU 自动运行 有 些芯片内部带有电 池 出厂时芯片即开始运行 专用时钟芯片的种类很多 与 CPU 的 通信方式 有并行 也有串行 常见的芯片有 DALLAS 公司生产的 DS1302 和 DS12C887 前者为串行 需要外加后备电池 后者为并行 芯片内置锂电池 和晶体振荡器 无外加 电源的情况下可运行 10 年 此外 还有许多时钟芯片 如 Epson Holtek 深圳兴威帆 等公司都推出自己的时钟芯片 因为我们具备 单片机相关知识的基础 所以我们利用单片机系统时钟和中断完成时间和日期 的计算 2 2 2 总体方案设计总体方案设计 2 1 硬件方案 显示部分显示部分 数据显示常采用液晶 液晶显示有耗电低 外形美观的优点 并且 点阵 液晶可显示较复杂的字符或图案 键盘部分键盘部分 时钟系统的键盘设置三个键 确认键 加 1 键 减 1 键 实时时钟部分实时时钟部分 利用单片机系统时钟和中断完成时间和日期的计算 2 2 软件方案 C 语言编属于高级语言 具有可移植性 能够结构化编程 使用标准 C 语言的程序 几乎都可以不作改变移植到不同的微机平台上 对于嵌入式等的 微控制芯片 属于标准 C 语言的部分也很少需要修改 而且程序很容易读懂 C 语言编写程序结构清晰 移植性好 容易维护和修改 汇编语言针对不同的操作系统平台 不同的微控制器 指令都是完全不同 的 即使指令相似 也不具有可移植性 但是汇编语言是针对专门的控制器的 所以运行速度可以精确到一个指令周期 汇编语言的程序读懂需要借助微控制 器的指令手册以及各个寄存器的说明 所以很难读懂 汇编语言编写代码实时性强 能够直接控制硬件的工作状态 但是不具有可移 植性 维护和修改困难 经过我们三人的讨论我们决定使用 c 语言来编写程序 因为 c 语言程序容 易学 也很容易读懂 编写程序结构清晰 易于我们组员之间的讨论和学习 而且相对于汇编我们更加擅长 c 语言 3 3 3 硬件设计硬件设计与实现与实现 由于单片机系统时钟和中断能完成年 月 日 时 分 秒等时间信息 对于一天内的时间记录 有 12 小时制和 24 小时制两种模式 在 12 小时制模 式中 用 AM 和 PM 区分上午和下午 时间的表示方法也有两种 一种用二 进制数 表示 一种是用 BCD 码表示 而显示部分我们采用 LCD 液晶显示屏 液晶显示屏的显示功能强大 可显示文字 图形 显示多样 清晰可见 而其 体积较小 使用方便 可以使电路更加简洁 所以选择了液晶显示器 3 1 1602 显示电路显示电路 3 2键盘电路键盘电路 4 4 5 5 3 3 晶振电路晶振电路 3 4 复位电路复位电路 3 5单片机电路 6 6 4 软件设计软件设计与实现与实现 4 1 主程序 void main init while 1 anjian 7 7 4 2 子程序 4 2 1 按键程序 void anjian 按键函数 rd 0 if s1 0 delay 5 if s1 0 s1num while s1 if s1num 1 TR0 0 write com 0 x80 0 x40 12 write com 0 x0f if s1num 2 write com 0 x80 0 x40 9 if s1num 3 write com 0 x80 0 x40 6 if s1num 4 write com 0 x80 15 if s1num 5 write com 0 x80 9 if s1num 6 write com 0 x80 6 8 8 if s1num 7 write com 0 x80 1 if s1num 8 s1num 0 write com 0 x0c TR0 1 if yue 1 tian ri ri4 if yue 2 tian 31 ri ri4 if yue 3 tian 59 ri ri4 if yue 4 tian 90 ri ri4 if yue 5 tian 120 ri ri4 if yue 6 tian 151 ri ri4 if yue 7 tian 181 ri ri4 if yue 8 tian 212 ri ri4 if yue 9 9 9 tian 243 ri ri4 if yue 10 tian 272 ri ri4 if yue 11 tian 304 ri ri4 if yue 12 tian 334 ri ri4 ri4 0 if s1num 0 if s2 0 delay 5 if s2 0 while s2 if s1num 1 miao if miao 60 miao 0 write sfm 12 miao write com 0 x80 0 x40 12 if s1num 2 fen if fen 60 fen 0 write sfm 9 fen write com 0 x80 0 x40 9 if s1num 3 10 10 shi if shi 24 shi 0 write sfm 6 shi write com 0 x80 0 x40 6 if s1num 4 xingqi if xingqi 8 xingqi 1 write xq 15 xingqi write com 0 x80 15 if s1num 5 ri if ri 32 ri 1 write yr 9 ri write com 0 x80 9 if s1num 6 yue if yue 13 yue 1 tian 1 write yr 6 yue write com 0 x80 6 if s1num 7 nian write n 1 nian write com 0 x80 1 if s3 0 11 11 delay 5 if s3 0 while s3 if s1num 1 miao if miao 1 miao 59 write sfm 12 miao write com 0 x80 0 x40 12 if s1num 2 fen if fen 1 fen 59 write sfm 9 fen write com 0 x80 0 x40 9 if s1num 3 shi if shi 1 shi 23 write sfm 6 shi write com 0 x80 0 x40 6 if s1num 4 xingqi if xingqi 0 xingqi 7 write xq 15 xingqi write com 0 x80 15 if s1num 5 ri ri4 if ri 0 ri 31 12 12 write yr 9 ri write com 0 x80 9 if s1num 6 yue if yue 0 yue 12 tian 334 ri write yr 6 yue write com 0 x80 6 if s1num 7 nian write n 1 nian write com 0 x80 1 13 13 4 2 2 中断程序 void timer0 interrupt 1 开中断 1 定时器中断 0 包括时间的 算法程序 TH0 65536 50000 256 TL0 65536 50000 256 t0 if t0 20 t0 0 miao if miao 60 miao 0 fen write sfm 12 miao 调用函数 write 都为调用上边的显示子函数 下同 if fen 60 fen 0 shi write sfm 9 fen if shi 24 shi 0 xingqi tian write sfm 6 shi if xingqi 8 14 14 xingqi 1 write xq 15 xingqi if tian 0 ri tian if tian 32 ri tian 31 write yr 6 yue if 60 tian ri tian 59 write yr 6 yue if 91 tian ri tian 90 write yr 6 yue if 121 tian ri tian 120 15 15 write yr 6 yue if 152 tian ri tian 151 write yr 6 yue if 182 tian ri tian 181 write yr 6 yue if 213 tian ri tian 212 write yr 6 yue if 244 tian ri tian 243 write yr 6 yue if 274 tian ri tian 273 write yr 6 yue if 305 tian ri tian 304 16 16 write yr 6 yue if 335 tian ri tian 334 write yr 6 yue if tian 366 tian 1 yue 01 ri 1 nian write n 1 nian write yr 9 ri 4 2 3 显示年 void write n uchar add uint date 液晶显示年 uint shi ge bai qian qian date 1000 bai date 100 10 shi date 10 10 ge date 10 write com 0 x80 add write date 0 x30 qian write date 0 x30 bai write date 0 x30 shi write date 0 x30 ge 4 2 4 显示星期 void write xq uchar add uchar date 液晶显示星期 17 17 write com 0 x80 add write date 0 x30 date 4 2 5 显示月日 void write yr uchar add uchar date 液晶显示月日 uchar shi ge shi date 10 ge date 10 write com 0 x80 add write date 0 x30 shi write date 0 x30 ge 4 2 6 显示时分秒 void write sfm uchar add uchar date 液晶显示时分秒 uchar shi ge shi date 10 ge date 10 write com 0 x80 0 x40 add 液晶屏第二行的选着地址 write date 0 x30 shi write date 0 x30 ge 液晶屏显示数字的方式 4 2 7 程序初始化 void init 函数初始化 一些相应的变量 miao 53 fen 59 shi 23 xingqi 5 ri4 0 tian 284 nian 2013 18 18 dula 0 wela 0 lcden 0 write com 0 x38 显示模式设置 设置 16 乘 2 显示 5 7 点阵 八位 数据接口 write com 0 x0c 显示状态为整体显示 write com 0 x06 光标的设定 当读或写一个字符后地址指针加一 光标加一 write com 0 x80 液晶屏第一行选着地址 write com 0 x01 清除显示 否则后面出现黑一块 for num 0 num 17 num write date table1 num delay 5 write com 0 x80 0 x40 for num 0 num0 x for y 116 y 0 y 5 调试及性能分析调试及性能分析 5 1 调试分析 5 1 1 软件调试软件调试 软件调试时 开始出现了很多错误 主要是液晶屏乱码 不显示数字 后来经 过调试找出原因并改正得到想要的结果 20 20 5 1 2 硬件调试硬件调试 硬件主要是单片机 液晶 我们的任务是主要将他们各个引脚的作用和芯片的 功能弄清楚 通过软件操控它们 按照 PCB 原理图焊接到板上 5 1 3 系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论