找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Keil編譯錯(cuò)誤WARNING L1: UNRESOLVED EXTERNAL SYMBOL 求幫助

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
188黑幣
本人實(shí)在小白,麻煩幫忙編譯成stc89c52的HEX文件,謝謝。

自己編譯,出現(xiàn)以下結(jié)果:
Build target 'Target 1'
assembling STARTUP.A51...
linking...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:  ?C_START
    MODULE:  STARTUP.obj (?C_STARTUP)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:  ?C_START
    MODULE:  STARTUP.obj (?C_STARTUP)
    ADDRESS: 000DH
Program Size: data=9.0 xdata=0 code=15
"yuu" - 0 Error(s), 2 Warning(s).

源文件如下:

yuu.rar (17.18 KB, 下載次數(shù): 30)


代碼如下:
  1. #include <REG51.H>
  2. #define  uchar unsigned char   //類型定義,方便書寫
  3. #define   uint unsigned int
  4. uchar code roundz[] ={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09};   //步進(jìn)電機(jī)正轉(zhuǎn)控制數(shù)組
  5. uchar code roundf[] ={0x08,0x0C,0x04,0x06,0x02,0x03,0x01,0x09};   //步進(jìn)電機(jī)反轉(zhuǎn)控制數(shù)組
  6. uchar code disptab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽極LED顯示器顯示碼
  7. sbit beep=P2^7;
  8. sbit baiwei=P2^0;
  9. sbit shiwei=P2^1;
  10. sbit gewei=P2^2;          //數(shù)碼管位選
  11. uint num,sec;      
  12. #define K1 0x06
  13. #define K20x5
  14. #define K3 0x3   //按鍵碼,分別檢測三個(gè)按鍵是否有按下
  15. sbit in_water=P3^3;           
  16. sbit out_water=P3^4;
  17. sbit LED_bz=P3^5;
  18. sbit LED_qr=P3^6;
  19. sbit LED_sg=P3^7;        //5個(gè)LED燈,分別為進(jìn)水,出水,標(biāo)準(zhǔn),輕柔和甩干
  20. //**************基本延遲函數(shù)************************************************
  21. void delay(uint dcnt)  // 延遲時(shí)間為dcntms
  22. {
  23.     uint i,j;   
  24.     for(i=dcnt;i>0;i--)
  25.         for(j=120;j>0;j--);
  26. }
  27. //************定時(shí)器0控制倒計(jì)時(shí)*****************************************
  28. void count_down() interrupt 1
  29. {
  30.     int count ;
  31.     TH0=(65536-50000)/256;
  32.     TL0=(65536-50000)%256;   //定時(shí)器0每50ms產(chǎn)生一次中斷;
  33.     count ++;
  34.     if(count == 20)          //每50*20=1s sec的值減1
  35.     {
  36.         count =0;
  37.         sec--;
  38.         if(sec==0)         //計(jì)時(shí)結(jié)束時(shí),關(guān)閉總中斷,電機(jī)停止轉(zhuǎn)動(dòng)。
  39.         {
  40.             EA=0;
  41.             P0=0xff;
  42.             P1=0xff;
  43.             P2=0xff;
  44.             P3=0xff;
  45.             while(1);
  46.         }           
  47.     }   
  48. }
  49. //***************倒計(jì)時(shí)的數(shù)碼管顯示程序*******************************
  50. void display()  interrupt 3         //利用定時(shí)器1來進(jìn)行數(shù)碼管顯示
  51. {
  52.   TH1=(65536-5000)/256;               //每5ms掃描一次
  53.   TL1=(65536-5000)%256;
  54.     num=(num%3);   
  55.     P0=0xff;  //消影   
  56.     switch(num)
  57.     {      
  58.         case 0:
  59.             P0=disptab[sec/100];
  60.             baiwei=1;   shiwei=0;gewei=0;
  61.             break;
  62.         case 1:
  63.             P0=disptab[(sec/10)%10];
  64.             baiwei=0; shiwei=1;  gewei=0;      
  65.             break;
  66.         case 2:
  67.             P0=disptab[sec%10];
  68.              baiwei=0;  shiwei=0; gewei=1;         
  69.             break;
  70.         default:break;
  71.     }
  72.     num++;
  73. }
  74. //************************步進(jìn)電機(jī)正轉(zhuǎn)控制函數(shù)******************************
  75. void RotateWise(uinttime,uchar stepcnt)           //time為轉(zhuǎn)一步時(shí)間,stepcnt為圈數(shù)
  76. {
  77.     uchar i ,j;
  78.     for(i=0;i<stepcnt;i++)
  79.     {
  80.         for(j=0;j<8;j++)
  81.         {
  82.             P1= roundz[j] ;
  83.             delay (time);             //更改delay里數(shù)值可改變轉(zhuǎn)速,轉(zhuǎn)一圈時(shí)間為time*8 ms
  84.         }
  85.     }
  86. }
  87. //***********************步進(jìn)電機(jī)反轉(zhuǎn)控制函數(shù)****************************
  88. void ContraRotate(uinttime,uchar stepcnt)  //time為轉(zhuǎn)一步時(shí)間,stepcnt為圈數(shù)
  89. {
  90.     uchar i ,j;
  91.     for(i=0;i<stepcnt;i++)
  92.     {
  93.         for(j=0;j<8;j++)
  94.         {
  95.             P1= roundf[j] ;          //更改delay里數(shù)值可改變轉(zhuǎn)速,轉(zhuǎn)一圈時(shí)間為time*8 ms
  96.             delay (time);
  97.         }
  98.     }
  99. }
  100. //**************************洗滌子程序****************************************
  101. void xidi()                  
  102. {
  103.     uint i;
  104.     in_water = 0;         
  105.     delay(9000);           //開水閥,進(jìn)水9s
  106.     in_water = 1;          //關(guān)水閥
  107.     delay(1000);
  108.     for(i=10;i>0;i--)      //轉(zhuǎn)動(dòng)十次
  109.     {
  110.     RotateWise(50,10) ;  //正轉(zhuǎn)10圈,轉(zhuǎn)速為50ms*8
  111.     delay(1000);             //停止一秒
  112.     ContraRotate(50,10) ;    //反轉(zhuǎn)10圈,轉(zhuǎn)速為50ms*8
  113.     delay(1000);
  114.     }   
  115. }
  116. //**************************漂洗子程序****************************************
  117. void piaoxi()
  118. {
  119.     uint i;
  120.     in_water = 0;         
  121.     delay(9000);           //開水閥,進(jìn)水9s
  122.     in_water = 1;          //關(guān)水閥
  123.     delay(1000);
  124.     for(i=5;i>0;i--)       //轉(zhuǎn)動(dòng)五次
  125.     {
  126.     RotateWise(100,10) ;     //正轉(zhuǎn)10圈,轉(zhuǎn)速為100ms*8
  127.     delay(1000);             //停止一秒
  128.     ContraRotate(100,10) ;   //反轉(zhuǎn)10圈,轉(zhuǎn)速為100ms*8
  129.     delay(1000);
  130.     }
  131. }
  132. //*********************脫水子程序*******************************************
  133. void tuoshui()
  134. {
  135.     uint i;
  136.     out_water = 0;        //打開排水閥
  137.     delay(9000);          //排水9s
  138.     for(i=10;i>0;i--)      //轉(zhuǎn)動(dòng)十次
  139.     {
  140.     RotateWise(50,10) ;  //正轉(zhuǎn)10圈,轉(zhuǎn)速為50ms*8  
  141.     }
  142.     beep=0;
  143.     delay(1000);         //蜂鳴器警報(bào)
  144.     beep=1;
  145.     out_water =1 ;       //甩干完畢,關(guān)閉水閥
  146. }
  147. //********************標(biāo)準(zhǔn)模式************************************************
  148. void biaozhun()
  149. {   sec=360;             //設(shè)定倒計(jì)時(shí)數(shù)目
  150.     LED_bz = 0;         //點(diǎn)亮“標(biāo)準(zhǔn)”LED燈
  151.     xidi();              //洗滌
  152.     piaoxi();
  153.     piaoxi();            //2次漂洗
  154.     tuoshui();           //脫水
  155.     LED_bz=1;            //熄滅LED燈
  156. }
  157. //*********************輕揉模式********************************************
  158. void qingrou()
  159. {   sec=250;           //設(shè)定倒計(jì)時(shí)數(shù)目
  160.     LED_qr = 0;        //點(diǎn)亮“輕揉”LED燈
  161.     piaoxi();         
  162.     piaoxi();         //2次漂洗
  163.     tuoshui();        //脫水
  164.     LED_qr = 1;       //熄滅LED燈
  165. }
  166. //**********************甩干模式********************************************
  167. void shuaigan()
  168. {   
  169.     sec=50;              //設(shè)定倒計(jì)時(shí)數(shù)目
  170.     LED_sg = 0;          //點(diǎn)亮“甩干”LED燈
  171.     tuoshui();            //脫水
  172.     LED_sg = 1;          //熄滅LED燈
  173. }
  174. //********************鍵盤掃描程序****************************************
  175. uchar scankey()
  176. {
  177.     int key;
  178.     if((P3&0x07)== 0x07)
  179.     return(0xff);               //消抖
  180.     delay(30);
  181.     if((P3&0x07)== 0x07)
  182.     return(0xff);
  183.     key = P3&0x07;
  184.     while ((P3&0x07)!=0x07);    //當(dāng)有按鍵按下的時(shí)候,返回key值,判斷哪個(gè)按鍵被按下
  185.     return key;
  186. }
  187. //******************主函數(shù)************************************************
  188. void main()
  189. {
  190.     TMOD|=0x11;  //定時(shí)器0和定時(shí)器1模式  工作方式1
  191.     TH0=(65536-50000)/256;  
  192.     TL0=(65536-50000)%256;  //定時(shí)0器寄存器裝初值,每50ms產(chǎn)生一次中斷
  193.     EA=0;                   //關(guān)總中斷
  194.     ET0=1;                  //開定時(shí)器0中斷
  195.     TH1=(65536-5000)/256;   //定時(shí)器1寄存器裝初值,沒5ms產(chǎn)生一次中斷
  196.     TL1=(65536-5000)%256;
  197.     ET1=1;                //打開定時(shí)器1中斷
  198.     TR0=1;  
  199.     TR1=1;              //打開定時(shí)器0和定時(shí)器1
  200.     while(1)
  201.     {      
  202.        uchar key = scankey();
  203.        if (key == K1)
  204.       {     
  205.         EA=1;              //開總中斷[em12]
  206.         biaozhun();
  207.       }     
  208.        if (key == K2)
  209.       {   
  210.        EA=1;
  211.        qingrou();
  212.       }
  213.        if (key == K3)
  214.       {   
  215.        EA=1;
  216.        shuaigan();

  217.       }     }   }  
復(fù)制代碼




截圖1563146995.png (16.05 KB, 下載次數(shù): 70)

截圖1563146995.png

最佳答案

查看完整內(nèi)容

圖片[/backcolor]附件[/backcolor]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:584556 發(fā)表于 2019-7-14 22:30 | 只看該作者
1.zip (40.36 KB, 下載次數(shù): 19)
[url=]圖片[/url]
[url=]附件[/url]


TIM圖片20190715165330.jpg (101.55 KB, 下載次數(shù): 101)

仔細(xì)一點(diǎn)

仔細(xì)一點(diǎn)
回復(fù)

使用道具 舉報(bào)

板凳
ID:584556 發(fā)表于 2019-7-15 17:06 | 只看該作者
二次回復(fù)

TIM圖片20190715165330.jpg (101.55 KB, 下載次數(shù): 71)

TIM圖片20190715165330.jpg

1.zip

40.36 KB, 下載次數(shù): 10

編譯好 無語法錯(cuò)誤

回復(fù)

使用道具 舉報(bào)

地板
ID:584674 發(fā)表于 2019-7-15 20:43 | 只看該作者
是啊聽大佬的,13段落那里K2和0x05連在一起了
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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