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
|