微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 学习单片机

学习单片机

时间:10-02 整理:3721RD 点击:
我是一个刚学单片机的新手,下载了一个交通灯,想把其中的c文件复制生成新的c文件,但总是给我警告,这是怎么回事?希望打神解惑

贴图出来看看咋回事

  1. #include<include.h>

  2. sbit NS_GRE = P2^5;      
  3. sbit NS_YEL = P2^4;
  4. sbit NS_RED = P2^3;   
  5. sbit EW_GRE = P2^2;  
  6. sbit EW_YEL = P2^1;  
  7. sbit EW_RED = P2^0;   



  8. uint8  EW_Timer = unused8;  //东西方向红灯定时器
  9. uint8  NS_Timer = unused8;  //南北方向红灯定时器
  10. uint8  YEL_Timer = unused8; //黄灯 5s定时器

  11. int main(void)
  12. {

  13.     Timer_Init();    //定时器初始化
  14.     INT0_Init();     //外部中断初始化   
  15.     EA=1;            //打开全局中断
  16.    
  17.     NS_GRE = OFF;    //所有的灯都灭   
  18.     NS_YEL = OFF;
  19.     NS_RED = OFF;   
  20.     EW_GRE = OFF;  
  21.     EW_YEL = OFF;  
  22.     EW_RED = OFF;   
  23.     P3 = 0xFF;      //所有显示灭

  24.     //先让东西方向红灯亮 南北方向通行
  25.     EW_Timer = EWTime_Count;//东西方向开始计时

  26.     while(1)
  27.     {
  28.            
  29.            if((EW_Timer != unused8) && (EW_Timer != 0)){ //东西方向做红灯倒计时
  30.                 display1(EW_Timer/10, EW_Timer%10);      //东西方向显示时间 南北方向不显示
  31.                 EW_RED_ON();                             //东西方向保持红灯
  32.                 NS_GRE_ON();                             //南北方向保持绿灯
  33.            }
  34.            else if((EW_Timer != unused8) && (EW_Timer == 0) && (YEL_Timer == unused8)){//东西方向红灯计时到 东西方向保持红灯 南北方向变黄灯 开始黄灯5s计时
  35.                 EW_RED_ON();                             //东西方向红灯
  36.                 NS_YEL_ON();                             //南北方向黄灯
  37.                 YEL_Timer = YELTime_Count;               //5s计时
  38.            }
  39.            if((EW_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){
  40.                 display1(YEL_Timer/10, YEL_Timer%10);    //东西方向显示时间 南北方向不显示
  41.            }
  42.            if((EW_Timer != unused8) && (YEL_Timer == 0)){    //东西方向红-南北方向黄灯5s计时到 东西红灯定时器关 黄灯定时器关 南北红灯 东西绿灯 南北计时器开
  43.                 EW_Timer = unused8;                      //东西红灯定时器关
  44.                 YEL_Timer = unused8;                     //黄灯定时器关
  45.                 NS_RED_ON();                             //南北变红灯
  46.                 EW_GRE_ON();                             //东西变绿灯
  47.                 NS_Timer = NSTime_Count;                 //南北红灯定时器开
  48.            }



  49.            if((NS_Timer != unused8) && (NS_Timer != 0)){ //南北红灯定时器正在计时
  50.                 display2(NS_Timer/10, NS_Timer%10);      //南北方向显示时间 东西方向不显示
  51.                 EW_GRE_ON();                             //东西保持绿灯
  52.                 NS_RED_ON();                             //南北保持红灯
  53.            }
  54.            else if((NS_Timer != unused8) && (NS_Timer == 0) && (YEL_Timer == unused8)){ //南北方向红灯计时到 南北方向保持红灯 东西方向变黄灯 开始黄灯5s计时
  55.                 NS_RED_ON();                             //南北方向保持红灯
  56.                 EW_YEL_ON();                             //东西方向变黄灯
  57.                 YEL_Timer = YELTime_Count;               //5s计时
  58.            }
  59.            if((NS_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){   
  60.                 display2(YEL_Timer/10, YEL_Timer%10);   //南北方向显示时间 东西方向不显示
  61.            }
  62.            if((NS_Timer != unused8) && (YEL_Timer == 0)){  //南北方向红-东西方向黄灯5s计时到 南北方向定时器关 黄灯定时器关 东西方向变红灯 南北方向变绿灯 东西方向红灯计时器开始计时
  63.                 NS_Timer = unused8;
  64.                 YEL_Timer = unused8;
  65.                 EW_RED_ON();                           //东西方向变红灯
  66.                 NS_GRE_ON();                           //南北方向变绿灯
  67.                 EW_Timer = EWTime_Count;               //东西方向开始计时
  68.            }


  69.            if(Flag_Key == 1){        //如果急停按键按下 则全红灯 显示灭
  70.                 P3 = 0xFF;           //所有显示灭
  71.                 EW_RED_ON();         //东西方向红灯
  72.                 NS_RED_ON();         //南北方向红灯
  73.                
  74.                 EW_Timer = unused8;  //关闭所有定时器
  75.                 NS_Timer = unused8;
  76.                 YEL_Timer = unused8;
  77.            }
  78.     }
  79. }


  80. 吕立令 12:18:19

  81. sbit Key = P3^2;
  82. uint8  Flag_Key = 0; //按键是否按下标识

  83. /****************************************
  84. *               外部中断初始化
  85. *INT0 下降沿触发
  86. *****************************************/
  87. void INT0_Init(void)
  88. {
  89.     EX0 = 1; //INT0 使能
  90.     IT0 = 1; //下降沿触发
  91. }



  92. void Key_Stop(void) interrupt 0
  93. {
  94.     Delay10uS(200);
  95.     if(Key == 0){   //确认按键按下
  96.         Flag_Key = 1;
  97.     }
  98. }

复制代码

警告很正常,可能函数没声明,声明了又没用等。学习的话,能正常使用就行了。还有,你贴图,贴警告,不是代码

*** 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: 080AH
Program Size: data=9.0 xdata=0 code=15
"xiqiliu喜庆" - 0 Error(s), 2 Warning(s).

哦哦,谢谢

哦哦,谢谢

有些警告是可以忽略的,比如函数声明了,却没有调用,不过还是0错误0函数,建议小编补补基础知识。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top