仿真:protues 8.9
編程語(yǔ)言:C語(yǔ)言
編號(hào)C0003
題目要求:
1.具有顯示年、月、日、時(shí)、分、秒功能;
2.能計(jì)算并顯示星期;
3.能手動(dòng)調(diào)整時(shí)間,設(shè)置鬧鐘;
4.具有鬧鐘功能,時(shí)間到聲光報(bào)警(蜂鳴器嘟嘟嘟,LED燈閃爍)。
講解視頻:
仿真圖(提供源文件):
原理圖(提供源文件):
PCB(提供源文件):
程序(提供源文件源碼):
以下為部分程序:
int main(void)
{
bool i = 0;
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();//系統(tǒng)時(shí)鐘初始化
delay_init(10);//初始化延時(shí)函數(shù)
TIM3_Init(2400-1, 72-1);// 10ms 定時(shí)器初始化
MX_RTC_Init(); //STM32內(nèi)部RTC初始化
Key_Init();//按鍵初始化
Beep_Init();//聲光報(bào)警初始化
LCD_Init();//LCD1602初始化
sAlrm_g.Alm_Hour = 0;//鬧鐘時(shí)間 時(shí)
sAlrm_g.Alm_Min = 0;//鬧鐘時(shí)間 分
sAlrm_g.Alm_Sec = 10;//鬧鐘時(shí)間 秒
while(1)
{
switch(set_mode)//設(shè)置模式
{
case 0:
HAL_RTC_GetDate(&hrtc, &sDate_g, RTC_FORMAT_BIN);//得到RTC的年月日
HAL_RTC_GetTime(&hrtc, &sTime_g, RTC_FORMAT_BIN); //得到RTC的時(shí)分秒
Conv_Disp_Data(0);//參數(shù)0 得到全部顯示數(shù)據(jù)
LCD_write_string(0, 0, (char*)temp_line_one);//LCD1602第一行顯示
LCD_write_string(0, 1, (char*)temp_line_two);//LCD1602第二行顯示
break;
case 1://設(shè)置年份
Conv_Disp_Data(i*1);//i是1 屏蔽掉年份顯示。i是0,顯示年份。通過對(duì)i的取反實(shí)現(xiàn)年份閃縮
i = !i;//i取反
LCD_write_string(0, 0, (char*)temp_line_one);//LCD1602第一行顯示
break;
case 2://設(shè)置月份
Conv_Disp_Data(i*2);
i = !i;
LCD_write_string(0, 0, (char*)temp_line_one);
break;
case 3://設(shè)置日份
Conv_Disp_Data(i*3);
i = !i;
LCD_write_string(0, 0, (char*)temp_line_one);
break;
case 4://設(shè)置時(shí)間
Conv_Disp_Data(i*4);
i = !i;
LCD_write_string(0, 0, (char*)temp_line_one);
break;
case 5://設(shè)置分鐘
Conv_Disp_Data(i*5);
i = !i;
LCD_write_string(0, 0, (char*)temp_line_one);
break;
case 6://設(shè)置秒
Conv_Disp_Data(i*6);
i = !i;
LCD_write_string(0, 0, (char*)temp_line_one);
break;
case 7://設(shè)置鬧鐘時(shí)鐘
Conv_Disp_Data(i*7);
i = !i;
LCD_write_string(0, 1, (char*)temp_line_two);
break;
case 8://設(shè)置鬧鐘分鐘
Conv_Disp_Data(i*8);
i = !i;
LCD_write_string(0, 1, (char*)temp_line_two);
break;
case 9://設(shè)置鬧鐘秒鐘
Conv_Disp_Data(i*9);
i = !i;
LCD_write_string(0, 1, (char*)temp_line_two);
break;
default:
break;
}
if( (sTime_g.Hours == sAlrm_g.Alm_Hour) && (sTime_g.Minutes == sAlrm_g.Alm_Min) && (sTime_g.Seconds == sAlrm_g.Alm_Sec) )//判斷鬧鐘時(shí)間
{
for(uint8_t j = 0; j < 10; j++)//執(zhí)行十次
{
LED2_TOG();//LED2翻轉(zhuǎn),蜂鳴器嘟嘟嘟報(bào)警
HAL_Delay(300);
}
}
HAL_Delay(100);//延時(shí)
}
}
上一篇:STM32看門狗定時(shí)器的工作原理和作用 看門狗定時(shí)器的特性
下一篇:簡(jiǎn)述串口通信原理 stm32串口發(fā)送數(shù)據(jù) 如何通過串口發(fā)送數(shù)據(jù)
推薦閱讀最新更新時(shí)間:2025-06-26 16:36






- 熱門資源推薦
- 熱門放大器推薦
-
【Follow me第三季第一期】STM32F429I-DISC1任務(wù)匯總
-
【Follow me第三季第1期】任務(wù)三:Arduino環(huán)境運(yùn)動(dòng)傳感器數(shù)據(jù)讀取
-
【Follow me 第三季第1期】任務(wù)二——Arduino控制板載LED燈,并實(shí)現(xiàn)呼吸燈效果
-
【Follow me 第三季第1期】任務(wù)一 源碼-——Arduino環(huán)境Hello EEWorld
-
射頻電路設(shè)計(jì)
-
通信廣播電路原理與應(yīng)用
-
收音機(jī)選擇性和諧振電路
-
基于51單片機(jī)的壓力檢測(cè)報(bào)警
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級(jí)數(shù)字信號(hào)控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁(yè)和arduino的通訊
- ESP32 freeRTOS使用測(cè)試
- DI-70 - PoE檢測(cè)和分類(0類)接口電路
- 使用 Cypress Semiconductor 的 MB3775 的參考設(shè)計(jì)
- DC1369A-E,LTC2257-14 演示板,14 位 40 Msps ADC,LVDS 輸出,5-170MHz
- 使用 Analog Devices 的 ADP1823ACPZ 的參考設(shè)計(jì)
- 使用 Analog Devices 的 LT1634CCZ-5 的參考設(shè)計(jì)
- FEBFAN25800-MPSLDO1-GEVB:500 mA 低 IQ、低噪聲、LDO 穩(wěn)壓器
- TLV431C 低壓精密可調(diào)并聯(lián)穩(wěn)壓器的典型應(yīng)用
- AM2G-2412DH30Z ±12V 2 瓦 DC-DC 轉(zhuǎn)換器的典型應(yīng)用,用于開/關(guān)控制應(yīng)用
- LTC3634HFE 降壓穩(wěn)壓器的典型應(yīng)用電路,具有使用兩個(gè)輸入電源的 2 相 VTT 終端
- 使用 ROHM Semiconductor 的 BP5222A 的參考設(shè)計(jì)
- Galaxy Z Flip3銷量好:三星可能取消Galaxy S21 FE發(fā)布
- 美國(guó)5G爭(zhēng)奪戰(zhàn):AT&T懇請(qǐng)F(tuán)CC阻止頻譜資源被T-Mobile或Verizon壟斷
- Melexis 和 emotion3D 通力合作集成了 DMS 和 HUD 動(dòng)態(tài)對(duì)象校正
- 破局EDA數(shù)字仿真器 合見工軟演繹速度與激情
- moto edge X30關(guān)閉預(yù)售:聲稱已賣光庫(kù)存
- 智能數(shù)字壓力校驗(yàn)儀
- PWM輸出實(shí)驗(yàn)詳細(xì)示例
- Keysight是德科技E5062A射頻網(wǎng)絡(luò)分析儀,300 kHz 至 3 GHz
- Littelfuse推出用于表面安裝式封裝的新LTKAK2-L系列大功率瞬態(tài)抑制二極管
- 一汽5億元成立科技子公司 加速布局AI與機(jī)器人領(lǐng)域
- 海爾周云杰:未來可能布局人形機(jī)器人,會(huì)與宇樹科技探討合作
- 豐田推出全新動(dòng)力系統(tǒng)Land Cruiser Hybrid 48V
- 500Wh/kg!鋰電巨頭60Ah硫化物全固態(tài)電池即將批量交付!
- AI重構(gòu)汽車大腦,得一微存力芯片賦能“移動(dòng)智能體”
- 激光雷達(dá),打開新“門”
- 博世發(fā)布全球首款內(nèi)置藍(lán)牙接口的MEMS胎壓監(jiān)測(cè)傳感器
- 自動(dòng)駕駛汽車接管邏輯如何設(shè)置更為合理?
- 車載網(wǎng)絡(luò)技術(shù)詳解 —— 車載網(wǎng)絡(luò)系統(tǒng)基礎(chǔ)
- 創(chuàng)新引領(lǐng)未來,是德科技年度技術(shù)盛會(huì)在上海圓滿舉行
- 8.TouchGFX界面應(yīng)用之自定義容器
- 9.TouchGFX界面應(yīng)用之綜合應(yīng)用--打地鼠
- MPLAB X IDE v3.40軟件安裝教程
- 在MPLAB X IDE v3.40導(dǎo)入MPLAB IDE 8項(xiàng)目
- 在MPLAB X IDE v3.40中設(shè)置配置位
- ATmega32 復(fù)位源
- ATmega32 上電復(fù)位
- Digi-Key 第 13 屆年度 DigiWish 如愿以償活動(dòng)和節(jié)日禮物指南
- 國(guó)產(chǎn)首個(gè)4K級(jí)高性能GPU “風(fēng)華1號(hào)”重磅發(fā)布,性能實(shí)現(xiàn)突破
- ATmega32 外部復(fù)位