找回密码
 立即注册

QQ登录

只需一步,快速开始

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

WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS

[复制链接]
跳转到指定楼层
楼主
ID:978933 发表于 2021-11-15 02:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新手求助,请问下,我这个那里错了,我怎么也改不对!
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?DISPLYFU?18B20
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:  DISPLAYFU
    MODULE:  .\Objects\18B20.obj (18B20)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:  DISPLAYFU
    MODULE:  .\Objects\18B20.obj (18B20)
    ADDRESS: 01A9H

  1. #include <reg52.h>
  2. #include <intrins.h>
  3. sbit RS=P2^0;   
  4. sbit RW=P2^1;
  5. sbit E=P1^2;
  6. sbit DQ=P1^4;

  7. sbit led1=P0^0;
  8. sbit led2=P0^1;
  9. sbit led3=P0^2;
  10. sbit led4=P0^3;
  11. sbit led5=P0^4;
  12. sbit led6=P0^5;
  13. sbit led7=P0^6;
  14. sbit led8=P0^7;
  15. sbit buzz=P0^6;

  16. displayfu();
  17. unsigned char a,b,c,d,e,f,g,h;
  18. static int readtemp=0;
  19. unsigned char s[]={"Temp:"};
  20. unsigned char str[]={0,1,2,3,4,5,6,7,8,9};

  21. //************************************************************************
  22. void delay(unsigned int n)//Ñó3ùoˉêy
  23. {
  24.   unsigned i=0,j=0;
  25.     for(i=0;i<n;i++)
  26.     {
  27.       for(j=0;j<120;j++);
  28.     }
  29. }
  30. //*************************ds18b20****************************************
  31. void Write_DS18B20(unsigned char dat)
  32. {
  33.         unsigned char i;
  34.         for(i=0;i<8;i++)
  35.         {
  36.                 DQ = 0;
  37.                 DQ = dat&0x01;
  38.                 delay(5);
  39.                 DQ = 1;
  40.                 dat >>= 1;
  41.         }
  42.         delay(5);
  43. }
  44. unsigned char Read_DS18B20(void)
  45. {
  46.         unsigned char i;
  47.         unsigned char dat;

  48.         for(i=0;i<8;i++)
  49.         {
  50.                 DQ = 0;
  51.                 dat >>= 1;
  52.                 DQ = 1;
  53.                 if(DQ)  
  54.                 {
  55.                         dat |= 0x80;
  56.                 }            
  57.                 delay(5);
  58.         }
  59.         return dat;
  60. }
  61. bit init_ds18b20(void)
  62. {
  63.           bit initflag = 0;
  64.          
  65.           DQ = 1;
  66.           delay(12);
  67.           DQ = 0;
  68.           delay(80);
  69.           DQ = 1;
  70.           delay(10);
  71.           initflag = DQ;     
  72.           delay(5);

  73.           return initflag;
  74. }
  75. unsigned char Readtemp(void)
  76. {
  77.           char temp;  

  78.           init_ds18b20();
  79.           Write_DS18B20(0xCC);
  80.           Write_DS18B20(0x44);
  81.           delay(100);

  82.           init_ds18b20();
  83.           Write_DS18B20(0xCC);
  84.           Write_DS18B20(0xBE);
  85.     delay(100);
  86.           a = Read_DS18B20();
  87.           b = Read_DS18B20();

  88.           temp = ((b*256+a)>>4);   

  89.           return temp;
  90. }

  91. //*********************1602************************************
  92. void writedat(unsigned char dat)
  93. {
  94.   RS=1;
  95.     RW=0;  
  96.     E=0;   
  97.     P0=dat;
  98.     delay(5);
  99.     E=1;
  100.     E=0;
  101. }

  102. void writecom(unsigned char com)
  103. {
  104.   RS=0;
  105.     RW=0;  
  106.     E=0;  
  107.     P0=com;
  108.     delay(5);
  109.     E=1;
  110.     E=0;
  111. }
  112. void initlcd()
  113. {
  114.   writecom(0x38);  
  115.     writecom(0x0c);  
  116.     writecom(0x06);  
  117.     writecom(0x01);  
  118. }

  119. /*******************DòáDoÅ*************************************
  120. void disply18b20Rom(char Rom)
  121. {
  122.         char h,l;
  123.         l=Rom&0x0f;
  124.         h=Rom&0xf0;
  125.         h>>=4;
  126.         if((h>=0x00)&&(h<=0x30))
  127.         {
  128.                 writedat(h+0x30);
  129.         }
  130.                 else
  131.                         writedat(h+0x37);
  132.                 if((l>=0x00)&&(l<=0x09))
  133.                 {
  134.                         writedat(l+0x30);
  135.                 }
  136.                 else
  137.                         writedat(l+0x37);
  138.                
  139.         }*/

  140. //*************oˉêy********************************************
  141. void display()//ÏÔê¾oˉêy
  142. {
  143.         unsigned int temp0=0,temp1=0,temp2=0,i=0;
  144.         temp0=~readtemp/100+'0';
  145.         temp1=(~readtemp%100)/10+'0';
  146.         temp2=~readtemp%10+'0';
  147.         writecom(0x80);  
  148.         delay(5);            
  149.         while(s[i]!='\0')
  150.         {
  151.           writedat(s[i]);
  152.                 delay(5);
  153.                 i++;
  154.         }
  155.         
  156.         writecom(0x80+6);  
  157.         delay(5);
  158.         writedat(str[temp0]);
  159.         delay(5);           
  160.         writedat(str[temp1]);
  161.         delay(5);            
  162.         writedat(str[temp2]);
  163.         delay(5);   
  164.   writedat('.');
  165.         delay(5);        
  166.         writedat('0');
  167.         delay(5);
  168.         writedat(0xDF);
  169.         delay(5);         
  170.         writedat('C');
  171.         delay(5);           
  172. }
  173. void displyfu()
  174. {
  175.         unsigned int temp0=0,temp1=0,temp2=0,i=0;
  176.         temp0=~readtemp/100+'0';
  177.         temp1=(~readtemp%100)/10+'0';
  178.         temp2=~readtemp%10+'0';
  179.         writecom(0x80);  
  180.         delay(5);            
  181.         while(s[i]!='\0')
  182.         {
  183.           writedat(s[i]);
  184.                 delay(5);
  185.                 i++;
  186.         }
  187.         
  188.         writecom(0x80+6);  
  189.         delay(5);
  190.         writedat('-');
  191.         delay(5);
  192.         writedat(str[temp0]);
  193.         delay(5);           
  194.         writedat(str[temp1]);
  195.         delay(5);            
  196.         writedat(str[temp2]);
  197.         delay(5);   
  198.   writedat('.');
  199.         delay(5);        
  200.         writedat('0');
  201.         delay(5);
  202.         writedat(0xDF);
  203.         delay(5);         
  204.         writedat('C');
  205.         delay(5);   
  206. }
  207. //************************Ö÷oˉêy******************************
  208. void main()
  209. {
  210.           int i;
  211.         initlcd();/*
  212.         void disply18b20Rom(char Rom);
  213. Write_DS18B20(0x33);
  214.         delay(1);
  215. a =Read_DS18B20();
  216.         b =Read_DS18B20();
  217.         c=Read_DS18B20();
  218.         d =Read_DS18B20();
  219.         e=Read_DS18B20();
  220.         f=Read_DS18B20();
  221.         g =Read_DS18B20();
  222.         h = Read_DS18B20();
  223.         writecom(0x80+0x40);
  224.         display18b20Rom(h);
  225. display18b20Rom(g);
  226. display18b20Rom(f);
  227. display18b20Rom(e);
  228. display18b20Rom(d);
  229. display18b20Rom(c);
  230. display18b20Rom(b);
  231. display18b20Rom(a);*/

  232.         while(1)
  233.         {
  234.                 if(Readtemp()==0)
  235.                 {
  236.                         writecom(0x01);
  237.                         readtemp=0;
  238.                         display();
  239.                 }
  240.                 else if(Readtemp()<150)
  241.                 {
  242.                         readtemp=Readtemp();
  243.                         display();
  244.                 }
  245.                 else
  246.                 {
  247.                         int a=0;
  248.                         a=Readtemp();
  249.                         readtemp=a-257;
  250.                         displayfu();
  251.                 }
  252.         if((readtemp>=20)||(readtemp<=10))
  253.                 {
  254.                         for(i=0;1>0;i++)
  255.                 {
  256.                         led1=1;led2=1;led3=1;led4=1;led5=1;led6=1;led7=1;led8=1;
  257.                 buzz=1;
  258.                 delay(500);
  259.                         led1=0;led2=0;led3=0;led4=0;led5=0;led6=0;led7=0;led8=0;
  260.                 buzz=0;
  261.                         delay(500);
  262.                 }
  263.         }
  264.         }
  265. }
复制代码


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

使用道具 举报

沙发
ID:94031 发表于 2021-11-15 08:20 | 只看该作者
调用的函数名为 displayfu,原形名为 displyfu 少个 a 。
回复

使用道具 举报

板凳
ID:978933 发表于 2021-11-15 10:16 | 只看该作者
已解决
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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