本帖最后由 1796 于 2019-2-23 08:50 编辑

TIM图片.png
1.数据传输只有两根线,这个数据通信是什么类型的,是串行的同步通信吗?
2.一次通信数据传输48位,如何编程识别出每个下降沿从而接收数据
3.因为传输的是时间信息,第一个上升沿是这组信息的秒的开始时间,如何判断第一个上升沿,以及计算第一个上升沿到处理完数据显示的时间。

接受数据我用了下降沿中断,大概写了点程序,试了试,接受完一组数据并处理后,在写进ds1302计时,显示的时间倒是变,但时间肯定是不对的,先解决如何接收数据,再去解决处理数据,下边是中断程序
void int0()interrupt 0
                {                    
        unsigned char i;
                              
                     if( DATE==1)
                         {
                                     n=n|0x01;
                         }   
                             n=n<<1;

                             i++;
                         if(i==16)
                         {
                          n1=n;
                         }
                        
                         if(i==32)
                         {
                          n2=n;
                         }
                        
                         if(i==48)
                         {
                          n3=n;
                          i=0;
                          flag_1s=1;
                   }               
                }