1、 JISHOU UNIVERSITY课 程 设 计 报 告 书题 目: 基于 S3C2410 的实时时钟及闹钟设计作 者: 黄涛学 号: 20124055069所属学院: 信息科学与工程学院专业年级: 2012 级通信工程指导教师: 侯冬晴 职 称:完成时间: 2015 年 6 月 12 日吉首大学教务处制目 录摘 要 .3Abstract.3第 1 章 项目分析 .41.1 项目的背景和意义 .41.2 项目的介绍与设计的目的 .41.3 项目的程序流程图及硬件实验平台 .41.4 项目的开发及运行环境 .7第 2 章 项目内容 .72.1 实时时钟(RTC) .72.2 IIC 总线 .8
2、2.3 ZLG7290.9第 3 章 项目设计与实现 .93.1 程序设计与实现 .93.2 程序功能代码 .9第 4 章 个人总结与改进方案 .15基于 S3C2410 的实时时钟及闹钟设计摘 要随着科技的发展,嵌入式系统广泛应用于工业控制和商业管理领域,在智能手机、平板电脑、笔记本电脑、车载导航器等方面的应用,更是极大地促进了嵌入式技术深入到生活和工作各个方面。嵌入式系统主要由嵌入式处理器、相关支撑硬件及嵌入式软件系统组成;本课题主要介绍基于 S3C2410 的实时时钟及闹钟设计与实现,利用 RTC 模块、IIC,通过八位七段数码管动态显示时间,并在闹钟设定后能通过蜂鸣器报警。实时时钟单元
3、在系统电源关闭的情况下可以在备用电池下继续工作。关键词: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, com
4、puter, 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
5、 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吉首大学本科生课程设计2第 1 章 项目分析1.1 项目的背景和意义一般电子系统都会提供实时时钟(RTC)给不同功能使用,例如系统的时间
6、、日期和定时工作的启动,定期唤醒系统执行任务。已有许多系统解决方案将实时时钟(RTC)和完整的“独立”功能整合至微控制器,将微控制器整合的许多好处付诸实现。实时时钟(RTC)由于有了嵌入式的技术支持,已经大量生产,并且广泛地应用于电子信息行业。实时时钟最基本的是可以实现时间和日期等同步,此外,实时时钟还提供了很多比如看门狗等功能。所以,选择 RTC 芯片除了需要考虑其时间和日期跟踪功能外,还要针对相应的应用来对 RTC 的功能、成本、功耗、尺寸等进行综合的考虑。本课程设计简单的介绍了时钟的时间同步和闹钟功能的设计与实现。1.2 项目的介绍与设计的目的1) 能够通过键盘输入进入时钟设定模式设定实
7、时时钟的初始参数;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 个按键。吉首大学本科生
8、课程设计3图 2 S3C2410 开发板结构图图 3 RTC 模块结构图吉首大学本科生课程设计4图 4 IIC LED 控制器连接电路图 5 IIC 的 EEPROM 连接电路图 6 ZLG7290 引脚图吉首大学本科生课程设计51.4 项目的开发及运行环境CodeWarrior for ARM Developer Suite AXD Debuger H-JTAG 仿真器超级终端第 2 章 项目内容2.1 实时时钟(RTC)实时时钟(Real Time Clock):S3C2410 提供了一个实时时钟,该时钟使用独立的一路 1.8V 供电,电池与专用于 RTC 电源的引脚 RTCVDD 连接,
9、保证主电源切断时能正常维持 RTC 工作。S3C2410 的 RTC支持两个中断:Time Tick(固定在一个频率内发出的时钟中断) 和 Alarm 中断(在某个时刻产生闹铃中断)。利用这两个中断可以设置每一秒中断一次显示变化时间,用 Alarm 中断实现闹钟功能。S3C2410内部 RTC 模块结构图,如图 3。S3C2410 的 RTC 主要由五部分构成: 时钟发生器 节拍发生器 时间与日期计数器 报警发生器 控制逻辑寄存器有以下组成: 控制寄存器:RTCCON 报警控制寄存器:RTCALM 实时时钟计数器:TICNT 报警时间寄存器:ALMSEC,ALMMIN,ALMHOUR,ALMD
10、ATE,ALMMON ,ALMYEARRTC 最重要的功能就是显示时间。RTC 时间显示功能是通过读 /写寄存器实现的。要显示秒、分、时、日、月、年,CPU 必须读取存于BCDSEC,BCDMIN,BCDHOUR,BCDDAY,BCDDATE,BCDMON 与 BCDYEAR 寄存器中的值。时间的设置也是通过以上的寄存器实现的,即以上寄存器是可读可写的。本课程设计只显示秒、分、时。吉首大学本科生课程设计62.2 IIC 总线IIC(InterIntegrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。IIC 总线产生于 80 年代
11、,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询、管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便管理。IIC 总线在传送数据过程中共有三种类型信号:开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。 结束信号:SCL 为低电平时,SDA 由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的 IIC 在接收到 8 bit 数据后,向发送数据的 IIC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,
12、等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况做出是否继续传递信号的判断。若未收到应答信号,则判断为受控单元出现故障。图 7 超始和停止信号图IIC 总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。图8 数据传送时序图吉首大学本科生课程设计7IIC 接口:CPU 内置 IIC 总线控制器,为了方便用户测试 IIC 总线读写,搭载两个 IIC 设备,一个是IIC 接口的 LED 数码管显示控制器 ZLG7290,通过控制器,控制 8位七段数码管的动态扫描(见图4);另一个是 II
13、C 接口的 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 程序
14、设计与实现本课程设计采用软件延时的方法来实现实时时钟和闹钟功能。时钟模式和闹钟模式分别采用disp_buf8和 Clock_buf8两个显示缓冲区来存储数值,在时钟模式下,可以对 disp_buf8重新赋值,即设定同步时间,通过一个延时函数达到计数时间的功能;在闹钟模式下,可以对 Clock_buf8重新赋值,即设定闹钟的时间,当同步时间计时到和设定的闹钟时间相等的时候,调用蜂鸣器函数发出警报,达到闹钟的功能。由于是 8 位的 LED 数码管,而本实验只要求显示:00 00 00 即:时 分 秒,所以在第三个和第六个LED 数码管最开始赋初值的时候利用 0x1F 让其不显示,以达到时钟显示的基
15、本效果。然后通过 4*4 键盘进入时钟设置模式和闹钟设置模式,函数 ZLG7290_SendCmd()和 ZLG7290_SendBuf()使设置时对应位闪烁并读取键值,键值通过按键获得,每按一次就存在显示缓冲区,直到时间设置完成。通过 if 语句的嵌套,再加上延时显示来达到时间同步的效果,并且在 23 59 59 时自动清零。3.2 程序功能代码#include “config.h“#define BEEP (10; dly-) for(i=0; i0; dly-) for(i=0; i5000; 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 / A 口,RUN 灯控制口 (GPA21) rGPHCON = (rGPHCON / rGPHCON21:20 = 01b,设置 GPH10 为I/O 输出模式 / 初始化 I2C 接口InitI2C();