欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    ARM课程设计基于S3C2410的实时时钟及闹钟设计.doc

    • 资源ID:2392382       资源大小:417.50KB        全文页数:15页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    ARM课程设计基于S3C2410的实时时钟及闹钟设计.doc

    JISHOUUNIVERSITY课程设计报告书题 目:基于S3C2410的实时时钟及闹钟设计作 者:学 号:所属学院:信息科学与工程学院专业年级:2012级通信工程指导教师:职 称:完成时间:2015年6月12 日吉首大学教务处制目 录摘 要3Abstract3第1章 项目分析41.1 项目的背景和意义41.2 项目的介绍与设计的目的41.3 项目的程序流程图及硬件实验平台41.4 项目的开发及运行环境7第2章 项目内容72.1 实时时钟(RTC)72.2 IIC总线82.3 ZLG72909第3章 项目设计与实现93.1 程序设计与实现93.2 程序功能代码9第4章 个人总结与改进方案15基于S3C2410的实时时钟及闹钟设计摘 要随着科技的发展,嵌入式系统广泛应用于工业控制和商业管理领域,在智能手机、平板电脑、笔记本电脑、车载导航器等方面的应用,更是极大地促进了嵌入式技术深入到生活和工作各个方面。嵌入式系统主要由嵌入式处理器、相关支撑硬件及嵌入式软件系统组成;本课题主要介绍基于S3C2410的实时时钟及闹钟设计与实现,利用RTC模块、IIC,通过八位七段数码管动态显示时间,并在闹钟设定后能通过蜂鸣器报警。实时时钟单元在系统电源关闭的情况下可以在备用电池下继续工作。关键词:S3C2410;RTC;IICAbstractWith the development of science and technology,the embedded system is widely used in industrial control and in the field of business management,and also greatly promote the embedded technology into the life and work in the smartphone, tablet PC, computer, the application of vehicle navigation,An embedded system is mainly composed of embedded processor and related support of hardware and embedded software system;This topic mainly introduced that real time clock and alarm clock design based on S3C2410 , utilization of RTC module and IIC, through seven segment digital tube dynamic display of time, and set the alarm clock through the buzzer alarm. Real time clock unit can continue to work under the backup battery when the system power was turned off .Keyword: S3C2410;RTC;IIC第1章 项目分析1.1 项目的背景和意义一般电子系统都会提供实时时钟(RTC)给不同功能使用,例如系统的时间、日期和定时工作的启动,定期唤醒系统执行任务。已有许多系统解决方案将实时时钟(RTC)和完整的“独立”功能整合至微控制器,将微控制器整合的许多好处付诸实现。实时时钟(RTC)由于有了嵌入式的技术支持,已经大量生产,并且广泛地应用于电子信息行业。实时时钟最基本的是可以实现时间和日期等同步,此外,实时时钟还提供了很多比如看门狗等功能。所以,选择RTC芯片除了需要考虑其时间和日期跟踪功能外,还要针对相应的应用来对RTC的功能、成本、功耗、尺寸等进行综合的考虑。本课程设计简单的介绍了时钟的时间同步和闹钟功能的设计与实现。1.2 项目的介绍与设计的目的1) 能够通过键盘输入进入时钟设定模式设定实时时钟的初始参数;2) 能够通过键盘输入进入闹钟设定模式设定闹钟的基本参数,通过调用蜂鸣器实现闹钟报警;3) 通过IIC总线传送键盘的输入信号到CPU;4) ZLG7290控制8位的七段LED数码管显示:00 00 00,分别为时、分、秒;1.3 项目的程序流程图及硬件实验平台程序流程图:硬件实验平台:本次设计主要使用S3C2410芯片内部RTC单元,SPI,IIC总线及Uart0等。ZLG7290是IIC接口键盘及LED 数码管驱动器。提供键盘中断信号,方便与处理器接口,可驱动8位共阴数码管或64只独立LED和64个按键。 图2 S3C2410开发板结构图图3 RTC模块结构图图4 IIC LED控制器连接电路图5 IIC的EEPROM连接电路图6 ZLG7290引脚图1.4 项目的开发及运行环境CodeWarrior for ARM Developer Suite AXD Debuger H-JTAG 仿真器超级终端第2章 项目内容2.1 实时时钟(RTC)实时时钟(Real Time Clock):S3C2410提供了一个实时时钟,该时钟使用独立的一路1.8V供电,电池与专用于RTC电源的引脚RTCVDD连接,保证主电源切断时能正常维持RTC工作。S3C2410的RTC支持两个中断:Time Tick(固定在一个频率内发出的时钟中断) 和Alarm中断(在某个时刻产生闹铃中断)。利用这两个中断可以设置每一秒中断一次显示变化时间,用Alarm中断实现闹钟功能。S3C2410内部RTC模块结构图,如图3。S3C2410的RTC主要由五部分构成:ü 时钟发生器ü 节拍发生器ü 时间与日期计数器ü 报警发生器ü 控制逻辑寄存器有以下组成:ü 控制寄存器:RTCCONü 报警控制寄存器:RTCALMü 实时时钟计数器:TICNTü 报警时间寄存器:ALMSEC,ALMMIN,ALMHOUR,ALMDATE,ALMMON,ALMYEARRTC最重要的功能就是显示时间。RTC时间显示功能是通过读/写寄存器实现的。要显示秒、分、时、日、月、年,CPU必须读取存于BCDSEC,BCDMIN,BCDHOUR,BCDDAY,BCDDATE,BCDMON与BCDYEAR寄存器中的值。时间的设置也是通过以上的寄存器实现的,即以上寄存器是可读可写的。本课程设计只显示秒、分、时。2.2 IIC总线IIC(InterIntegrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。IIC总线产生于80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询、管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便管理。IIC总线在传送数据过程中共有三种类型信号:开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的IIC在接收到8 bit数据后,向发送数据的IIC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况做出是否继续传递信号的判断。若未收到应答信号,则判断为受控单元出现故障。图7 超始和停止信号图IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。图8 数据传送时序图IIC接口:CPU内置IIC总线控制器,为了方便用户测试IIC总线读写,搭载两个IIC设备,一个是IIC接口的LED数码管显示控制器ZLG7290,通过控制器,控制8位七段数码管的动态扫描(见图4);另一个是 IIC 接口的EEPROM24C16,为16K-bit的串行EEPROM(见图5),方便用户存储一些小容量的数据,掉电不丢失。IIC总线(IICSDA、IICSCL)经过VDD33的上拉后,进入ZLG7290。2.3 ZLG7290ZLG7290(见图6)能够直接驱动8位共阴式数码管(或64只独立的LED),同时还可以扫描管理多达64 只按键。其中有8 只按键还可以作为功能键使用,就像电脑键盘上的Ctrl、Shift、Alt 键一样。采用IIC总线方式,与微控制器的接口仅需两根信号线。可控制扫描位数,可控制任一数码管闪烁。第3章 项目设计与实现3.1 程序设计与实现本课程设计采用软件延时的方法来实现实时时钟和闹钟功能。时钟模式和闹钟模式分别采用disp_buf8和Clock_buf8两个显示缓冲区来存储数值,在时钟模式下,可以对disp_buf8重新赋值,即设定同步时间,通过一个延时函数达到计数时间的功能;在闹钟模式下,可以对Clock_buf8重新赋值,即设定闹钟的时间,当同步时间计时到和设定的闹钟时间相等的时候,调用蜂鸣器函数发出警报,达到闹钟的功能。由于是8位的LED数码管,而本实验只要求显示:00 00 00 即:时 分 秒,所以在第三个和第六个LED数码管最开始赋初值的时候利用0x1F让其不显示,以达到时钟显示的基本效果。然后通过4*4键盘进入时钟设置模式和闹钟设置模式,函数ZLG7290_SendCmd()和ZLG7290_SendBuf()使设置时对应位闪烁并读取键值,键值通过按键获得,每按一次就存在显示缓冲区,直到时间设置完成。通过if语句的嵌套,再加上延时显示来达到时间同步的效果,并且在23 59 59 时自动清零。3.2 程序功能代码#include "config.h"#define BEEP(1<<10) /* GPH10,低电平时蜂鸣 */#define BEEP_MASK(BEEP)/ 定义显示缓冲区char disp_buf8=0x01,0x00,0x1f,0x00,0x00,0x1f,0x00,0x00;char Clock_buf8=0x00,0x00,0x1f,0x00,0x00,0x1f,0x00,0x00;/ ZLG7290控制LED数码管闪烁命令#define Glitter_COM 0x70 int Control =0;int Stop =0;int Flag_look =0;/延时函数void DelayNS(uint32 dly) uint32 i; for(; dly>0; dly-) for(i=0; i<50000; i+);/蜂鸣器函数void RunBeep(void) rGPHDAT = rGPHDAT & BEEP_MASK; / BEEP = 0 DelayNS(8); rGPHDAT = rGPHDAT | BEEP; / BEEP = 1 DelayNS(8);/控制时间计数延时函数void delay (int dly)uint32 i; for(; dly>0; dly-) for(i=0; i<5000; i+);/50000/主函数int main(void) /赋初值int cont=0x80;int Model = 0;int num =-1; int j; char data; uint16 key;uint16 key_tmp; / GPIO设置 rGPACON = rGPACON & (1<<21); / A口,RUN灯控制口 (GPA21) rGPHCON = (rGPHCON & (0x03<<20) | (0x01<<20); / rGPHCON21:20 = 01b,设置GPH10为I/O输出模式 / 初始化I2C接口 InitI2C(); RunBeep(); ZLG7290_SendBuf(uint8 *)disp_buf, 8); / 读取按键,设置键值对应的显示位闪烁 while(1) DelayNS(1); /* >0 表示键值 (低8位为键码,高8位为按键次数) =0 表示无键按下*/key = ZLG7290_GetKey(); /获取键值 key_tmp = key&0x00FF; DelayNS(30); /软件去抖 key = ZLG7290_GetKey(); key = key&0x00FF; /判定键值,读取键值为11时进入时间设置模式,读取键值为12时进入闹钟设置模式 if(key_tmp = key) if(key = 12 && Model = 0) ZLG7290_SendBuf(uint8 *)Clock_buf, 8); ZLG7290_SendCmd(Glitter_COM, 0x80); Model = 2; num =7; cont = 0x80; Stop = 1; if(key = 11 && Model = 0) ZLG7290_SendBuf(uint8 *)disp_buf, 8); ZLG7290_SendCmd(Glitter_COM, 0x80); Model = 1; num =7; cont = 0x80; Stop = 1; /进入设置模式后进行初始值设定,可以任意设定时钟和闹钟的时间 if(Model = 1|Model =2) && num >=0 && key >=1&&key <=10 &&Stop = 1) if(Model =2) data = (uint8 )key; Clock_bufnum = data-1; if(num = 3|num = 6) /第三个和第六个LED数码管不显示,所以不进行赋值 num-; cont = cont >> 1; num-; cont = cont >> 1;ZLG7290_SendBuf(uint8 *)Clock_buf, 8); ZLG7290_SendCmd(Glitter_COM, cont); if(num = -1) /赋值完成后的判定 Model = 0; Stop = 0; ZLG7290_SendCmd(Glitter_COM, 0x00); else if(Model = 1) data = (uint8 )key; disp_bufnum = data-1; if(num = 3|num = 6) /第三个和第六个LED数码管不显示,所以不进行赋值 num-; cont = cont >> 1; num-; cont = cont >> 1; ZLG7290_SendBuf(uint8 *)disp_buf, 8); ZLG7290_SendCmd(Glitter_COM, cont); if(num = -1) Model = 0; Stop = 0; ZLG7290_SendCmd(Glitter_COM, 0x00); /赋值是否完成通过Stop来判定,Stop=0则赋值完成,进入if嵌套语句通过Control来控制延时,以达到最佳的计时效果if(Stop = 0)if(Control = 9)/10disp_buf0 +;if(disp_buf0 >= 10)disp_buf0 = 0;disp_buf1 +; /秒的显示if(disp_buf1 >= 6)disp_buf1 = 0;disp_buf3 +;if(disp_buf3 >= 10)disp_buf3 = 0;disp_buf4 +;if(disp_buf4 >= 6) /分的显示disp_buf4 = 0;disp_buf6 +;if(disp_buf6 >= 10)disp_buf6 = 0;disp_buf7 +;if(disp_buf7 >= 2&&disp_buf6 >= 4) /时的显示,计时到23 59 59时自动清零for(j=0; j<8; j+) disp_bufj=0; disp_buf2=0x1f; disp_buf5=0x1f;Control =0;ZLG7290_SendBuf(uint8 *)disp_buf, 8);ZLG7290_SendCmd(Glitter_COM, 0x00);elseControl+; delay(1); /当两个缓冲区的数值相等时调用RunBeep(),即实现闹钟报警的功能。if(Flag_look >0)|(disp_buf7 = Clock_buf7)&&(disp_buf7 = Clock_buf7)&&(disp_buf6 = Clock_buf6)&&(disp_buf4 = Clock_buf4)&&(disp_buf3 = Clock_buf3)&&(disp_buf1 = Clock_buf1)&&(disp_buf0 = Clock_buf0)RunBeep();if(Flag_look = 0)Flag_look = 100; /控制蜂鸣器报警的时间else Flag_look -; return(0);第4章 个人总结与改进方案通过这次课程设计,加深了对嵌入式的认识和了解,对本学科有了一个基本的理解,最开始打算做这个课程设计的时候不知道从何下手,通过相关老师的指导和细心讲解,逐渐有了一个实现设计的框架。做课程设计之前,最先遭遇的问题就是教学所使用的试验箱无法用32.768kHz的晶振来完成时钟功能,通过多方面查阅相关资料,并且在和同学、老师的讨论中,发现可以用其它的方法也同样能实现实时时钟的功能,比如利用中断、软件延时等,经过多次修订和动手实验,最终决定采用软件延时的方法来完成课程设计,软件延时相对来说比较简单,实现起来比较容易,且显示效果比较稳定、逼真,所以通过利用多方资料最终完成此段能够实现实时时钟和闹钟功能的源代码,但此段代码还可以进行优化,使其达到的效果更好,利用手机的时钟进行测试,发现一分钟的时间,此代码实现的时钟大概延迟了0.5s左右,经过长时间的测试,误差则更加明显,所以在延时控制方面,还可以继续调试一达到更加精确的状态,同时,在第三位和第六位的LED数码管可以调用相关函数显示“”,使显示效果更加完美。通过这次课程设计,同时提高了自己查找资料、整理资料的能力,也意识到了合作的重要性,有些自己不懂的东西要虚心请教会的同学和老师,这样才能更好、更快的完成任务。

    注意事项

    本文(ARM课程设计基于S3C2410的实时时钟及闹钟设计.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开