【毕业设计】34-基于单片机的智能数字电子定时器_电子时钟系统设计(原理图工程+PCB工程+源码+仿真工程+答辩论文)

这篇具有很好参考价值的文章主要介绍了【毕业设计】34-基于单片机的智能数字电子定时器_电子时钟系统设计(原理图工程+PCB工程+源码+仿真工程+答辩论文)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


typora-root-url: ./

【毕业设计】34-基于单片机的智能数字电子定时器/电子时钟系统设计(原理图工程+PCB工程+源码+仿真工程+答辩论文)

设计说明书

摘要

随着社会的进步,经济水平的提高,人们开始通过定时器来规划自己的时间,传统的时钟不能通过移动的方式,只能将其挂在墙上或者钟楼塔的形式出现。针对此问题,本次系统设计了一款智能数字电子定时器器系统,可以实现定时、启动、停止、数字显示、报警、闹钟设置等多项功能。设计系统采用STC89C52单片机控制,DS1302计时芯片作为系统定时;通过液晶显示器LCD1602显示当前时间或者设置闹钟信息;通过按键来控制,时间暂停,闹钟设定等功能。系统设计分为硬件电路设计和软件部分设计,在设计过程中考虑到系统的稳定性和抗干扰能力甚至是兼容性,最后使用仿真软件将系统功能仿真测试。

本文首先对智能数字电子定时器系统的现状以及未来趋势进行分析,进而确定系统的总体方案和系统框架。然后进行智能数字电子定时器系统的硬件设计、电路分析、总电路图的绘制。智能数字电子定时器的软件设计根据系统的功能绘制主程序流程图,并分别绘制各个子程序流程图,在此基础上编写程序,最终编译生成HEX文件。最后对智能数字电子定时器系统进行仿真实现,将程序导入到单片机中,进行调试,并测试验证功能。

原理图工程文件
原理图截图
PCB工程文件
仿真模型工程文件
仿真截图
答辩论文低重复率文档
英文文献及翻译
visio流程图工程

设计框架架构

前 言… 1

第一章 绪论… 2

第一节 研究背景… 2

第二节 研究意义… 2

第三节 研究现状… 3

第四节 本文的主要研究内容及章节安排… 3

第二章 智能数字电子定时器的总体方案… 5

第一节 系统功能需求分析… 5

第二节 系统设计方案选择… 6

一、显示方案选择… 6

二、按键方案选择… 6

三、计时方案选择… 6

第三节 系统结构总体框图… 7

第四节 本章小结… 7

第三章 智能数字电子定时器的硬件电路设计… 9

第一节 单片机最小系统电路设计… 9

一、单片机的简介… 9

二、复位电路… 10

三、晶振电路… 11

第二节 电源电路设计… 11

第三节 按键电路电路设计… 12

第四节 LCD1602液晶显示电路设计… 13

第五节 DS1302电路设计… 14

第六节 蜂鸣器电路设计… 14

第七节 系统总电路图… 15

第八节 本章小结… 16

第四章 智能数字电子定时器系统的软件设计… 17

第一节 Keil软件介绍… 17

第二节 软件总设计流程… 17

第三节 按键程序设计… 18

一、按键程序流程… 18

二、按键的程序… 19

第四节 LCD1602液晶显示程序设计… 20

一、LCD1602液晶显示程序流程… 20

二、 LCD1602液晶显示的程序… 20

第五节 DS1302计时程序设计… 21

一、DS1302计时程序流程… 21

二、 DS1302计时的程序… 22

第六节 蜂鸣器报警程序设计… 23

一、蜂鸣器报警程序流程… 23

二、 蜂鸣器报警的程序设计… 23

第七节 本章小结… 24

第五章 智能数字电子定时器的系统仿真… 26

第一节 Proteus仿真软件介绍… 26

第二节 系统测试… 27

一、电路连接… 27

二、功能测试… 27

第三节 测试结果记录… 31

第四节 本章小结… 32

结 论… 33

致 谢… 34

参考文献… 35

附 录… 37

一、英文原文… 37

二、英文翻译… 40

三、源代码… 42

设计说明书及设计文件

单片机数字电子钟设计,单片机,嵌入式硬件
单片机数字电子钟设计,单片机,嵌入式硬件
单片机数字电子钟设计,单片机,嵌入式硬件
单片机数字电子钟设计,单片机,嵌入式硬件
单片机数字电子钟设计,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-760608.html

源码展示

#include <reg52.h>	         //调用单片机头文件
#define uchar unsigned char  //无符号字符型 宏定义	变量范围0~255
#define uint  unsigned int	 //无符号整型 宏定义	变量范围0~65535
#include "eeprom52.h"
#include "nongli.h"
#include "intrins.h"

bit flag_200ms ;
bit flag_100ms ;
sbit beep = P1^4;	  //蜂鸣器定义
bit flag_beep_en;
uint clock_value;     //用作闹钟用的
sbit dq   = P2^0;	  //18b20 IO口的定义
uint temperature ;    //温度变量
uchar flag_nl;        //农历 阳历显示标志位
uchar menu_1,menu_2;
uchar key_time,flag_value;      //用做连加的中间变量
bit key_500ms  ;
uchar n_nian,n_yue,n_ri;		//农历显示的函数
#include "ds1302.h"
#include "lcd1602.h"
/******************把数据保存到单片机内部eeprom中******************/
void write_eeprom()
{
	SectorErase(0x2000);
	byte_write(0x2000, fen1);
	byte_write(0x2001, shi1);
	byte_write(0x2002, open1);
	byte_write(0x2058, a_a);	
}
/******************把数据从单片机内部eeprom中读出来*****************/
void read_eeprom()
{
	fen1  = byte_read(0x2000);
	shi1  = byte_read(0x2001);
	open1  = byte_read(0x2002);
	a_a      = byte_read(0x2058);
}
/**************开机自检eeprom初始化*****************/
void init_eeprom()
{
	read_eeprom();		//先读
	if(a_a != 1)		//新的单片机初始单片机内问eeprom
	{
		fen1  = 3;
		shi1  = 8;
		open1  = 1;
		a_a = 1;
		write_eeprom();	   //保存数据
	}	
}
/******************1ms 延时函数*******************/
void delay_1ms(uint q)
{
	uint i,j;
	for(i=0;i<q;i++)
		for(j=0;j<120;j++);
}
/******************写星期函数*******************/
void write_week(uchar hang,uchar add,uchar week)//写星期函数
{
	if(hang==1)   
		write_com(0x80+add);
	else
		write_com(0x80+0x40+add);	  
	switch(week)
	{
		case 1:write_data('M');//星期数为1时,显示
			   write_data('O');
			   write_data('N');
			   break;	   
		case 2:write_data('T');//星期数据为2时显示
			   write_data('U');
			   write_data('E');
			   break;		
		case 3:write_data('W');//星期数据为3时显示
			   write_data('E');
			   write_data('D');
			   break;		
		case 4:write_data('T');//星期数据为4是显示
			   write_data('H');
			   write_data('U');
			   break;		
		case 5:write_data('F');//星期数据为5时显示
			   write_data('R');
			   write_data('I');
			   break;		
		case 6:write_data('S');//星期数据为6时显示
			   write_data('T');
			   write_data('A');
			   break;		
		case 7:write_data('S');//星期数据为7时显示
			   write_data('U');
			   write_data('N');
			   break;
	}
}

/*************时钟显示***************/
void init_1602_ds1302()
{
	write_sfm2_ds1302(1,1,shi);		   //显示时
	write_sfm2_ds1302(1,4,fen);		   //显示分
	write_sfm2_ds1302(1,7,miao);	   //显示秒
	write_week(2,12,week);

	if(flag_nl == 0)  //显示阳历
	{
		write_sfm2_ds1302(2,2,nian);   //显示年
		write_sfm2_ds1302(2,5,yue);	   //显示月	
		write_sfm2_ds1302(2,8,ri);	   //显示日 	
	}
	else 			 //显示农历
	{
//		write_sfm2_ds1302(2,2,n_nian);	//显示年
//		write_sfm2_ds1302(2,5,n_yue);	//显示月	
//		write_sfm2_ds1302(2,8,n_ri);	//显示日 
		
	}		
}									   
/*************定时器0初始化程序***************/
void init_time0()	  
{
	EA   = 1;	 	  //开总中断
	TMOD = 0X01;	  //定时器0、工作方式1
	ET0  = 1;		  //开定时器0中断 
	TR0  = 1;		  //允许定时器0定时
}
/*************闹钟报警函数***************/
void menu_dis()
{
	static uchar mm,value;
	if(flag_100ms == 1)		  //100ms执行一次
	{
		flag_100ms = 0;
		if(open1 == 1)	//如果闹钟打开
		{
			if((miao == 0) && (fen == fen1) && (shi == shi1)) 
			{		
				flag_beep_en = 1;	//有报警 打开蜂鸣器响的标志位				
			}		
			if(flag_beep_en == 1)	//闹钟以被打开
			{
				clock_value++;
				if(clock_value <= 30)	 
					beep = ~beep;	   //蜂鸣器叫3秒
				else if(clock_value > 30)
				{
					beep = 1;		    //蜂鸣器停1秒
					if(clock_value > 40)
					{
						clock_value = 0;
					}
				}
				//  1 分钟后自动关闭闹钟
				value ++;
				if(value >= 10)
				{
					value = 0;
					mm++;
					if(mm >= 60)
					{
						mm = 0;
						flag_beep_en = 0;
						beep = 1;	
					}
				}					
			}
		}	
	}
}
/********************独立按键程序*****************/
uchar key_can;	 //按键值
void key()	 //独立按键程序
{
	static uchar key_new;
	key_can = 20;                   //按键值还原
	P3 |= 0xff;                     //对应的按键IO口输出为1
	if((P3 & 0xff) != 0xff)		//按键按下
	{
		delay_1ms(1);	     	//按键消抖动
		if(((P3 & 0xff) != 0xff) && (key_new == 1))
		{						//确认是按键按下
			key_new = 0;
			switch(P3 & 0xff)
			{
				case 0xfe:  key_can = 4;  break;	 //得到按键值
				case 0xfd:  key_can = 3;  break;	 //得到按键值
				case 0xfb:  key_can = 2;  break;	 //得到按键值
				case 0xf7:  key_can = 1;  break;	 //得到按键值
			}
//			write_sfm2(1,0,key_can);				 //显示按键值
		}			
	}
	else 
		key_new = 1;	
}


到了这里,关于【毕业设计】34-基于单片机的智能数字电子定时器_电子时钟系统设计(原理图工程+PCB工程+源码+仿真工程+答辩论文)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【单片机毕业设计】【mcuclub-dz-198】基于单片机的车辆安全驾驶预警系统设计

    项目名:基于单片机的车辆安全驾驶预警系统设计 项目名:驾驶检测(实物)(mcuclub-105) 项目编号:mcuclub-dz-198 单片机类型:STM32F103C8T6 具体功能: 1、通过红测速模块管检测当前老年车的速度; 2、通过超声波测距测量车前障碍物的距离,若距离大于设定最大值,绿灯亮;

    2024年02月20日
    浏览(59)
  • 【单片机毕业设计】【mcuclub-dz-032】基于单片机的智能门禁控制系统设计

    项目名:基于单片机的门禁的设计 单片机:STM32F103C8T6 mcuclub-dz-032 功能简介: 1、通过扫码枪进行扫描二维码,当二维码识别成功,10s内需触发红外避障管,并通过红外测温模块进行测温,如果温度正常,则自动开锁,如果温度异常,则声光报警3次,锁不打开 2、通过RFID进行

    2024年01月18日
    浏览(73)
  • 【毕业设计】基于单片机控制的交通灯毕业设计(附源代码)

    目 录 摘   要 Abstract 前   言 一、工程简介 ( 一)、概述 ( 二 ) 、 工艺 流程图 二、工程设计 (一)、控制方案的确定 (二)、硬件部分 ( 1 )、交通灯控制系统的硬件设计 ( 2 )、硬件系统的设计具备以下原则 ( 3 ) 、硬件结构框图 (如图 3 所示) ( 4 ) 、交通灯控

    2024年04月23日
    浏览(81)
  • 【单片机毕业设计】【mcuclub-dz-112】基于单片机的智能饮水机系统设计与实现

    项目名:基于单片机的智能饮水机系统设计与实现 项目名:基于单片机的饮水机的设计 单片机:STC89C52 功能简介: 1、通过一个按键模拟加热电源的开关 2、通过防水式DS18B20检测水温,当电源打开时,温度小于设置最小值,进行自动加热,直到加热到最大值时停止; 3、通过

    2024年03月09日
    浏览(165)
  • 【单片机毕业设计】【mcuclub-dz-177】基于32单片机的自动扶梯控制系统设计

    项目名:基于32单片机的自动扶梯控制系统设计 项目名:扶梯(实物) 项目编号:mcuclub-dz-177 单片机类型:STM32F103C8T6 具体功能: 1、通过MX1508驱动两个直流电机模拟上下扶梯(一个正转代表上行,一个反转代表下行) 2、每个扶梯都有两个红外对射管,进行人数计数,如果扶

    2024年02月21日
    浏览(75)
  • 毕业设计 基于单片机的导盲拐杖设计(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月05日
    浏览(83)
  • 毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月11日
    浏览(66)
  • 毕业设计 基于51单片机控制LED点阵显示器的设计

    序 🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的

    2024年02月02日
    浏览(72)
  • 毕业设计 基于单片机的GSM智能快递柜设计(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年01月23日
    浏览(76)
  • 毕业设计 基于51单片机智能停车场管理车位引导系统设计

    选题之前,同学们要弄明白一件事情,做毕业设计是干什么用的! 这里我告诉大家,毕业设计对于你来说,不是让你去搞研究,掌握运用所学知识的,也不是让你去比谁做的毕业设计多么牛逼,多么厉害。 说白点,它的作用就是一个,让你顺利毕业,能够拿到学位证,毕业

    2023年04月15日
    浏览(85)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包