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

📄 timespend.txt

📁 用pic单片机实现的对锂电池冲电的程序
💻 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 + -