找回密码
 立即注册
查看: 174|回复: 5

t_motor1.h(8): warning C194: obsolete declaration: use '<type> code zrun'

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:29
  • 最近打卡:2025-04-26 08:37:49

2

主题

56

回帖

546

积分

高级会员

积分
546
发表于 2025-3-9 21:35:41 | 显示全部楼层 |阅读模式
这个错误怎么解决?

code unsigned char zrun[8]={ 0x03,0x0b,0x09,0x0d,0x0c,0x0e,0x06,0x07};

编译错误:
t_motor1.h(8): warning C194: obsolete declaration: use '<type> code  zrun'

回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-3-9 21:38:00 | 显示全部楼层
该警告提示您使用的是过时的声明方式。在Keil C51编译器中,`code`关键字用于将变量存储在程序存储器(ROM)中,而非数据存储器(RAM)。建议您使用`code`关键字时,将其放在类型声明之前,以符合现代C51编译器的语法规范。<br><br>解决方案如下:  <br>将代码修改为:  <br>`unsigned char code zrun[] = { 0x03, 0x0b, 0x09, 0x0d, 0x0c, 0x0e, 0x06, 0x07 };`  <br><br>修改后,`code`关键字正确放置在类型声明之前,并确保`zrun`是一个数组(使用`[]`)。这样可以消除警告并符合C51编译器的语法要求。<br><br>[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2025-3-10 09:22:14 | 显示全部楼层
unsigned char code
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:29
  • 最近打卡:2025-04-26 08:37:49

2

主题

56

回帖

546

积分

高级会员

积分
546
发表于 2025-3-12 19:53:29 | 显示全部楼层

修改了,正常了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:29
  • 最近打卡:2025-04-26 08:37:49

2

主题

56

回帖

546

积分

高级会员

积分
546
发表于 2025-3-12 20:26:37 | 显示全部楼层

#include "key.h"

sbit LED7 = P1^7;
sbit LED6 = P1^6;
sbit LED5 = P1^5;
sbit LED4 = P1^4;
sbit LED3 = P1^3;
sbit LED2 = P1^2;
sbit LED1 = P1^1;
sbit LED0 = P1^0;

sbit KEY  = P3^7;
sbit KEY1 = P3^6;
sbit KEY2 = P3^5;
sbit KEY3 = P3^4;
sbit KEY4 = P3^3;



void main()
{
        P0M1 = 0;        P0M0 = 0;        //设置为准双向口
        P1M1 = 0;        P1M0 = 0;        //设置为准双向口
        P2M1 = 0;        P2M0 = 0;        //设置为准双向口
        P3M1 = 0;        P3M0 = 0;        //设置为准双向口
        P4M1 = 0;        P4M0 = 0;        //设置为准双向口
        P5M1 = 0;        P5M0 = 0;        //设置为准双向口
        P6M1 = 0;        P6M0 = 0;        //设置为准双向口
        P7M1 = 0;        P7M0 = 0;        //设置为准双向口


  Timer0Init();  //中断初始化

    while(1)
    {
    key_Proc();   //按键处理
    led_Proc();  //灯处理
                       
                key_Proc1();   //按键处理
    led_Proc1();  //灯处理
                       
    key_Proc2();   //按键处理
    led_Proc2();  //灯处理

    key_Proc3();   //按键处理
    led_Proc3();  //灯处理
                       
    key_Proc4();   //按键处理
    led_Proc4();  //灯处理                       
    }
}

void key_Proc()    //按键处理
{
          if(flag1ms)  //1ms时间标志
    {
        flag1ms = 0;
        if(KEY)
        {
        if((keyTim>10)&&(keyTim<2000))  //按键时间大于10ms小于50ms,是短按键
         {
         keyshort = 1;   //短按键标志
         }
         keyTim = 0;        //按键时间清零
        }
        else
        {
         if(keyTim<2001)    //按键时间小于10S
         keyTim++;           //按键时间加
         if(keyTim==2000)    //按键时间为1S
          {
          keylong = 1;    //长按键标志
          }
        }      
    }
}

void led_Proc()   //灯处理
{
    if((LEDON==0)&&(keyshort==1))  //关灯状态同时长按键按下就开灯
    {   
        keyshort = 0;  //长按键松开
        LEDON = 1;    //关灯时就开灯
        LED0 = 0;     //RGB灯亮白光
        LED1 = 0;     //RGB灯亮白光                       
    }        
    if((LEDON==1)&&(keylong==1)) //开灯状态同时长按键按下就关灯
    {   
        keylong = 0;  //长按键松开
        LEDON = 0;    //开灯时就关灯
        LED0 = 1;     //RGB灯灭
                          LED1 = 1;LED2 = 1;LED3 = 1;
                                LED4 = 1;LED5 = 1;LED6 = 1; LED7 = 1;  
    }
}

void key_Proc1()    //按键处理
{
          if(flag1ms1)  //1ms时间标志
    {
        flag1ms1 = 0;
        if(KEY1)
        {
        if((keyTim1>10)&&(keyTim1<1000))  //按键时间大于10ms小于50ms,是短按键
         {
         keyshort1 = 1;   //短按键标志
         }
         keyTim1 = 0;        //按键时间清零
        }
        else
        {
         if(keyTim1<10001)    //按键时间小于10S
         keyTim1++;           //按键时间加
         if(keyTim1==1000)    //按键时间为1S
          {
          keylong1 = 1;    //长按键标志
          }
        }      
    }
}

void led_Proc1()   //灯处理
{
    if((LEDON==1)&&(keyshort1==1))  //关灯状态同时长按键按下就开灯
    {   
        keyshort1 = 0;  //长按键松开
//        LEDON = 1;    //关灯时就开灯
        LED4 = 1;     //RGB灯亮白光
    }        
    if((LEDON==1)&&(keylong1==1)) //开灯状态同时长按键按下就关灯
    {   
        keylong1 = 0;  //长按键松开
//        LEDON = 0;    //开灯时就关灯
        LED4 = 0;     //RGB灯灭
    }
    }

void key_Proc2()    //按键处理
{
          if(flag1ms2)  //1ms时间标志
    {
        flag1ms2 = 0;
        if(KEY2)
        {
        if((keyTim2>10)&&(keyTim2<1000))  //按键时间大于10ms小于50ms,是短按键
         {
         keyshort2 = 1;   //短按键标志
         }
         keyTim2 = 0;        //按键时间清零
        }
        else
        {
         if(keyTim2<1001)    //按键时间小于10S
         keyTim2++;           //按键时间加
         if(keyTim2==1000)    //按键时间为1S
          {
          keylong2 = 1;    //长按键标志
          }
        }      
    }
}

void led_Proc2()   //灯处理
{
    if((LEDON==1)&&(keyshort2==1))  //关灯状态同时长按键按下就开灯
    {   
        keyshort2 = 0;  //长按键松开
//        LEDON = 1;    //关灯时就开灯
        LED5 = 1;     //RGB灯亮白光
    }        
    if((LEDON==1)&&(keylong2==1)) //开灯状态同时长按键按下就关灯
    {   
        keylong2 = 0;  //长按键松开
//        LEDON = 1;    //开灯时就关灯
        LED5 = 0;     //RGB灯灭
    }
    }

void key_Proc3()    //按键处理
{
          if(flag1ms3)  //1ms时间标志
    {
        flag1ms3 = 0;
        if(KEY3)
        {
        if((keyTim3>10)&&(keyTim3<1000))  //按键时间大于10ms小于50ms,是短按键
         {
         keyshort3 = 1;   //短按键标志
         }
         keyTim3 = 0;        //按键时间清零
        }
        else
        {
         if(keyTim3<1001)    //按键时间小于10S
         keyTim3++;           //按键时间加
         if(keyTim3==1000)    //按键时间为1S
          {
          keylong3 = 1;    //长按键标志
          }
        }      
    }
}

void led_Proc3()   //灯处理
{
    if((LEDON==1)&&(keyshort3==1))  //关灯状态同时长按键按下就开灯
    {   
        keyshort3 = 0;  //长按键松开
//        LEDON = 1;    //关灯时就开灯
        LED6 = 1;     //RGB灯亮白光
//                          if(KEY3==0)  {LED6 = 0; }
    }   
               
    if((LEDON==1)&&(keylong3==1)) //开灯状态同时长按键按下就关灯
    {   
        keylong3 = 0;  //长按键松开
//        LEDON = 1;    //开灯时就关灯
        LED6 = 0;     //RGB灯灭
    }
    }

void key_Proc4()    //按键处理
{
          if(flag1ms4)  //1ms时间标志
    {
        flag1ms4 = 0;
        if(KEY4)
        {
        if((keyTim4>10)&&(keyTim4<1000))  //按键时间大于10ms小于50ms,是短按键
         {
         keyshort4 = 1;   //短按键标志
         }
         keyTim4 = 0;        //按键时间清零
        }
        else
        {
         if(keyTim4<5000)    //按键时间小于10S
         keyTim4++;           //按键时间加
         if(keyTim4==1000)    //按键时间为1S
          {
          keylong4 = 1;    //长按键标志
          }
        }      
    }
}

void led_Proc4()   //灯处理
{
    if((LEDON==1)&&(keyshort4==1))  //关灯状态同时长按键按下就开灯
    {   
        keyshort4 = 0;  //长按键松开
//        LEDON = 1;    //关灯时就开灯
        LED7 = 1;     //RGB灯亮白光
    }        
    if((LEDON==1)&&(keylong4==1)) //开灯状态同时长按键按下就关灯
    {   
        keylong4 = 0;  //长按键松开
//        LEDON = 1;    //开灯时就关灯
        LED7 = 0;     //RGB灯灭
    }
    }       

void Timer0Init()   //中断初始化
{
    AUXR &= 0x7F;   //定时器时钟12T(12分频)模式
    EA = 1;       //开中断
    TMOD &= 0XF0; //中断0模式1
    TMOD |= 0X01;
    TH0 = 0XFC;   //初值1ms
    TL0 = 0X66;
    ET0 = 1;     //允许T0中断
    TR0 = 1;    //定时器0开始计时
}

void interruptTimer0() interrupt 1
{
    TH0 = 0XFC;
    TL0 = 0X66;
    flag1ms = 1; //1ms标志
          flag1ms1 = 1; //1ms标志
          flag1ms2 = 1; //1ms标志
          flag1ms3 = 1; //1ms标志
          flag1ms4 = 1; //1ms标志
    sysTim++;  //系统时间
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:29
  • 最近打卡:2025-04-26 08:37:49

2

主题

56

回帖

546

积分

高级会员

积分
546
发表于 2025-3-12 22:48:17 | 显示全部楼层
#ifndef _KEY_H_
#define _KEY_H_


#include "stc8h.h"

unsigned int sysTim; //系统时间
unsigned char LEDON;    //开灯状态

unsigned char keyshort; //短按键标志
unsigned char keylong;  //长按键标志
unsigned int  keyTim; //按键时间
unsigned char flag1ms;  //1ms标志

unsigned char keyshort1; //短按键标志
unsigned char keylong1;  //长按键标志
unsigned int  keyTim1; //按键时间
unsigned char flag1ms1; //1ms标志

unsigned char keyshort2; //短按键标志
unsigned char keylong2;  //长按键标志
unsigned int  keyTim2; //按键时间
unsigned char flag1ms2; //1ms标志

unsigned char keyshort3; //短按键标志
unsigned char keylong3;  //长按键标志
unsigned int  keyTim3; //按键时间
unsigned char flag1ms3; //1ms标志

unsigned char keyshort4; //短按键标志
unsigned char keylong4;  //长按键标志
unsigned int  keyTim4; //按键时间
unsigned char flag1ms4; //1ms标志


void key_Proc(); //按键处理
void led_Proc();  //灯处理

void key_Proc1(); //按键处理
void led_Proc1();  //灯处理

void key_Proc2(); //按键处理
void led_Proc2();  //灯处理

void key_Proc3(); //按键处理
void led_Proc3();  //灯处理

void key_Proc4(); //按键处理
void led_Proc4();  //灯处理

void Timer0Init(); //中断初始化

#endif
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 08:15 , Processed in 0.131344 second(s), 83 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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