简单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单片机 用DAC0808实现数字调压+Proteus仿真

51单片机模拟数字键盘输入以及图像显示+Proteus仿真

C51基于51单片机的简易频率计(附代码无需外设小白简单易上手)