标题: 在单片机中出现这个问题,麻烦帮忙解决下 C202: 'ERROR': undefined identifier [打印本页]

作者: scx2006114    时间: 2015-12-30 20:34
标题: 在单片机中出现这个问题,麻烦帮忙解决下 C202: 'ERROR': undefined identifier
C(441): error C202: 'OK': undefined identifierC(447): error C202: 'ERROR': undefined identifier

作者: admin    时间: 2015-12-30 23:41
没有定义
作者: scx2006114    时间: 2015-12-31 09:03
怎么定义?
作者: 红尘有你    时间: 2015-12-31 12:34
把代码贴出来

作者: 304326108    时间: 2016-1-11 23:03
还没有解决吗
作者: wm010cf    时间: 2025-4-9 18:31
/*
点阵屏管脚定义
SHCP   GND
STCP   GND
R1     GND
G1     GND
VCC    GND
A      GND
B      GND
C      D
*/
/*
控制卡
P0.0~P0.3   A B C D
P16 SCK
P17 STR
R1 P04
G1 P05
R2 P06
G2 P07
*/
#include<stc89c51rc.h>
#define uchar unsigned char
#define uint unsigned int

//如果用自己的单片机实验板连接A B C D 一一对应,则用这个扫描数据
//uchar code sw[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,};/*16行段码*///138驱动数据

//下面的A B C D行扫描数据是反向的 配套我们的控制卡用                                 
uchar code sw[16]={0X00,0X08,0x04,0x0C,0X02,0X0A,0X06,0X0E,0X01,0X09,0X05,0X0D,0X03,0X0B,0X07,0X0F};/*16行段码*///138驱动数据

sbit STR=P1^7;              //锁存         
sbit SCK=P1^6;                    //时钟         
sbit SERr= P0^4;            //红色数据
sbit SERg= P0^5;                        //绿色数据
uchar line=0;
void   rxd_data();        // 发送移动数据
uchar time_count=0; //计数
uchar reg=0;
/**************************************/
void Timer0Interrupt(void) interrupt 1 //定时器中断
{
     TH0 = 0x04C;//定时50MS        这里的晶振是18.432M 测试无需理会晶振大小
     TL0 = 0x000;
         
   time_count++;
   if(time_count>10)//发送一次数据
   {      
       time_count=0;
           line++; //下一行
           if(line>15) //共16行
           {
                    line=0; //重新移动       
                  reg++;//依次变色 红 绿 黄
                  if(reg>2)
                 {
                     reg=0;
                 }       
           }
            rxd_data();//发送数据
        P0 = sw[line]; //打开行扫描                                                                                              
            STR=1;//锁存
            STR=0;
        STR=1;

   }

       
}
/********************************************/

/*主函数*/
void main()
{  
  TMOD=0x01; //定时器0 16位定时定时器1方式2
  TH0=0x4c;  //50ms
  TL0=0x00;
  
  TR0=1; //开定时器计数
  ET0=1; //开定时器中断
  EA=1;         //开中断
   while(1)  
   {
   }
}          
/***********************发送移动的数据****************************/
void rxd_data(void)                            //串行发送数据
{
  uchar s;
  uchar k;
    //uchar f;
  
  for(s=0;s<8;s++)//发送8字节数据
        {
     for(k=0;k<8;k++) //一个字节8位
       {
               SCK=0; //上降沿移位595
                  if( reg==0)                  
                  {
                     SERr=0;//红色亮                                   
                         SERg=1;//绿色灭                                   
                  }
                  if( reg==1)
                  {
                           SERr=1;        //红色灭          
                           SERg=0;//绿色亮                                 
                  }
                  if( reg==2)
                  {
                           SERg=0;        //红色亮          
                           SERr=0;        //绿色亮
                   //组合成了黄色                        
                  }                                     
           SCK=1;
                 
       }
          

   }

}
作者: wm010cf    时间: 2025-4-9 18:36
然后就出现以下错误

DZP.C(100): error C202: 'SERr': undefined identifier
DZP.C(101): error C202: 'SERg': undefined identifier
DZP.C(105): error C202: 'SERr': undefined identifier
DZP.C(106): error C202: 'SERg': undefined identifier
Target not created
作者: coody_sz    时间: 2025-4-10 15:36
没有定义,要先定义再使用。
作者: qsgang    时间: 2025-4-11 13:48
#include <stc89c5xrc.h>

作者: wm010cf    时间: 2025-4-16 18:29
把头文件改成#include<reg52.h>就能编译了
作者: 622323wjl    时间: 2025-4-19 22:43
/*
点阵屏管脚定义
SHCP   GND
STCP   GND
R1     GND
G1     GND
VCC    GND
A      GND
B      GND
C      D
*/
/*
控制卡
P0.0~P0.3   A B C D
P16 SCK
P17 STR
R1 P04
G1 P05
R2 P06
G2 P07
*/
#include<stc89c51rc.h>
#define uchar unsigned char
#define uint unsigned int

//如果用自己的单片机实验板连接A B C D 一一对应,则用这个扫描数据
//uchar code sw[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,};/*16行段码*///138驱动数据

//下面的A B C D行扫描数据是反向的 配套我们的控制卡用                                 
uchar code sw[16]={0X00,0X08,0x04,0x0C,0X02,0X0A,0X06,0X0E,0X01,0X09,0X05,0X0D,0X03,0X0B,0X07,0X0F};/*16行段码*///138驱动数据

sbit STR=P1^7;              //锁存         
sbit SCK=P1^6;                    //时钟         
sbit SERr= P0^4;            //红色数据
sbit SERg= P0^5;                        //绿色数据
uchar line=0;
void   rxd_data();        // 发送移动数据
uchar time_count=0; //计数
uchar reg=0;
/**************************************/
void Timer0Interrupt(void) interrupt 1 //定时器中断
{
     TH0 = 0x04C;//定时50MS        这里的晶振是18.432M 测试无需理会晶振大小
     TL0 = 0x000;
         
   time_count++;
   if(time_count>10)//发送一次数据
   {      
       time_count=0;
           line++; //下一行
           if(line>15) //共16行
           {
                    line=0; //重新移动      
                  reg++;//依次变色 红 绿 黄
                  if(reg>2)
                 {
                     reg=0;
                 }      
           }
            rxd_data();//发送数据
        P0 = sw[line]; //打开行扫描                                                                                             
            STR=1;//锁存
            STR=0;
        STR=1;

   }

      
}
/********************************************/

/*主函数*/
void main()
{  
  TMOD=0x01; //定时器0 16位定时定时器1方式2
  TH0=0x4c;  //50ms
  TL0=0x00;
  
  TR0=1; //开定时器计数
  ET0=1; //开定时器中断
  EA=1;         //开中断
   while(1)  
   {
   }
}         
/***********************发送移动的数据****************************/
void rxd_data(void)                            //串行发送数据
{
  uchar s;
  uchar k;
    //uchar f;
  
  for(s=0;s<8;s++)//发送8字节数据
        {
     for(k=0;k<8;k++) //一个字节8位
       {
               SCK=0; //上降沿移位595
                  if( reg==0)                  
                  {
                     SERr=0;//红色亮                                   
                         SERg=1;//绿色灭                                   
                  }
                  if( reg==1)
                  {
                           SERr=1;        //红色灭         
                           SERg=0;//绿色亮                                 
                  }
                  if( reg==2)
                  {
                           SERg=0;        //红色亮         
                           SERr=0;        //绿色亮
                   //组合成了黄色                        
                  }                                    
           SCK=1;
                 
       }
         

   }

}





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1