📄 lcd1602.c
字号:
#include <reg52.h>
#include "lcd1602.h"
#include "18b20Dir.h"
#include "Key.h"
uchar code time[]="time 19:20:30";
//float *p;
char strzu[20];
char MoudleFlag;
char * change_num(unsigned int num)
{
char temp;
char i,j,lenth;
bit flg;
char tempstr[20 ] ;
if(num>=0)
{
flg=1;
}
else
{
flg=0;
num=-num;
}//判0
i=0;
while(num)
{
temp=num%10;
num=num/10;
tempstr[i]=temp+0x30;
i++;
} //将数字转化为数组 依次从低位到高位放置
if(flg==0)
{
tempstr[i++]="-" ;
}// 如果数字小于0 那么就在这个数组最后一位加上符号的ASKII码
lenth=i-1;
j=i-1; //此时i 的长度表示这个字符串的长度+1 (因为上面装入了最后一个有效值之后i++,了 这样正好是装\0的位置) j为字符串长度
strzu[i+1]=0;
strzu[i]=0;//将字符串最后一位加 \0 表示字符串结束;
while(i)
{
i--; //i--后 i的值为字符串的长度不包括\0
strzu[i]=tempstr[j-i] ;//从字符串的最后一位开始装入tempstr中的字符串
}
}
void disTem(char addr)
{
char *str;
char addr0,addr1;
read18B20();
if(Tflag==0)
{
WriteString(addr,"-");
addr=addr+1;
}
change_num(tm_y);
str= strzu;
if(tm_y==0)
str="0";
WriteString(addr,str); //80 c0
addr0=addr+3;
addr1=addr+4;
if (tm_y<=99)
{addr0=addr+2;
addr1=addr+3;
}
WriteString(addr0,"."); //80 c0
change_num(tm_dot);
str= strzu;
if(tm_dot==0)
str="0";
WriteString(addr1,str); //80 c0
WriteString(addr1+3,"C"); //80 c0
}
void main()
{unsigned char alar_tm_y=20;
char *str;
unsigned char last;
MoudleFlag=1;
InitLCD1602(); // 初始化LCD
tmstart();
dmsec(450); // 初始化ds18b20
ucKeyTemp=1;
MoudleFlag=1;
while(1)
{
GetKey();
if(tm_y>alar_tm_y)
{MoudleFlag=0;
}
if(MoudleFlag==0)
{
GetKey();
WriteString(0x80,"Worring!!!!");
ucKeyTemp=0xff;
GetKey();
if(ucKeyTemp==1)
{alar_tm_y++;
ucKeyTemp=0xff;
}
if(ucKeyTemp==2)
{alar_tm_y--;
ucKeyTemp=0xff;
}
if(ucKeyTemp==3)
{MoudleFlag=1;
ucKeyTemp=0xff;
}
change_num(alar_tm_y);
str= strzu;
if(alar_tm_y==0)
str="0";
WriteString(0xc0,str); //80 c0
}
if(MoudleFlag==1)
{
GetKey();
if(ucKeyTemp==3)
{MoudleFlag=2;
ucKeyTemp=0xff;
}
WriteString(0x80,"T= ");
disTem(0x82);
}
if(MoudleFlag==2)
{WriteString(0x80,"Please Set ");
ucKeyTemp=0xff;
GetKey();
if(ucKeyTemp==1)
{alar_tm_y++;
ucKeyTemp=0xff;
}
if(ucKeyTemp==2)
{alar_tm_y--;
ucKeyTemp=0xff;
}
if(ucKeyTemp==3)
{MoudleFlag=1;
ucKeyTemp=0xff;
}
change_num(alar_tm_y);
str= strzu;
if(alar_tm_y==0)
str="0";
WriteString(0xc0,str); //80 c0
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -