利用开发板编程完成显示实时时钟功能
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三显示实时时钟
一.实验目的
1.了解实时时钟的硬件控制原理及设计方法;
2.掌握OK210开发板处理器中RTC模块程序的设计方法。
二.实验设备
硬件:OK210开发板(配有RTC模块),串口线,PC机
软件:Android开发环境,超级终端
三.实验内容
学习和掌握OK210开发板中处理器中RTC模块的使用,编写应用程序,修改时钟日期及时间的设置,以及使用开发板的串口,在超级终端显示当前系统时间。
rRTCCON= rRTCCON &~(0xf)丨0x1;
rBCDYEAR= rBCDYEAR &~(0xff)丨g_nyear;
rBCDMON= rBCDMON &~(0x1f)丨g_nmonth;
rBCDDAY= rBCDDAY &~(0x7)丨g_nweekday;
rBCDDATE= rBCDDATE &~(0x3f)丨g_ndate;
OK210开发板中实时时钟RTC单元是处理器集成的片内外设。由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。RTC发送8位BCD码数据到CPU,传送的数据包括秒,分,小时,星期,月份和年份,CPU通过访问RTC模块的寄存器,首先要设RTCCON的bit为1。CPU通过读取RTC模块中寄存器的值,得到当前的相应的时间值。RTC单元时钟源由外部晶振提供,可以实现闹钟功能。
五.实验步骤
1.准备实验环境
将开发板与电脑通过串口连接好,笔记本没有串口设备,通过USB串口适配器,并且连接开发主板上的电源接口。
2.串口接收设置
在PC机上运行超级终端串口通信程序,设置超级终端:波特率115200、1位停止位、无校验位、无硬件流控制。
3.将编写好的程序导入到开发板进行运行
通过超级终端输入相应的信息,开发板将显示对应的信息,最终将显示时间信息。
T0PR=0;
T0MCR=0x03;
T0MR0=Fpclk/2;
T0IR=0x01;
T0TCR=0x01;
}Leabharlann Baidu
int main(void)
{
PINSEL1=PINSEL1 & 0xFFFFFFF3;
IO0DIR=LED;
IO0SET=LED;
Timer0Init();
IRQEnable();
VICIntSelect=VICIntSelect & (~(1 << 4));
uart_printf(“month (0x01):”);
g_nmonth=uart_getintnum();
uart_printf(“date (0x06):”);
g_ndate=uart_getintnum();
uart_printf(“\n1:Sunday 2:Moday 3:Thesday 4:Wednesday 5:Thursday 6:Friday 7:Saturday\n”);
VICVectCntl0=0x20|4;
VICVectAddr0=(uint32)Timer0ISR;
VICIntEnable=1<<4;
while(1);
return0;
}
六.实验程序
时间设置控制程序
void rtc_set(void)
{
uart_printf(“\n please input 0x and two digit then press Enter,such as 0x66.\n”);
uart_printf(“year (0x7DF):”);
g_nyear=uart_getintnum();
rBCDHOUR= rBCDHOUR &~(0x3f)丨g_nhour;
rBCDMIN= rBCDMIN &~(0x7f)丨g_nmin;
rBCDSEC= rBCDSEC &~(0x7f)丨g_nsec;
rRTCCON=0x0;
RTC Control disable;
}
定时程序代码:
#include "config.h"
#define LED (1<<17)
void __irq Timer0ISR (void)
{
if((IO0PIN & LED)==0)
{
IO0SET=LED;
}
else IO0CLR=LED;
T0IR=0x01;
VICVectAddr=0x00;
}
void Timer0Init(void)
{
T0TCR=0x02;
uart_printf(“\n hour (0x09):”);
g_nhour=uart_getintnum();
uart_printf(“\n minute (0x1E):”);
g_nmin=uart_getintnum();
uart_printf(“\n second (0x00):”);
g_nsec=uart_getintnum();
四.实验原理
实时时钟(RTC)
实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC具有计时准确、耗电低和体积小等特点,特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程,电力自动化、工业控制等自动化程度高的领域的无人值守环境。RTC器件与微控制器之间的接口大都采用连线简单的串行接口,有同步串口和异步串口。
一.实验目的
1.了解实时时钟的硬件控制原理及设计方法;
2.掌握OK210开发板处理器中RTC模块程序的设计方法。
二.实验设备
硬件:OK210开发板(配有RTC模块),串口线,PC机
软件:Android开发环境,超级终端
三.实验内容
学习和掌握OK210开发板中处理器中RTC模块的使用,编写应用程序,修改时钟日期及时间的设置,以及使用开发板的串口,在超级终端显示当前系统时间。
rRTCCON= rRTCCON &~(0xf)丨0x1;
rBCDYEAR= rBCDYEAR &~(0xff)丨g_nyear;
rBCDMON= rBCDMON &~(0x1f)丨g_nmonth;
rBCDDAY= rBCDDAY &~(0x7)丨g_nweekday;
rBCDDATE= rBCDDATE &~(0x3f)丨g_ndate;
OK210开发板中实时时钟RTC单元是处理器集成的片内外设。由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。RTC发送8位BCD码数据到CPU,传送的数据包括秒,分,小时,星期,月份和年份,CPU通过访问RTC模块的寄存器,首先要设RTCCON的bit为1。CPU通过读取RTC模块中寄存器的值,得到当前的相应的时间值。RTC单元时钟源由外部晶振提供,可以实现闹钟功能。
五.实验步骤
1.准备实验环境
将开发板与电脑通过串口连接好,笔记本没有串口设备,通过USB串口适配器,并且连接开发主板上的电源接口。
2.串口接收设置
在PC机上运行超级终端串口通信程序,设置超级终端:波特率115200、1位停止位、无校验位、无硬件流控制。
3.将编写好的程序导入到开发板进行运行
通过超级终端输入相应的信息,开发板将显示对应的信息,最终将显示时间信息。
T0PR=0;
T0MCR=0x03;
T0MR0=Fpclk/2;
T0IR=0x01;
T0TCR=0x01;
}Leabharlann Baidu
int main(void)
{
PINSEL1=PINSEL1 & 0xFFFFFFF3;
IO0DIR=LED;
IO0SET=LED;
Timer0Init();
IRQEnable();
VICIntSelect=VICIntSelect & (~(1 << 4));
uart_printf(“month (0x01):”);
g_nmonth=uart_getintnum();
uart_printf(“date (0x06):”);
g_ndate=uart_getintnum();
uart_printf(“\n1:Sunday 2:Moday 3:Thesday 4:Wednesday 5:Thursday 6:Friday 7:Saturday\n”);
VICVectCntl0=0x20|4;
VICVectAddr0=(uint32)Timer0ISR;
VICIntEnable=1<<4;
while(1);
return0;
}
六.实验程序
时间设置控制程序
void rtc_set(void)
{
uart_printf(“\n please input 0x and two digit then press Enter,such as 0x66.\n”);
uart_printf(“year (0x7DF):”);
g_nyear=uart_getintnum();
rBCDHOUR= rBCDHOUR &~(0x3f)丨g_nhour;
rBCDMIN= rBCDMIN &~(0x7f)丨g_nmin;
rBCDSEC= rBCDSEC &~(0x7f)丨g_nsec;
rRTCCON=0x0;
RTC Control disable;
}
定时程序代码:
#include "config.h"
#define LED (1<<17)
void __irq Timer0ISR (void)
{
if((IO0PIN & LED)==0)
{
IO0SET=LED;
}
else IO0CLR=LED;
T0IR=0x01;
VICVectAddr=0x00;
}
void Timer0Init(void)
{
T0TCR=0x02;
uart_printf(“\n hour (0x09):”);
g_nhour=uart_getintnum();
uart_printf(“\n minute (0x1E):”);
g_nmin=uart_getintnum();
uart_printf(“\n second (0x00):”);
g_nsec=uart_getintnum();
四.实验原理
实时时钟(RTC)
实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC具有计时准确、耗电低和体积小等特点,特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程,电力自动化、工业控制等自动化程度高的领域的无人值守环境。RTC器件与微控制器之间的接口大都采用连线简单的串行接口,有同步串口和异步串口。