基于STM32电子钟闹钟数码管显示设计(Proteus仿真+程序+设计报告+原理图PCB+讲解视频)

基于STM32电子钟闹钟数码管显示设计

基于STM32电子钟闹钟数码管显示设计(Proteus仿真+程序+设计报告+原理图PCB+讲解视频)

仿真图proteus 8.9

程序编译器:keil 5

编程语言:C语言

设计编号:C0104

1.主要功能

设计一个基于STM32单片机的电子钟闹钟proteus仿真设计,可以显示时、分、秒,并且可以设置时间和闹钟。

1、采用单片机内部RTC模块实现计时;

2、采用八位数码管显示时分秒;

3、可对时分秒分别进行加减设置,设置时对应数码管闪烁;

4、可设置闹钟,并且到时间后蜂鸣器响;

5、闹钟鸣响时,按下任意按键可手动消除闹钟;

6、可以通过Proteus仿真或者实物演示。

资料下载链接:

通过网盘分享的文件:KEY_C0104

链接: https://pan.baidu.com/s/1iKdIqVMCHvNg0642rKrteA?pwd=vtrf

提取码: vtrf

2.仿真设计

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

开始仿真后,数码管显示12-00-50,分别代表时分秒。

默认闹钟时间12-01-00,时间到了之后闹钟响,指示灯亮。响铃期间按下任意按键关掉闹钟。

按下设置键可对时分秒分别进行加减设置,设置时对应数码管闪烁。

3.程序设计

程序是用keil5 mdk版本打开的,如果打开有问题,核实下keil的版本。程序是HAL版本编写的,有stm32cubemx配置文件。有注释可以结合讲解视频理解。

c 复制代码
while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
	
	if(step==0){
		//十进制格式
		HAL_RTC_GetTime(&hrtc, &sTimeStructure, RTC_FORMAT_BIN);	//RTC时间获取函数
		//十进制格式
		HAL_RTC_GetDate(&hrtc, &sDateStructure, RTC_FORMAT_BIN);	//RTC日期获取函数
		if( (sTimeStructure.Hours == sAlrmStructure.Hours) && (sTimeStructure.Minutes == sAlrmStructure.Minutes)&&(sTimeStructure.Seconds==0))//判断闹钟时间
		{
			beep_state=1;//闹钟标志位		
			LED_ALARM_STA_ON();
		}
		if( (sTimeStructure.Hours != sAlrmStructure.Hours) || (sTimeStructure.Minutes != sAlrmStructure.Minutes)){
			beep_state=0;//取消闹钟标志位	
		}
		if(beep_state==1){
			BEEP_ON();		   //蜂鸣器响
			LED_ALARM_STA_ON();//指示灯亮
		}else{
			BEEP_OFF();		   //关蜂鸣器
			LED_ALARM_STA_OFF();//指示灯灭
		}		
		//格式转换为字符串
		memset(smgbuf, 0, sizeof(smgbuf));//清空数组
		smgbuf[0]=gsmg_code[sTimeStructure.Hours/10];//时间十位
		smgbuf[1]=gsmg_code[sTimeStructure.Hours%10];//时间个位
		smgbuf[2]=0x40;
		smgbuf[3]=gsmg_code[sTimeStructure.Minutes/10];//分钟十位
		smgbuf[4]=gsmg_code[sTimeStructure.Minutes%10];//分钟个位
		smgbuf[5]=0x40;
		smgbuf[6]=gsmg_code[sTimeStructure.Seconds/10];//显示秒十位
		smgbuf[7]=gsmg_code[sTimeStructure.Seconds%10];//显示个位
		SMG_Display(smgbuf,1);	
	
//		HAL_Delay(10);//延时一段时间,等待显示稳定
	}else{//设置状态下的显示
	
		memset(smgbuf, 0, sizeof(smgbuf));//清空数组
		if(step>=1&&step<=3){//设置时钟时间
			if(step==1&&flick_cnt<50){
				
			}else{
				smgbuf[0]=gsmg_code[sTimeStructure.Hours/10];//时间十位
				smgbuf[1]=gsmg_code[sTimeStructure.Hours%10];//时间个位
			}
			smgbuf[2]=0x40;//显示横杠
			if(step==2&&flick_cnt<50){
	
			}else{
				smgbuf[3]=gsmg_code[sTimeStructure.Minutes/10];//分钟十位
				smgbuf[4]=gsmg_code[sTimeStructure.Minutes%10];//分钟个位
				}
			smgbuf[5]=0x40;//显示横杠
			if(step==3&&flick_cnt<50){
	
			}else{
				smgbuf[6]=gsmg_code[sTimeStructure.Seconds/10];//显示秒十位
				smgbuf[7]=gsmg_code[sTimeStructure.Seconds%10];//显示个位
			}
			SMG_Display(smgbuf,1);	
//			HAL_Delay(10);//延时一段时间,等待显示稳定

		}else if(step>=4){//设置闹钟时间
			if(step==4&&flick_cnt<50){
					
			}else{
				smgbuf[0]=gsmg_code[sAlrmStructure.Hours/10];//闹钟时十位
				smgbuf[1]=gsmg_code[sAlrmStructure.Hours%10];//闹钟时个位

			}
			smgbuf[2]=0x40;//显示横杠
			if(step==5&&flick_cnt<50){

			}else{
				smgbuf[3]=gsmg_code[sAlrmStructure.Minutes/10];//闹钟分钟十位
				smgbuf[4]=gsmg_code[sAlrmStructure.Minutes%10];//闹钟分钟个位

				}
			SMG_Display(smgbuf,1);	
//			HAL_Delay(5);//延时一段时间,等待显示稳定
		}
	} 
  }
  /* USER CODE END 3 */
}

程序流程图

4.设计报告

8272字设计报告,内容包括设计目标、硬件设计、软件设计、结论等。

随着电子技术的飞速发展,智能家居和便携式电子设备的需求日益增长,数字时钟作为日常生活中不可或缺的一部分,其功能性和用户体验成为用户关注的重点。本项目旨在设计一款基于STM32单片机的多功能数字时钟闹钟,通过Proteus软件进行仿真设计,实现时间显示、时间设置、闹钟设置及响铃提醒等功能,不仅提升了时钟的基本计时功能,还增加了用户交互性和实用性,对于学习STM32单片机应用、RTC(实时时钟)模块使用以及Proteus仿真技术具有重要意义。

5.原理图PCB

下面是原理图和PCB

6.实物图

实物如下图所示

7.下载链接

0、常见使用问题及解决方法--必读!!!!

1、程序代码

2、Proteus仿真

3、功能要求

4、开题报告

5、设计报告

6、框图

7、讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

资料下载链接:

通过网盘分享的文件:KEY_C0104

链接: https://pan.baidu.com/s/1iKdIqVMCHvNg0642rKrteA?pwd=vtrf提取码: vtrf

更多资源 点击下方链接:

https://docs.qq.com/sheet/DS0xIa0llTmtNakRW

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

资料下载链接:

通过网盘分享的文件:KEY_C0104

链接: https://pan.baidu.com/s/1iKdIqVMCHvNg0642rKrteA?pwd=vtrf提取码: vtrf

相关推荐
美摄科技4 小时前
智能汽车图像及视频处理方案,支持视频智能拍摄能力
汽车·音视频·智能电视
CV工程师丁Sir9 小时前
《HarmonyOS Next视频横竖屏切换及进度条热区拖动实现》
华为·音视频·harmonyos·harmonyos next
逆旅可好9 小时前
STM32标准库开发中断流程
stm32·单片机·嵌入式硬件
byxdaz11 小时前
ffmpeg+QOpenGLWidget显示视频
ffmpeg·音视频
黑不拉几的小白兔11 小时前
stm32:PWM原理 及 呼吸灯实现
stm32·嵌入式硬件·fpga开发
Amy.com12 小时前
stm32-IIC
stm32·单片机·嵌入式硬件
Hugging Face14 小时前
SmolVLM2: 让视频理解能力触手可及
音视频
不被定义的~wolf14 小时前
【STM32】第一个工程的创建
java·stm32·dubbo
虔城散人16 小时前
GPIO八种模式的应用场景总结
stm32·单片机·嵌入式硬件
sewinger16 小时前
STM32:关于NVIC的工作与优先级分组方式
stm32·单片机·嵌入式硬件