📄 18b20test.c
字号:
}
void display01(int i)
{
delaynms(500) ;
WriteAddress(0x00+k); //写显示地址,将在第1行第1列开始显示
WriteData(0x30+i); //将字符常量写入LCD
q[k]=i;
if(k>5)
{
cuowu();
}
k++;
while(1)
{
P1=0xff; //先向P1口写1;端口读状态
P1=0xfe;
temp=P1;
if(temp!=0xde)
{break;}
}
}
void display02(int i)
{
delaynms(500) ;
WriteAddress(0x00+k); //写显示地址,将在第1行第1列开始显示
WriteData(0x30+i); //将字符常量写入LCD
q[k]=i;
if(k>5)
{
cuowu();
}
k++;
while(1)
{
P1=0xff; //先向P1口写1;端口读状态
P1=0xfe;
temp=P1;
if(temp!=0xbe)
{break;}
}
}
void display03(int i)
{
delaynms(500) ;
WriteAddress(0x00+k); //写显示地址,将在第1行第1列开始显示
WriteData(0x30+i); //将字符常量写入LCD
q[k]=i;
if(k>5)
{
cuowu();
}
k++;
while(1)
{
P1=0xff; //先向P1口写1;端口读状态
P1=0xfe;
temp=P1;
if(temp!=0x7e)
{break;}
}
}
void display04(int i)
{
delaynms(500) ;
WriteAddress(0x00+k); //写显示地址,将在第1行第1列开始显示
WriteData(0x30+i); //将字符常量写入LCD
q[k]=i;
if(k>5)
{
cuowu();
}
k++;
while(1)
{
P1=0xff; //先向P1口写1;端口读状态
P1=0xfd;
temp=P1;
if(temp!=0xed)
{break;}
}
}
void display05(int i)
{
delaynms(500) ;
WriteAddress(0x00+k); //写显示地址,将在第1行第1列开始显示
WriteData(0x30+i); //将字符常量写入LCD
q[k]=i;
if(k>5)
{
cuowu();
}
k++;
while(1)
{
P1=0xff; //先向P1口写1;端口读状态
P1=0xfd;
temp=P1;
if(temp!=0xdd
)
{break;}
}
}
void display06(int i)
{
delaynms(500) ;
WriteAddress(0x00+k); //写显示地址,将在第1行第1列开始显示
WriteData(0x30+i); //将字符常量写入LCD
q[k]=i;
if(k>5)
{
cuowu();
}
k++;
while(1)
{
P1=0xff; //先向P1口写1;端口读状态
P1=0xfd;
temp=P1;
if(temp!=0xbd
)
{break;}
}
}
void display07(int i)
{
delaynms(500) ;
WriteAddress(0x00+k); //写显示地址,将在第1行第1列开始显示
WriteData(0x30+i); //将字符常量写入LCD
q[k]=i;
if(k>5)
{
cuowu();
}
k++;
while(1)
{
P1=0xff; //先向P1口写1;端口读状态
P1=0xfd;
temp=P1;
if(temp!=0x7d
)
{break;}
}
}
void display08(int i)
{
delaynms(500) ;
WriteAddress(0x00+k); //写显示地址,将在第1行第1列开始显示
WriteData(0x30+i); //将字符常量写入LCD
q[k]=i;
if(k>5)
{
cuowu();
}
k++;
while(1)
{
P1=0xff; //先向P1口写1;端口读状态
P1=0xfb;
temp=P1;
if(temp!=0xeb
)
{break;}
}
}
void display09(int i)
{
delaynms(500) ;
WriteAddress(0x00+k); //写显示地址,将在第1行第1列开始显示
WriteData(0x30+i); //将字符常量写入LCD
q[k]=i;
if(k>5)
{
cuowu();
}
k++;
while(1)
{
P1=0xff; //先向P1口写1;端口读状态
P1=0xfb;
temp=P1;
if(temp!=0xdb
)
{break;}
}
}
void chongshu()
{
flap=1;
}
void xiugai()
{
char e;
WriteAddress(0x00+0x80+0x40); //写显示地址,将在第1行第1列开始显示
while(xiu[e] != '\0') //只要没有写到结束标志,就继续写
{
WriteData(xiu[e]); //将字符常量写入LCD
e++; //指向下一个字符
delaynms(100); //延时100ms较长时间,以看清关于显示的说明
}
while(1)
{
if(flap==1)
{
break;
}
while(1)
{
if(flap==1)
{
break;
}
P1=0xff; //先向P1口写1;端口读状态
P1=0xf0;
temp=P1;
if(temp!=0xf0)
{
delay1ms();
if(temp!=0xf0)
{
P1=0xfe;
temp=P1;
switch(temp)
{
case(0xee):delaynms(1000);if(temp==0xee){display10(0);};break;
case(0xde):delaynms(1000);if(temp==0xde){display11(1);};break;
case(0xbe):delaynms(1000);if(temp==0xbe){display12(2);};break;
case(0x7e):delaynms(1000);if(temp==0x7e){display13(3);};break;
}
P1=0xfd;
temp=P1;
switch(temp)
{
case(0xed):delaynms(1000);if(temp==0xed){display14(4);};break;
case(0xdd):delaynms(1000);if(temp==0xdd){display15(5);};break;
case(0xbd):delaynms(1000);if(temp==0xbd){display16(6);};break;
case(0x7d):delaynms(1000);if(temp==0x7d){display17(7);};break;
}
P1=0xfb;
temp=P1;
switch(temp)
{
case(0xeb):delaynms(1000);if(temp==0xeb){display18(8);};break;
case(0xdb):delaynms(1000);if(temp==0xdb){display19(9);};break;
}
}
}
}
}
}
/*****************************************************
DISPLAY
***************************************************/
void kaisuo(void)
{
kai=1;
flap=1;
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
delaynms(100);
}
void cuowu(void)
{
unsigned char i;
flap=1;
jidian=1;
WriteAddress(0x00); //写显示地址,将在第1行第1列开始显示
i = 0; //从第一个字符开始显示
while(Error[i] != '\0') //只要没有写到结束标志,就继续写
{
WriteData(Error[i]); //将字符常量写入LCD
i++; //指向下一个字符
delaynms(100); //延时100ms较长时间,以看清关于显示的说明
}
}
void queren(void)
{ char a=0,n;
for(n=0;n<6;n++)
{
a=q[n]-x[n];
if(a!=0)
{
cuowu();
}
}
if(a==0)
{
kaisuo();
}
}
void main(void)
{
LcdInitiate(); //将液晶初始化
kai=0;
jidian=0;
delaynms(5); //延时5ms给硬件一点反应时间
while(1)
{
unsigned char temp;
while(1)
{
if(flap==1)
{
char n;
for(n=0;n<6;n++)
{q[n]=0;}
p=0;
jidian=0;
flap=0;
LcdInitiate(); //将液晶初始化
m=0;
WriteAddress(0x00); //写显示地址,将在第1行第1列开始显示
k=0;
kai=0;
}
P1=0xff; //先向P1口写1;端口读状态
P1=0xf0;
temp=P1;
if(temp!=0xf0)
{
delay1ms();
if(temp!=0xf0)
{
P1=0xfe;
temp=P1;
switch(temp)
{
case(0xee):delaynms(1000);if(temp==0xee){display00(0);};break;
case(0xde):delaynms(1000);if(temp==0xde){display01(1);};break;
case(0xbe):delaynms(1000);if(temp==0xbe){display02(2);};break;
case(0x7e):delaynms(1000);if(temp==0x7e){display03(3);};break;
}
P1=0xfd;
temp=P1;
switch(temp)
{
case(0xed):delaynms(1000);if(temp==0xed){display04(4);};break;
case(0xdd):delaynms(1000);if(temp==0xdd){display05(5);};break;
case(0xbd):delaynms(1000);if(temp==0xbd){display06(6);};break;
case(0x7d):delaynms(1000);if(temp==0x7d){display07(7);};break;
}
P1=0xfb;
temp=P1;
switch(temp)
{
case(0xeb):delaynms(1000);if(temp==0xeb){display08(8);};break;
case(0xdb):delaynms(1000);if(temp==0xdb){display09(9);};break;
case(0xbb):queren();break;
case(0x7b):chongshu();break;
}
P1=0xf7;
temp=P1;
switch(temp)
{
case(0xe7):xiugai();break;
case(0xd7):display(13);break;
case(0xb7):display(14);break;
case(0x77):display(15);break;
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -