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

相关推荐
我不是帅戈1 小时前
STM32+安信可Ai-WB2-12F连接阿里云物联网平台
stm32·物联网·阿里云·云计算·安信可
教练、我想打篮球2 小时前
04 基于 STM32 的时钟展示程序
stm32·单片机·嵌入式硬件
大鱼YY2 小时前
STM32系统定时器以及微秒延时函数分析
stm32·滴答定时器
Mapmost2 小时前
【数据融合实战手册·应用篇】“数字孪生+视频融合”让智慧城市拥有空间感知
信息可视化·音视频·无人机·智慧城市
Oliverro3 小时前
EasyRTC嵌入式音视频通话SDK驱动智能硬件音视频应用新发展
人工智能·音视频
吃货界的硬件攻城狮4 小时前
【STM32 学习笔记】ADC数模转换器
笔记·stm32·单片机·学习
天夏已微凉7 小时前
1.2 Linux音频系统发展历程与关键技术演进
linux·c语言·驱动开发·音视频
大力水手~8 小时前
微信小程序上传视频,解决ios上传完video组件无法播放
ios·微信小程序·音视频
newtonltr9 小时前
CANopen TPDO 配置详解:对象 1800h、1A00h 与实践指南
stm32·canopen
travel_wsy10 小时前
webrtc 视频直播
前端·vue.js·音视频·webrtc