自制电子时钟

发布者:梦回归处最新更新时间:2015-07-14 来源: 51hei关键字:电子时钟 手机看文章 扫描二维码
随时随地手机看文章
仿真出来一个可以调时间的电子时钟。下面是仿真图片。


 
    下面是核心的单片机编程:
 
#include
#define ulong unsigned long
#define uint  unsigned int
sbit duan=P2^0;
sbit  wei=P2^1;
sbit led=P2^2;
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
sbit key5=P1^4;
uint code shuju1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint code shuju2[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//为让小数点点亮,另建一个数组
void delayms(uint);
void keyscan();
void Play(uint t);
void display(uint,uint,uint,uint,uint,uint);
ulong num;
uint i,j,num1,shi,fen,miao,sw,w,q,b,s,g,h,f,m;
void main()
{
 TMOD=0x10;
 TH1=(65536-45872)/256;
 TL1=(65536-45872)%256;
 EA=1;
 ET1=1;
 TR1=1;
while(1)
 { 
  keyscan();
  display(sw,w,q,b,s,g);
 }
}
void display(uint sw,uint w,uint q,uint b,uint s,uint g)
{
  duan=1;         //打开 段 锁存端
 P3=shuju1[g];   //传入数据
 duan=0;         //关闭 段 锁存端
    P3=0xff;  //清影
 wei=1;   //打开 位 锁存端
 P0=0x01;  //传入位选数据
 wei=0;        //关闭 位 锁存端
    delayms(5);     //延时
 
  duan=1;         //打开 段 锁存端
 P3=shuju1[s];   //传入数据
 duan=0;         //关闭 段 锁存端
    P3=0xff;  //清影
 wei=1;   //打开 位 锁存端
 P0=0x02;  //传入位选数据
 wei=0;        //关闭 位 锁存端
    delayms(5);     //延时
   
  duan=1;         //打开 段 锁存端
 P3=shuju2[b]; //传入数据
 duan=0;         //关闭 段 锁存端
    P3=0xff;  //清影
 wei=1;   //打开 位 锁存端
 P0=0x04;  //传入位选数据
 wei=0;        //关闭 位 锁存端
    delayms(5);     //延时
 
    duan=1;         //打开 段 锁存端
 P3=shuju1[q]; //传入数据
 duan=0;         //关闭 段 锁存端
    P3=0xff;  //清影
 wei=1;   //打开 位 锁存端
 P0=0x08;  //传入位选数据
 wei=0;        //关闭 位 锁存端
    delayms(5);     //延时
 
 duan=1;         //打开 段 锁存端
 P3=shuju2[w]; //传入数据
 duan=0;         //关闭 段 锁存端
    P3=0xff;  //清影
 wei=1;   //打开 位 锁存端
 P0=0x10;  //传入位选数据
 wei=0;        //关闭 位 锁存端
    delayms(5);     //延时
 
 duan=1;         //打开 段 锁存端
 P3=shuju1[sw]; //传入数据
 duan=0;         //关闭 段 锁存端
    P3=0xff;  //清影
 wei=1;   //打开 位 锁存端
 P0=0x20;  //传入位选数据
 wei=0;        //关闭 位 锁存端
    delayms(5);     //延时
}
void delayms(uint xms)
{
 for(i=xms;i>0;i--)
  for(j=110;j>0;j--);
}[page]
void T1_time()interrupt 3 
{
 TH1=(65536-45872)/256;
 TL1=(65536-45872)%256;
    num1++;
 if(num1==16)
 {
  num1=0;
  num++;
    if(num==86400)
 
    num=0; 
               m=num%60;
    f=num%3600/60;
    h=num/3600; 
    shi=num/3600;      //拆分
    sw=shi/10;
    w=shi%10;
    fen=num%3600/60;
    q=fen/10;
    b=fen%10;
    miao=num%60;
    s=miao/10;
    g=miao%10;
 }
}
void keyscan()
{
 if(key1==0)
 {
  delayms(10);
  if(key1==0)
   {
                led=0;
       TR1=0;
    while(!key1); //等待按键释
    led=1;
         }
 }
 if(key2==0)
 {
  delayms(10);
  if(key2==0)
     {
                led=0;
       m++;
    if(m==60)
        m=0;
        s=m/10;
           g=m%10;
              while (!key2);
        led=1;
     }
  }
     if(key3==0)
 {
  delayms(10);
   if(key3==0)
   {
    led=0;
    f++;
    if(f==60)
     f=0;
        q=f/10;
        b=f%10;
            while (!key3);
       led=1;
   }
 }
    if(key4==0)
 {
  delayms(10);
         if(key4==0)
           {
    led=0;
    h++;
                if(h==12)
     h=0;   
     sw=h/10;
     w=h%10;
                while (!key4);
       led=1;
           }
    }
    if(key5==0)
    {
  delayms(10);
  if(key5==0)
   {
      led=0;
      num=h*3600+f*60+m;
      TR1=1;
      while (!key5); 
      led=1;
            }
   }  
}
 
程序代码下载地址:http://www.51hei.com/f/fe788.rar  
下面的是功能说明:

 
      程序写的有些不完美,按键按下数码管会暗下,需要再修改下。等程序修改完美了,再到淘宝买齐原件就可以做出这个时钟来。估计过年时我就能做出这个时钟来,而且这个时钟经过后期修改能有定时功能,时间到就驱动继电器闭合从而控制220V家庭电路。再加上蜂鸣器就能有闹钟功能,总之后期不断修改功能会不断增加!
关键字:电子时钟 引用地址:自制电子时钟

上一篇:基于51hei单片机开发板时钟编程(24制)
下一篇:单片机硬件心得

推荐阅读最新更新时间:2024-03-16 14:25

单片机 电子时钟(汇编)
今天很高兴,一次性就把这个电子时钟写了出来(今晚的单片机实验,记得去年自学单片机的时候,这个还真是写不出来,不过这个时钟只是静态的,不能够用手工来修改,这点还是不够完善,以后有时间了的话,我重新写一下,呵呵) count equ 9217 ;定义1s计数值,对于11.0592的晶振来说,延时10ms second equ 30h ;定义临时变量区 second_ge equ 31h second_shi equ 32h minute equ 33h minute_ge equ 34h minute_shi equ 35h hour equ 36h hour_ge
[单片机]
单片机 <font color='red'>电子时钟</font>(汇编)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved