找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

單片機(jī)程序編譯完 有一個(gè)警告 沒找到原因 那位幫忙看看 萬(wàn)分感謝

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:872398 發(fā)表于 2021-1-2 23:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include<reg52.h>   
  2. #include <intrins.h>

  3. #define  AddWr 0x90   

  4. sbit scl=P2^0;      
  5. sbit sda=P2^1;      
  6. bit ack;            

  7. unsigned char date;
  8. sbit C1=P2^3;         
  9. sbit C2=P2^4;         
  10. sbit C3=P2^5;         
  11. sbit Dp=P2^2;         
  12. table[10]=
  13. {0x3f,0x06,0x5B,0x4F,0x66,
  14. 0x6D,0x7D,0x07,0x7F,0x6F};
  15. unsigned int data dis[3]={0x00,0x00,0x00};
  16. unsigned int getData;

  17. void Start_I2c()
  18. {
  19.   sda=1;                  
  20.   _nop_();
  21.   scl=1;
  22.   _nop_();               
  23.   _nop_();
  24.   _nop_();
  25.   _nop_();
  26.   _nop_();   
  27.   sda=0;                 
  28.   _nop_();               
  29.   _nop_();
  30.   _nop_();
  31.   _nop_();
  32.   _nop_();      
  33.   scl=0;                 
  34.   _nop_();
  35.   _nop_();
  36. }

  37. void Stop_I2c()
  38. {
  39.   sda=0;                  
  40.   _nop_();                 
  41.   scl=1;                  
  42.   _nop_();
  43.   _nop_();
  44.   _nop_();
  45.   _nop_();
  46.   _nop_();
  47.   sda=1;                  
  48.   _nop_();
  49.   _nop_();
  50.   _nop_();
  51.   _nop_();
  52. }

  53. void  I2C_SendByte(unsigned char  c)
  54. {
  55. unsigned char  i;

  56. for(i=0;i<8;i++)               
  57.     {
  58.      if((c<<i)&0x80)sda=1;     
  59.        else  sda=0;               
  60.      _nop_();
  61.      scl=1;                        
  62.       _nop_();
  63.       _nop_();                          
  64.       _nop_();
  65.       _nop_();
  66.       _nop_();         
  67.      scl=0;
  68.     }

  69.     _nop_();
  70.     _nop_();
  71.     sda=1;                                 
  72.     _nop_();
  73.     _nop_();   
  74.     scl=1;
  75.     _nop_();
  76.     _nop_();
  77.     _nop_();
  78.     if(sda==1)ack=0;     
  79.        else ack=1;              
  80.     scl=0;
  81.     _nop_();
  82.     _nop_();
  83. }

  84. unsigned char   I2C_RcvByte()
  85. {
  86.   unsigned char  retc=0,i;
  87.   sda=1;                                
  88.   for(i=0;i<8;i++)
  89.       {
  90.         _nop_();           
  91.         scl=0;                             
  92.         _nop_();
  93.         _nop_();                           
  94.         _nop_();
  95.         _nop_();
  96.         _nop_();
  97.         scl=1;                  
  98.         _nop_();
  99.         _nop_();
  100.         retc=retc<<1;
  101.         if(sda==1)retc=retc+1;  
  102.         _nop_();
  103.         _nop_();
  104.       }
  105.   scl=0;   
  106.   _nop_();
  107.   _nop_();
  108.   return(retc);
  109. }

  110. void Ack_I2c(bit a)
  111. {  
  112.   if(a==0)sda=0;                           
  113.   else sda=1;                                                
  114.   _nop_();
  115.   _nop_();
  116.   _nop_();      
  117.   scl=1;
  118.   _nop_();
  119.   _nop_();                                      
  120.   _nop_();
  121.   _nop_();
  122.   _nop_();  
  123.   scl=0;                           
  124.   _nop_();
  125.   _nop_();   
  126. }

  127. bit Pcf8591_DaConversion(unsigned char addr,unsigned char channel,  unsigned char Val)
  128. {
  129.    Start_I2c();            
  130.    I2C_SendByte(addr);         
  131.    if(ack==0)return(0);
  132.    I2C_SendByte(0x40|channel);         
  133.    if(ack==0)return(0);
  134.    I2C_SendByte(Val);         
  135.    if(ack==0)return(0);
  136.    Stop_I2c();               
  137.    return(1);
  138. }


  139. bit PCF8591_SendByte(unsigned char addr,unsigned char channel)
  140. {
  141.    Start_I2c();            
  142.    I2C_SendByte(addr);        
  143.    if(ack==0)return(0);
  144.    I2C_SendByte(0x40|channel);        
  145.    if(ack==0)return(0);
  146.    Stop_I2c();               
  147.    return(1);
  148. }

  149. unsigned char PCF8591_RcvByte(unsigned char addr)
  150. {  
  151.    unsigned char dat;

  152.    Start_I2c();         
  153.    I2C_SendByte(addr+1);  
  154.    if(ack==0)return(0);
  155.    dat=I2C_RcvByte();     

  156.    Ack_I2c(1);      
  157.    Stop_I2c();        
  158.    return(dat);
  159. }



  160. void delay(unsigned char i)
  161. {
  162.   unsigned char j,k;
  163.   for(j=i;j>0;j--)
  164.     for(k=125;k>0;k--);
  165. }
  166. int main()
  167. {  
  168.         while(1)
  169.         {
  170.                  PCF8591_SendByte(AddWr,0);         
  171.                  getData=PCF8591_RcvByte(AddWr);  
  172.                  dis[1]=getData/51;   
  173.                 dis[2]=getData%51;
  174.                 dis[2]=dis[2]*10;   
  175.                 dis[0]=dis[2]/51;   
  176.         C1=1;                                             
  177.         Dp=0;              
  178.         P0=table[dis[0]];   
  179.                              
  180.         C1=0;
  181.         delay(10);   
  182.                        
  183.         C2=1;               
  184.         Dp=0;         
  185.         P0=table[dis[1]];   
  186.       
  187.         C2=0;
  188.         delay(10);
  189.       
  190.         C3=1;
  191.   Dp=1;        
  192.         P0=table[dis[1]];   
  193.         C3=0;      
  194.         }
  195. }

復(fù)制代碼


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

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2021-1-3 02:01 | 只看該作者
幾個(gè)警告不要緊,無(wú)所謂的,你這個(gè)是什么警告?
回復(fù)

使用道具 舉報(bào)

板凳
ID:213173 發(fā)表于 2021-1-3 05:50 | 只看該作者
這個(gè)函數(shù)沒有調(diào)用:bit Pcf8591_DaConversion(unsigned char addr,unsigned char channel,  unsigned char Val)
回復(fù)

使用道具 舉報(bào)

地板
ID:748788 發(fā)表于 2021-1-3 08:29 | 只看該作者
如果不影響功能,可以將引起警告的代碼注釋掉
回復(fù)

使用道具 舉報(bào)

5#
ID:743654 發(fā)表于 2021-1-3 14:24 | 只看該作者
沒有用到的函數(shù)可以頭尾加/*   */注釋,需要用時(shí)再去掉。
回復(fù)

使用道具 舉報(bào)

6#
ID:872398 發(fā)表于 2021-1-3 15:30 | 只看該作者
wulin 發(fā)表于 2021-1-3 05:50
這個(gè)函數(shù)沒有調(diào)用:bit Pcf8591_DaConversion(unsigned char addr,unsigned char channel,  unsigned char  ...

刪了or注釋掉就有錯(cuò)誤了。
回復(fù)

使用道具 舉報(bào)

7#
ID:872398 發(fā)表于 2021-1-3 15:31 | 只看該作者
51hei團(tuán)團(tuán) 發(fā)表于 2021-1-3 02:01
幾個(gè)警告不要緊,無(wú)所謂的,你這個(gè)是什么警告?

仿真能成功,程序燒入單片機(jī)就不能正常工作了,檢查電路沒問題,說(shuō)是程序問題
回復(fù)

使用道具 舉報(bào)

8#
ID:128315 發(fā)表于 2021-1-3 20:27 | 只看該作者
程序沒有調(diào)用這用到這個(gè)函數(shù),注釋掉就可以
回復(fù)

使用道具 舉報(bào)

9#
ID:712493 發(fā)表于 2021-1-4 10:55 | 只看該作者
會(huì)不會(huì)程序自己優(yōu)化掉了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表