• 大小: 244KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-18
  • 语言: 其他
  • 标签: c51  

资源简介

单片机原理及应用课程设计任务书 数字钟 要求:24小时制时间显示,可随时进行时间校对调整,整点报时及闹钟功能。(或根据实际数字钟增加其它功能)。

资源截图

代码片段和文件信息

#include
#include
#include
 sbit kgnxz=P3^0; //功能选择键,按一次设定时间,按两次设定闹钟时间,按三次又显示时间表  
 sbit ksec=P3^1;//调整秒
 sbit kmin=P3^2;//调整分
 sbit khour=P3^3;//调整时
 sbit bear=P1^0;//蜂鸣器控制口
 unsigned char secshi=0secge=0minshi=0minge=0hourshi=0hourge=0flag=0//flag是按键的计数
               secshi1=0secge1=0minshi1=0minge1=0hourshi1=0hourge1=0;//定义存储时间和闹钟时分秒的个位和十位
unsigned int num=0sec=00min=59hour=00sec1=00min1=1hour1=1 num1=0;//定义时间和闹钟的时分秒
 unsigned char code table[10]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};//数码管段控口
 void keyscan();//键盘扫描函数
 void display();//时钟显示函数
 void display1();//闹钟显示函数
 void clock();//闹钟函数即蜂鸣器函数
/***延时函数****/
void delay(unsigned char z)
 {unsigned char xy;
  for(x=z;x>0;x--)
   for(y=255;y>0;y--);
}
/***中断函数****/
void time0() interrupt 1
 {num++;
 TH0=(65536-50000)/256; 
 TL0=(65536-50000)%256;
if(num==20)
   {num=0; 
    sec++;
    if(sec==60)
     {sec=0;
      min++;
      if(min==60)
        {min=0;
         hour++;
         if(hour==24)
           {hour=0;
            }
         }
      }
 }
 }
/******时钟显示函数******/
void display()
 {
 secge=sec%10;
 secshi=sec/10;
 minge=min%10;
 minshi=min/10;
 hourge=hour%10;
 hourshi=hour/10;
 P2=0xfe;
 P0=table[secge];
 delay(5);
 P2=0xfd;
 P0=table[secshi];
 delay(5);
 P2=0xfb;
 P0=0x40;
 delay(5);
 P2=0xf7;
 P0=table[minge];
 delay(5);
 P2=0xef;
 P0=table[minshi];
 delay(5);
 P2=0xdf;
 P0=0x40;
 delay(5);
 P2=0xbf;
 P0=table[hourge];
 delay(5);
 P2=0x7f;
 P0=table[hourshi];
 delay(5);
}
/*****闹钟显示函数****/
void display1()
 {
 secge1=sec1%10;
 secshi1=sec1/10;
 minge1=min1%10;
 minshi1=min1/10;
 hourge1=hour1%10;
 hourshi1=hour1/10;
 P2=0xfe;
 P0=table[secge1];
 delay(15);
 P2=0xfd;
 P0=table[secshi1];
 delay(15);
 P2=0xfb;
 P0=0x40;
 delay(15);
 P2=0xf7;
 P0=table[minge1];
 delay(15);
 P2=0xef;
 P0=table[minshi1];
 delay(15);
 P2=0xdf;
 P0=0x40;
 delay(15);
 P2=0xbf;
 P0=table[hourge1];
 delay(15);
 P2=0x7f;
 P0=table[hourshi1];
 delay(15);
}
/*****键盘扫描*********/
void keyscan()
 {if(kgnxz==0)     //功能选择键是否按下 
    {  delay(10);//延时消抖      
if(kgnxz==0)//再次判断键是否按下       
  {flag++;} //计数,功能选择键按键次数加一   
  while(!kgnxz); //释放键 

if(flag==1)//功能选择键
   {if(ksec==0)//秒调整键
   {delay(10);//延时消抖
    if(ksec==0)//再次判断键是否按下
      {sec++;//秒加加
       if(sec>=60)//如果秒大于60
       sec=0;//秒清零
       }
  while(ksec==0)//释放键
  display();}
  if(kmin==0)
    {delay(10);
     if(kmin==0)
       {min++;
        if(min>=60)
        min=0;
        }
  while(kmin==0)
  display();
     }
  if(khour==0)
    {delay(10);
     if(khour==0)
       {hour++;
        if(hour==24)
        hour=0;
        }
  while(khour==0)
  display(); 
  }
 }
 if(flag==2)//闹钟调整
     {if(ksec==0)
        {delay(5);
         if(ksec==0)
          {sec1++;
          if(sec1==60)
           sec1=0;}
           while(!ksec)
         

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件      100943  2018-06-18 14:11  Backup Of 可调带闹钟数字钟.DBK
     文件       97412  2018-06-18 21:49  Last Loaded 可调带闹钟数字钟.DBK
     目录           0  2018-06-20 15:26  project\
     文件        4037  2018-06-20 11:39  project\shizhong
     文件        3496  2018-06-20 11:39  project\shizhong.hex
     文件          31  2018-06-20 11:39  project\shizhong.lnp
     文件       15169  2018-06-20 11:39  project\shizhong.M51
     文件         956  2018-06-20 15:13  project\shizhong.Opt
     文件           0  2018-06-20 14:54  project\shizhong.plg
     文件        1651  2018-06-18 00:28  project\shizhong.Uv2
     文件         956  2018-06-20 14:50  project\shizhong_Opt.Bak
     文件           0  2018-06-17 23:38  project\shizhong_Uv2.Bak
     文件        6369  2018-06-20 11:39  project\时钟.obj
     文件      241664  2018-12-17 23:05  单片机课程设计().doc
     文件      100920  2018-06-19 21:56  可调带闹钟数字钟.DSN
     文件         742  2018-06-20 14:18  可调带闹钟数字钟.PWI
     文件        4292  2018-06-20 11:39  时钟.c
     文件        8271  2018-06-20 11:39  时钟.LST
     文件        4259  2018-06-18 21:29  时钟.txt

评论

共有 条评论