|
最近学习涉及到icc的编程 由于无法在实验室实验 便用proteus做了简单仿真 没有写闹钟部分功能
下面附上部分代码和仿真截图
单片机源程序如下:
#include <reg51.h>
#include "PCF8563.h"
#include "LM016L.h"
uchar TimeBuff[7]={0,0,0,0,0,0,0}; //sec min hour day weekday month year
void DisplayFullTime(uchar *buff); //显示完整时间参数
void delay();
uchar line1[16] = "This is PCF8563!";
uchar line2[16] = "Ready for clock!";
//----------------------------------------------------------------------------
void main()
{
PCF8563_INIT(); //初始化PCF8563状态,并将时间置2015-05-01 Fri 12:30:00
LCD_Init();
LCD_Display_Line(1, line1);
LCD_Display_Line(2, line2);
//test1: 设置时间
TimeBuff[0] = 0x30; //sec
TimeBuff[1] = 0x59; //min
TimeBuff[2] = 0x23; //hour
TimeBuff[3] = 0x31; //day
TimeBuff[4] = 0x02; //weekday
TimeBuff[5] = 0x12; //month
TimeBuff[6] = 0x19; //year
Time_Write(TimeBuff); //写入上述新的时间。另,若要写入闹铃时间,方法雷同,差别在于,寄存器地址不同,写入总字节数不同。请自行封装函数。
while(1)
{
//test2: 读取时间,这是完整读取
Time_Read(TimeBuff);
DisplayFullTime(TimeBuff);
delay();
};
}
//----------------------------------------------------------------------------
void delay()
{
uint i;
for (i = 0; i < 0x3fff; i++) {;}
}
//----------------------------------------------------------------------------
void DisplayFullTime(uchar *buff)
{
//uchar line1[16] = "This is PCF8563!";
//uchar line2[16] = "Ready for clock!";
//保留第一行欢迎信息不变,第二行显示为:[MM-dd hh:mm:ss]
line2[15] = ']';
line2[14] = (TimeBuff[0]&0x0f) + 0x30; //秒个位转ascii
line2[13] = (TimeBuff[0]>>4) + 0x30; //秒十位转ascii
line2[12] = ':';
line2[11] = (TimeBuff[1]&0x0f) + 0x30; //分钟个位转ascii
line2[10] = (TimeBuff[1]>>4) + 0x30; //分钟十位转ascii
line2[9] = ':';
line2[8] = (TimeBuff[2]&0x0f) + 0x30; //小时个位转ascii
line2[7] = (TimeBuff[2]>>4) + 0x30; //小时十位转ascii
line2[6] = ' ';
line2[5] = (TimeBuff[3]&0x0f) + 0x30; //日个位转ascii
line2[4] = (TimeBuff[3]>>4) + 0x30; //日十位转ascii
line2[3] = '-';
line2[2] = (TimeBuff[5]&0x0f) + 0x30; //月个位转ascii
line2[1] = (TimeBuff[5]>>4) + 0x30; //月十位转ascii
line2[0] = '[';
LCD_Display_Line(2, line2);
}
全部资料51hei下载地址:
PCF8563.pdf
(649.36 KB, 下载次数: 45)
PCF8563+proteus+LCD1602.rar
(74.95 KB, 下载次数: 144)
|
评分
-
查看全部评分
|