找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10618|回复: 22
收起左侧

电子时钟

[复制链接]
ID:15310 发表于 2009-7-15 00:51 | 显示全部楼层 |阅读模式

//////////////////////////////////
//工程名称;外部秒基准,电子钟表//
//单片机型号:AT98S51           //
//时钟频率?12M?                 //
//制作时间;2009-7-13            //
//制作者;吕贝贝                 //
//////////////////////////////////////////////////////////////////////////////////////
#include <reg51.h>
char TAB[10]={0X11,0Xbd,0X23,0X25,0X8d,0x45,0x41,0x3d,0x01,0x05};//数码管0-9编码
char disp[4]={0,0,0,0};//四位数码管初始化都为零
unsigned char scan;//位数扫描寄存器
unsigned char s=0;//秒寄存器
unsigned char f=0;//分寄存器
unsigned char h=0;//时寄存器
unsigned char f1=0;//分个位寄存器
unsigned char f2=0;//分十位寄存器
unsigned char h1=0;//时个位寄存器
unsigned char h2=0;//时十位寄存器
sbit fj=P3^7;//分位加1引脚
sbit hj=P3^6;//时位加1引脚
sbit zd=P3^3;//中断1引脚
void disp1m(int);//定义延时函数
void ff(unsigned char);//定义分位分裂函数
void fh(unsigned char);//定义时位分裂函数
////////////////////////////////////////////////////////////////////////////////////////
main()
{
  IE=0X85;//准许INT0中断,准许int1中断
  IP=0x04;//设定INT1具有最高优先级
  TCON=0X05;//INT0设置负边缘触发,int1设置负边缘触发。
  while(1)
       { 
      char i,j;
      scan=1;
   for(i=3;i>=0;i--)
      {
     j=disp;
      P1=TAB[j];
      P2=scan;
      disp1m(4);
      scan<<=1;
   }
  disp[0]=h2;//显示时十位
  disp[1]=h1;//显示时个位
  disp[2]=f2;//显示分十位
  disp[3]=f1;//显示分个位
    }
}
//////////////////////////////////////////////////////////////////////////////////////////
void my_int0(void)interrupt 0//外部中断0,P3.2,秒脉冲输入短,下降边缘触发
{
 s++;//秒寄存器加1
 if(s==60)//秒数是否到六十
   {
     s=0;//秒数清零
  f++;//分数寄存器加1
  if(f==60)//分是否到60
    {
      f=0;//分数清零
   h++;//时寄存器加1
   if(h==24)//时是否到24
      {
    h=0;
   }
    }
  
   }
   ff(f);//调用分位分裂函数
   fh(h);//调用时位分裂函数
   P3=255;
}
///////////////////////////////////////////////////////////////////////////////////////////
void my_int1(void)interrupt 2//外部中断1,P3.3。时间调整输入端下降边缘触发
{
  disp1m(10);//延时消除抖动
  if(zd==0)//再次判断中断脚位是否在低电平
    {
      if(hj==0)//判断是时要修改
   {
        if(h==24){h=0;}else{h++;};//时加1
   }
   else if(fj==0)//判断是分要修改
   {
        if(f==60){f=0;}else{f++;}//分加1
   }
   else {}//都不是,退出中断,
   
    }
 P3=255;//P3脚位全部拉高,以便等待下一个中断

}
//////////////////////////////////////////////////////////////////////////////////////////////
void ff(unsigned char y)//分位分裂函数
{
 f1=y%10;
 f2=y/10;
}
//--------------------------------------
void fh(unsigned char y)//时位分裂函数
{
 h1=y%10;
 h2=y/10;
}
////////////////////////////////////////////////////////////////////////////////////////////////
void disp1m(x)//延时函数
{
   int i,j;
   for(i=0;i<x;i++)
      for (j=1;j<=150;j++);
}

 

回复

使用道具 举报

ID:15310 发表于 2009-7-15 00:59 | 显示全部楼层
大家看看,小弟的作品还算完美吧?
回复

使用道具 举报

ID:3271 发表于 2009-7-15 10:28 | 显示全部楼层
你的作品没看见,只看见一堆英文
回复

使用道具 举报

ID:15350 发表于 2009-7-16 09:02 | 显示全部楼层
等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等的
回复

使用道具 举报

ID:15310 发表于 2009-7-17 22:58 | 显示全部楼层
这位兄台是没有看懂吧?这是用C写的一款电子时钟程序啊,,,,
回复

使用道具 举报

ID:15530 发表于 2009-7-22 11:00 | 显示全部楼层
等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等的
回复

使用道具 举报

ID:16225 发表于 2009-8-13 19:27 | 显示全部楼层
这么赚金币?
回复

使用道具 举报

ID:16230 发表于 2009-8-13 21:10 | 显示全部楼层

看一下,缺钱下不来

回复

使用道具 举报

ID:15906 发表于 2009-8-21 20:29 | 显示全部楼层
 什么东西啊
回复

使用道具 举报

ID:16463 发表于 2009-8-22 11:22 | 显示全部楼层
金币不够啊
回复

使用道具 举报

ID:21591 发表于 2010-2-18 22:13 | 显示全部楼层

想钱都想疯了。

回复

使用道具 举报

ID:17249 发表于 2010-2-27 21:21 | 显示全部楼层
怎样写入芯片呢?
回复

使用道具 举报

ID:21402 发表于 2010-3-27 20:14 | 显示全部楼层

学习,学习!

回复

使用道具 举报

ID:23267 发表于 2010-4-22 09:31 | 显示全部楼层
zenme 要钱
回复

使用道具 举报

ID:25075 发表于 2010-7-15 22:30 | 显示全部楼层

不行啊  这么贵

回复

使用道具 举报

ID:26610 发表于 2012-5-6 21:08 | 显示全部楼层

看一下,缺钱下不来


回复

使用道具 举报

ID:39830 发表于 2012-5-7 12:40 | 显示全部楼层

我只是来打酱油的

回复

使用道具 举报

ID:31850 发表于 2012-5-9 14:26 | 显示全部楼层
先看看在讲
回复

使用道具 举报

ID:79866 发表于 2015-6-2 20:56 | 显示全部楼层
一排8是怎么回事??????
回复

使用道具 举报

ID:68416 发表于 2015-10-7 22:24 | 显示全部楼层
程序写的不错,学习了
回复

使用道具 举报

ID:91914 发表于 2015-10-8 20:36 | 显示全部楼层
求分享
回复

使用道具 举报

ID:94340 发表于 2015-11-1 19:47 | 显示全部楼层
要是有图就好了
回复

使用道具 举报

ID:198642 发表于 2017-5-9 15:55 | 显示全部楼层
配上线路图不更完美
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表