ds1302时钟电路设计_电子时钟

ds1302时钟电路设计_电子时钟51单片机电子钟(调时,DS1302,数码管,独立按键)#include “reg51.h”#include”ds1302.h”#define uchar unsigned char#define u

51单片机电子钟(调时,DS1302,数码管,独立按键)   
ds1302时钟电路设计_电子时钟
ds1302时钟电路设计_电子时钟
ds1302时钟电路设计_电子时钟
ds1302时钟电路设计_电子时钟   #include “reg51.h”   #include”ds1302.h”   #define uchar unsigned char   #define uint unsigned int   sbit k1=P3^4;//按钮   sbit k2=P3^5;   sbit k3=P3^6;   sbit k4=P3^7;   sbit L1=P2^0;//数码管引脚   sbit L2=P2^1;   sbit L3=P2^2;   sbit L4=P2^3;   sbit L5=P2^4;   sbit L6=P2^5;   sbit L7=P2^6;   sbit L8=P2^7;   uchar code smgduan0[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9,无小数点   uchar code smgduan1[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//显示0~9,有小数点   uchar time1=0;//定时   uchar mode=0;//模式   //延时   void delay(uint i)   {   while(i–);   }   //主函数   void main()   {   uchar i,k=0;   Ds1302ReadTime();//初始化DS1302   TIME[0]=TIME[0] & 0x7f;   Ds1302Init();   TMOD|=0X01;   TH0=(65536-10000)/256;   TL0=(65536-10000)%256;   ET0=1;//打开定时器0中断允许   EA=1;//打开总中断   TR0=1;//打开定时器   while(1)   {   if(!k1)//进入设置   mode=1;   if(mode)//设置   {   if(!k2 &&(k!=2))//小时   {   i=(TIME[2]>>4)*10+(TIME[2]&0X0F);   if(i<23)   i++;   else   i=0;   TIME[2]=(i/10<<4)+i%10;   Ds1302Init();   k=2;   }   if(!k3 &&(k!=3))//分钟   {   i=(TIME[1]>>4)*10+(TIME[1]&0X0F);   if(i<59)   i++;   else   i=0;   TIME[1]=(i/10<<4)+i%10;   Ds1302Init();   k=3;   }   }   if(k2 && k3)   k=0;   if(!k4)//确认   {   mode=0;   }   //显示   if(mode==0)   {   P0=smgduan0[TIME[2]>>4];L1=0;delay(100);L1=1;   P0=smgduan0[TIME[2] & 0x0f];L2=0;delay(100);L2=1;   P0=0x40;L3=0;delay(100);L3=1;   P0=smgduan0[TIME[1]>>4];L4=0;delay(100);L4=1;   P0=smgduan0[TIME[1] & 0x0f];L5=0;delay(100);L5=1;   P0=0x40;L6=0;delay(100);L6=1;   P0=smgduan0[TIME[0]>>4];L7=0;delay(100);L7=1;   P0=smgduan0[TIME[0] & 0x0f];L8=0;delay(100);L8=1;   }   else   {   P0=smgduan0[TIME[2]>>4];L1=0;delay(100);L1=1;   P0=smgduan0[TIME[2] & 0x0f];L2=0;delay(100);L2=1;   P0=smgduan0[TIME[1]>>4];L4=0;delay(100);L4=1;   P0=smgduan0[TIME[1] & 0x0f];L5=0;delay(100);L5=1;   P0=smgduan0[TIME[0]>>4];L7=0;delay(100);L7=1;   P0=smgduan0[TIME[0] & 0x0f];L8=0;delay(100);L8=1;   }   }   }   //定时器0中断   void Timer0() interrupt 1   {   if(time1<50)//读取时间   time1++;   else   {   time1=0;   Ds1302ReadTime();   }   TH0=(65536-10000)/256;   TL0=(65536-10000)%256;   }

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/45291.html

(0)
上一篇 2024年 9月 5日 下午6:10
下一篇 2024年 9月 5日

相关推荐

关注微信