找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7895|回复: 26
收起左侧

为什么keil编译的时候出现这种错误:error 202 ‘lcden’ :undefine identifier

  [复制链接]
ID:306995 发表于 2018-4-14 17:10 | 显示全部楼层 |阅读模式
本帖最后由 陈艺萍 于 2018-4-17 13:29 编辑

求助大神,为什么keil编译的时候出现这种错误:error 202 ‘lcden’ :undefine identifier 1.png
2.png
4.png 我改完P口之后:
QQ截图20180416172650.png
1.png 下面是完整程序:我要实现的是可以负数运算的简易计算器
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
//LCD1602
sbit rs=P2^5
sbit wela=P2^6
sbit lcden=P2^7
uchar code table[]="                ";
long int data_a,data_b
long int data_c
uchar display[10];
void LCD_Delay_us(unsigned int t)
{
    while(t--);//t=0íË3ö
}
void LCD_Delay_ms(unsigned int t)
{
    unsigned int i,j;
        for(i=0;i<t;i++)
        for(j=0;j<113;j++);
}
void write_com(uchar com)
{
    rs=0;
        lcden=0;
        P0=com;
        LCD_Delay_ms(1);
        lcden=1;
        LCD_Delay_ms(2);
        lcden=0;
}
//1602D′êy¾Y
void write_date(uchar date)
{
    rs=1;
        lcden=0;
        P0=date;
        LCD_Delay_ms(1);
        lcden=1;
        LCD_Delay_ms(2);
        lcden=0;
        }
       
void W_lcd(unsigned char x,unsigned char y,unsigned char Data)
{
if (y==0){write_com(0x80+x);}
else{write_com(0xc0+x);}
write_data(Data);
}

void LCD_Write_String(unsigned char x,unsigned char y,unsigned char*s)
{
if (y==0){write_com(0x80+x);}
else{write_com(0xc0+x);}
while (*s)
{write_data(*s);s++;}
}

void init_lcd(void)
{
    wela=0;
        lcden=0;
        write_com(0x38);
        LCD_Delay_us(100);
        write_com(0x0c);
        write_com(0x06);
    write_com(0x01);
    write_com(0x08);
        }
short keycheckdown()
{
    short temp1,temp2,temp,a=0xff;
        P1=0xf0;
        LCD_Delay_ms(20);
        temp1=P1;
        P1=0xff;
        LCD_Delay_ms(20);
        P1=0x0f;
        LCD_Delay_ms(20);
        temp2=P1;
        P1=0xff;
        temp=(temp1&0xf0)|(temp2&0x0f);
        switch(temp)
        {
        case 0x77:a=0x0d;break;
        case 0x7b:a=0x0e;break;
        case 0x7d:a=0x00;break;
        case 0x7e:a=0x0f;break;
       
        case 0xb7:a=0x0c;break;//*
        case 0xbb:a=0x9;break;//9
        case 0xbd:a=0x8;break;//8
        case 0xbe:a=0x7;break;//7
       
        case 0xd7:a=0x0b;break;//-
        case 0xdb:a=0x06;break;//6
        case 0xdd:a=0x05;break;//5
        case 0xde:a=0x04;break;//4
       
        case 0xe7:a=0x0a;break;//+
        case 0xeb:a=0x03;break;//3
        case 0xed:a=0x02;break;//2
        case 0xee:a=0x01;break;//1
       
        default:a=0xff;
        }
        return a;
}
void display_a()
{
    display[3]=data_a%10000/1000;
        display[2]=data_a%1000/100;
        display[1]=data_a%100/10;
        display[0]=data_a%10;
       
        write_com(0x80+0);
        if(data_a>999){write_data('0'+display[3]);}
        if(data_a>99){write_data('0'+display[2]);}
        if(data_a>9){write_data('0'+display[1]);}
                          write_data('0'+display[0]);
}
void display_b()
{
    write_com(0x80+7);
         display[3]=data_b%10000/1000;
        display[2]=data_b%1000/100;
        display[1]=data_b%100/10;
        display[0]=data_b%10;
       
    if(data_b>999){write_data('0'+display[3]);}
        if(data_b>99) {write_data('0'+display[2]);}
        if(data_b>9)   {write_data('0'+display[1]);}
                          write_data('0'+display[0]);
        }

void display_c(x)
{
    if(data_c<100000000&&data_c>-1)
        display[8]=data_c%1000000000/100000000;
        display[7]=data_c%100000000/10000000;
        display[6]=data_c%10000000/1000000;
        display[5]=data_c%1000000/100000;
        display[4]=data_c%100000/10000;
        display[3]=data_c%10000/1000;
        display[2]=data_c%1000/100;
        display[1]=data_c%100/10;
        display[0]=data_c%10;
        write_com(0x80+0x06+0x40);
        if(x==4)
        {
        if(data_c>99999999) {write_data('0'+display[8]);}
        if(data_c>9999999)  {write_data('0'+display[7]);}
        if(data_c>999999)    {write_data('0'+display[6]);}
        if(data_c>99999)     {write_data('0'+display[5]);}
                                     write_data('0'+display[4]);
                                                                 write_data('.');
                                                                 write_data('0'+display[3]);
                                                                  write_data('0'+display[2]);
                                                                  write_data('0'+display[1]);
                                                                  write_data('0'+display[0]);
                                                                  }
                                                                  else{
                                                                  if(data_c>99999999)  {write_date('0'+display[8]);}
                                                                  if(data_c>9999999)  {write_date('0'+display[7]);}
                                                                  if(data_c>999999)  {write_date('0'+display[6]);}
                                                                  if(data_c>99999)  {write_date('0'+display[5]);}
                                                                  if(data_c>9999)  {write_date('0'+display[4]);}
                                                                  if(data_c>999)  {write_date('0'+display[3]);}
                                                                   if(data_c>999)  {write_date('0'+display[2]);}
                                                                    if(data_c>999)  {write_date('0'+display[1]);}
                                                                                              write_date('0'+display[0]);
                                                                                                                  }
                                                                                                                  else {
                                                                                                                  write_com(0x80+11+0x40);
                                                                                                                  write_date('E');
                                                                                                                  write_date('r');
                                                                                                                  write_date('r');
                                                                                                                  write_date('o');
                                                                                                                  write_date('r');
                                                                                                                  }
                                                                                                                  }
void eql(uchar x)
{
  switch(x)
  {
  case 1:data_c=data_a+data_b;break;
  case 2:if(data_a>=data_b){data_c=data_a-data_b;}
    else{data_c=data_b-data_a;W_lcd(5,1,'-');} ;
                     break;
        case 3:data_c=(data_a*data_b);break;
        case 4:if(data_b==0){LCD_Write_String(0,1,"Error!";}
    else{data_c=(data_a*10000)/data_b;};break;
  case 0:break;
}                                         
}
void main()
{
    uchar key=0xff;
        uchar n=0;
        uchar m=5;
        uchar x=0;
        data_a=0;
        data_b=0;
        data_c=0;
        init_lcd();
        display_a();
while(1)
{
key=keycheckdown();
if(0xff!=key)
{
if(key<10)
{
if(n<4){data_a=data_a*10+key;m=5;display_a();}n++;
if(m<4){data_b=data_b*10+key;n=5;display_b();}m++;
}
else
{switch(key)
{
case 0x0a:n=5;m=0;x=1;W_lcd(5,0,'+');break;
case 0x0b:n=5;m=0;x=2;W_lcd(5,0,'-');break;
case 0x0c:n=5;m=0;x=3;W_lcd(5,0,'*');break;
case 0x0d:n=5;m=0;x=4;W_lcd(5,0,'/');break;
case 0x0e:n=5;m=5;eql(x);W_lcd(12,0,'=');display_c(x);break;
case 0x0f:n=0;x=0;m=5;data_a=0;data_b=0;data_c=0;LCD_Write_String(0,0,table);LCD_Write_String(0,1,table);W_lcd(0,0,'0');break;
}
}
do{P1=0xf0;}while(P1!=0xf0);
}
}
}


1.四则运算,包括负数运算
2.开机显示0,当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示OV;当除数为0时,计算器会在LCD上提示ERR。

回复

使用道具 举报

ID:306995 发表于 2018-4-15 16:59 | 显示全部楼层
有人吗有人吗
回复

使用道具 举报

ID:164602 发表于 2018-4-16 09:06 | 显示全部楼层
你的错误很简单!
你的程序: 1.jpg sbit rs=P2^5;//注意:你写的小写p。我写的大写P
都是这个错误。

评分

参与人数 1黑币 +5 收起 理由
Evelynchan + 5

查看全部评分

回复

使用道具 举报

ID:309014 发表于 2018-4-16 10:03 来自手机 | 显示全部楼层
有不明确的定义
回复

使用道具 举报

ID:309026 发表于 2018-4-16 10:05 | 显示全部楼层
上面错误是存在未定义,你把p改一下就行。。。
回复

使用道具 举报

ID:309064 发表于 2018-4-16 10:38 | 显示全部楼层
你的错误很简单! 你的程序:   sbit rs=P2^5;//注意:你写的小写p。我写的大写P 都是这个错误。
回复

使用道具 举报

ID:137239 发表于 2018-4-16 10:58 | 显示全部楼层
‘P’要大写的
回复

使用道具 举报

ID:309089 发表于 2018-4-16 11:00 | 显示全部楼层
lcden 没有定义P2的P 要大写
回复

使用道具 举报

ID:309098 发表于 2018-4-16 11:08 | 显示全部楼层
端口p要是大写的
回复

使用道具 举报

ID:309122 发表于 2018-4-16 11:36 | 显示全部楼层
楼上对的,该大写P
回复

使用道具 举报

ID:309124 发表于 2018-4-16 11:37 | 显示全部楼层
p要定义一下
回复

使用道具 举报

ID:154654 发表于 2018-4-16 13:38 | 显示全部楼层
检查一下上下文用到的函数是否一致
回复

使用道具 举报

ID:309251 发表于 2018-4-16 14:49 | 显示全部楼层
未定义
回复

使用道具 举报

ID:309242 发表于 2018-4-16 15:02 | 显示全部楼层
P2^7要大写
回复

使用道具 举报

ID:306995 发表于 2018-4-16 17:15 | 显示全部楼层
HC6800-ES-V2.0 发表于 2018-4-16 09:06
你的错误很简单!
你的程序:sbit rs=P2^5;//注意:你写的小写p。我写的大写P
都是这个错误。

我居然犯了低级错误,但是我改过来了还是不行呢怎么办
回复

使用道具 举报

ID:164602 发表于 2018-4-17 07:22 | 显示全部楼层
陈艺萍 发表于 2018-4-16 17:15
我居然犯了低级错误,但是我改过来了还是不行呢怎么办

编译的时候还有什么错呢,又发出来啥。
你没有发程序,我就不能在自己的电脑上帮你查,我不可能照着图片打一遍程序吧?!所以,你查了要把结果说出来啥,
回复

使用道具 举报

ID:155507 发表于 2018-4-17 11:11 来自手机 | 显示全部楼层
你的 #include<reg.51.h> 是 #include<reg51.h> 沒有点

评分

参与人数 1黑币 +5 收起 理由
Evelynchan + 5 很给力!

查看全部评分

回复

使用道具 举报

ID:306995 发表于 2018-4-17 13:31 | 显示全部楼层
HC6800-ES-V2.0 发表于 2018-4-17 07:22
编译的时候还有什么错呢,又发出来啥。
你没有发程序,我就不能在自己的电脑上帮你查,我不可能照着图片 ...

我已经发了程序了,拜托大佬帮我运行试试
回复

使用道具 举报

ID:164602 发表于 2018-4-17 16:24 | 显示全部楼层
陈艺萍 发表于 2018-4-17 13:31
我已经发了程序了,拜托大佬帮我运行试试

我把其它错误点都给你改了,只有这里,我没有时间读程序,不知道你的意思,所以,自己看看,这两个else是怎样的关系(红色位置),错误是:else与if不匹配。#include<reg51.h>

#define uint unsigned int
#define uchar unsigned char

//LCD1602
sbit rs=P2^5;
sbit wela=P2^6;
sbit lcden=P2^7;

uchar code table[]="                ";
long int data_a,data_b;
long int data_c;
uchar display[10];

void LCD_Delay_us(unsigned int t)
{
    while(t--);//t=0í?3?
}

void LCD_Delay_ms(unsigned int t)
{
    unsigned int i,j;
    for(i=0;i<t;i++)
            for(j=0;j<113;j++);
}

void write_com(uchar com)
{
    rs=0;
    lcden=0;
    P0=com;
    LCD_Delay_ms(1);
    lcden=1;
    LCD_Delay_ms(2);
    lcden=0;
}

//1602D′êy?Y
void write_data(uchar date)
{
    rs=1;
    lcden=0;
    P0=date;
    LCD_Delay_ms(1);
    lcden=1;
    LCD_Delay_ms(2);
    lcden=0;
}

void W_lcd(unsigned char x,unsigned char y,unsigned char Data)
{
        if (y==0){write_com(0x80+x);}
        else{write_com(0xc0+x);}
        write_data(Data);
}

void LCD_Write_String(unsigned char x,unsigned char y,unsigned char*s)
{
        if (y==0){write_com(0x80+x);}
        else{write_com(0xc0+x);}
        while (*s)
        {write_data(*s);s++;}
}

void init_lcd(void)
{
    wela=0;
    lcden=0;
    write_com(0x38);
    LCD_Delay_us(100);
    write_com(0x0c);
    write_com(0x06);
    write_com(0x01);
    write_com(0x08);
}

short keycheckdown()
{
    short temp1,temp2,temp,a=0xff;
    P1=0xf0;
    LCD_Delay_ms(20);
    temp1=P1;
    P1=0xff;
    LCD_Delay_ms(20);
    P1=0x0f;
    LCD_Delay_ms(20);
    temp2=P1;
    P1=0xff;
    temp=(temp1&0xf0)|(temp2&0x0f);
    switch(temp)
    {
        case 0x77:a=0x0d;break;
        case 0x7b:a=0x0e;break;
        case 0x7d:a=0x00;break;
        case 0x7e:a=0x0f;break;

        case 0xb7:a=0x0c;break;//*
        case 0xbb:a=0x9;break;//9
        case 0xbd:a=0x8;break;//8
        case 0xbe:a=0x7;break;//7

        case 0xd7:a=0x0b;break;//-
        case 0xdb:a=0x06;break;//6
        case 0xdd:a=0x05;break;//5
        case 0xde:a=0x04;break;//4

        case 0xe7:a=0x0a;break;//+
        case 0xeb:a=0x03;break;//3
        case 0xed:a=0x02;break;//2
        case 0xee:a=0x01;break;//1

        default:a=0xff;
    }
    return a;
}

void display_a()
{
    display[3]=data_a%10000/1000;
    display[2]=data_a%1000/100;
    display[1]=data_a%100/10;
    display[0]=data_a%10;

    write_com(0x80+0);
    if(data_a>999){write_data('0'+display[3]);}
    if(data_a>99){write_data('0'+display[2]);}
    if(data_a>9){write_data('0'+display[1]);}
    write_data('0'+display[0]);
}

void display_b()
{
    write_com(0x80+7);
    display[3]=data_b%10000/1000;
    display[2]=data_b%1000/100;
    display[1]=data_b%100/10;
    display[0]=data_b%10;

    if(data_b>999){write_data('0'+display[3]);}
    if(data_b>99) {write_data('0'+display[2]);}
    if(data_b>9)   {write_data('0'+display[1]);}
    write_data('0'+display[0]);
}

void display_c(x)
{
    if(data_c<100000000&&data_c>-1)
        display[8]=data_c%1000000000/100000000;
        display[7]=data_c%100000000/10000000;
        display[6]=data_c%10000000/1000000;
        display[5]=data_c%1000000/100000;
        display[4]=data_c%100000/10000;
        display[3]=data_c%10000/1000;
        display[2]=data_c%1000/100;
        display[1]=data_c%100/10;
        display[0]=data_c%10;
        write_com(0x80+0x06+0x40);
        if(x==4)
        {
                  if(data_c>99999999) {write_data('0'+display[8]);}
                if(data_c>9999999)  {write_data('0'+display[7]);}
                if(data_c>999999)    {write_data('0'+display[6]);}
                if(data_c>99999)     {write_data('0'+display[5]);}
            write_data('0'+display[4]);
            write_data('.');
            write_data('0'+display[3]);
            write_data('0'+display[2]);
            write_data('0'+display[1]);
            write_data('0'+display[0]);
        }
        else{
            if(data_c>99999999)  {write_data('0'+display[8]);}
            if(data_c>9999999)  {write_data('0'+display[7]);}
            if(data_c>999999)  {write_data('0'+display[6]);}
            if(data_c>99999)  {write_data('0'+display[5]);}
            if(data_c>9999)  {write_data('0'+display[4]);}
            if(data_c>999)  {write_data('0'+display[3]);}
            if(data_c>999)  {write_data('0'+display[2]);}
            if(data_c>999)  {write_data('0'+display[1]);}
            write_data('0'+display[0]);
            }
        else {
            write_com(0x80+11+0x40);
            write_date('E');
            write_date('r');
            write_date('r');
            write_date('o');
            write_date('r');
             }
}
                                                                                                                  }
void eql(uchar x)
{
  switch(x)
  {
  case 1:data_c=data_a+data_b;break;
  case 2:if(data_a>=data_b){data_c=data_a-data_b;}
    else{data_c=data_b-data_a;W_lcd(5,1,'-');} ;
                     break;
        case 3:data_c=(data_a*data_b);break;
        case 4:if(data_b==0){LCD_Write_String(0,1,"Error!";}
    else{data_c=(data_a*10000)/data_b;};break;
  case 0:break;
}                                         
}
void main()
{
    uchar key=0xff;
        uchar n=0;
        uchar m=5;
        uchar x=0;
        data_a=0;
        data_b=0;
        data_c=0;
        init_lcd();
        display_a();
while(1)
{
key=keycheckdown();
if(0xff!=key)
{
if(key<10)
{
if(n<4){data_a=data_a*10+key;m=5;display_a();}n++;
if(m<4){data_b=data_b*10+key;n=5;display_b();}m++;
}
else
{switch(key)
{
case 0x0a:n=5;m=0;x=1;W_lcd(5,0,'+');break;
case 0x0b:n=5;m=0;x=2;W_lcd(5,0,'-');break;
case 0x0c:n=5;m=0;x=3;W_lcd(5,0,'*');break;
case 0x0d:n=5;m=0;x=4;W_lcd(5,0,'/');break;
case 0x0e:n=5;m=5;eql(x);W_lcd(12,0,'=');display_c(x);break;
case 0x0f:n=0;x=0;m=5;data_a=0;data_b=0;data_c=0;LCD_Write_String(0,0,table);LCD_Write_String(0,1,table);W_lcd(0,0,'0');break;
}
}
do{P1=0xf0;}while(P1!=0xf0);
}
}
}

回复

使用道具 举报

ID:306995 发表于 2018-4-17 17:09 | 显示全部楼层
HC6800-ES-V2.0 发表于 2018-4-17 16:24
我把其它错误点都给你改了,只有这里,我没有时间读程序,不知道你的意思,所以,自己看看,这两个else是 ...

这一段是我最头疼的地方小白真的看不懂
回复

使用道具 举报

ID:306995 发表于 2018-4-17 17:27 | 显示全部楼层
void display_c(x)
{
    if(data_c<100000000&&data_c>-1)
       
                { display[8]=data_c%1000000000/100000000;
        display[7]=data_c%100000000/10000000;
        display[6]=data_c%10000000/1000000;
        display[5]=data_c%1000000/100000;
        display[4]=data_c%100000/10000;
        display[3]=data_c%10000/1000;
        display[2]=data_c%1000/100;
        display[1]=data_c%100/10;
        display[0]=data_c%10;
        write_com(0x80+0x06+0x40);
               
       
        if(x==4)
        {
         if(data_c>99999999)   {write_data('0'+display[8]);}
         if(data_c>9999999)    {write_data('0'+display[7]);}
         if(data_c>999999)     {write_data('0'+display[6]);}
         if(data_c>99999)      {write_data('0'+display[5]);}
                               write_data('0'+display[4]);
                               write_data('.');
                               write_data('0'+display[3]);
                               write_data('0'+display[2]);
                               write_data('0'+display[1]);
                               write_data('0'+display[0]);
                         }
        
        else{
            if(data_c>99999999)  {write_data('0'+display[8]);}
            if(data_c>9999999)  {write_data('0'+display[7]);}
            if(data_c>999999)  {write_data('0'+display[6]);}
            if(data_c>99999)  {write_data('0'+display[5]);}
            if(data_c>9999)  {write_data('0'+display[4]);}
            if(data_c>999)  {write_data('0'+display[3]);}
            if(data_c>999)  {write_data('0'+display[2]);}
            if(data_c>999)  {write_data('0'+display[1]);}
            write_data('0'+display[0]);
            }
                                        }

        else {
            write_com(0x80+11+0x40);
            write_date('E');
            write_date('r');
            write_date('r');
            write_date('o');
            write_date('r');
             }
}
  嵌套后
回复

使用道具 举报

ID:309896 发表于 2018-4-17 20:39 | 显示全部楼层
P没有定义吧
回复

使用道具 举报

ID:306995 发表于 2018-4-17 20:53 | 显示全部楼层
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
//LCD1602
sbit rs=P2^5;
sbit wela=P2^6;
sbit lcden=P2^7;
uchar code table[]="                ";
long int data_a,data_b;
long int data_c;
uchar display[10];
void LCD_Delay_us(unsigned int t)
{
    while(t--);
}
void LCD_Delay_ms(unsigned int t)
{
    unsigned int i,j;
    for(i=0;i<t;i++)
            for(j=0;j<113;j++);
}
void write_com(uchar com)
{
    rs=0;
    lcden=0;
    P0=com;
    LCD_Delay_ms(1);
    lcden=1;
    LCD_Delay_ms(2);
    lcden=0;
}
//1602
void write_date(uchar date)
{
    rs=1;
    lcden=0;
    P0=date;
    LCD_Delay_ms(1);
    lcden=1;
    LCD_Delay_ms(2);
    lcden=0;
}
void W_lcd(unsigned char x,unsigned char y,unsigned char date)
{
        if (y==0){write_com(0x80+x);}
        else{write_com(0xc0+x);}
        write_date(date);
}
void LCD_Write_String(unsigned char x,unsigned char y,unsigned char*s)
{
        if (y==0){write_com(0x80+x);}
        else{write_com(0xc0+x);}
        while (*s)
        {write_date(*s);s++;}
}
void init_lcd(void)
{
    wela=0;
    lcden=0;
    write_com(0x38);
    LCD_Delay_us(100);
    write_com(0x0c);
    write_com(0x06);
    write_com(0x01);
    write_com(0x08);
}
short keycheckdown()
{
    short temp1,temp2,temp,a=0xff;
    P1=0xf0;
    LCD_Delay_ms(20);
    temp1=P1;
    P1=0xff;
    LCD_Delay_ms(20);
    P1=0x0f;
    LCD_Delay_ms(20);
    temp2=P1;
    P1=0xff;
    temp=(temp1&0xf0)|(temp2&0x0f);
    switch(temp)
    {
        case 0x77:a=0x0d;break;
        case 0x7b:a=0x0e;break;
        case 0x7d:a=0x00;break;
        case 0x7e:a=0x0f;break;

        case 0xb7:a=0x0c;break;//*
        case 0xbb:a=0x9;break;//9
        case 0xbd:a=0x8;break;//8
        case 0xbe:a=0x7;break;//7

        case 0xd7:a=0x0b;break;//-
        case 0xdb:a=0x06;break;//6
        case 0xdd:a=0x05;break;//5
        case 0xde:a=0x04;break;//4

        case 0xe7:a=0x0a;break;//+
        case 0xeb:a=0x03;break;//3
        case 0xed:a=0x02;break;//2
        case 0xee:a=0x01;break;//1

        default:a=0xff;
    }
    return a;
}
void display_a()
{
    display[3]=data_a%10000/1000;
    display[2]=data_a%1000/100;
    display[1]=data_a%100/10;
    display[0]=data_a%10;

    write_com(0x80+0);
    if(data_a>999){write_date('0'+display[3]);}
    if(data_a>99){write_date('0'+display[2]);}
    if(data_a>9){write_date('0'+display[1]);}
    write_date('0'+display[0]);
}
void display_b()
{
    write_com(0x80+7);
    display[3]=data_b%10000/1000;
    display[2]=data_b%1000/100;
    display[1]=data_b%100/10;
    display[0]=data_b%10;

    if(data_b>999){write_date('0'+display[3]);}
    if(data_b>99) {write_date('0'+display[2]);}
    if(data_b>9)   {write_date('0'+display[1]);}
    write_date('0'+display[0]);
}
void display_c(x)
{
    if(data_c<100000000&&data_c>-1)
       
                { display[8]=data_c%1000000000/100000000;
        display[7]=data_c%100000000/10000000;
        display[6]=data_c%10000000/1000000;
        display[5]=data_c%1000000/100000;
        display[4]=data_c%100000/10000;
        display[3]=data_c%10000/1000;
        display[2]=data_c%1000/100;
        display[1]=data_c%100/10;
        display[0]=data_c%10;
        write_com(0x80+0x06+0x40);
        if(x==4)
        {
         if(data_c>99999999)   {write_date('0'+display[8]);}
         if(data_c>9999999)    {write_date('0'+display[7]);}
         if(data_c>999999)     {write_date('0'+display[6]);}
         if(data_c>99999)      {write_date('0'+display[5]);}
                               write_date('0'+display[4]);
                               write_date('.');
                               write_date('0'+display[3]);
                               write_date('0'+display[2]);
                               write_date('0'+display[1]);
                               write_date('0'+display[0]);
                         }      
        else{
            if(data_c>99999999)  {write_date('0'+display[8]);}
            if(data_c>9999999)  {write_date('0'+display[7]);}
            if(data_c>999999)  {write_date('0'+display[6]);}
            if(data_c>99999)  {write_date('0'+display[5]);}
            if(data_c>9999)  {write_date('0'+display[4]);}
            if(data_c>999)  {write_date('0'+display[3]);}
            if(data_c>999)  {write_date('0'+display[2]);}
            if(data_c>999)  {write_date('0'+display[1]);}
            write_date('0'+display[0]);
            }
                                        }
        else {
            write_com(0x80+11+0x40);
            write_date('E');
            write_date('R');
            write_date('R');
                                        write_date('O');
                                        write_date('R');
             }
}                                                                                                               
void eql(uchar x)
{
  switch(x)
  {
  case 1:data_c=data_a+data_b;break;
  case 2:if(data_a>=data_b){data_c=data_a-data_b;}
    else{data_c=data_b-data_a;W_lcd(5,1,'-');} ;
                     break;
  case 3:data_c=(data_a*data_b);break;
  case 4:if(data_b==0){LCD_Write_String(0,1,"ERROR");}
    else{data_c=(data_a*10000)/data_b;};break;
  case 0:break;
}                                         
}
void main()
{
    uchar key=0xff;
        uchar n=0;
        uchar m=5;
        uchar x=0;
        data_a=0;
        data_b=0;
        data_c=0;
        init_lcd();
        display_a();
while(1)
{
key=keycheckdown();
if(0xff!=key)
{
if(key<10)
{
if(n<4){data_a=data_a*10+key;m=5;display_a();}n++;
if(m<4){data_b=data_b*10+key;n=5;display_b();}m++;
}
else
{switch(key)
{
case 0x0a:n=5;m=0;x=1;W_lcd(5,0,'+');break;
case 0x0b:n=5;m=0;x=2;W_lcd(5,0,'-');break;
case 0x0c:n=5;m=0;x=3;W_lcd(5,0,'*');break;
case 0x0d:n=5;m=0;x=4;W_lcd(5,0,'/');break;
case 0x0e:n=5;m=5;eql(x);W_lcd(12,0,'=');display_c(x);break;
case 0x0f:n=0;x=0;m=5;data_a=0;data_b=0;data_c=0;LCD_Write_String(0,0,table);LCD_Write_String(0,1,table);W_lcd(0,0,'0');break;
}
}
do{P1=0xf0;}while(P1!=0xf0);
}
}
}
错误:target not created
回复

使用道具 举报

ID:291815 发表于 2018-4-17 23:19 | 显示全部楼层
‘P’要大写的
回复

使用道具 举报

ID:164602 发表于 2018-4-18 08:30 | 显示全部楼层
陈艺萍 发表于 2018-4-17 20:53
#include
#define uint unsigned int
#define uchar unsigned char

要我的板子上没有错误啊。
回复

使用道具 举报

ID:306995 发表于 2018-4-18 13:16 | 显示全部楼层
HC6800-ES-V2.0 发表于 2018-4-18 08:30
要我的板子上没有错误啊。

那是我的软件问题吗?可是我别的程序都可以编译
回复

使用道具 举报

ID:306995 发表于 2018-4-18 13:23 | 显示全部楼层
HC6800-ES-V2.0 发表于 2018-4-18 08:30
要我的板子上没有错误啊。

修改代码后.zip (58.11 KB, 下载次数: 4)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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