⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtc_example.c

📁 西安明朗公司开发板ML-F020ICB的全部测试代码
💻 C
字号:
/************************************************************************************
*  Copyright (c), 2004-2007,西安铭朗电子科技有限责任公司
*            All rights reserved.
*
* Http:  www.mlarm.com
* Email: mlarm@mlarm.com
*
* File name: RTC_Example.c
* Project  : ML-F020ICB
* Processor: C8051F020
* Compiler : Keil C51 Compiler
* 
* Author:  李林利
* Version: 1.20
* Date:    2007.6.1
* Email:   GavinLi@126.com
* 
* Description: RTC测试程序文件;
*
* Others: none;
*
* Function List:
*	1. void RTC_Proc(void)		
*
* History:
*   1. Author:       李林利  
*	   Version: 	 1.10
*	   Date:         2007.3.12
*      Modification: none
*
*   2. Author:       李林利   
*	   Version: 	 1.00
*      Date:         2004.11.24
*      Modification: 建立文件
*
*************************************************************************************/
/************************************************************************************/
// 引用外部头文件
#include  "..\config\Const.h"
#include  "..\driver\uart.h"
#include  "..\driver\delay.h"
#include  "..\driver\iic.h"
#include  "..\driver\RTC.h"

/************************************************************************************/

/************************************************************************************/
// 常量及全局变量定义
/************************************************************************************/

extern unsigned char code ASCII[];

/*************************************************************************************/
//
// 							RTC测试程序函数定义
//
/*************************************************************************************/

/***********************************************************************************
* Function: RTC_Proc;
*
* Description: RTC测试程序;
*              
* Input:  none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void RTC_Proc(void)
{
	unsigned char i,cmd;
	unsigned int  val,j;

	
	RTC_TIME rtc;
	
	RTC_REG reg;

	Uart0_SendString("RTC test starting!\n\r");
	//AD0_Init(AD0_MODE,23,1000);
	//AD0_Enable();
	//AT24C02_Init();
	RTC_Init(400000);   
	
	while(1)
	{
		cmd = 0;
		if (Uart0_GetCharsRxBuf()>0)
		{			
			Uart0_RecvChar(&cmd);
		}

    	switch (cmd)
        {
	         case 'R':
			 	   if (RTC_Read(&rtc))
				   {
				   		Uart0_SendString("RTC Time:");
				   		Uart0_SendChar(ASCII[rtc.hour/10]);
			   	  		Uart0_SendChar(ASCII[rtc.hour%10]);
				   		Uart0_SendChar(':');
				  		Uart0_SendChar(ASCII[rtc.minute/10]);
			   	  		Uart0_SendChar(ASCII[rtc.minute%10]);
				  		Uart0_SendChar(':');
				  		Uart0_SendChar(ASCII[rtc.second/10]);
			   	  		Uart0_SendChar(ASCII[rtc.second%10]);
				  		Uart0_SendString("\n\r");
				   
				 		Uart0_SendString("Date:");
				 		Uart0_SendChar(ASCII[rtc.year/10]);
			   	 		Uart0_SendChar(ASCII[rtc.year%10]);
				  		Uart0_SendChar('-');
				  		Uart0_SendChar(ASCII[rtc.month/10]);
			   	  		Uart0_SendChar(ASCII[rtc.month%10]);
						Uart0_SendChar('-');
				  		Uart0_SendChar(ASCII[rtc.day/10]);
			   	  		Uart0_SendChar(ASCII[rtc.day%10]);
    			 		Uart0_SendString("\n\r");

				  	    Uart0_SendString("Week:");
				  	    Uart0_SendChar(ASCII[rtc.week]);
				  		Uart0_SendString("\n\r");
					}
				   /*
					Uart0_SendBlock("RTC Time:",10,&i);
				   Uart0_SendChar(ASCII[(rtc.hour>>4)&0x03]);
			   	   Uart0_SendChar(ASCII[rtc.hour&0x0f]);
				   Uart0_SendChar(':');
				   Uart0_SendChar(ASCII[(rtc.minute>>4)&0x07]);
			   	   Uart0_SendChar(ASCII[rtc.minute&0x0f]);
				   Uart0_SendChar(':');
				   Uart0_SendChar(ASCII[(rtc.second>>4)&0x07]);
			   	   Uart0_SendChar(ASCII[rtc.second&0x0f]);
				   Uart0_SendBlock("\n\r",3,&i);
				   
				   Uart0_SendBlock("Date:",6,&i);
				   Uart0_SendChar(ASCII[(rtc.year>>4)&0x0f]);
			   	   Uart0_SendChar(ASCII[rtc.year&0x0f]);
				   Uart0_SendChar('-');
				   Uart0_SendChar(ASCII[(rtc.month>>4)&0x01]);
			   	   Uart0_SendChar(ASCII[rtc.month&0x0f]);
				   Uart0_SendChar('-');
				   Uart0_SendChar(ASCII[(rtc.day>>4)&0x03]);
			   	   Uart0_SendChar(ASCII[rtc.day&0x0f]);
				   Uart0_SendBlock("\n\r",3,&i);

				   Uart0_SendBlock("Week:",6,&i);
				   Uart0_SendChar(ASCII[rtc.week&0x07]);
				   Uart0_SendBlock("\n\r",3,&i);
				   */
				   cmd = 0;
		  	       break;		 
			 case 'W':
				  rtc.second = 0;
			      rtc.minute = 59;
				  rtc.hour = 23;
				  rtc.day = 31;
				  rtc.week = 01;
				  rtc.month = 12;
				  rtc.year = 06;
				  			   
			      RTC_Write(&rtc);		  

            	  cmd = 0;
		  	      break;	
			 case 'S':
				  			  			   
			      RTC_WriteReg(&reg);		  
            	  cmd = 0;
		  	      break;	
					  			   
			case 'I':
				  RTC_ReadReg(&reg);		  
            	  cmd = 0;
		  	      break;
						 
		     case 'E':
            	  Uart0_SendString("RTC test end!\n\r");
				  return;
		  	      break;
			 default:

 			 break;
		}
	}
	
}

/***********************************************************************************/
// 文件结束
/***********************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -