- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
武汉大学电子信息学院
电子系统综合设计课程论文
基于单片机的数字钟系统设计
专业:
年级:
作者:
指导教师:
2012 年 6月20日
目录
1 作品的背景与意义 …………………………………………… 1
2 功能指标设计 …………………………………………………2
3 作品方案设计 …………………………………………………3
3.1程序语言的比较
3.1.1方案一 汇编语言
3.1.2方案二 C语言
3.2显示方案比较
3.2.1 方案一lcd1602液晶显示
3.2.2 方案二 数码管显示
3.3 主要核心器件知识简介
3.3.1 SST89E516RD
3.3.2 74hc573
3.3.3 74hc254
4 系统整体框图
5 软件设计
5.1 主程序流程图
5.2 主函数
5.3 主函数需调用的各个子模块
5.3.1 查看时间、日历、闹钟模块
5.3.2 修改时间模块
5.3.3 修改日历模块
5.3.4 设定闹钟模块
5.4 精确的“1秒”计时模块
5.5 刷新数码管模块
5.6 获得键值模块
6 系统测试
6.1测试环境
6.2测试步骤
6.2.1第一次调试
6.2.2第二次调试
6.2.3第三次调试
6.2.4第四次调试
附录1 系统电路图
附录2 系统软件代码
附录3 系统器件清单
1 作品的背景与意义
首先,数字钟是日常生活中常见的简单系统,相对于传统的机械时钟具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。其次,由于单片机具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,使单片机在电子和一些自动化行业中应用也越来越广泛。
利用单片机实现的电子钟具有编程灵活,并便于功能的扩展,很精确。
2 功能指标设计
数字钟实现功能:
(1)具备一个精确的1秒定时器;
(2)可根据1秒定时器,在LED上显示带小时、分钟、秒的时钟,实现正常走时(秒→分→时→日→月→年进位);
(3)能够自动区分平闰年和大小月;
(4)具备小时、分钟的修改按键,可分别调整小时、分钟、秒;
(5)具备显示日期功能,并且能分别直接修改年,月,日;
(6)具备5个闹钟,可分别查看和修改闹钟时间;也可分别设置闹钟开关,且当闹钟鸣叫时,可人为关掉闹钟。
3 方案选择
3.1采用的程序语言的方案选择
3.1.1方案一、汇编
优点:
能够直接访问与硬件相关的存储器或I/O口;
能够对关键代码进行更准确的控制,避免因线程共同访问或者硬件设备共享引起的死锁;
能够最大限度地发挥硬件的功能
缺点:
① 编写的代码非常难懂,不好维护;
② 很容易产生bug,难于调试;
3.1.2方案二、c语言
优点:
简洁紧凑,适用范围大,可移植性好
可结构化编程
运算符、数据类型丰富
缺点:
在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷;
在语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。
结论:由于想要了解和掌握汇编语言的具体编写过程,且可以直接通过汇编语控制端口,更好地了解芯片的工作原理,故而选择了汇编语言。
3.3 主要核心器件知识简介
3.3.1 SST89E516RD
SST89E516RD 是8位集成存储器的51系列兼容单片机。单片机是典型的嵌入式微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
3.3.2 74hc573
74HC573 是八进制 3 态非反转透明锁存器。
为三态允许控制端,低电平有效
LE为锁存控制端,高电平有效
1D~8D为数据输入端
1Q~8Q 为数据输出端
3.3.3 74HC245
74HC245:总线收发器,典型的CMOS型三态缓冲门电路。总线收发器,典型的CMOS型三态缓冲门电路。为输出使能端,低电平有效
DIR为输出方向控制端
A0~A7为数据输入/输出端
B0~B7为数据输入/输出端
4 系统整体框图
5 软件设计:
5.1主流程图
程序开始时初始化:对定时器T1装入初值,外部中断INT1进行初始化,开启定时器和外部中断后进入主函数刷新数码管,扫描键盘,并判断闹钟的开启状态,和是否让蜂鸣器鸣叫。若没有闹钟开着,也没有对相应键的按下,则在主函数中循环。
5.2主
文档评论(0)