欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    嵌入式软件开发基础实验报告-实时时钟.docx

    • 资源ID:700006       资源大小:40.92KB        全文页数:7页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式软件开发基础实验报告-实时时钟.docx

    上海电力等就嵌入式软件开发根底实验报告题目:【ARM】实时时钟实验专业:电子科学与技术年级:姓名:学号:一、实验目的1、了解实时时钟的硬件控制原理及设计方法。2、掌握S3C44B0X处理器的RTC模块程序设计方法。二、实验设备1、硬件:EmbestEduKit-III实验平台,EmbestARM标准/增强型仿真器套件,PC机。2、软件:EmbestIDEProARM集成开发环境,Windows982000NTXPo三、实验内容学习和掌握EmbestEduKit-III实验平台中RTC模块的使用,进行以下操作:1、编写应用程序,修改时钟日期及时间的设置。2、使用EMBESTARM教学系统的串口,在超级终端显示当前系统时间。四、实验原理1 .实时时钟(RTC)实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC具有计时准确、耗电低和体积小等特点,特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程、电力自动化、工业控制等自动化程度高的领域的无人值守环境。随着集成电路技术的不断开展,RTC器件的新品也不断推出,这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。RTC器件与微控制器之间的接口大都采用连线简单的串行接口,诸如I2C、SPI.MICROWIREftCAN等串行总线接口。这些串口由23根线连接,分为同步和异步。2 .S3C44B0X实时时钟(RTC)单元S3C44B0X实时时钟(RTe)单元是处理器集成的片内外设。由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。RTC发送8位BCD码数据到CPU。传送的数据包括秒、分、小时、星期、日期、月份和年份。RTC单元时钟源由外部32.768KHZ晶振提供,可以实现闹钟(报警)功能。S3C44B0X实时时钟(RTe)单元特性:BCD数据:秒、分、小时、星期、日期、月份和年份1、闹钟(报警)功能:产生定时中断或激活系统2、自动计算闰年3、无2000年问题4、独立的电源输入5、支持毫秒级时间片中断,为RTOS提供时间基准读/写存放器访问RTC模块的存放器,首先要设RTCCON的bit为1。CPU通过读取RTC模块中存放器BCDSEC、BCDMlN、BCDHOUR>BCDDAY、BCDDATE、BCDMON和BCDYER的值,得到当前的相应时间值。然而,由于多个存放器依次读出,所以有可能产生错误。比方:用户依次读取年(1989)、月(12).日(31)、时(23)、分(59)、秒(59)o当秒数为1到59时,没有任何问题,但是,当秒数为0时,当前时间和日期就变成了1990年1月I日0时0分。这种情况下(秒数为0),用户应该重新读取年份到分钟的值(参考程序设计)。后备电池:RTC单元可以使用后备电池通过管脚RTCVDD供电。当系统关闭电源以后,CPU和RTC的接口电路被阻断,后备电池只需要驱动晶振和BCD计数器,从而到达最小的功耗。闹钟功能RTC在指定的时间产生报警信号,包括CPU工作在正常模式和休眠(powerdown)模式下。在正常工作模式,报警中断信号(ALMINT)被激活。在休眠模式,报警中断信号和唤醒信号(PMWKUP)同时被激活。RTC报警存放器(RTCALM)决定报警功能的使能/屏蔽和完成报警时间检测。时间片中断RTC时间片中断用于中断请求。存放器TlCNT有一个中断使能位和中断计数。该中断计数自动递减,当到达0时,那么产生中断。中断周期按照以下公式计算:Period=(n+1)/128second其中,n为RTC时钟中断计数,可取值为(1T27)置零计数功能RTC的置零计数功能可以实现30、40和50秒步长重新计数,供某些专用系统使用。当使用50秒置零设置时,如果当前时间是11:59:49,那么下一秒后时间将变为12:00:00。注意:所有的RTC存放器都是字节型的,必须使用字节访问指令(STRB、LDRB)或字符型指针访问。五、实验设计1 .硬件电路设计2 .软件程序设计(1)时钟设置时钟设置程序必须实现时钟工作情况以及数据设置有效性检测功能。具体实现可以参考例如程序设计。(2)时钟显示时钟参数通过实验系统串口0输出到超级终端,显示内容包括年月日时分秒。参数以BCD码形式传送,用户使用串口通信函数(参见串口通信实验)将参数取出显示。* name:rtc_read* func:readdatafromrtc* para:none* ret:none* modify:* comment:voidrtc_read(void)(while(1)(/readthedatafromRTCregistersif(rBCDYEAR=0x99)g_nYear=0x1999;elseg,Year=0x2000+rBCDYEAR;g_nMonth=rBCDMON;g_nDay=rBCDDAY;g_nWeekday=rBCDDATE;g.nHour=rBCDHOR;g_nMin=rBCDMIN;g_nSec=rBCDSEC;if(g_nSecI=0)break;* name:rtc_display* func:displaydatafromrtc* para:none* ret:none* modify:* comment:*«*«*«*«*A*«*««*«*«*<tA*«»*<*yvoidrtc_display(void)(rtc_read();uarCprintf("nrCurrentTimeis%02x-%02x-%02x%s",g_nYear,g_nMonth,g_nDay,f_szdateg_nVeekday);uart-printf("%02x:%02x:%02xrn",g_nHour,g_nMin,g_nSec);,六、实验操作步骤1 .准备实验环境使用EmbeSt仿真器连接目标板,使用EmbeStEdUKit-In实验板附带的串口线,连接实验板上的UARTO和PC机的串口。2 .串口接收设置在PC机上运行windows自带的超级终端串口通信程序(波特率115200、1位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序。3 .翻开实验例程1)拷贝光盘CDlSoftwareEduKit44bO文件夹到EmbeStlDEExamplesSamsung目录下;2)使用EmbeStIDE通过EmbeStJTAG仿真器连接实验板,翻开实验例程目录4.5_rtc_test子目录下的rtc_test.pjf例程,编译链接工程;3)点击IDE的DebUg菜单,选择RemoteConneCt项或F8键,远程连接目标板;4)点击IDE的DebUg菜单,选择DoWnIOad下载调试代码到目标系统的RAM中;5)点击DebUg菜单的Go或F5键运行程序。4 .观察实验结果1) .在PC机上观察超级终端程序主窗口,可以看到如下界面:bootsuccess.RTCTestExampleRTCCheck(YN)?2) .用户可以选择是否对RTC进行检查,检查正确的话,继续执行程序,检查不正确时也会提示是否重检查:RTCCheck(YN)?ySetDefaultTimeat2004-12-31FRI23:59:59SetAlarmTimeat2005-01-0100:00:01.RTCAlarmInterruptO.K.CurrentTimeis2005-01-01SAT00:00:01RTCWorkingnow.Tosetdate(YN)?3) .用户可以选择是否重新进行时钟设置,当输入不正确时也会提示是否重新设置:RTCWorkingnow.Tosetdate(YN)?yCurrentdateis(2005z01z01zSAT).inputnewdate(yy-mm-ddw):5-2-233Currentdateis:2005-02-23WEDRTCWorkingnow.Tosettime(YN)?yCurrenttimeis(00:02:57).Tosettime(hh:mm:ss):19:32:54) .最终超级终端输出信息如下:CurrentTimeis2005-02-23WED19:32:0519:32:07七、实验参考程序1.环境及函数声明ARM7根底实验教程-196 -*/*globalvariables*/*/intg_nYear;intg_nMonth,g_nDay,g_nWeekday,g_nHour,g_nMin,g-Sec;*/*functiondeclare*/*/inttest_rtc_alarm(void);voidrtcjnit(void);voidread_rtc(void);voiddisplay_rtc(void);voidtest_rtc_tick(void);voidrtcjnt(void);voidrtcjick(void);2.时讪设置控制程序*«*«»* name:rtc_set_date* fnc:getandchecktheDATEstringfromuartchanneltosetrtc* para:none* ret:cN09=0:invalidstring* cN09=1:setdatebyinputstringandok* modify:* comment:intrtc_set_date(char*pString)charcYn,cN09=1;charszStr12;/xxxx-xx-xx×inti,Tmp;memcpy(void*)szStr,pString112);/checktheformatofthedatanTmp=0;cN09=1;for(i=0;(i<12)&(szStr(i!=*0,);i+)if(szStri=,-,)(szStri=,)nTmp+=1;)if(Tmp<3)/atleast2'-'and1''(ARM7根底实验教程-197-cN09=O;uart_printf("InVaIidformat!nr");)else/checkifnumberO-9(nTmp=i-1;/adjusttheaccountnumber/1:M0N2:TUE3:WED4:THU5:FRI6:SAT7:SUNif(szStrnTmp<,1,szStrnTmp>7')/checkweekdaycN09=O;for(i=nTmp;i>=O;i-)(if(!(szStr(i=*-')(szStri=")if(sz

    注意事项

    本文(嵌入式软件开发基础实验报告-实时时钟.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开