欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1704|回復: 0
打印 上一主題 下一主題
收起左側

求大神指點,幫忙看下那里出錯了,為什么1302讀回的數據不對

[復制鏈接]
跳轉到指定樓層
樓主
/*******************DS1302功能區****************/
void DS1302_write_byte(uchar byte)                                          //DS1302寫入字節
{          uchar i;
          for(i=0;i<8;i++)
          {         DS1302_SCLK = 0;
                 DS1302_DATA=byte&0x01;                                                      //按位與
                 DS1302_SCLK = 1;
                 delay_us(2);
                 byte>>=1;                                                                              //右移1位
          }
}

void DS1302_write_data(uchar command,uchar DATA)                  //DS1302寫入指令和數據
{          DS1302_REST = 0;
      DS1302_SCLK = 0;
          delay_us(2);
          DS1302_REST = 1;
          DS1302_write_byte(command);
          DS1302_write_byte(DATA);
          DS1302_REST = 0;
}

uchar DS1302_read(uchar command)                                                 //DS1302讀數據
{          uchar i,dat;
      DS1302_REST = 0;
      DS1302_SCLK = 0;
          delay_us(2);
          DS1302_REST = 1;
          DS1302_write_byte(command);

          for(i=0;i<8;i++)
          {         dat>>=1;                                                                                 //右移必需放在最前面,否則會在數據接收完成后多移一次
             if(DS1302_DATA==1)         dat|=0x80;
                 DS1302_SCLK = 0;                                          
                 delay_us(2);
                 DS1302_SCLK = 1;
                 delay_us(2);
          }
          DS1302_REST = 0;
          DS1302_SCLK = 1;
          return dat;
}                                            

void DS1302_read_second(void)                                                        //讀回的數據轉10進制
{         uchar temp;
         temp=DS1302_read(0x81);
         second=(temp/16*10)+(temp%16);                                 //second 定義的全局變量
}

void LCD1602_time_display(void)                                                          //開啟計時器后時間顯示
{            
          LCD1602_write_word(13,1,shuzi[second/10]);                  //更新秒
          LCD1602_write_word(14,1,shuzi[second%10]);
          LCD1602_write_word(10,1,shuzi[minute/10]);                  //更新分鐘
          LCD1602_write_word(11,1,shuzi[minute%10]);
          LCD1602_write_word(7,1,shuzi[hour/10]);                          //更新小時
          LCD1602_write_word(8,1,shuzi[hour%10]);                  
}

void main(void)
{//         DS1302_stop_work();
     LCD1602_init();
     delay_ms(5);
         LCD1602_kaiji_display();

         DS1302_read_second();                                             //讀秒

         while(1)
         {        
            LCD1602_time_display();                                      //顯示回讀的時間
                LCD1602_date_display();
                Key_manual();         
         }
}





1302.png (55.84 KB, 下載次數: 90)

1302.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表