找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2671|回复: 8
打印 上一主题 下一主题
收起左侧

单片机程序编译完 有一个警告 没找到原因 那位帮忙看看 万分感谢

[复制链接]
跳转到指定楼层
楼主
ID:872398 发表于 2021-1-2 23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  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. }

复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:328014 发表于 2021-1-3 02:01 | 只看该作者
几个警告不要紧,无所谓的,你这个是什么警告?
回复

使用道具 举报

板凳
ID:213173 发表于 2021-1-3 05:50 | 只看该作者
这个函数没有调用:bit Pcf8591_DaConversion(unsigned char addr,unsigned char channel,  unsigned char Val)
回复

使用道具 举报

地板
ID:748788 发表于 2021-1-3 08:29 | 只看该作者
如果不影响功能,可以将引起警告的代码注释掉
回复

使用道具 举报

5#
ID:743654 发表于 2021-1-3 14:24 | 只看该作者
没有用到的函数可以头尾加/*   */注释,需要用时再去掉。
回复

使用道具 举报

6#
ID:872398 发表于 2021-1-3 15:30 | 只看该作者
wulin 发表于 2021-1-3 05:50
这个函数没有调用:bit Pcf8591_DaConversion(unsigned char addr,unsigned char channel,  unsigned char  ...

删了or注释掉就有错误了。
回复

使用道具 举报

7#
ID:872398 发表于 2021-1-3 15:31 | 只看该作者
51hei团团 发表于 2021-1-3 02:01
几个警告不要紧,无所谓的,你这个是什么警告?

仿真能成功,程序烧入单片机就不能正常工作了,检查电路没问题,说是程序问题
回复

使用道具 举报

8#
ID:128315 发表于 2021-1-3 20:27 | 只看该作者
程序没有调用这用到这个函数,注释掉就可以
回复

使用道具 举报

9#
ID:712493 发表于 2021-1-4 10:55 | 只看该作者
会不会程序自己优化掉了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表