找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2002|回复: 2
收起左侧

黑色的是单片机程序红色的是问题 求各位大神帮我看看怎样改 C318: can't open file

[复制链接]
ID:972533 发表于 2021-10-16 14:38 | 显示全部楼层 |阅读模式
HSY.C(1): warning C318: can't open file 'key16a.h'
HSY.C(2): warning C318: can't open file 'lcd1602.h'
HSY.C(137): error C129: missing ';' before 'code'
HSY.C(156): warning C312: misplaced endif control
HSY.C(162): warning C318: can't open file 'myhead.h'
HSY.C(163): error C309: bad or missing filename
HSY.C(163): warning C318: can't open file ''
HSY.C(279): warning C318: can't open file 'dly_nms.h'
HSY.C(288): warning C318: can't open file 'intrins_h'
HSY.C(297): warning C323: newline expected, extra characters found
HSY.C(297): warning C316: unterminated conditionals

    #include"key16a.h"
    #include"lcd1602.h"
/*    p20   p21   p22   p23   p20   p21   p22   p23
p24  0     4     8     C    /     *     -     +
p25  1     5     9     D    =     9     6     3
p26  2     6     A     E    0     8     5     2
p27  3     7     B     F    CLEAR   7    4     1
/*

Uchar code keyval[16]={'/','=',0,'C','*',9,8,7,'-',6,5,4,'+'3,2,1,};
Uchar date numb1[4],numb2[4],result[12];

void Fclear()
{ Uchar i;
     for(i=0;i<4;i++)
{         numb1[ i]=0;
          numb2[2]=0;
}
for(i=0;i<12,i++)
result[ i]=' ';
}
void main()
{   Uchar i=0,j=0,tmp=0;
    Uchar   oprat1=0,oprat2=0,opratflag=0;
    Uint  answer=0;
    Fclear();

    Rstlcd();
    ClrLcd();
   while(1)
{      do{tmp=key_scan();}while(tmp==0xff);
       tmp=keyval[tmp];
            if(tmp=='C'){ClrLcd();break;}
            eles
            {if(tmp!='='
                {  if((tmp<10)&&(opratflag==0))
                                                                        {numb1[ i]==tmp;WriteChar(tmp+0x30,i+4,0);i++;}
                                                                        else if(tmp>10)
                                                                        {opratflag=tmp;WritChar(tmp,7,0);}
                                                                        else
                                                                        {numb2[j]=tmp;WritChar(tmp+0x30,j+8,0);j++;}
                                                                }
                                                                else
                                                                {
                                                                        switvh(i)
                                                                        {case 1: oprat1+numb1[0];
                                                                                numb1[0]+=0x30;numb1[1]=numb1[2]=' ';
                                                                                break;
                                                                        case 2:
                                                                                oprat1=numb1[0]*10+numb1[1];
                                                                        numb1[0]+=0x30;numb1[1]+=0x30;
                                                                        numb1[2]=' ';break;
                                                                        case 3
                                                                                oprat=numb1[0]*100+numb1[1]*10+numb1[2];
                                                                        numb1[0]+=0x30;;numb1[1]+=0x30;
                                                                        numb1[2]+=0x30;
                                                                        break;}
                                                                        switch(j)
                                                                                {case 1:oprat2=numb2[0];
                                                                                              numb2[0]+=0x30;numb2[1]=numb2[2]=' '
                                                                                              break;
                                                                                        case 2:
                                                                                               oprat2=numb2[0]*10+numb2[1];
                                                                                               numb2[0]+=0x30;numb2[1]+=0x30;
                                                                                                                 nunmb2[2]=' ';break;
                                                                                        case 3:
                                                                                              oprat2=numb2[0]*100+numb2[1]*10+numb2[2];
                                                                                              numb2[0]+=0x30;numb2[1]+=0x30;
                                                                                              numb2[2]+=0x30;
                                                                                              break;
                                                                                }
                                                                                result[0]=' ';
                                                                                 switch(oprtflag)
                                                                                         { case'+':
                                                                                                 answer=oprat1+oprat2;break;
                                                                                         case'-':
                                                                                                 if(oprat1<oprat2)
                                                                                                 {    answer=oprat2-oprat1;
                                                                                                            result[0]='-';}
                                                                                                 else
                                                                                                 {answer=oprat1-oprat2;
                                                                                                 }break;
                                                                                         case'*':
                                                                                                 answer=oprat1*oprat2;break;
                                                                                         case'/':
                                                                                                 answer=oprat1/oprat2;
                                                                                         tmp=oprat1%opat2;
                                                                                         if(tmp>=100)i=3;
                                                                                         else if(tmp>9{i=2;}//result[9]=' ';}
                                                                                         else if(tmp>0)
                                                                                         {i=3}
                                                                                         else break;
                                                                                         result[6]= result[7]=result[8]='.';
                                                                                         j=9;
                                                                                         switch(i)
                                                                                                 {case 3:result[j]=tmp/100+0x30;
                                                  case 2:result[j++]=(tmp/10]%10+0x30;
                                                                                                  case 1:rersult[j]=tmp%10+0x30;
                                 break;
                                                                                                 }
                            break;
                                                                                         }
                if(answr>10000 i=5;
                else if(answer>=10000)i=4;
                else if(answer>=100)i=3;
                else if(answer>=10)i=2;
                else i=1;
                j=l;
                switch(i)
                 { case5:result[j++]-answer/ 10000+0x30;
                   case 4:result[j++]= (answer/ 1000) %10+0x30;
                   case 3:result[j++]= (answer/ 100) %10+0x30;
                   case 2:result[j++]= (answer/10) %10+0x30;
                   case 1:result[j]-answer%10+0x30;break;
                                                                 }
                                                                         WriteChar('=',3,1) ;
                  Write String(result,4,1);
                                                                 i=0;j=0;tmp=0;answer=0;
                 oprat1=0,oprat2=0,opratflagg=0;
                Fclear();
                                                         }
                                                 }
                                         }
                                 }
//(2) key16a.h
                                 #ifndef _key16_h__
                                 #define _key16_h__
                                 #include"myhead.h"
                                 #define keyport P2
                                 /*   p20  p21   p22  p23
                                 p24   0   4   8   C   /   *   -   +   
                                 p25   1   5   9   D   =   9   6   3   
                                 p26   2   6   A   E   0   8   5   2
                                 P27   3   7   B   F   CLEAR 7   4   1
                                 */
                                 
                                 Uchar code key_tab[]={0x11,0x21,`0x41,0x81,0x12,0x22,0x42,0x82,0x14,0x24,0x44,0x84,0x18,0x28,0x48,0x88};
                                 Uchar key_scan(void)
                                 {Uchar m,j,k;
           keyport=0x0f;
           Dly_nms(10);
           m=keyport;
           if(m==0x0f) return 0xff;
                                         m=(~m)&0x0f;
                                         keyport=0xf0
                                         j=keyport;
                                         if(j==0xf0)return 0xff;
                                         j=(~j)&0xf0
                                         Dly_nms(10);
                                         m=m|j;
                                         k=0;
                                         while(key_tab[k++]!=m)
                                         {;}
                                                 return(--k);
                                         }
                                 #endif
                                         
                                         //(3)LCD1602.h
                                         #ifndef _1602_h__
                                         #define _1602_h__
                                         
           #include<myhead.h>
                                         #include DPORT P1
                                         sbit   RS  =   P3^5;
                                         sbit   RW  =   P3^6;
                                         sbit   e   =   P3^7;
                                         
                                         const Uchar CurFlash=1;
                                         
                                         void LcdPos(Uchar,Uchar);
                                         void LcdWd(Uchar);
                                         void LcdWc(Uchar);
                                         void LcdWcn(Uchar);
                                         
                                         void waitIdle();
                                         void write(Uchar c,Uchar xpos,Uchar ypos)
                                         {lcdpos(xpos,ypos)
                                                 lcdwd(C);
                                         }
                                         
                                         void writstring(Uchar *s,Uchar xpos,Uchar ypos
                                         {   Uchar i;
                                                 if(*s==0)n
                                                         return;
                                                 for(i=0;;i++)
                                                 {  if(*(s+i)==0)
                                                         break;
                                                         writeChar(*(s+i),xpos,ypos);
                                                         xpos++
                                                         if(xpos>15)
                                                                 break;
                                                 }
                                         }
                                         void SetCur(Uchar para)
                                         {Dly_nms(2);
                                                 switch(para)
                                                         { case 0:
                                                                 { LcdWcn(0x08);  break;}
                                                           case 1:
                                                                 { LcdWcn(0x0c);  break;}
                                                                         case2:
                                                                         { LcdWcn(0x0e);  break;
                                                                 case 3:
                                                                 {LcdWcn(0x0f);  break; }
                                                         }
                                                 }
                                                         
                                                 void ClrLcd()
                                                 {       LcdWcn(0x01);         }
                                                
                                                 void WaitIdle()
                                                 {   Uchar tmp;
                                                         RS=0;
                                                         RW=1;
                                                         E=1;
                                                         _NOP_();
                                                         for(;;)
                                                         {  tmp=DPORT;
                                                                 tmp&0x80;
                                                         if(tmp==0)
                                                                 break;
                                                 }
                                                         E=0
                                         }
                                                
                                         void LcdWd(Uchar c)
                                         {//WaitIdle();
                                                 RS=1;
                                                 RW=0;
                                                
                                                 OPORT=c;
                                                 E=1;
                                                
                                                 Dly_nms(1);
                                                 E=0;
                                         }
                                                
                                                void LcdWc(Uchar c)
                                                {//WaitIdle();
               LcdWcn(c);
                                                }                                                        
                                         
                                                void LcdWcn(Uchar c)
                                                {RS=0;
                                                        RW=0;
                                                        OPORT=C;
                                                        E=1;
                                                        Dly_nms(1);
                                                        E=0;
                                                }
                                                
                                                void LcdPos(Uchar xPos,Uchar yPos)
                                                {unsigned char tmp;
                                                        xPos&=0x0f;
                                                        yPos&=0x01;
                                                        if(Pos==0)
                                                                tmp=xPos;
                                                        else
                                                                tmp=xPos+0x40;
                                                        tmp|=0x80;
                                                        LcdWcn(tmp);
                                                }
                                                void RstLcd()
                                                {Dly_nms(50);
                                                        LcdWcn(0x38);
                                                        LcdWcn(0x38);
                                                        LcdWcn(0x38);
                                                        LcdWcn(0x08);
                                                        lcdWcn(0x01);
                                                        LcdWCn(0x06);
                                                        LcdWcn(0x0c);
                                                }
                                                
                                                //(4)myhead.h
                                                #ifndef _myhead_h__
                                                #define _myhead_h__
                                                #include<reg52.h>
                                                #include<intrins.h>
                                                #include"dly_nms.h"
                                                typedef unsigned char  Uchar ;
                                                typedef unsigned int Uchar ;
                                                #define NOP _nop_()
                                                #endif
                                                
                                                //(5)dly_nms.h
                                                #ifndef _Dly_nms_h__
                                                #define _Dly_nms_h__
                                                #include"intrins_h"
                                                #define NOP _nop_()
                                                void Dly_nms(unsigned int time)
                                                { unsigned char i;
                                                        for£¨;time>0;time--)
                                                        { for(i=0;i<247;i++)
                                                                {NOP;}
                                                        }
                                                }
                                                 #endif
回复

使用道具 举报

ID:955673 发表于 2021-10-16 19:45 | 显示全部楼层
缺啥找啥,把需要的放一起
回复

使用道具 举报

ID:143767 发表于 2021-10-17 11:35 | 显示全部楼层
这回答的跑题了吧,根本也不挨着呀!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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