基于STM32電子鐘鬧鐘數(shù)碼管顯示設計(Proteus仿真+程序+設計報告+原理圖PCB+講解視頻)
仿真圖proteus 8.9
程序編譯器:keil 5
編程語言:C語言
設計編號:C0104
1.主要功能
設計一個基于STM32單片機的電子鐘鬧鐘proteus仿真設計,可以顯示時、分、秒,并且可以設置時間和鬧鐘。
1、采用單片機內(nèi)部RTC模塊實現(xiàn)計時;
2、采用八位數(shù)碼管顯示時分秒;
3、可對時分秒分別進行加減設置,設置時對應數(shù)碼管閃爍;
4、可設置鬧鐘,并且到時間后蜂鳴器響;
5、鬧鐘鳴響時,按下任意按鍵可手動消除鬧鐘;
6、可以通過Proteus仿真或者實物演示。
資料下載鏈接:
通過網(wǎng)盤分享的文件:KEY_C0104
鏈接: https://pan.baidu.com/s/1iKdIqVMCHvNg0642rKrteA?pwd=vtrf
提取碼: vtrf
2.仿真設計
打開仿真工程,雙擊proteus中的單片機,選擇hex文件路徑,然后開始仿真。
開始仿真后,數(shù)碼管顯示12-00-50,分別代表時分秒。
默認鬧鐘時間12-01-00,時間到了之后鬧鐘響,指示燈亮。響鈴期間按下任意按鍵關(guān)掉鬧鐘。
按下設置鍵可對時分秒分別進行加減設置,設置時對應數(shù)碼管閃爍。
3.程序設計
程序是用keil5 mdk版本打開的,如果打開有問題,核實下keil的版本。程序是HAL版本編寫的,有stm32cubemx配置文件。有注釋可以結(jié)合講解視頻理解。
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(step==0){
//十進制格式
HAL_RTC_GetTime(&hrtc, &sTimeStructure, RTC_FORMAT_BIN); //RTC時間獲取函數(shù)
//十進制格式
HAL_RTC_GetDate(&hrtc, &sDateStructure, RTC_FORMAT_BIN); //RTC日期獲取函數(shù)
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(); //關(guān)蜂鳴器
LED_ALARM_STA_OFF();//指示燈滅
}
//格式轉(zhuǎn)換為字符串
memset(smgbuf, 0, sizeof(smgbuf));//清空數(shù)組
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);//延時一段時間,等待顯示穩(wěn)定
}else{//設置狀態(tài)下的顯示
memset(smgbuf, 0, sizeof(smgbuf));//清空數(shù)組
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);//延時一段時間,等待顯示穩(wěn)定
}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);//延時一段時間,等待顯示穩(wěn)定
}
}
}
/* USER CODE END 3 */
}
程序流程圖
4.設計報告
8272字設計報告,內(nèi)容包括設計目標、硬件設計、軟件設計、結(jié)論等。
隨著電子技術(shù)的飛速發(fā)展,智能家居和便攜式電子設備的需求日益增長,數(shù)字時鐘作為日常生活中不可或缺的一部分,其功能性和用戶體驗成為用戶關(guān)注的重點。本項目旨在設計一款基于STM32單片機的多功能數(shù)字時鐘鬧鐘,通過Proteus軟件進行仿真設計,實現(xiàn)時間顯示、時間設置、鬧鐘設置及響鈴提醒等功能,不僅提升了時鐘的基本計時功能,還增加了用戶交互性和實用性,對于學習STM32單片機應用、RTC(實時時鐘)模塊使用以及Proteus仿真技術(shù)具有重要意義。
5.原理圖PCB
下面是原理圖和PCB
6.實物圖
實物如下圖所示
7.下載鏈接
0、常見使用問題及解決方法–必讀?。。。?/p>
1、程序代碼
2、Proteus仿真
3、功能要求
4、開題報告
5、設計報告
6、框圖
7、講解視頻
Altium Designer 安裝破解
KEIL+proteus 單片機仿真設計教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡易使用教程
單片機學習資料
相關(guān)數(shù)據(jù)手冊
答辯技巧
設計報告常用描述
鼠標雙擊打開查找嘉盛單片機51 STM32單片機課程畢業(yè)設計.url
資料下載鏈接:
通過網(wǎng)盤分享的文件:KEY_C0104
鏈接: https://pan.baidu.com/s/1iKdIqVMCHvNg0642rKrteA?pwd=vtrf提取碼: vtrf
更多資源 點擊下方鏈接:
https://docs.qq.com/sheet/DS0xIa0llTmtNakRW
單片機學習資料
相關(guān)數(shù)據(jù)手冊
答辯技巧
設計報告常用描述
鼠標雙擊打開查找嘉盛單片機51 STM32單片機課程畢業(yè)設計.url
資料下載鏈接:
通過網(wǎng)盤分享的文件:KEY_C0104
鏈接: https://pan.baidu.com/s/1iKdIqVMCHvNg0642rKrteA?pwd=vtrf提取碼: vtrf