#include<pic.h>
#define uchar unsigned char
#define uint unsigned int
#define add 0x12
__CONFIG(0x3b31);
uchar bite,data,num,t,i,k,m,n,a;
uchar read_data[6];
uchar table[]={'0','1','2','3','4','5','6','7','8','9','0'};
uchar s[]={0,0,0,0,0,0};
const uchar ee_data[6];
void write_cood(uchar data);
void write_data(uchar data);
void display(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6);
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void lcdinit()
{
TRISD=0;
PORTD=0;
delay(10);
write_cood(0x2c);
write_cood(0x0c);
write_cood(0x06);
write_cood(0x01);
}
void iicinit()
{
SSPBUF=0;
a=0xc0;
i=0;
SSPCON=0X38;
SSPSTAT=0X80;
SSPCON2=0;
SSPADD=0X09;
TRISC=0xff;
}
void adinit()
{
TRISA=0x01;
INTCON=0XE0;
ADCON0=0x41;
ADCON1=0X8e;
}
uint get_ad()
{
uint adval;
ADGO=1;
while(ADGO);
adval=ADRESL;
return (adval);
}
void write_data(uchar data)
{
bite=data;
PORTD=bite;
RD0=1;
RD3=1;
RD3=0;
PORTD=bite<<4;
RD0=1;
RD3=1;
RD3=0;
delay(10);
}
void write_cood(uchar data)
{
bite=data;
PORTD=bite;
RD0=0;
RD3=1;
RD3=0;
PORTD=bite<<4;
RD0=0;
RD3=1;
RD3=0;
delay(10);
}
void write()
{
uchar i;
SSPIF=0;
SEN=1;
while(!SSPIF);
SSPIF=0;
SSPBUF=0XA0;
while(!SSPIF);
SSPIF=0;
SSPBUF=add;
while(!SSPIF);
SSPIF=0;
for(i=0;i<6;i++)
{
SSPBUF=ee_data[i];
while(!SSPIF);
SSPIF=0;
}
PEN=1;
while(!SSPIF);
SSPIF=0;
}
void read()
{
uchar i;
SSPIF=0;
SEN=1;
while(!SSPIF);
SSPIF=0;
SSPBUF=0XA0;
while(!SSPIF);
SSPIF=0;
SSPBUF=add;
while(!SSPIF);
SSPIF=0;
RSEN=1;
while(!SSPIF);
SSPIF=0;
SSPBUF=0XA1;
while(!SSPIF);
SSPIF=0;
for(i=0;i<6;i++)
{
RCEN=1;
while(!SSPIF);
read_data[i]=SSPBUF;
while(!SSPIF);
SSPIF=0;
if(i>=5)
{
ACKDT=1;
}
else
{
ACKDT=0;
}
ACKEN=1;
while(!SSPIF);
SSPIF=0;
}
PEN=1;
while(!SSPIF);
SSPIF=0;
}
void display(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6)
{
write_cood(0x80);
data=table[num1];
write_data(data);
write_cood(0x81);
data=table[num2];
write_data(data);
write_cood(0x82);
data=table[num3];
write_data(data);
write_cood(0x83);
data=table[num4];
write_data(data);
write_cood(0x84);
data=table[num5];
write_data(data);
write_cood(0x85);
data=table[num6];
write_data(data);
}
void scan()
{
if(RB0==1)
{
delay(20);
if(RB0==1)
while(RB0);
read();
}
}
void get_key()
{
while(1)
{
num=get_ad();
num=(ADRESH<<8)|ADRESL;//获得10位转换数据
if(num<70&&num>55)//判断键值范围
{
m=1;
}
if(num<200&&num>170)
{
m=2;
}
if(num<90&&num>80)
{
m=3;
}
if(num<55&&num>10)
{
m=4;
}
if(num<550&&num>200)
{
m=5;
}
if(num<170&&num>140)
{
m=6;
}
if(num<140&&num>110)
{
m=7;
}
if(num<110&&num>90)
{
m=8;
}
if(num<80&&num>70)
{
m=9;
}
if(m!=0)
{
uchar i;
i++;
ee_data[0]=9;
if(i==6)
{
i=0;
}
m=0;
}
}
}
void main()
{
lcdinit();
//iicinit();
//write();
//delay(100);
//read();
while(1)
{
//scan();
display(ee_data[1],ee_data[ 2],ee_data[ 3],ee_data[4],ee_data[5],ee_data[6]);
}
}