基于AVR单片机的RTC实时时钟_第1页
基于AVR单片机的RTC实时时钟_第2页
基于AVR单片机的RTC实时时钟_第3页
基于AVR单片机的RTC实时时钟_第4页
基于AVR单片机的RTC实时时钟_第5页
已阅读5页,还剩11页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

基于AVR单片机的RTC实时时钟引言本次我们小组设计的是基于AVR单片机的RTC实时时钟,它能提供日历/时钟/秒表的功能,它走时准确,耗电低设计原理该实时时钟使用了AVR单片机,主要利用其中的DS1302时钟芯片,1602液晶屏和CTC分频模式。一日历时钟设计1芯片选择对于时钟设计我们直接使用了DS1302时钟芯片,该芯片利用了外加的12M的晶振进行计时,自带了万年历的功能,使用十分方便。本身有后备电源引脚,可以外接后备电源保持实时工作。内有年月日时分秒的寄存器,可直接写入读取,缺点是较难起振,感觉会受温度影响2液晶屏使用为了方便的显示时间,我们还采用了1602液晶屏1602液晶屏功耗小,体积小,显示内容丰富,操作灵活,具有双行16字显示。3时钟程序设计1DS1302程序主要函数DS1302INIT/初始化时钟芯片,DS1302_WRITEB/写入单字节数据DS1302_READB/读取单字节数据,DS1302_SETT/时间设置DS1302_GETT/获取时间21602程序主要函数INIT1602/初始化1602,GOTOXY/显示位置设置WRITE1602/在1602中显示数据3其他常用程序KEYCHECK/小键盘检查,DELAY_MS/延时函数BCD2ACSII/编码转换,DISPLAY/显示16024程序设计原理DS1302通过拉高拉低RST电平进行片选,当时钟信号来临时,先向DS1302写入操作的地址信息,在第二个时钟信号进行数据操作,读取或写入,每次操作完注意进行写保护防止误写入数据导致时钟停止1602通过RS,R/W,EN进行控制操作,通过D0D7进行数据写入二秒表设计1芯片选择直接使用ATMEGA16本身的分频功能。2定时器程序设计TIMER/定时器驱动及1602显示,TIME/中断执行的函数3程序设计原理利用定时器TIMER1中的256分频,先对TCCR1寄存器预存数据,存入的数据为(6552512000000/256),当TCCR1累加到65535时,产生中断,然后进行中断操作,全局变量SECONG加1等。调试过程单片机的调试是枯燥而又艰辛的,其中既有硬件上又软件上的调试。对于硬件调试,我们一开始就打定主意用液晶屏来显示,但是买来的液晶屏屡试都还无反应,只用背光灯亮了,我们想了无数个办法都没有成功,在其中浪费了巨大的时间,后来发现竟然是因为电位器没有调好,调好后在改了一下代码的显示,总算是把1602调通了,实在是因为一开始没有经验完全不知道电位器要调整。我们遇上的第二个大麻烦就是1302竟然不能走钟,一开始还是从软件入手,测试了DS1302寄存器里的数据,改了很多小问题,最后变的可以读取和写入数据了,但是还是不能走,我用万用表测了管脚,感觉是因为晶振没有起振,换了同学的晶振,还是不能走动,愈发悲剧,百度谷歌了很长时间,有说电容问题,甚至有说DS1302很多假冒的,后来某次突然二了,竟然有吹风筒去吹(看代码太久,神经错乱),更无语的是吹了一下后。竟然时钟竟然动了,十分囧,遂感觉是因为天气潮湿导致晶振管脚短接,至今未能验证是否。后来这两天天气凉下来都能正常起振了最后是小键盘的调试,因为之前弄过,所以硬件上是没有问题的,只是软件上问题多多,比如会显示乱码之类的,大多是时序和键盘抖动的问题,慢慢调还是调好了。经验教训最大的感慨是调试时一开始完全不知道是软件还是硬件的问题,只能慢慢猜测,不断尝试才能调好一块板子,而且同是AVR单片机不同的焊接电路使用方法是完全不同的,写代码时一定要多用宏定义才方便改,遇到问题慢慢看DATASHEET。附带源码【主程序】INCLUDE“TESTH“INCLUDE“TIMEH“INCLUDE“KEYCHECKH“INCLUDE“DELAYH“DEFINETIMER_KEY15DEFINERTC_KEY14DEFINESETTIME_KEY11UCHARSETTIME70X20,0X04,0X12,0X26,0X09,0X06,0X10VOIDWRITEWEEKUCHARDAYSWITCHDAYCASE1WRITE16021,MWRITE16021,OWRITE16021,NBREAKCASE2WRITE16021,TWRITE16021,UWRITE16021,EBREAKCASE3WRITE16021,WWRITE16021,EWRITE16021,DBREAKCASE4WRITE16021,TWRITE16021,HWRITE16021,RBREAKCASE5WRITE16021,FWRITE16021,RWRITE16021,IBREAKCASE6WRITE16021,SWRITE16021,AWRITE16021,TBREAKCASE7WRITE16021,SWRITE16021,UWRITE16021,NBREAKVOIDDISPLAYUCHARTIMEUCHARPGOTOXY1,0WRITE16021,2WRITE16021,0PBCD2ACSIITIME6WRITE16021,P0WRITE16021,P1WRITE16021,PBCD2ACSIITIME4WRITE16021,P0WRITE16021,P1WRITE16021,PBCD2ACSIITIME3WRITE16021,P0WRITE16021,P1GOTOXY12,0WRITEWEEKTIME5GOTOXY2,1PBCD2ACSIITIME2WRITE16021,P0WRITE16021,P1WRITE16021,PBCD2ACSIITIME1WRITE16021,P0WRITE16021,P1WRITE16021,PBCD2ACSIITIME0WRITE16021,P0WRITE16021,P1GOTOXY0,0VOIDWRITE_TIME_INPUTUCHARIUCHARTABLE“INPUTNEWTIME“FORI0I1UCHARDS1302_READBVOIDUCHARI,BYTE0X00TIME_DDRTIME_PORTFORI0IINCLUDEINCLUDE“DELAYH“DEFINERS_CLRPORTAFORI0ITIFORJ0J1411JENDIF【KEYBOARD扫描代码】IFNDEF_KEYCHECK_HDEFINE_KEYCHECK_HINCLUDE“DELAYH“DEFINEKEY_DDRDDRBDEFINEKEY_PORTPORTBDEFINEKEY_PINPINBDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTUINTKEYCHECKUINTKEY_ROW,KEY_COLUMNKEY_DDR0X0FKEY_PORT0XF0IFKEY_PIN0XF0DELAY_MS2IFKEY_PIN0XF0SWITCHKEY_PINCASE0XE0KEY_ROW1BREAKCASE0XD0KEY_ROW2BREAKCASE0XB0KEY_ROW3BREAKCASE0X70KEY_ROW4BREAKDEFAULTKEY_ROW0BREAKKEY_DDR0XF0KEY_PORT0X0FDELAY_MS1IFKEY_PIN0X0FSWITCHKEY_PIN

温馨提示

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

评论

0/150

提交评论