📄 ref1.c
字号:
# week_value[1] = '\0';
#
# Time->DateString[10] = '\0'; //字符串末尾加 '\0' ,判断结束字符
# }
#
# void TimeToStr(SYSTEMTIME *Time) //将时,分,秒数据转换成液晶显示字符放到数组 TimeString[];
# { if(hide_hour<2)
# {
# Time->TimeString[0] = Time->Hour/10 + '0';
# Time->TimeString[1] = Time->Hour%10 + '0';
# }
# else
# {
# Time->TimeString[0] = ' ';
# Time->TimeString[1] = ' ';
# }
# Time->TimeString[2] = ':';
# if(hide_min<2)
# {
# Time->TimeString[3] = Time->Minute/10 + '0';
# Time->TimeString[4] = Time->Minute%10 + '0';
# }
# else
# {
# Time->TimeString[3] = ' ';
# Time->TimeString[4] = ' ';
# }
# Time->TimeString[5] = ':';
# if(hide_sec<2)
# {
# Time->TimeString[6] = Time->Second/10 + '0';
# Time->TimeString[7] = Time->Second%10 + '0';
# }
# else
# {
# Time->TimeString[6] = ' ';
# Time->TimeString[7] = ' ';
# }
# Time->DateString[8] = '\0';
# }
#
#
# void Initial_DS1302(void) //时钟芯(2)初始化
# {
# unsigned char Second=Read1302(DS1302_SECOND);
# if(Second&0x80) //判断时钟芯(2)是否关闭
# {
# Write1302(0x8e,0x00); //写?允许
# Write1302(0x8c,0x07); //以下写?初始化时间 ??:07/07/25.星?: 3. 时间: 23:59:55
# Write1302(0x88,0x07);
# Write1302(0x86,0x25);
# Write1302(0x8a,0x07);
# Write1302(0x84,0x23);
# Write1302(0x82,0x59);
# Write1302(0x80,0x55);
# Write1302(0x8e,0x80); //禁止写?
# }
#
# }
#
# /***********ds18b20子程序*************************/
#
# /***********ds18b20延迟子函数(晶振12MHz )*******/
#
# void delay_18B20(unsigned int i)
# {
# while(i--);
# }
#
# /**********ds18b20初始化函数**********************/
#
# void Init_DS18B20(void)
# {
# unsigned char x=0;
# DQ = 1; //DQ复位
# delay_18B20(8); //稍做延时
# DQ = 0; //单(2)机将DQ拉低
# delay_18B20(80); //精?延时 大于 480us
# DQ = 1; //拉高总线
# delay_18B20(14);
# x=DQ; //稍做延时后 ?果x=0则初始化成功 x=1则初始化失败
# delay_18B20(20);
# }
#
# /***********ds18b20读一个字节**************/
#
# unsigned char ReadOneChar(void)
# {
# uchar i=0;
# uchar dat = 0;
# for (i=8;i>0;i--)
# {
# DQ = 0; // 给脉冲信号
# dat>>=1;
# DQ = 1; // 给脉冲信号
# if(DQ)
# dat|=0x80;
# delay_18B20(4);
# }
# return(dat);
# }
#
# /*************ds18b20写一个字节****************/
#
# void WriteOneChar(uchar dat)
# {
# unsigned char i=0;
# for (i=8; i>0; i--)
# {
# DQ = 0;
# DQ = dat&0x01;
# delay_18B20(5);
# DQ = 1;
# dat>>=1;
# }
# }
#
# /**************读?ds18b20当?温度************/
#
# void ReadTemp(void)
# {
# unsigned char a=0;
# unsigned char b=0;
# unsigned char t=0;
#
# Init_DS18B20();
# WriteOneChar(0xCC); // 跳过读序号列号的操作
# WriteOneChar(0x44); // ?动温度转换
#
# delay_18B20(100); // this message is wery important
#
# Init_DS18B20();
# WriteOneChar(0xCC); //跳过读序号列号的操作
# WriteOneChar(0xBE); //读?温度寄存?等(共可读9个寄存?) ?两个就是温度
#
# delay_18B20(100);
#
# a=ReadOneChar(); //读?温度值低位
# b=ReadOneChar(); //读?温度值高位
# temp_value=b<<4;
# temp_value+=(a&0xf0)>>4;
# }
# void temp_to_str() //温度数据转换成液晶字符显示
# {
# TempBuffer[0]=temp_value/10+'0'; //十位
# TempBuffer[1]=temp_value%10+'0'; //个位
# TempBuffer[2]=0xdf; //温度符号
# TempBuffer[3]='C';
# TempBuffer[4]='\0';
# }
# void Delay1ms(unsigned int count)
# {
# unsigned int i,j;
# for(i=0;i<count;i++) for(j="0;j<120;j++);" }="" *延时子程序*="" void="" mdelay(uint="" delay)="" {="" uint="" i;="" for(;delay="">0;delay--)
# {for(i=0;i<62;i++) //1ms延时.
# {;}
# }
# }
#
#
# void outkey() //跳出调整模式,返回默ˇ显示
# { uchar Second;
# if(out==0||wireless_1==1)
# { mdelay(8);
# count=0;
# hide_sec=0,hide_min=0,hide_hour=0,hide_day=0,hide_week=0,hide_month=0,hide_year=0;
# Second=Read1302(DS1302_SECOND);
# Write1302(0x8e,0x00); //写?允许
# Write1302(0x80,Second&0x7f);
# Write1302(0x8E,0x80); //禁止写?
# done=0;
# while(out==0);
# while(wireless_1==1);
# }
# }
# ////////////////////////////////////////////////////////////////////////////////////////////////////////////
# void Upkey()//升序按键
# {
# Up=1;
# if(Up==0||wireless_2==1)
# {
# mdelay(8);
# switch(count)
# {case 1:
# temp=Read1302(DS1302_SECOND); //读?秒数
# temp=temp+1; //秒数加1
# up_flag=1; //数据调整后更新标志
# if((temp&0x7f)>0x59) //超过59秒,?零
# temp=0;
# break;
# case 2:
# temp=Read1302(DS1302_MINUTE); //读?分数
# temp=temp+1; //分数加1
# up_flag=1;
# if(temp>0x59) //超过59分,?零
# temp=0;
# break;
# case 3:
# temp=Read1302(DS1302_HOUR); //读?小时数
# temp=temp+1; //小时数加1
# up_flag=1;
# if(temp>0x23) //超过23小时,?零
# temp=0;
# break;
# case 4:
# temp=Read1302(DS1302_WEEK); //读?星?数
# temp=temp+1; //星?数加1
# up_flag=1;
# if(temp>0x7)
# temp=1;
# break;
# case 5:
# temp=Read1302(DS1302_DAY); //读??数
# temp=temp+1; //?数加1
# up_flag=1;
# if(temp>0x31)
# temp=1;
# break;
# case 6:
# temp=Read1302(DS1302_MONTH); //读?月数
# temp=temp+1; //月数加1
# up_flag=1;
# if(temp>0x12)
# temp=1;
# break;
# case 7:
# temp=Read1302(DS1302_YEAR); //读?年数
# temp=temp+1; //年数加1
# up_flag=1;
# if(temp>0x85)
# temp=0;
# break;
# default:break;
# }
#
# while(Up==0);
# while(wireless_2==1);
# }
# }
#
# ////////////////////////////////////////////////////////////////////////////////////////////////////////////
# void Downkey()//降序按键
# {
# Down=1;
# if(Down==0||wireless_3==1)
# {
# mdelay(8);
# switch(count)
# {case 1:
# temp=Read1302(DS1302_SECOND); //读?秒数
# temp=temp-1; //秒数减1
# down_flag=1; //数据调整后更新标志
# if(temp==0x7f) //小于0秒,返回59秒
# temp=0x59;
# break;
# case 2:
# temp=Read1302(DS1302_MINUTE); //读?分数
# temp=temp-1; //分数减1
# down_flag=1;
# if(temp==-1)
# temp=0x59; //小于0秒,返回59秒
# break;
# case 3:
# temp=Read1302(DS1302_HOUR); //读?小时数
# temp=temp-1; //小时数减1
# down_flag=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -