基于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

相关推荐
阿明副业观察2 分钟前
AI短剧分镜秘籍:从零到电影级视觉冲击
大数据·人工智能·aigc·音视频·ai写作
Lxx_Zw16 分钟前
先把轮子转稳,才不会烧心:编码器速度环 PID 怎么接回 PWM
c语言·stm32·单片机·嵌入式硬件
语音之家28 分钟前
NeurIPS 2026|AnyEdit:免人声分离,嘈杂音频也能局部编辑
人工智能·音视频·消融实验·声源分离
小白学大数据1 小时前
逆向分析短视频平台 a_bogus 参数:从 JavaScript 混淆到 Python 复现
javascript·python·音视频
常州晟凯电子科技1 小时前
8路CVBS/AHD模拟视频编码器评测
音视频·视频编解码
碧海银沙音频科技研究院1 小时前
基于炬芯ATS3089X的蓝牙A2DP之SBC编码算法音频数据导出实现
音视频
是店小二呀1 小时前
想用自己的音色给视频配音?我用Index-TTS跑通参考音频、语音生成和远程访问
人工智能·音视频·语音识别
揽秀亭长1 小时前
提取视频文案的工程选型|五类转写方案对比、可复现脚本与报错排查表
人工智能·音视频
quaer2 小时前
FFmpeg环境搭建10.16
音视频
Likeadust4 小时前
门店客流少、曝光弱?视频直播点播EasyDSS音视频平台解锁门店线上拓客新模式
网络·音视频·easydss