📄 timespend.txt
字号:
使用LPC932制作的一款电表---TimeSpend
redbug 发表于 2005-10-14 16:38:00
#i nclude <REG932.H>
#i nclude <define.h>
#i nclude <Stdio.h>
#i nclude <Intrins.h>
void TimeSpend(void)
{
unsigned char data i,k=0x80;
if(TimeSpendFg)
{
TimeBuf[0]=IicByteRead(0x64,0x00) & 0x7f;//提取秒信号到数据缓冲区
TimeBuf[1]=IicByteRead(0x64,0x10) & 0x7f;//提取分号到数据缓冲区
TimeBuf[2]=IicByteRead(0x64,0x20) & 0x3f;//提取时号到数据缓冲区
DaysBuf[0]=IicByteRead(0x64,0x30) & 0x07;//提取期信号到数据缓冲区
DaysBuf[1]=IicByteRead(0x64,0x40) & 0x3f;//提取日信号到数据缓冲区
DaysBuf[2]=IicByteRead(0x64,0x50) & 0x1f;//提取月信号到数据缓冲区
DaysBuf[3]=IicByteRead(0x64,0x60) ;//提取年信号到数据缓冲
for(i=0;i<12;i++)
{
IicMuchByteRead(0xa0,k,0x03);
//小时比较
if(TimeBuf[2]==IIcBuf[1])
{
//分钟比较
if(TimeBuf[1]>=IIcBuf[2])
{
switch(IIcBuf[0])
{
case 0x01 : //时段---尖
MataStData=MataStData|0x01;
//IicByteWrite(0xa0,0xc9,MataSt);
break;
case 0x02 : //时段---峰
FengLed=0;//打开峰指示灯
PingLed=1;
GuLed=1;
MataStData=MataStData|0x02;
//IicByteWrite(0xa0,0xc9,MataSt);
FengFg=1;
PingFg=0;
GuFg=0;
break;
case 0x03 : //时段---平
FengLed=1;
PingLed=0;//打开平指示灯
GuLed=1;
MataStData=MataStData|0x03;
//IicByteWrite(0xa0,0xc9,MataSt);
FengFg=0;
PingFg=1;
GuFg=0;
break;
case 0x04 : //时段---谷
FengLed=1;
PingLed=1;
GuLed=0;//打开谷指示灯
MataStData=MataStData|0x04;
//IicByteWrite(0xa0,0xc9,MataSt);
FengFg=0;
PingFg=0;
GuFg=1;
break;
}
}
}
k=k+3;
}
if(DaysBuf[2]==1)
{
IIcByteStar=0xc0;
}
else
{
IIcByteStar=DaysBuf[3]*16-16;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -