《基于ARM嵌入式的日历制作(含完整程序).doc》由会员分享,可在线阅读,更多相关《基于ARM嵌入式的日历制作(含完整程序).doc(43页珍藏版)》请在金锄头文库上搜索。
1、桂林电子科技大学实训说明书专用纸编号: 嵌入式系统设计 实训 (论文)说明书题 目: 基于嵌入式ARM的日历的制作 院 (系): 应用科技学院 专 业: 电子信息工程 学生姓名: 农惜童 学 号: 0701130204 指导教师: 符强、陈小毛、严素清、孙安青2011 年 01月 19 日摘 要日历在生活中经常用到,电子制作的带时钟的日历更是在生活中广泛用到。本课题是基于ARM芯片的日历制作,采用LPC2138中央控制单元,五个按键分别用于调节和查询时间日期,设定生日等。用LCD1602显示。整个设计元器件少,简洁美观,且模块化。模块化的设计和调试方法在整个课题研究过程中至关重要,事实上在任何
2、设计中也同样关键和有效。关键字:日历;LPC2138;按键;LCD1602; AbstractCalendar in life are often used, electronic made with clock calendar is widely used in life. This topic is based on the ARM of the chip making, use the calendar LPC2138 central control unit, five buttons respectively used to regulate and inquires the ti
3、me or date, set a birthday, etc. With LCD1602 display. The whole design components less, concise and beautiful, and modularization. Modular design and debug method in the whole subject research process is of vital importance to in fact in any design also key and effectively. Keywords:Calendar; LPC21
4、38; Button; LCD1602第4页目 录引言11 设计任务22 硬件设计22.1 总体设计方案与系统构成22.2 LPC2138芯片22.2.1LPC2138管脚22.2.2LPC2138主要性能32.2.3LPC2138的应用42.3 RTC实时时钟模块52.3.1RTC特性52.3.2RTC寄存器52.3.3RTC使用注意事项72.4 硬件电路图82.5 硬件电路PCB93 软件设计93.1 整体设计93.2 初始化程序流程图113.3 生日提示程序流程图114 基于ARM日历的调试124.1 硬件电路检测124.2 功能调试125 改进方案12结论13谢 辞14参考文献15附
5、录1引言RTC的英文全称是Real-Time Clock,翻译过来是实时时钟芯片. RTC是PC主板上的晶振及相关电路组成的时钟电路的生成脉冲,RTC经过8254电路的变频产生一个频率较低一点的OS(系统)时钟TSC,系统时钟每一个cpu周期加一,每次系统时钟在系统初起时通过RTC初始化。RTC通常情况下需要外接32.768kHz晶体,匹配电容、备份电源等元件。RTC除了I/O口的定位不同,还有功能上的区别,比如与MCU的接口,现在常用的是I2C接口(距离短,可以与其他器件共用)还有RAM的数量、静态功耗大小、中断的数量,特别是精度的区别。RTC的精度可以说与温度有很大的关系,而温度会影响晶体
6、的频率。所以就产生实时时钟的衍生产品:时钟模块(内置晶体、电容、电池等等),其精度可保持在每天误差小于0.50秒。但时钟模块相比时钟芯片而言会高出许多。RTC最重要的功能是提供到2099年内的日历功能,对于时间来说,无论快慢都是误差,而匹配电容在RTC的外围器件上其他非常重要的作用,它可以适当修正晶体与RTC之间匹配问题。特别是像H1208 这样的RTC,把匹配电容内置,这样就可以保证RTC精度的一致性,不会出现有的RTC走得快,有些又走得慢。它的主要作用就是提供稳定的时钟信号给后续电路用。主要功能有:时钟&日历,闹钟,周期性中断输出,32KHz时钟输出。 1 设计任务(1)实现公历、星期、周
7、次。(2)生日提示音。(3)日期查询。2 硬件设计2.1 总体设计方案与系统构成本次实训课题基于嵌入式ARM的日历的制作。软件程序从下载口接入LPC2138嵌入式芯片,通过调用LPC2138中的RTC实时时钟模块来实现日历功能,外部接个D/A转换电路,实现生日提示音的功能。外加5个按键,分别控制日期时间的调整,和生日的设定。电路系统构成框图如图2.1所示。图2.1电路系统构成2.2 LPC2138芯片本系统主要由嵌入式ARM芯片LPC2138的RTC主控模块、LCD1602显示模块以及按键控制模块构成。原理图见附录12.2.1LPC2138管脚管脚图如图2.2.1所示图2.2.1LPC2138
8、管脚图2.2.2LPC2138主要性能(1)小型LQFP64封装的16/32位ARM7TDMI-S微控制器。 (2)8/16/32kB片内静态RAM。 (3)片内Boot装载软件实现在系统/在应用中编程(ISP/IAP) 。扇区擦除或整片擦除的时间为400ms,1ms可编程256字节。 (4)EmbeddedICERT 和嵌入式跟踪接口可实时调试(利用片内 RealMonitor 软件)和高速跟踪执行代码。 (5)1个(LPC2132/2132)或 2 个(LPC2138)8 路 10 位 A/D 转换器共包含 16 个模拟输入,每个通道的转换时间低至2.44us。 (6)1个10位D/A转换
9、器,可提供不同的模拟输出(LPC2132/2138) 。 (7)2个32位定时器/计数器(带4路捕获和4路比较通道) 、PWM单元(6路输出)和看门狗。 (8)实时时钟具有独立的电源和时钟源,在节电模式下极大地降低了功耗。 (9)多个串行接口,包括2个16C550工业标准 UART、2个高速I2C接口(400 kbit/s) 、SPITM 和SSP(具有缓冲功能,数据长度可变) 。 (10)向量中断控制器。可配置优先级和向量地址。 (11)多达47个5V的通用I/O口(LQFP64封装) 。 (12)9个边沿或电平触发的外部中断引脚。 (13)通过片内PLL可实现最大为60MHz 的 CPU操
10、作频率,PLL的稳定时间为100us。 (14)片内晶振频率范围:130 MHz。 (15)2个低功耗模式:空闲和掉电。(16)可通过个别使能/禁止外部功能和降低外部时钟来优化功耗。 (17)通过外部中断将处理器从掉电模式中唤醒。 (18)单个电源供电,含有上电复位(POR)和掉电检测(BOD)电路:CPU操作电压范围:3.03.6 V (3.3 V+/ 10%),I/O口可承受5V的最大电压。2.2.3LPC2138的应用(1)工业控制(2)医疗系统(3)访问控制(4)POS机(5)通信网关(6)嵌入式软moderm(7)一般性应用2.3 RTC实时时钟模块实时时钟(RTC)提供一套计数器在
11、系统上电和关闭操作时对时间进行测量。RTC 消耗的功率非常低。LPC2138的RTC时钟可由独立的32.768kHz振荡器或基于VPB 时钟的可编程预分频器来提供。另外,RTC还具有专用的电源管脚Vbat,可连接到电池或其它器件使用的相同的3.3V电压上2.3.1RTC特性(1)测量保持日历或时钟的时间通路(2)超低功耗设计,支持电池供电系统(3)提供秒、分、小时、日、月、年和星期(4)指定的32kHz振荡器或可编程VPB时钟预分频器(5)专用电源管脚可与电池或3.3V的电压相连2.3.2RTC寄存器1.时钟节拍计数器CTC时钟节拍计数器CTC是用于尝试秒的时钟节拍计数,这是一个只读寄存器,但
12、它可以通过时钟控制寄存器(CCR)复位为0,如图2.3.2(1)所示。图2.3.2(1)RTC计数部分原理示意图2.时钟控制寄存器CCR时钟控制寄存器CCR是一个4位寄存器,它用于控制时钟分频电路的操作,包括启动RTC和复位时钟节计数器琴CTC等。操作示例如下:CCR=0x01; /启动RTC3.报警寄存器报警寄存器如表2.3.2(3)所示,这些寄存器的值与时间计数器相比较,如果所有未屏蔽的报警寄存器都与它们相对应的时间计数器相匹配,那么将产生一次中断。像中断位置寄存器的bit1写入1清除中断。表2.3.2(3)报警寄存器定时报警设置示例程序如下所示:ILR=0x03; /清除RTC中断标志A
13、LHOUR=12; /报警时间设置为12::0:00ALMIN=0; /ALSEC=0; /AMR=0xF8; /屏蔽年月日值,星期值4.时间计数寄存器时间值包含8个寄存器,见表2.3.2(4)所示。表2.3.2(4)时间计数寄存器按读时间计数寄存器方式读取RTC时钟程序如下所示:Struct DATE uint16 year; Uint8 mon; Uint8 day; Uint8 dow;Struct TIME uint8 hour; Uint8 min; Uint8 sec;Void GetTime(struct DATE*d,struct TIME *t) d-year=YEAR; d
14、-mon=MONTH; d-day=DOM; d-hour=HOUR; d-min=MIN; d-sec=SEC2.3.3RTC使用注意事项如果使用 RTC,Vbat必须连接到 V3 脚或一个独立的电源(外部电池) 。否则,Vbat应该接地(Vss)。Vbat断电时LPC2131/2132/2138不能保存RTC的状态,如果时钟源丢失、中断或改变,RTC也无法维持时间计数。由于RTC有两个可用的时钟(VPB时钟(pclk)或来自RTCX1-2管脚的32KHz 的信号) ,所选择时钟的任何中断都会导致时间值的偏移。如果 RTC 初始化成这个时间值或从 RTC 激活后运行的一段时间内出现了一个错误,它们带来的变化都将影响真实的时钟时间。RTCX1-2管脚的信号可随时为RTC提供时钟,选择pclk 作为RTC时钟和进入掉电模式会使时间的更新出现误差。而且,在系统操作过程中(重新配置 PLL、VPB 定时器或 RTC 预分频器)改变 RTC 的时间基准会使累加时间出现错误。当RTC时钟由pclk转变为RTCX管脚信号时也会出现累加时间误差。一旦RTCX1-2管脚的32KHz 信号被选择用作RTC的时钟源, RTC可完全独立工作, 与VPB时钟(pclk)无关。因此,在要用到 RTC 且对功耗敏感的应用中(如电池供电设备)可通过使用 RTCX1-2 管脚的信号和清除PC