51单片机电子钟制作-升级版

来源:本站
导读:目前正在解读《51单片机电子钟制作-升级版》的相关信息,《51单片机电子钟制作-升级版》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《51单片机电子钟制作-升级版》的详细说明。
简介:51单片机电子钟制作-升级版新增功能:1. K1模式转换,可自由切换:主界面显示,时间调整,闹钟设置,温度上下限设定等; 2. K2选定需要调整的位数。

经过两天熬夜的艰苦奋战,在原程序基础上进行升级,添加按键多功能操作

新增功能:1. K1模式转换,可自由切换:主界面显示,时间调整,闹钟设置,温度上下限设定等; 2. K2选定需要调整的位数。

切换至时间调整时,通过K3-"加",K4-"减"按键调整数值。

切换至闹钟设置时,通过K3-"加",K4-"减"按键调整数值。

切换至温度上下限设定时,通过K3-"加",K4-"减"按键调整数值。

准备扩展的新功能:闹钟音乐,喇叭开启和关闭,。

操作说明:

开机进入主界面,显示时钟和温度。按下K1时,进入模式选择,(有时间调整,闹钟设置,温度上下限设定等),当K1按下四次后,长响一声,回到主界面。

当K1(模式选择键)按下第一次,选择在时间调整时,按下K2,选定需要调整的位数,选定的位数会一秒钟不停的闪烁。然后按下K3 “加”或者K4 “减”按键,进行数值的加减,当K2按到五次时,返回时间调整界面。

再按下K1(模式选择键)按下第二次,进入到下一个模式,闹钟设置。按下K2,选定需要调整的位数,选定的位数会一秒钟不停的闪烁。然后按下K3 “加”或者K4 “减”按键,进行数值的加减,当K2按到五次时,返回闹钟设置界面。

再按下K1(模式选择键)按下第三次,进入到下一个模式,温度上下限设定。按下K2,选定需要调整的位数,选定的位数会一秒钟不停的闪烁。然后按下K3 “加”或者K4 “减”按键,进行数值的加减,当K2按到五次时,返回温度上下限设定界面。

当K1(模式选择键)按下第四次,返回到时钟和温度主界面显示。

51单片机电子钟制作-升级版51单片机电子钟制作-升级版

采用的是stc89c51单片机,代码为自己原创

#include"reg51.h"#define uchar unsigned char #define uint unsigned int /****温度 端口定义******/  sbit wx5=P2^4;  sbit wx6=P2^5;  sbit wx7=P2^6;  sbit wx8=P2^7;  sbit DQ=P3^6;  uint temp, temp1,temp2, xs,H1,H2,L1,L2;               uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,       0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0X9c,0xc6,0x91,0xfc,0XE3};   /******延时程序*******/  void delay1(uint m)    {      uint i,j;    for(i=m;i>0;i--)   for(j=110;j>0;j--);    } void delay(unsigned int m)    {      while(m--);     } void Init_DS18B20()     {     unsigned char x=0;     DQ = 1;          //DQ复位 ds18b20通信端口      delay(8); //稍做延时     DQ = 0;          //单片机将DQ拉低     delay(80); //精确延时 大于 480us     DQ = 1;          //拉高总线        delay(4);     x=DQ;            //稍做延时后 如果x=0则初始化成功 x=1则初始化失败     delay(20);    }/***********ds18b20读一个字节**************/  uchar ReadOneChar()   {     unsigned char i=0;     unsigned char dat = 0;     for (i=8;i>0;i--)     {      DQ = 0; // 高电平拉成低电平时读周期开始      dat>>=1;      DQ = 1; // 给脉冲信号      if(DQ)      dat|=0x80;   //       delay(4);      }     return(dat);   }/*************ds18b20写一个字节****************/  void WriteOneChar(unsigned char dat)  {   unsigned char i=0;   for (i=8; i>0; i--)    {      DQ = 0;          //从高电平拉至低电平时,写周期的开始      DQ = dat&0x01;   //数据的最低位先写入      delay(5);        //60us到120us延时      DQ = 1;              dat>>=1;         //从最低位到最高位传入    }  }/**************读取ds18b20当前温度************/void ReadTemperature()  {    unsigned char a=0;    unsigned  b=0;    unsigned  t=0;    Init_DS18B20();    WriteOneChar(0xCC);   // 跳过读序号列号的操作    WriteOneChar(0x44);   // 启动温度转换     delay(1);            // this message is wery important    Init_DS18B20();    WriteOneChar(0xCC);   //跳过读序号列号的操作    WriteOneChar(0xBE);   //读取温度寄存器等(共可读9个寄存器) 前两个就是温度    delay(1);    a=ReadOneChar();      //读取温度值低位      b=ReadOneChar();      //读取温度值高位        temp1=b<<4;           //高8位中后三位数的值     temp1+=(a&0xf0)>>4;   //低8位中的高4位值加上高8位中后三位数的值   temp1室温整数值    temp2=a&0x0f;         //小数的值    temp=((b*256+a)>>4);  //当前采集温度值除16得 实际温度值    zhenshu        xs=temp2*0.0625*10;   //小数位,若为0.5则算为5来显示  xs小数    xiaoshu   }////////////////////////////////////////////////////////////////////////****时钟 端口定义******/  sbit wx1=P2^0;  sbit wx2=P2^1;  sbit wx3=P2^2;  sbit wx4=P2^3;  uchar  qian,bai,shi,ge,miao1,miao2,count1,count2;  uchar  n1,n2,z1,z2;//设置闹钟变量  uchar code table1[]={0xc0,0xcf,0xa4,0x86,0x8b,       0x92,0x90,0xc7,0x80,0x82};  ////////////////////////////////////////////  /***************按键调时程序***************/    sbit K1=P3^0;   sbit K2=P3^1;   sbit K3=P3^2;   sbit K4=P3^3;   sbit BEEP=P3^7;    //// 定义蜂鸣器口   uchar K1num,K2num,K3num,K4num,K5num,K6num,K7num;  //////////////////////////////////////////    /**********报警声音**************/   bi(uint t)   {      int c,n;      for(c=0;c<t;c++)      {      for(n=0;n<50;n++);      BEEP=~BEEP;      //按位取反BEEP      }   return(t);   }  ////////////////////////////////////////////////********定时器初始化*************/   void init1()    {      TMOD=0x01; //定义定时器0,工作方式1        TH0=(65536-50000)/256;   //高8位        TL0=(65536-50000)%256;   //低8位        EA=1;     //开全局中断        ET0=1;          TR0=1;    //打开定时器        } ///////////////////////////////////////////////  /***********定时器中断函数************/   void timer0() interrupt 1   {       TH0=50;     TL0=50;     count1++;    if( count1==19 ) {count1=0; miao1++;//LED1=~LED1;                      if( miao1==10 ) { miao1=0;  miao2++; }   if( miao2== 6 ) { miao2=0;     ge++; }   if(    ge==10 ) {    ge=0;    shi++; }   if(   shi== 6 ) {   shi=0;    bai++; }   if(   bai==10 ) {   bai=0;   qian++; }   if(  qian== 3 ) {  qian=0;     }   if(qian==2&&bai==4){qian=0;bai=0;    }}    }                    void init2()    {      TMOD=0x01; //定义定时器0,工作方式1        TH1=(65536-50000)/256;   //高8位        TL1=(65536-50000)%256;   //低8位        EA=1;     //开全局中断        ET1=1;          TR1=1;    //打开定时器        } ///////////////////////////////////////////////  /***********定时器中断函数************/   void timer1() interrupt 3   {       TH1=50;     TL1=50;     count2++;    if( count2==120 ) {count2=0;  }}                       void  MODE() //模式选择{//正常显示 时钟和温度   if( K1num==0 )             {      TR0=1;TR1=0;  //打开定时器0,关闭定时器1  wx1=1; P0=table[qian]; delay1(2);wx1=0;  //时十位    if( count1<9.5 )  //时分之间的小数点闪烁,定时器0小于0.5秒,小数点亮    {  wx2=1; P0=table[bai]+0X80;  delay1(2); wx2=0; //时个位打开小数点  wx3=1; P0=table1[shi]+0X80; delay1(2); wx3=0; //分十位+小数点    }      else    //定时器0大于0.5秒,小数点灭    {  wx2=1; P0=table[bai];       delay1(2); wx2=0;  //时个位关闭小数点  wx3=1; P0=table1[shi];      delay1(2); wx3=0;  //分十位关闭小数点    }     wx4=1; P0=table1[ge];       delay1(2); wx4=0;  //分个位      wx5=1; P0=table[temp/10];   delay1(2); wx5=0;  //温度十位        wx6=1; P0=table[temp%10];   delay1(2); wx6=0;  //温度个位  wx7=1; P0=table[12];        delay1(2); wx7=0;  //温度℃        wx8=1; P0=table[13];        delay1(2); wx8=0;  //温度℃     if((n1==qian)&&(n2==bai)&&(z1==shi)&&(z2=ge)) { bi(2000);}    if((H1==temp/10)&(H2==temp%10))           { bi(1000); }    if((L1==temp/10)&(L2==temp%10))           { bi(500); }  }//时间调整显示if((K1num==1 )&&(K2num==0))    {     TR1=0;      wx1=1; P0=table[qian];      delay1(2); wx1=0;   //时十位   wx2=1; P0=table[bai]+0X80;  delay1(2); wx2=0;   //时个位,小数点停止不动  wx3=1; P0=table1[shi]+0X80; delay1(2); wx3=0;   //分十位,小数点停止不动  wx4=1; P0=table1[ge];       delay1(2); wx4=0;   //分个位    wx5=1; P0=0xBF;             delay1(2); wx5=0; //-  wx6=1; P0=0x92;             delay1(2); wx6=0;   //s   wx7=1; P0=0x87;             delay1(2); wx7=0;   //t    wx8=1; P0=0xBF;             delay1(2); wx8=0; //-  }if((K1num==1 )&&(K2num==1))    {     TR1=1;  if (count2<60)    {wx1=1; P0=table[qian];      delay1(2); wx1=0; }  //时十位         else {wx1=1; P0=0xff;             delay1(2); wx1=0; }  //时十位   wx2=1; P0=table[bai]+0X80;  delay1(2); wx2=0;    //时个位,小数点停止不动  wx3=1; P0=table1[shi]+0X80; delay1(2); wx3=0;    //分十位,小数点停止不动  wx4=1; P0=table1[ge];       delay1(2); wx4=0;    //分个位    wx5=1; P0=0xBF;             delay1(2); wx5=0;  //-  wx6=1; P0=0x92;             delay1(2); wx6=0;    //s   wx7=1; P0=0x87;             delay1(2); wx7=0;    //t    wx8=1; P0=0xBF;             delay1(2); wx8=0;  //-   }if((K1num==1 )&&(K2num==2))    {     TR1=1;       wx1=1; P0=table[qian];      delay1(2); wx1=0;   //时十位        if (count2<60)    {wx2=1; P0=table[bai]+0X80; delay1(2); wx2=0; }  //时个位,小数点停止不动   else {wx2=1; P0=0xff;            delay1(2); wx2=0; }  wx3=1; P0=table1[shi]+0X80; delay1(2); wx3=0;   //分十位,小数点停止不动  wx4=1; P0=table1[ge];       delay1(2); wx4=0;   //分个位    wx5=1; P0=0xBF;             delay1(2); wx5=0; //-  wx6=1; P0=0x92;             delay1(2); wx6=0;   //s   wx7=1; P0=0x87;             delay1(2); wx7=0;   //t    wx8=1; P0=0xBF;             delay1(2); wx8=0; //-   }if((K1num==1 )&&(K2num==3))    {     TR1=1;     wx1=1; P0=table[qian];      delay1(2); wx1=0;   //时十位         wx2=1; P0=table[bai]+0X80;  delay1(2); wx2=0;   //时个位,小数点停止不动 if (count2<60)    {wx3=1; P0=table1[shi]+0X80; delay1(2); wx3=0; } //分十位,小数点停止不动  else {wx3=1; P0=0xff;             delay1(2); wx3=0; }  wx4=1; P0=table1[ge];       delay1(2); wx4=0;   //分个位    wx5=1; P0=0xBF;             delay1(2); wx5=0; //-  wx6=1; P0=0x92;             delay1(2); wx6=0;   //s   wx7=1; P0=0x87;             delay1(2); wx7=0;   //t    wx8=1; P0=0xBF;             delay1(2); wx8=0; //-    }if((K1num==1 )&&(K2num==4))    {     TR1=1;      wx1=1; P0=table[qian];      delay1(2); wx1=0;  //时十位         wx2=1; P0=table[bai]+0X80;  delay1(2); wx2=0;  //时个位,小数点停止不动  wx3=1; P0=table1[shi]+0X80; delay1(2); wx3=0;  //分十位,小数点停止不动 if (count2<60)    {wx4=1; P0=table1[ge];       delay1(2); wx4=0; }//分个位  else {wx4=1; P0=0xff;             delay1(2); wx4=0; }    wx5=1; P0=0xBF;             delay1(2); wx5=0; //-  wx6=1; P0=0x92;             delay1(2); wx6=0;   //s   wx7=1; P0=0x87;             delay1(2); wx7=0;   //t    wx8=1; P0=0xBF;             delay1(2); wx8=0; //-  }//闹钟调整显示if(( K1num==2 )&&(K3num==0))    {     TR1=0;        wx1=1; P0=0x89;             delay1(2); wx1=0;   //H   wx2=1; P0=0xBF;             delay1(2); wx2=0; //-  wx3=1; P0=table1[n1];       delay1(2); wx3=0; //时十位  wx4=1; P0=table1[n2];       delay1(2); wx4=0;  //时个位   wx5=1; P0=0x8E;             delay1(2); wx5=0; //F  wx6=1; P0=0xBF;             delay1(2); wx6=0;   //-   wx7=1; P0=table[z1];        delay1(2); wx7=0;   //分十位    wx8=1; P0=table[z2];     delay1(2); wx8=0; //分个位    }if (( K1num==2 )&&(K3num==1))        {  TR1=1;  wx1=1; P0=0x89;             delay1(2); wx1=0;   //H   wx2=1; P0=0xBF;             delay1(2); wx2=0; //- if (count2<60)    {wx3=1; P0=table1[n1];       delay1(2); wx3=0;} //时十位  else {wx3=1; P0=0xff;      delay1(2); wx3=0;}  wx4=1; P0=table1[n2];       delay1(2); wx4=0;  //时个位   wx5=1; P0=0x8E;             delay1(2); wx5=0; //F  wx6=1; P0=0xBF;             delay1(2); wx6=0;   //-   wx7=1; P0=table[z1];        delay1(2); wx7=0;   //分十位    wx8=1; P0=table[z2];     delay1(2); wx8=0; //分个位  }if(( K1num==2 )&&(K3num==2))        {  TR1=1;  wx1=1; P0=0x89;             delay1(2); wx1=0;   //H   wx2=1; P0=0xBF;             delay1(2); wx2=0; //-     wx3=1; P0=table1[n1];       delay1(2); wx3=0; //时十位 if(count2<60)  {wx4=1; P0=table1[n2];       delay1(2); wx4=0;}  //时个位  else{wx4=1; P0=0xff;       delay1(2); wx4=0;}     wx5=1; P0=0x8E;             delay1(2); wx5=0; //F  wx6=1; P0=0xBF;             delay1(2); wx6=0;   //-   wx7=1; P0=table[z1];        delay1(2); wx7=0;   //分十位    wx8=1; P0=table[z2];     delay1(2); wx8=0; //分个位  }if (( K1num==2 )&&(K3num==3))        {  TR1=1;  wx1=1; P0=0x89;             delay1(2); wx1=0;   //H   wx2=1; P0=0xBF;             delay1(2); wx2=0; //-     wx3=1; P0=table1[n1];       delay1(2); wx3=0; //时十位  wx4=1; P0=table1[n2];       delay1(2); wx4=0;  //时个位      wx5=1; P0=0x8E;             delay1(2); wx5=0; //F  wx6=1; P0=0xBF;             delay1(2); wx6=0;   //-  if(count2<60)  {wx7=1; P0=table[z1];        delay1(2); wx7=0;}   //分十位     else{wx7=1; P0=0xff;        delay1(2); wx7=0;}     wx8=1; P0=table[z2];     delay1(2); ;wx8=0; //分个位  }if (( K1num==2 )&&(K3num==4))        {  TR1=1;  wx1=1; P0=0x89;             delay1(2); wx1=0;   //H   wx2=1; P0=0xBF;             delay1(2); wx2=0; //-     wx3=1; P0=table1[n1];       delay1(2); wx3=0; //时十位  wx4=1; P0=table1[n2];       delay1(2); wx4=0;  //时个位      wx5=1; P0=0x8E;             delay1(2); wx5=0; //F  wx6=1; P0=0xBF;             delay1(2); wx6=0;   //-      wx7=1; P0=table[z1];        delay1(2); wx7=0;   //分十位   if(count2<60)    {wx8=1; P0=table[z2];     delay1(2); wx8=0;} //分个位 else{wx8=1; P0=0xff;     delay1(2); wx8=0;}  }     //温度调整显示if( (K1num==3)&&(K4num==0) )    {     TR1=0;        wx1=1; P0=0x89;             delay1(2); wx1=0;   //H   wx2=1; P0=0xBF;             delay1(2); wx2=0; //-  wx3=1; P0=table1[H1];       delay1(2); wx3=0; //时十位  wx4=1; P0=table1[H2];       delay1(2); wx4=0;  //时个位   wx5=1; P0=0xC7;             delay1(2); wx5=0; //L  wx6=1; P0=0xBF;             delay1(2); wx6=0;   //-   wx7=1; P0=table[L1];        delay1(2); wx7=0;   //分十位    wx8=1; P0=table[L2];     delay1(2); wx8=0; //分个位    }if( (K1num==3)&&(K4num==1) )    {     TR1=1;        wx1=1; P0=0x89;             delay1(2); wx1=0;   //H   wx2=1; P0=0xBF;             delay1(2); wx2=0; //-  if(count2<60)  {wx3=1; P0=table1[H1];       delay1(2); wx3=0;} //时十位  else  {wx3=1; P0=0xff;       delay1(2); wx3=0;}  wx4=1; P0=table1[H2];       delay1(2); wx4=0;  //时个位   wx5=1; P0=0xC7;             delay1(2); wx5=0; //L  wx6=1; P0=0xBF;             delay1(2); wx6=0;   //-   wx7=1; P0=table[L1];        delay1(2); wx7=0;   //分十位    wx8=1; P0=table[L2];     delay1(2); wx8=0; //分个位    }    if( (K1num==3)&&(K4num==2) )    {     TR1=1;        wx1=1; P0=0x89;             delay1(2); wx1=0;   //H   wx2=1; P0=0xBF;             delay1(2); wx2=0; //-  wx3=1; P0=table1[H1];       delay1(2); wx3=0; //时十位 if(count2<60)   {wx4=1; P0=table1[H2];      delay1(2); wx4=0;}  //时个位 else {wx4=1; P0=0xff;           delay1(2); wx4=0;}    wx5=1; P0=0xC7;             delay1(2); wx5=0; //L  wx6=1; P0=0xBF;             delay1(2); wx6=0;   //-   wx7=1; P0=table[L1];        delay1(2); wx7=0;   //分十位    wx8=1; P0=table[L2];     delay1(2); wx8=0; //分个位    }     if( (K1num==3)&&(K4num==3) )    {     TR1=1;        wx1=1; P0=0x89;             delay1(2); wx1=0;   //H   wx2=1; P0=0xBF;             delay1(2); wx2=0; //-   wx3=1; P0=table1[H1];       delay1(2); wx3=0; //时十位  wx4=1; P0=table1[H2];       delay1(2); wx4=0;  //时个位   wx5=1; P0=0xC7;             delay1(2); wx5=0; //L  wx6=1; P0=0xBF;             delay1(2); wx6=0;   //-  if(count2<60)  {wx7=1; P0=table[L1];        delay1(2); wx7=0;}   //分十位      else {wx7=1; P0=0xff;        delay1(2); wx7=0;}     wx8=1; P0=table[L2];     delay1(2); wx8=0; //分个位    }          if( (K1num==3)&&(K4num==4) )    {     TR1=1;        wx1=1; P0=0x89;             delay1(2); wx1=0;   //H   wx2=1; P0=0xBF;             delay1(2); wx2=0; //-   wx3=1; P0=table1[H1];       delay1(2); wx3=0; //时十位  wx4=1; P0=table1[H2];       delay1(2); wx4=0;  //时个位   wx5=1; P0=0xC7;             delay1(2); wx5=0; //L  wx6=1; P0=0xBF;             delay1(2); wx6=0;   //-    wx7=1; P0=table[L1];        delay1(2); wx7=0;   //分十位 if(count2<60)       {wx8=1; P0=table[L2];     delay1(2); wx8=0;} //分个位 else{wx8=1; P0=0xff;     delay1(2); wx8=0;}    }//喇叭开启关闭显示if( (K1num==4)&&(K5num==0) )    {     TR1=0;        wx1=1; P0=0x92;             delay1(2); wx1=0;   //S   wx2=1; P0=0x8C;             delay1(2); wx2=0; //P  wx3=1; P0=0x81;             delay1(2); wx3=0; //A  wx4=1; P0=0xF0;             delay1(2); wx4=0;  //C   wx5=1; P0=0xBF;             delay1(2); wx5=0; //-  wx6=1; P0=0xF7;             delay1(2); wx6=0;   //_   wx7=1; P0=0xF7;             delay1(2); wx7=0;   //_    wx8=1; P0=0xBF;             delay1(2); wx8=0; //-    }    if( (K1num==4)&&(K5num==1) )    {     TR1=1;        wx1=1; P0=0x92;             delay1(2); wx1=0;   //S   wx2=1; P0=0x8C;             delay1(2); wx2=0; //P  wx3=1; P0=0x81;             delay1(2); wx3=0; //A  wx4=1; P0=0xF0;             delay1(2); wx4=0;  //C   wx5=1; P0=0xBF;             delay1(2); wx5=0; //-  wx6=1; P0=0xC0;             delay1(2); wx6=0;   //o   wx7=1; P0=0x8E;             delay1(2); wx7=0;   //F    wx8=1; P0=0x8E;             delay1(2); wx8=0; //F    }    if( (K1num==4)&&(K5num==2) )    {     TR1=1;        wx1=1; P0=0x92;             delay1(2); wx1=0;   //S   wx2=1; P0=0x8C;             delay1(2); wx2=0; //P  wx3=1; P0=0x81;             delay1(2); wx3=0; //A  wx4=1; P0=0xF0;             delay1(2); wx4=0;  //C   wx5=1; P0=0xBF;             delay1(2); wx5=0; //-  wx6=1; P0=0xC0;             delay1(2); wx6=0;   //o   wx7=1; P0=0xC8;             delay1(2); wx7=0;   //n    wx8=1; P0=0xBF;             delay1(2); wx8=0; //-    }                              }   //////////////////////////////////////////////////////////////////////////////////// ///////////////////按键功能设置///////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////   void keycan()  {  /**********模式选择***********/  if( K1==0  )  { K1num++; delay(5);  if( K1==0  )  { while(!K1); bi(350);  if(K1num==5)  { K1num=0;bi(650);TR0=1;TR1=0;} } }               if(K1num!=0)     {  if( K2==0  )  { K2num++; K3num++; K4num++; K5num++; delay(5);     if( K2==0  )  { while(!K2);bi(100); TR1=1;  {  if(K2num==5)  { K2num=0;bi(400);TR1=0;}  if(K3num==5)  { K3num=0;bi(400);TR1=0;}   if(K4num==5)  { K4num=0;bi(400);TR1=0;}   if(K5num==3)  { K5num=0;bi(400);TR1=0;} }}}  }      if(K1num!=0)  //加    {  if( K3==0 )  { delay(5);  if( K3==0 )  { while(!K3); bi(100);  if((K1num==1)&&(K2num==1)) { qian++; if(qian==3 ) qian=0; }              if((K1num==1)&&(K2num==2)) {  bai++; if( bai==10)  bai=0; }     if((K1num==1)&&(K2num==3)) {  shi++; if( shi==6 )  shi=0; }     if((K1num==1)&&(K2num==4)) {   ge++; if(  ge==10)   ge=0; }   if((K1num==2)&&(K3num==1)) {   n1++; if(  n1==3 )   n1=0; }  if((K1num==2)&&(K3num==2)) {   n2++; if(  n2==10)   n2=0; }  if((K1num==2)&&(K3num==3)) {   z1++; if(  z1==6 )   z1=0; }  if((K1num==2)&&(K3num==4)) {   z2++; if(  z2==19)   z2=0; }  if((K1num==3)&&(K4num==1)) {   H1++; if(  H1==10)   H1=0; }  if((K1num==3)&&(K4num==2)) {   H2++; if(  H2==10)   H2=0; }  if((K1num==3)&&(K4num==3)) {   L1++; if(  L1==10)   L1=0; }  if((K1num==3)&&(K4num==4)) {   L2++; if(  L2==10)   L2=0; }  if((K1num==4)&&(K5num==1)) {   BEEP=0; }                                       }  }                  if( K4==0 )  { delay(5);   if( K4==0 )  { while(!K4); bi(100);  if((K1num==1)&&(K2num==1)) { qian--; if(qian==-1) qian=2; }              if((K1num==1)&&(K2num==2)) {  bai--; if( bai==-1)  bai=9; }     if((K1num==1)&&(K2num==3)) {  shi--; if( shi==-1)  shi=5; }     if((K1num==1)&&(K2num==4)) {   ge--; if(  ge==-1)   ge=9; }  if((K1num==2)&&(K3num==1)) {   n1--; if(  n1==-1)   n1=2; }  if((K1num==2)&&(K3num==2)) {   n2--; if(  n2==-1)   n2=9; }  if((K1num==2)&&(K3num==3)) {   z1--; if(  z1==-1)   z1=5; }  if((K1num==2)&&(K3num==4)) {   z2--; if(  z2==-1)   z2=9; }  if((K1num==3)&&(K4num==1)) {   H1--; if(  H1==-1)   H1=9; }  if((K1num==3)&&(K4num==2)) {   H2--; if(  H2==-1)   H2=9; }  if((K1num==3)&&(K4num==3)) {   L1--; if(  L1==-1)   L1=9; }  if((K1num==3)&&(K4num==4)) {   L2--; if(  L2==-1)   L2=9; }  if((K1num==4)&&(K5num==2)) {   bi(); }       }   }   }    }//////////////////////////////////////////////////////////////***********主函数********************///////////////////////////////////////////////////////////// void main() {     BEEP=0;    init1(); init2();    qian=0;bai=6;shi=3;ge=0;miao2=0;miao1=0,H1=H2=L1=L2=2,n1=n2=z1=z2=1;    while(1)     {                ReadTemperature();    keycan();       MODE();         }

提醒:《51单片机电子钟制作-升级版》最后刷新时间 2024-03-14 00:51:58,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《51单片机电子钟制作-升级版》该内容的真实性请自行鉴别。