基于51单片机的电子钟Protues仿真设计

一、设计背景

电子钟是指利用数字电路或单片机等现代电子技术来实现时间计量和显示的钟表。相较于传统机械钟、石英钟等时钟,电子钟具有精度高、音响小、易于制造和调节等优点,同时也由于其美观大方的外观设计而成为了家居装饰中不可或缺的一部分。

其中,基于 51 单片机的电子钟因其简单易操作、代码共享、性能稳定等特点而广受欢迎。由于 51 单片机通过提供基本的输入输出端口和计时器模块等重要功能,使得使用者可以轻松地在自己的作品中集成时钟计时的功能。

此外,随着时钟功能的不断完善,如闹铃设置、温度显示、继电器控制等进阶功能的逐步融入,这些具有实际意义的设备进一步丰富了电子钟的应用场景。例如在育儿宝典、健康保健仪等家里或医护场所中,常常需要借助电子钟进行测量及提醒,以便用户合理安排工作和休息时间。

需要注意的是,在制作电子钟过程中,物料选择和电路设计都需要严格遵守相关标准和规范,确保生产产品符合设备安全、环保和电磁兼容性的要求。

总之,基于 51 单片机的电子钟是一项极具实用性和创意性的工程设计,不断发展与完善将带来更加优秀的产品,并为用户提供更多便利与乐趣。

二、设计要求

要求1:利用单片机的定时器和LCD1602液晶显示器,设计一个电子时钟,电子时钟显示的格式为:XX:XX:XX,由左向右分别为:时、分、秒。

要求2:添加4个按键,分别是模式按键(可以切换正常模式和设置闹钟时间模式)、移位按键(在闹钟模式下起作用,用来切换当前设置闹钟时间的位置,分别是:时、分、秒)、增加按键(在闹钟模式下起作用,增加值)、减小按键(在闹钟模式下起作用,减小值)。按键从左往右依次为key1、key2、key3、key4。

要求3:添加一个led灯,闹钟时间到了闪烁,并且闪烁1分钟。

三、仿真演示

1、按下key1可以对模式进行切换,09表示正常模式,在这个模式下电子钟开始工作。

基于51单片机的电子钟Protues仿真设计_第1张图片

 2、00表示设置闹钟时间模式,在这个模式下可进行闹钟时间的设置。基于51单片机的电子钟Protues仿真设计_第2张图片

 3、在闹钟模式下通过按下key2,结合增减键key3和key4可以对闹钟时间进行设置。基于51单片机的电子钟Protues仿真设计_第3张图片

  4、闹钟时间到了闪烁,并且闪烁1分钟。基于51单片机的电子钟Protues仿真设计_第4张图片

四、部分程序展示

void main()
{
	TMOD=0x01;
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	EA=1;
	ET0=1;
	TR0=1;

	LCD_Init();

	LED = 1;

	while(1)
	{
		if(KModle == 0)
		{
			modle = ~modle;
			if(modle ==0 )
				Wei = 0;
			else
				Wei = 9;
			while(KModle == 0);		
		}

		if(modle == 0)
		{
			if(KYiWei == 0)
				Wei++;
			if(Wei == 3)
				Wei = 0;
			while(KYiWei == 0);						
		}

		if(modle == 0  && KJia == 0)
		{
			switch(Wei)
			{
				case 0: 
					{
						Tshi++;
						if(Tshi == 24)
							Tshi=0;
						break;
					}
				case 1: 
					{
						Tfen++;
						if(Tfen == 60)
							Tfen=0;
						break;
					}
				case 2: 
					{
						Tmiao++;
						if(Tmiao == 60)
							Tmiao=0;
						break;
					}
			}
			while(KJia == 0);	
		}
		if(modle == 0  && KJian == 0)
		{
			switch(Wei)
			{
				case 0: 
					{
						if(Tshi == 0)
							Tshi=23;
						else
							Tshi--;
						break;
					}
				case 1: 
					{
						if(Tfen == 0)
							Tfen=59;
						else
							Tfen--;
						break;
					}
				case 2: 
					{
						if(Tmiao == 0)
							Tmiao=59;
						else
							Tmiao--;
						break;
					}
			}
			while(KJian == 0);
		}
		if(modle == 0)
		{
			Out_Char(0,Wei);
			Out_Char(4,Tshi);
			Out_Char(7,Tfen);
			Out_Char(10,Tmiao);
		}
	}
}

部分内容参考网络,如有侵权请联系博主删除,仿真源文件及源程序百度网盘链接:https://pan.baidu.com/s/1zOd4wElISV0thUaGqktRkg 
提取码:fm8g 
 

你可能感兴趣的:(51单片机,单片机,嵌入式硬件)