📄 rtc.c
字号:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by: Chenmingji
** Created date: 2004-09-16
** Version: 1.0
** Descriptions: The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
#include "LCD_J.h"
#define x1 0x80
#define x2 0x88
#define y 0x80
#define comm 0
#define dat 1
/************************************************
function: display table
***********************************************/
void LCD_disp(uint8 *chn)
{
uint8 i,j;
W_LCD (comm,0x30);
// Delay_10_us(5);
W_LCD (comm,0x80);//设定DDRAM地址
// Delay_10_us(5);
for(j=0;j<4;j++)
{
for(i=0;i<16;i++)
W_LCD(dat,chn[j*16+i]);
// Delay_10_us(5);
}
}
///////////////end function///////////////////
/*********************************************************************************************************
** Function name: RTCInit
** Descriptions: 初始化实时时钟
** input parameters: 无
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
void RTCInit (void)
{
PREINT = (Fpclk*5) / 32768 - 1; /* 设置基准时钟分频器 */
PREFRAC = (Fpclk*5) - ((Fpclk*5) / 32768) * 32768;
CCR = 0x00; /* 禁止时间计数器 */
YEAR = 2008; //年
MONTH = 10; //月
DOM = 28; //日
DOW = 4; //星期
HOUR = 7; //时
MIN = 59; //分
SEC = 58; //秒
CIIR = 0x01; /* 设置秒值的增量产生1次中断 */
CCR = 0x01; /* 启动RTC */
}
////////////////end function///////////////////////
/*********************************************************************************************************
** Function name: TIME_disp
** Descriptions: 将RTC时间值发送到液晶显示
** input parameters: uiDat 要发送的数据
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
void TIME_disp (void)
{
uint32 uiDatas;
uint32 uiTimes;
uint32 bak;
uiTimes = CTIME0; /* 读取完整的时钟寄存器 */
uiDatas = CTIME1;
bak = (uiDatas >> 16) & 0xfff; /* 获取 年 */
W_LCD (comm,0x88);
// Delay_10_us(5);
W_LCD(dat,(bak/1000+0x30));
// Delay_10_us(5);
bak = bak % 1000;
W_LCD(dat,(bak/100+0x30));
// Delay_10_us(5);
bak = bak % 100;
W_LCD (comm,0x89);
// Delay_10_us(5);
W_LCD(dat,(bak/10+0x30));
// Delay_10_us(5);
W_LCD(dat,(bak%10+0x30));
// Delay_10_us(5);
W_LCD (comm,0x8a);//
// Delay_10_us(5); //-
W_LCD(dat,0x2d);
bak = (uiDatas >> 8) & 0x0f; /* 获取 月 */
// Delay_10_us(5);
W_LCD(dat,(bak/10+0x30));
// Delay_10_us(5);
W_LCD (comm,0x8b);
// Delay_10_us(5);
W_LCD(dat,(bak%10+0x30));
// Delay_10_us(5);
W_LCD(dat,0x2d);//-
// Delay_10_us(5);
W_LCD (comm,0x8c);
bak = uiDatas & 0x1f; /* 获取 日 */
// Delay_10_us(5);
W_LCD(dat,(bak/10+0x30));
// Delay_10_us(5);
W_LCD(dat,(bak%10+0x30));
bak = (uiTimes >> 16) & 0x1f; /* 获取 小时 */
// Delay_10_us(5);
W_LCD (comm,0x98);
// Delay_10_us(5);
W_LCD(dat,(bak/10+0x30));
// Delay_10_us(5);
W_LCD(dat,(bak%10+0x30));
// Delay_10_us(5);
bak = (uiTimes >> 8) & 0x3f; /* 获取 分钟 */
W_LCD (comm,0x99);
// Delay_10_us(5);
W_LCD(dat,0x3a);//:
// Delay_10_us(5);
W_LCD(dat,(bak/10+0x30));
// Delay_10_us(5);
W_LCD (comm,0x9a);
// Delay_10_us(5);
W_LCD(dat,(bak%10+0x30));
// Delay_10_us(5);
W_LCD(dat,0x3a);//:
// Delay_10_us(5);
bak = uiTimes & 0x3f;
W_LCD (comm,0x9b); /* 获取 秒钟 */
// Delay_10_us(5);
W_LCD(dat,(bak/10+0x30));
// Delay_10_us(5);
W_LCD(dat,(bak%10+0x30));
// Delay_10_us(5);
W_LCD (comm,0x9f);
// Delay_10_us(5);
bak = (uiTimes >> 24) & 0x07; /* 获取 星期 */
W_LCD(dat,bak+0x30);
// Delay_10_us(5);
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -