久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2339|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)DS3231仿真不顯示時間

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:611626 發(fā)表于 2023-10-1 12:22 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
發(fā)現(xiàn)多個DS3231實例進(jìn)行仿真,由于PROUXE中沒有DS3231,用DS3232進(jìn)行替換,然后進(jìn)行仿真,能顯示,但時間一直不變,不知道什么原因,求哪位師傅知道是怎么回事
原文鏈接地址:http://www.zg4o1577.cn/bbs/dpj-226460-1.html

單片機(jī)源程序如下:
  1. uchar        BCD2HEX(uchar val)
  2. {
  3.         return        ((val>>4)*10)+(val&0x0f);
  4. }

  5. uchar        HEX2BCD(uchar val)
  6. {
  7.         return        (((val%100)/10)<<4)|(val%10);
  8. }
  9. void SendByte(uchar c)
  10. {
  11.     uchar BitCnt;
  12.    
  13.     for(BitCnt=0;BitCnt<8;BitCnt++)         //要傳送的數(shù)據(jù)長度為8位
  14.     {
  15.         if((c<<BitCnt)&0x80)
  16.             SDA=1;                          //判斷發(fā)送位
  17.         else
  18.             SDA=0;     
  19.         SCL=1;                            //置時鐘線為高,通知被控器開始接收數(shù)據(jù)位
  20.         Delay5US();                       //保證時鐘高電平周期大于4μs   
  21.         SCL=0;
  22.     }
  23.     SDA=1;                                  //8位發(fā)送完后釋放數(shù)據(jù)線,準(zhǔn)備接收應(yīng)答位
  24.     SCL=1;
  25.     Delay5US();
  26.     if(SDA==1)
  27.         ack=0;   
  28.     else
  29.         ack=1;                              //判斷是否接收到應(yīng)答信號
  30.     SCL=0;
  31.     Delay5US();
  32. }           
  33. uchar RcvByte()
  34. {
  35.    uchar retc;
  36.    uchar BitCnt;

  37.    retc=0;
  38.    SDA=1;                           //置數(shù)據(jù)線為輸入方式
  39.    for(BitCnt=0;BitCnt<8;BitCnt++)
  40.    {
  41.         SCL=0;                      //置時鐘線為低,準(zhǔn)備接收數(shù)據(jù)位      
  42.         Delay5US();                 //時鐘低電平周期大于4.7μs                       
  43.         SCL=1;                      //置時鐘線為高使數(shù)據(jù)線上數(shù)據(jù)有效
  44.         Delay5US();
  45.         retc=retc<<1;
  46.         if(SDA==1)
  47.             retc=retc+1;            //讀數(shù)據(jù)位,接收的數(shù)據(jù)位放入retc中
  48.         Delay5US();
  49.    }
  50.    SCL=0;
  51.    return(retc);
  52. }
  53. //還有這個ACK啥時間被函數(shù)調(diào)用
  54. void Ack_I2C(bit a)
  55. {
  56.         SDA        =        a;  
  57.     SCL=1;                     
  58.     Delay5US();             //時鐘低電平周期大于4us   
  59.     SCL=0;                  //清時鐘線,鉗住I2C總線以便繼續(xù)接收
  60.     Delay5US();   
  61. }        
  62. uchar write_byte(uchar addr, uchar write_data)
  63. {
  64.     IIC_Start();
  65.     SendByte(DS3231_WriteAddress); //寫入寫命令+器件地址D0
  66.     if (ack == 0)
  67.         return 0;
  68.    
  69.     SendByte(addr);   //發(fā)送器件地址
  70.     if (ack == 0)
  71.         return 0;
  72.    
  73.     SendByte(write_data); //發(fā)送數(shù)據(jù)
  74.     if (ack == 0)
  75.         return 0;
  76.    
  77.     IIC_Stop();
  78.     Delay5US();      
  79.     Delay5US();      
  80.     return 1;
  81. }                                          
  82. uchar read_current()
  83. {
  84.     uchar read_data;
  85.     IIC_Start();
  86.           SendByte(DS3231_ReadAddress);//
  87.     if(ack==0)
  88.         return(0);              
  89.     read_data = RcvByte();
  90.     Ack_I2C(1);
  91.     IIC_Stop();
  92.     return read_data;
  93. }                                                
  94. uchar read_random(uchar random_addr)
  95. {
  96.     uchar Tmp;
  97.         IIC_Start();
  98.         SendByte(DS3231_WriteAddress); //
  99.     if(ack==0)
  100.         return(0);            
  101.     SendByte(random_addr); //讀取地址
  102.     if(ack==0)
  103.         return(0);
  104.         Tmp=read_current();  
  105.         if(random_addr==DS3231_HOUR)
  106.                 Tmp&=0x3f;
  107.                                             
  108.     return(BCD2HEX(Tmp));//都轉(zhuǎn)10進(jìn)制輸出
  109. }        
  110.         uchar read_random1(uchar random_addr)  //這個是讀溫度函數(shù)
  111. {
  112.     uchar Tmp;
  113.         write_byte(0x0e,0x20);//0x0e寄存器
  114.         IIC_Start();
  115.     SendByte(DS3231_WriteAddress);
  116.     if(ack==0)
  117.         return(0);            
  118.     SendByte(random_addr);
  119.     if(ack==0)
  120.         return(0);
  121.         Tmp=read_current();
  122.         return Tmp;
  123. }               
  124. void ModifyTime(uchar address,uchar num)
  125. {
  126.     uchar temp=0;
  127.            if(address>6 && address <0) return;
  128.     temp=HEX2BCD(num);
  129.         write_byte(address,temp);
  130. }                                      
復(fù)制代碼



仿真圖.jpg (82.61 KB, 下載次數(shù): 70)

仿真圖.jpg

仿真.rar

65.21 KB, 下載次數(shù): 4

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:44037 發(fā)表于 2023-10-2 17:07 | 只看該作者
認(rèn)真檢查  源程序是可以
回復(fù)

使用道具 舉報

板凳
ID:44037 發(fā)表于 2023-10-2 17:11 | 只看該作者

123a.jpg (115.21 KB, 下載次數(shù): 74)

123a.jpg

123.jpg (79.29 KB, 下載次數(shù): 111)

123.jpg
回復(fù)

使用道具 舉報

地板
ID:611626 發(fā)表于 2023-10-3 18:23 | 只看該作者
沒有那個選項
回復(fù)

使用道具 舉報

5#
ID:611626 發(fā)表于 2023-10-3 18:27 | 只看該作者
打鉤也不顯示,
回復(fù)

使用道具 舉報

6#
ID:611626 發(fā)表于 2023-10-4 18:15 | 只看該作者
打上勾也不行,
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美国产电影 | 五月天国产视频 | 日本a∨精品中文字幕在线 亚洲91视频 | 亚洲高清视频一区二区 | 日韩成人在线观看 | 日韩久久网 | 日日av| 先锋资源站 | 国产精品区一区二区三 | 一级黄a视频 | 日韩欧美在线观看视频网站 | 伊人网在线播放 | 精品国产伦一区二区三区观看说明 | 欧美一区二区在线免费观看 | 宅女噜噜66国产精品观看免费 | 欧美精品一区在线 | 成人精品| 国产中文 | 91综合在线观看 | 日本三级电影在线免费观看 | 99视频在线免费观看 | 国产精品日本一区二区不卡视频 | 欧美亚洲视频在线观看 | 99亚洲精品 | av网站在线免费观看 | 欧美在线一区二区三区 | 人人操日日干 | 久草网视频 | 在线高清免费观看视频 | 国产一区免费 | 色综合99 | 亚洲一区二区三区在线视频 | 真人一级毛片 | 手机看片1 | 国产91精品久久久久久久网曝门 | 精品国产欧美一区二区三区不卡 | 欧美日韩淫片 | 91tv在线观看 | 欧美日韩三级在线观看 | 日本不卡一区 | 在线观看成人 |