基于lpc2148rtc的实时时钟课题设计

上传人:ji****n 文档编号:45232322 上传时间:2018-06-15 格式:DOC 页数:8 大小:207KB
返回 下载 相关 举报
基于lpc2148rtc的实时时钟课题设计_第1页
第1页 / 共8页
基于lpc2148rtc的实时时钟课题设计_第2页
第2页 / 共8页
基于lpc2148rtc的实时时钟课题设计_第3页
第3页 / 共8页
基于lpc2148rtc的实时时钟课题设计_第4页
第4页 / 共8页
基于lpc2148rtc的实时时钟课题设计_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于lpc2148rtc的实时时钟课题设计》由会员分享,可在线阅读,更多相关《基于lpc2148rtc的实时时钟课题设计(8页珍藏版)》请在金锄头文库上搜索。

1、课题设计设计(论文)题目: 数字时钟系统设计 学 院 名 称: 专 业: 班 级: 姓 名: 学 号; 指 导 教 师: 发放日期: 2012 年 12 月 11 日课程设计报告课程设计报告1 课题名称课题名称 数字时钟系统设计2 摘摘 要要1基本要求基本要求利用 LPC2148 ARM7 嵌入式系统实验箱上的按键与 UART 串行通讯接口设计数字时钟系统,要求如下:使用 LPC2148 内部的 RTC 模块建立数字时钟系统的基础,初始时间为 2012年 12 月 1 日 0 时 0 分 0 秒;串口调试助手显示:每隔一秒在串口调试助手上显示当前时间,包括年、月、日、星期、小时、分、秒;在满足

2、以上功能描述的前提下,可使用定时器模块替代 RTC 模块(注意星期、闰年的情况考虑) 。2发挥部分发挥部分(1)加入三个按键,可以设计时间信息,第一个按键选择年、月、日、星期、小时、分、秒;第二个按键循环设置;第三个按键在设置完成后启动时钟。(2)利用数码管代替串口调试助手的显示功能,数码管上显示分、秒信息即可。3. 设计方案描述:LPC2148 系统微控制器内部集成一个功能完整的实时时钟(RTC)模块。RTC 提 供一套计数器,在系统工作时对时间进行测量。RTC 消耗的功率非常低,这使 其适合于由电池供电的,CPU 不连续工作的系统。由于 LPC2148 微控制器的 RTC 模块没有独立的时

3、钟源,使用的时钟频率是 对 Fpclk 分频得到,输入到时 钟的发生器的时钟频率是 32.768KHZ。时间计数器与报警寄存器不断进行比较, 当匹配时,可以产生报警中断。此外,时间计数器的增加也可以产生中断信号。RTC 模块中主要的寄存器: ILR 中断位置寄存器 位 0:为 1 时计数器增量中断模块产生中断,该位写入 1 时清除中断。 位 1:为 1 时报警中断寄存器产生中断,该位写入 1 时清除中断。 计数器增量中断寄存器: 位 0:为 1 时秒值的增加产生一次中断。 时钟控制寄存器 CCR:位 0:时钟使能,该位为 1 时,时间计数器使能。为 0 是时间计数器被禁止。主程序设计主程序设计

4、#include #include /系统时钟宏定义#define FOSC 12000000 /XTAL frequency in Hz#define PCLK FOSC/4 /pclk must always be XTALFREQ/4?#define key_1 0x01 8; /高八位U1LCR dly-)for(i=0;i500;i+);Void Print_week(void)if(DOW=0)sendStr(“sundayn“);if(DOW=1)sendStr(“mondayn“);if(DOW=2)sendStr(“tuesdayn“);if(DOW=3)sendStr(“w

5、ednesdayn“);if(DOW=4)sendStr(“thursdayn“);if(DOW=5)sendStr(“fridayn“);if(DOW=6)sendStr(“saturdayn“); void Print_time(void)/*printf(“The real time is : %d “, HOUR);printf(“%d “, MIN);printf(“%d n“, SEC);*/sprintf(buf,“%d:%d:%d rn“, HOUR, MIN, SEC);sendStr(buf);void set_time(void) /按键 2 设置小时,分,秒。按键 3

6、每按一下小时或分或秒加 1if(IO0PINif(IO0PINif(key_val2=3)key_val2=0;if(IO0PINif(IO0PINif(IO0PINif(SEC=60)SEC=0; break;case:1if(IO0PINif(IO0PINif(MIN=60)MIN=0; break;case:2if(IO0PINif(IO0PINif(HOUR=24)HOUR=0; break;/主函数void main(void) UART_Init();RTC_Init();Logo();while(1) set_time(); /设置时间while(0=(ILRPrint_time

7、();Print_date();Print_week();ILR=0X03; delayn(100000);/发送字符串void sendStr(char *Str)while(*Str)!=0)sendByte(*Str);Str+;int putchar(int c)while (!(U1LSR return(U1THR = c);/发送单个字符void sendByte(char byte)while (!(U1LSR /数据为空时才写入U1THR = byte; /写发送保持寄存器/延时函数void delayn(unsigned long n)while(n-); 问题 1:实验中不

8、知道为什么波特率设置为 9600 的时候,显示时部分会出现乱 码。 在电子通信领域,波特率(Baud rate)即调制速率,指的是信号被调制以后在 单位时间内的变化,即单位时间内载波参数变化的次数。它是对符号传输速率 的一种度量,1 波特即指每秒传输 1 个符号。 理论上我在程序中设置了 9600 波特率,串口窗口中把波特率设置为 9600,可 以正常传输,但实际情况中出现部分乱码。 改进:将串口窗口中把波特率改成 4800,将程序中波特率设置为 4800,串口窗 口能正常显示。 问题 2:程序中按键不够灵敏,需要按较长时间才有反应. 总结:熟悉整个嵌入式系统的开发流程,能简单地设计一个基于嵌入式系统的 设备。掌握 RTC,UART 的重要寄存器的设置,及数据传输的程序。实验中完 成了在串口小助手上接受时钟的时间,日期,星期,并可以通过按键来设置时 间。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号