简单51单片机数字钟

Posted py_taotao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单51单片机数字钟相关的知识,希望对你有一定的参考价值。

51单片机数字钟

#include <reg51.h>
sbit P3_3=P3^3; //定义按键
sbit P3_2=P3^2; //定义按键
///
void delay(unsigned long t)
 unsigned long i;
	for(i=0;i<t;i++) ;   //定义延时函数delay

///
unsigned char miao;   //定义秒    
unsigned char fen;    //定义分
unsigned char shi;    //定义时

void main()
  unsigned char led[10]=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;   
//共阴数码管 定义led[10] 存放数字0~9的字符码
   unsigned char seg[6]=0x80,0x40,0x20,0x10,0x08,0x04;
   //控制哪一个数码管显示
   unsigned char buf[6]; //buf[0]  \\buf[1]  \\.....buf[5]
   unsigned char i;
///	 
	 TMOD=0x01;                        //采用16位的计时计数器
	 TH0=(65536-46080)/256;            //0x4c       65536是2的16次方 
	 TL0=(65536-46080)%256;            //0x00
//晶振11.0592M  11.0592Mhz除12为921600HZ,就是921600次机器周期,50ms=40680次机器周期
//65536-40680=19456(4c 00)	4*16*16*16+12*16*16=19456 

	 TR0=1;        //	TR0  :TR0=1表示T0开始运行。(单片机中T1引脚,需要高低电平的驱动)
	 ET0=1;       //开启定时器中断  T0中断允许位
	 EA=1;        打开总中断
	
	 while(1)
	 
     	 buf[0]=shi%100/10;  buf[1]=shi%10/1;  //分出小时的十位  个位
		 buf[2]=fen%100/10;   buf[3]=fen%10/1;   //分出分的十位  个位
		 buf[4]=miao%100/10;   buf[5]=miao%10/1;   //分出秒的十位  个位
		  for(i=0;i<6;i++)
		    
				 P0=~led[ buf[i] ];   //控制数码管显示什么符号
				 P2=~seg[i];          //控制哪一个数码管显示
				 delay(10);
			
/
			if(P3_2==0)
			
				 delay(10);         //消抖
				 if(P3_2==0)  shi++; if(shi==24) shi=0;
				 while(P3_2==0) ; //等待按键松开
			
			
			if(P3_3==0)
			
				 delay(10);        //消抖
				 if(P3_3==0)  fen++; if(fen==60) fen=0;
				 while(P3_3==0) ; //等待按键松开
			
	 

/
unsigned char cnt=0;
void  t0_s(void) interrupt 1  //interrupt 1 指明是定时器中断0
    
     TF0=0;                   // 表示定时器0初始化。
	 TH0=(65536-46080)/256;
	 TL0=(65536-46080)%256;
     cnt++;
	 if(cnt==20   )  miao++; cnt=0;  //进行频率的累加 达成一秒
	 if(miao==60 )  fen++; miao=0;   //累加60秒成一分钟
	 if(fen==60 )   shi++; fen=0;    //累加60分成一小时
	 if(shi==24)    shi=0;           //累加24小时 清零



刚刚学51单片机有错的可以评论 大佬牛皮!!!!

以上是关于简单51单片机数字钟的主要内容,如果未能解决你的问题,请参考以下文章

简单51单片机数字钟

简单51单片机数字钟

简单51单片机数字钟

基于51单片机通过点击移位按键移位修改LCD1602字符型液晶显示器显示时分秒个位十位数值的计时项目工程

基于单片机的带有日历功能的数字时钟

51单片机制作温度计的简单程序