• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于51单片机的电子闹钟设计

2024/12/18
1257
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

有需要资料的可了解一下.docx

共1个文件

功能:

1.可以 年 月 日 时 分 秒显示和闹钟功能 能通过8个按键自由调整 时 分 秒 闹钟响铃时间。

2.带复位按键,要是模块抽风,摁复位按键即可!

3.使用 LCD16020A 屏幕显示 屏幕电路设有电位器,可以调整清自由屏幕晰度。

#include "Buzzer.h"


void Buzzer(unsigned int Xms)
{
	unsigned int i;
	for (i = 2*Xms; i > 0; i--)
	{
	BUZZ = !BUZZ;
	Delay384us();
//	Delay(1);
	}
	for (i = Xms; i > 0; i--)
	{
	BUZZ = !BUZZ;
//	Delay500us();
	Delay500us();
	}		
}

void Delay769us()		//@12.000MHz
{
	unsigned char i, j;

	_nop_();
	i = 2;
	j = 123;
	do
	{
		while (--j);
	} while (--i);
}

void Delay1ms()		//@12.000MHz
{
	unsigned char i, j;

	i = 2;
	j = 239;
	do
	{
		while (--j);
	} while (--i);
}

void Delay384ms()		//@12.000MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 3;
	j = 236;
	k = 13;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void Delay500us()		//@12.000MHz
{
	unsigned char i;

	_nop_();
	i = 247;
	while (--i);
}

void Delay384us()		//@12.000MHz
{
	unsigned char i;

	_nop_();
	i = 189;
	while (--i);
}





/**
  * @brief  独立按键——普中开发板
  * @param  无
  *     @arg  
  * @retval 按键序号
  */
#include"Key.h"
#include"Delay.h"

unsigned char Key_Scan()
{
	unsigned char KeyNum = 0;
	
  if ( 0 == Key1)
	{
		Delay(10);
		if (0 == Key1)
		{
			KeyNum = 1; //键值编码,赋键值,不直接做按键功能
		}  while (0 == Key1); 
	}
	if ( 0 == Key2)
	{
		Delay(10);
		if (0 == Key2)
		{
			KeyNum = 2; //键值编码,赋键值,不直接做按键功能
		}  while (0 == Key2); 
	}
	if ( 0 == Key3)
	{
		Delay(10);
		if (0 == Key3)
		{
			KeyNum = 3; //键值编码,赋键值,不直接做按键功能
		}  while (0 == Key3); 
	}
	if ( 0 == Key4)
	{
		Delay(10);
		if (0 == Key4)
		{
		  	KeyNum = 4; //键值编码,赋键值,不直接做按键功能
		}  while (0 == Key4); 
	}
	if ( 0 == Key5)
	{
		Delay(10);
		if (0 == Key5)
		{
		  	KeyNum = 5; //键值编码,赋键值,不直接做按键功能
		}  while (0 == Key5); 
	}
	if ( 0 == Key6)
	{
		Delay(10);
		if (0 == Key6)
		{
		  	KeyNum = 6; //键值编码,赋键值,不直接做按键功能
		}  while (0 == Key6); 
	}
	if ( 0 == Key7)
	{
		Delay(10);
		if (0 == Key7)
		{
		  	KeyNum = 7; //键值编码,赋键值,不直接做按键功能
		}  while (0 == Key7); 
	}
	if ( 0 == Key8)
	{
		Delay(10);
		if (0 == Key8)
		{
		  	KeyNum = 8; //键值编码,赋键值,不直接做按键功能
		}  while (0 == Key8); 
	}
	return KeyNum;
}

资料借鉴于此 纷传

  • 有需要资料的可了解一下.docx
    下载

相关推荐