📄 main.c
字号:
void ShowTime(void)
{
unsigned int t=0; //时分秒添加到成字符串
Key=0;
Scr_clr();Set_addr(2,2);
while(Key==0)
{
Read_12887(DateBuf); //读取时间信息
ProcTime(); //将数值转换成字符串
Set_addr(2,2); //在液晶上显示
Write_str("当前时间为");
Set_addr(3,2);
Write_str(Time);
Key=ReadKey();
delay1(5000);
}
}
//------------------------------------------------------------------
//函数:void ShowDateBuf(void)
//功能:将读取的时间转换成字符串,在液晶中显示
//-------------------------------------------------------------------
void ShowDate(void)
{
Key=0; //年月日添加到成字符串
Scr_clr();Set_addr(2,2);
while(Key==0)
{
Read_12887(DateBuf); //读取日期信息
ProcDate(); //数值转换成字符串
Set_addr(2,2);
Write_str("当前日期为");
Set_addr(3,1); //字符串显示在液晶内
Write_str(Date);
Key=ReadKey();
delay1(5000);
}
}
//-------------------------------------------------------------------
//函数:void ShowTempBuf(void)
//功能:在18B20中读取温度并在液晶中显示
//-------------------------------------------------------------------
void ShowTemp(void)
{
char *a;unsigned char buf;
Key=0;
Scr_clr();Set_addr(2,2);
while(Key==0) //等待按键返回上一级菜单
{
buf=Read_Temperature(); //读取温度
a=itoa(buf);
Temp[6]=a[0];Temp[7]=a[1];
Set_addr(2,2); //在液晶上显示
Write_str("当前温度为");
Set_addr(3,2);
Write_str(Temp);
Key=ReadKey();
delay1(5000);
}
}
//----------------------------------------------------------------
//函数:void ShowDis(void)
//功能:检测距离,并在液晶上显示
//----------------------------------------------------------------
void ShowDis(void)
{
unsigned char i;
Scr_clr();Set_addr(2,2);
while(Key!=4)
{
DisBuf=Get_dis();
Dis[11]=DisBuf%10+48;
DisBuf/=10;
Dis[10]=DisBuf%10+48;
DisBuf/=10;
Dis[9]=DisBuf%10+48;
if(i++%5==0) //降低刷新速度,使显示稳定
{
Set_addr(2,1);
Write_str(Dis);
}
Key=ReadKey();
delay1(5000);
}
}
//----------------------------------------------------------------------------
//函数:void SetDate(void)
//功能:调整时间和日期,并在液晶上显示
//----------------------------------------------------------------------------
void SetDate(void)
{
unsigned char id=0;
Scr_clr();Set_addr(2,3);
while(Key!=4) //如果确定或取消键按下,则返回
{
Key=ReadKey();
switch(Key)
{
case 2: //切换键,选择一位时间日期
if(id++==5) id=0;
break;
case 3: //调整键,改变选择的时间日期
if(id==0) if(DateBuf[0]++==9) DateBuf[0]=0;//年
if(id==1) if(DateBuf[1]++==11) DateBuf[1]=0;//月
if(id==2) if(DateBuf[2]++==30) DateBuf[2]=0;//日
if(id==3) if(DateBuf[3]++==23) DateBuf[6]=0;//时
if(id==4) if(DateBuf[4]++==59) DateBuf[4]=0;//分
if(id==5) if(DateBuf[5]++==59) DateBuf[5]=0;//秒
break;
default:
break;
}
ProcTime(); //时间字符串处理
ProcDate(); //日期字符串处理
Set_addr(2,1); //在液晶上显示
Write_str(Date);
Set_addr(3,2);
Write_str(Time);
if(id<3) //移动光标
Set_addr(2,(DateTbl[id]/2+1));
else
Set_addr(3,(DateTbl[id]/2+2));
Open_cur();
delay1(5000);
}
Close_cur(); //关闭光标
Write_12887(DateBuf);
}
//-----------------------------------------------------------------------------
//函数:void SetClk(void)
//功能:设置闹铃时间
//-----------------------------------------------------------------------------
void SetClk(void)
{
unsigned char id=0;
Scr_clr();Set_addr(2,3);
while(Key!=4) //如果确定或取消键按下,则返回
{
Key=ReadKey();
switch(Key)
{
case 2: //切换键,选择一位时间
if(id++==3) id=0;
break;
case 3:
if(id==0) if(AlarmBuf[0]++==23) AlarmBuf[0]=0;
if(id==1) if(AlarmBuf[1]++==59) AlarmBuf[1]=0;
if(id==2) if(AlarmBuf[2]++==59) AlarmBuf[2]=0;
if(id==3) AlarmFlag=!AlarmFlag;
break;
default:
break;
}
ProcAlarm();
Set_addr(1,1); //显示定时界面
Write_str("定时时间:");
Set_addr(2,1);
Write_str(Time);
Set_addr(3,1);
Write_str("闹铃:");
Set_addr(3,4);
if(AlarmFlag) Write_str("开");
else Write_str("关");
if(id<3) //移动光标
Set_addr(2,DateTbl[id]/2);
else
Set_addr(3,4);
Open_cur();
delay1(5000);
}
Close_cur();
}
//--------------------------------------------------------------------------------------------------------
char code chuang[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x18,0x00,0x60,0x00,0x18,0x00,0x60,0x00,0x38,0x00,0x60,0x00,0x38,0x00,0x60,
0x00,0x6E,0x00,0x60,0x00,0x67,0x98,0x60,0x00,0xC3,0x8C,0x60,0x01,0x80,0xCC,0x60,0x01,0x80,0x0C,0x20,0x03,0x00,0x0C,0x20,0x06,0x0C,0x0C,0x20,0x0F,0xFE,0x0C,0x20,
0x19,0x06,0x0C,0x20,0x21,0x06,0x0C,0x20,0x41,0x04,0x0C,0x20,0x01,0x04,0x0C,0x20,0x01,0x1C,0x0C,0x20,0x01,0x0C,0x00,0x20,0x01,0x88,0x80,0x20,0x01,0x80,0x80,0x20,
0x01,0x80,0xC0,0x20,0x00,0xE1,0xC0,0x60,0x00,0x7F,0xC4,0x60,0x00,0x0C,0x03,0xE0,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00};/*"创",0*/
char code xin[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x08,0x01,0xC0,0x00,0x06,0x03,0xC0,0x00,0xFE,0x07,0x00,
0x07,0xCC,0x78,0x00,0x00,0x0C,0x60,0x00,0x01,0x08,0x20,0x00,0x00,0x98,0x20,0x00,0x00,0x9F,0x20,0xF8,0x00,0xFC,0x3F,0xF0,0x7F,0xE0,0x23,0x00,0x70,0x20,0x63,0x00,
0x00,0x2E,0x63,0x00,0x03,0xF8,0x63,0x00,0x1E,0x20,0x63,0x00,0x00,0x30,0x43,0x00,0x04,0x2C,0xC3,0x00,0x04,0x24,0xC3,0x00,0x0C,0x20,0x83,0x00,0x18,0x21,0x81,0x00,
0x18,0xE3,0x01,0x00,0x00,0xE2,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00};/*"新",0*/
char code zhong[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,
0x00,0x03,0x03,0x00,0x00,0x03,0xFF,0xC0,0x07,0xFF,0x81,0xE0,0x03,0x03,0x01,0x80,0x03,0x03,0x01,0x80,0x03,0x03,0x03,0x00,0x01,0x03,0x03,0x00,0x01,0x03,0x03,0x00,
0x01,0x03,0xFF,0x00,0x01,0xFF,0xFE,0x00,0x01,0xC3,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x00,
0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00};/*"中",0*/
char code xin1[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0C,0x00,0x00,0x00,0x07,0x01,0x80,0x00,0x03,0x80,0xF0,0x00,0x03,0x80,0x78,0x00,0x01,0x80,0x38,0x00,0x00,0x00,0x18,0x04,0x40,0x00,0x00,0x0C,0x40,0x00,0x00,
0x0C,0x20,0x04,0x00,0x0C,0x30,0x02,0x00,0x1C,0x10,0x03,0x00,0x1C,0x18,0x01,0x80,0x18,0x0E,0x01,0xC0,0x00,0x07,0x81,0xE0,0x00,0x03,0xFF,0xE0,0x00,0x00,0xFF,0xC0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*"心",0*/
void DrawBo(unsigned char x,unsigned char y,unsigned char *ad)
{
unsigned char k,j;
for(k=0;k<32;k++)
{
for(j=0;j<2;j++)
Draw_grap(2*x+j,y*16+k,ad[4*k+2*j],ad[4*k+2*j+1]);
}
Open_grap();
}
//-------------------------------------------------------------
//函数:void FstGrap(void)
//功能:显示开机画面
//-------------------------------------------------------------
void FstGrap(void)
{
Clr_grap(); //清除图象缓冲区
Set_addr(3,2); //显示32X32的点阵字创新中心
Write_str("测距电子日历");
DrawBo(0,0,chuang);
DrawBo(1,0,xin);
DrawBo(2,0,zhong);
DrawBo(3,0,xin1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -