- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用计数存钱罐的设计
作者:窦伟 全先树 曹蕾
摘要
实用计数存钱罐利用ATMEL公司生产的在线下载AVR单片机为核心部件,以Atmega16为微处理芯片,实现了存钱罐的计钱和时钟显示功能。AVR单片机采用RISC指令,与51系列单片机相比,具有高性能,低功耗,存储容量大等特点。该作品可以完成的功能有:
1 能准确地显示当前时间和日期。
2 当前日期和时间的调整和设定功能,当系统第一次运行,或需要调整当前日期时,提供人工方式的设置手段。
3 当前日期和时间调整和设置过程简单,可靠,方便用户操作。
4 对存取的硬币自动计数,并且自动计算总钱数功能。
5 对存钱历史自动记录和查询功能。
6 利用键位的复用功能,取钱时可以人工实现减数实现了用最少的键表示最多的功能. ,
7自动 记录取钱时的时间和日期以及所取钱数和所剩钱数.
具体设计:
Ⅰ硬件设计:
实用技术存钱罐在硬件设计总体上分为时钟模块和计数模块两大部分。
一 时钟模块
在这个模块中,如何设计和实现实时时钟是最关键的要点。
通常实时时钟的实现方案有两种途径:
1 实用avr本身的功能。
2 使用专用的实时时钟芯片。
下面是这些方案的比较和评估:
方案 实时时钟源 实现方法 特点 1 Avr内部定时器 软件 成本低,精度差,程序设计复杂 2 外接32768Hz晶振 软件 成本低,精度较高,程序设计复杂 3 专用实时时钟芯片 硬件 成本稍高,精度高,程序设计简单
通过三种方案的比较,我们决定采用第三种方案,因为实时时钟芯片虽然成本较高,但它的的集成度高,走时准确,具备日历和闰年自动调整等功能,而且其本身功耗非常少。
实时时钟的结构可分为以下几个部分:
ATmega16: 系统核心控制芯片
DS1302:专用实时时钟芯片
显示单元:有LED数码管组成,用来显示时间和日期
按键:设置日期和时间
电源: 由电池供电
DS1302的结构及工作原理 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
一 对DS1302操作
为减少程序代码,增强程序的可读性,我们决定用CVAVR中直接提供的对DS1302读/写的基本函数对其进行操作。
二 系统工作状态
系统工作状态分为:
1 正常显示(ⅰ)
2 当前日期设置(ⅱ)
3 当前时间设置(ⅲ)
4 历史纪录查询(ⅳ)
状态之间的转换通过按键实现,不同状态显示方式不同。
不同工作状态时显示内容和方式
状态 显示内容和方式 正常显示 ⅰ 交替显示当前日期和时间 ,转换间隔时间我为15s 当前时间设置 ⅱ 显示用户设置的时间值,点状LED长亮,当前设置位闪烁 当前日期设置 ⅲ 显示用户设置的日期值,点状LED长亮,当前设置位闪烁 历史纪录查询 ⅳ 交替显示1-6次历史纪录日期和时间 ,转换间隔时间我为10s
在主程序中采取了分时处理的思想,每隔1s读取DS1302芯片中的当前日期值。每隔10ms扫描按键,进行按键处理。
三 处理按键
系统的四个按键为:SET-1 ENTER UP UPWORD 。在正常显示状态下,UP和ENTER 无任何功能,它们仅在时间和日期状态时才有作用。
下图为状态之间转换和相关按键操作流程图:
在正常显示状态(ⅰ)时, 按一下SET-1键,转入时间设置状态(ⅱ) ,
此时第一位数码管闪烁,提示用户现在是设置时间的高位。如果继续按SET-1键,进入当前日期设置状态,同样第一位数码管闪烁,提示用户现在是设置日期的高位。如果再按SET-1键,则返回正常显示状态。在按键设置过程中,如果10s中没有按键操作,将放弃本次操作,自动返回正常显示状态。
下图为时间设置子状态转换图:
时间设置的子状态转换过程
设置过程按位进行,UP键的作用为当前设定位加1,ENTER键确认当前设定值,进入下一位的设置。处于当前设定位的数码管闪烁显示,提示用户。只有6次按ENTER键后,系统才正式确认用户的全部设置。
同样,如果10s中没有按键操作,将放弃本次操作,自动返回正常显示状态。
Ds1302
ATMEGA16
显示单元
5v稳压电源
按键
开始(DS1302初始化)
Upward
10s内无操作
读取时间
正常显示(包括时间,日期,和钱数)
上一次记录
显示上一次存钱记录
时间调整
日期调整
显
文档评论(0)