国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32制作萬年歷

這篇具有很好參考價值的文章主要介紹了STM32制作萬年歷。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

? ? STM32萬年歷制作指南

一、概述

STM32是一種常用的微控制器,具有強大的處理能力和低功耗特性,非常適合用于制作各種電子設備。本文將介紹如何使用STM32制作一款簡易的萬年歷,幫助您輕松查看日期、時間和農歷等信息。

二、所需材料

1. STM32微控制器(建議使用STM32F103C8型號)
2. 液晶顯示屏(LCD或OLED)
3. 按鍵或觸摸屏
4. 農歷數(shù)據(jù)(可通過網(wǎng)絡下載或購買已編譯好的數(shù)據(jù)文件)
5. 杜邦線、螺絲刀等必備工具

三、制作步驟

1. 連接硬件:將STM32微控制器與液晶顯示屏通過杜邦線連接,按鍵或觸摸屏接入STM32的GPIO口。
2. 編寫程序:編寫STM32程序,實現(xiàn)讀取農歷數(shù)據(jù)、顯示日期、時間、星期幾和節(jié)氣等信息。程序應包括中斷服務程序,用于處理按鍵或觸摸屏輸入。

1)代碼

int main()
{			
	  delay_init();	    	 //延時函數(shù)初始化	  
	  NVIC_Configuration(); 	 //設置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應優(yōu)先級 
	  LED_Init();			     //LED端口初始化
	  OLED_Init();			//初始化OLED  
	  OLED_Clear()  	; 
	  USART_Config();		
	
	  Key_GPIO_Config();

		/* 配置RTC秒中斷優(yōu)先級 */
	  RTC_NVIC_Config();
	  RTC_CheckAndConfig(&systmtime);
	
	  while (1)
	  {
	    /* 每過1s 更新一次時間*/
	    if (TimeDisplay == 1)
	    {
				/* 當前時間 */
	      Time_Display( RTC_GetCounter(),&systmtime); 		  
	      TimeDisplay = 0;
	    }
			
			//按下按鍵,通過串口修改時間
			if( Key_Scan(KEY1_GPIO_PORT,KEY1_GPIO_PIN) == KEY_ON  )
			{
				struct rtc_time set_time;

				/*使用串口接收設置的時間,輸入數(shù)字時注意末尾要加回車*/
				Time_Regulate_Get(&set_time);
				/*用接收到的時間設置RTC*/
				Time_Adjust(&set_time);
				
				//向備份寄存器寫入標志
				BKP_WriteBackupRegister(RTC_BKP_DRX, RTC_BKP_DATA);

			} 			
	  }
}

主函數(shù)就這么多,比較簡單,就是初始化了一下OLED,配置了一下RTC,這些代碼都比較好找到,下面來看看Time_display的具體代碼:

/*
 * 函數(shù)名:Time_Display
 * 描述  :顯示當前時間值
 * 輸入  :-TimeVar RTC計數(shù)值,單位為 s
 * 輸出  :無
 * 調用  :內部調用
 */	
void Time_Display(uint32_t TimeVar,struct rtc_time *tm)
{
	   static uint32_t FirstDisplay = 1;
	   uint32_t BJ_TimeVar;
	   uint8_t str[200]; // 字符串暫存  	

	   /*  把標準時間轉換為北京時間*/
	   BJ_TimeVar =TimeVar + TIME_ZOOM;

	   to_tm(BJ_TimeVar, tm);/*把定時器的值轉換為北京時間*/	
	
	  if((!tm->tm_hour && !tm->tm_min && !tm->tm_sec)  || (FirstDisplay))
	  {
	      
	      GetChinaCalendar((u16)tm->tm_year, (u8)tm->tm_mon, (u8)tm->tm_mday, str);	
					printf("\r\n 今天新歷:%0.2d%0.2d,%0.2d,%0.2d", str[0], str[1], str[2],  str[3]);
			    OLED_ShowString(1,0,"RTC",16);  
			  	OLED_ShowCHinese(28,0,0);//景
		      OLED_ShowCHinese(46,0,1);//園
	      	OLED_ShowCHinese(64,0,2);//電
		      OLED_ShowCHinese(82,0,3);//子
			    OLED_ShowString(1,2,"Design by ZF",16); 
		    //  OLED_ShowCHinese(88,0,5);//科
		    //  OLED_ShowCHinese(104,0,6);//技
			    
	
	      GetChinaCalendarStr((u16)tm->tm_year,(u8)tm->tm_mon,(u8)tm->tm_mday,str);
					printf("\r\n 今天農歷:%s\r\n", str);
	
	     if(GetJieQiStr((u16)tm->tm_year, (u8)tm->tm_mon, (u8)tm->tm_mday, str))
					printf("\r\n 今天農歷:%s\r\n", str);
			 
	
	      FirstDisplay = 0;
	  }	 	  	

	  /* 輸出時間戳,公歷時間 */
	  printf(" UNIX時間戳 = %d 當前時間為: %d年(%s年) %d月 %d日 (星期%s)  %0.2d:%0.2d:%0.2d\r",TimeVar,
	                    tm->tm_year, zodiac_sign[(tm->tm_year-3)%12], tm->tm_mon, tm->tm_mday, 
	                    WEEK_STR[tm->tm_wday], tm->tm_hour, 
	                    tm->tm_min, tm->tm_sec);
		   OLED_ShowNum(0,4,tm->tm_year,4,16); 
	   	 OLED_ShowCHinese(33,4,4);//電
			 OLED_ShowNum(51,4,tm->tm_mon,2,16); 
		   OLED_ShowCHinese(69,4,5);//電
		   OLED_ShowNum(87,4,tm->tm_mday,2,16); 
		   OLED_ShowCHinese(105,4,6);//電
		   OLED_ShowNum(0,6,tm->tm_hour,2,16); 
		   OLED_ShowString(18,6,":",16);
		   OLED_ShowNum(37,6,tm->tm_min,2,16); 
		   OLED_ShowString(55,6,":",16);
		   OLED_ShowNum(74,6,tm->tm_sec,2,16); 
}

3. 調試與優(yōu)化:進行程序調試和優(yōu)化,確保萬年歷能夠正確顯示信息。
4. 連接電源:為STM32和液晶顯示屏等硬件連接電源。
5. 包裝測試:完成以上步驟后,對萬年歷進行包裝,并進行測試,確保其正常運行。

四、注意事項

1. 在下載農歷數(shù)據(jù)時,請確保數(shù)據(jù)來源可靠,以免中毒或使用盜版數(shù)據(jù)。
2. 在連接液晶顯示屏時,請務必使用絕緣膠帶固定線纜,以防短路。
3. 在調試和優(yōu)化程序時,請備份原始程序,以防意外丟失數(shù)據(jù)。

五、功能擴展

1. 添加時間提醒功能:可設置鬧鐘,在特定日期或節(jié)氣前提醒用戶。
2. 顯示更多信息:如公歷閏年、農歷閏月、節(jié)氣名稱等。
3. 藍牙或WiFi通信:可通過藍牙或WiFi從互聯(lián)網(wǎng)獲取最新農歷數(shù)據(jù),實現(xiàn)實時更新。


?文章來源地址http://www.zghlxwxcb.cn/news/detail-768972.html

到了這里,關于STM32制作萬年歷的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 基于Java的萬年歷(課設)

    基于Java的萬年歷(課設)

    資源鏈接:基于Java的萬年歷(課設) 摘 要 Java編程語言自誕生十幾年來,已經(jīng)成功地運用在網(wǎng)絡計算及移動等各個領域。對于開發(fā)者來說,它具有簡單、面向對象、健壯、安全、結構中立、可移植和高效能等眾多優(yōu)點。此次我們用JAVA來設計一個萬年歷程序,該程序以網(wǎng)頁形

    2024年02月11日
    瀏覽(25)
  • 單片機萬年歷實現(xiàn)(報告+源碼)

    單片機萬年歷實現(xiàn)(報告+源碼)

    摘要 ????????近年來隨著計算機在社會領域的滲透和大規(guī)模集成電路的發(fā)展,單片機的應用正在不斷地走向深入,由于它具有功能強,體積小,功耗低,價格便宜,工作可靠,使用方便等特點,因此特別適合于與控制有關的系統(tǒng),越來越廣泛地應用于自動控制,消費電子

    2024年02月07日
    瀏覽(31)
  • C語言課設萬年歷

    C語言課設萬年歷

    1.該程序可以輸出某年的全部月份,也可以輸出某月的全天日歷。 2.輸入年月日輸出距今天還有多少天,星期幾,是否是公歷節(jié)日。 注:分代碼應以.h的形式分開才保證正常運行。 ? ? ? ? 總天數(shù)的算法:首先用if語句判斷定義年到輸入年之間每一年是否為閏年,若是,該年的

    2024年02月11日
    瀏覽(22)
  • 萬年歷【小游戲】(Java課設)

    萬年歷【小游戲】(Java課設)

    Java實現(xiàn)的小游戲 適合作為Java課設?。?! jdk1.8+Idea或eclipse 本系統(tǒng)源碼地址:https://download.csdn.net/download/qq_50954361/87801830 更多Java課設系統(tǒng)源碼地址:更多Java課設系統(tǒng)源碼地址 更多Java小游戲運行效果展示:更多Java小游戲運行效果展示 Java課設部署教程:Java課設部署教程 注意事

    2024年02月15日
    瀏覽(14)
  • 基于FPGA的電子萬年歷設計

    基于FPGA的電子萬年歷設計

    quartusii12.1 系統(tǒng)的整個結構框圖: ?然后,設置控制輸入有5個腳,分析功能如下所示: i_Function_Controller=0 ;顯示年月日 i_sel:選擇需要調整的某位數(shù)字。 i_set:計數(shù)器,調整需要調整的位置的數(shù)字。 具體調整的時候,首先選擇i_sel,按鍵按一下,需要調整的位置會移動一次,

    2024年02月03日
    瀏覽(25)
  • 基于51單片機的萬年歷設計

    基于51單片機的萬年歷設計

    目? 錄 前言....................................................................... 1 1 緒論..................................................................... 3 1.1 課題研究的背景..................................................... 3 1.2課題的研究目的與意義................................................ 3 1.3課題解決的主要內

    2024年02月02日
    瀏覽(32)
  • PTA6-6 萬年歷顯示函數(shù)

    設計一個萬年歷,當用戶輸入年份和月份時,顯示這個月的日歷表。程序重點是這個月的第一天是星期幾和這個月有幾天,有了這兩個值,只需通過排列,就可以顯示這個日歷。程序要求用戶輸入的年份是從1900年開始,已知1900年1月1日是星期一。 日歷中每個具體的日期占5個

    2024年01月16日
    瀏覽(31)
  • FPGA項目(12)——基于FPGA的萬年歷設計

    FPGA項目(12)——基于FPGA的萬年歷設計

    ? ? ? ? 首先稱述一下所實現(xiàn)的功能:可以顯示年、月、日、時、分、秒,有鬧鐘設置功能,鬧鐘時間到時,蜂鳴器響,報警。用6位數(shù)碼管進行顯示,分三個顯示頁面,第一個頁面顯示年月日,第二個界面顯示時分秒,第三個頁面顯示鬧鐘時間。可以用按鍵進行翻頁,按鍵進

    2024年02月07日
    瀏覽(31)
  • FPGA開發(fā)(基于Quartus II)萬年歷,簡單代碼

    FPGA開發(fā)(基于Quartus II)萬年歷,簡單代碼

    ???設計一個基于FPGA的電子萬年歷。設計的主要任務是在Quartus?II開發(fā)環(huán)境中完成電子萬年歷系統(tǒng)FPGA內部各電路模塊的設計,包括各個模塊的設計輸入、編譯、仿真、驗證和硬件測試任務。具體要求如下: 能實現(xiàn)2 4 小時、6 0 分、6 0 秒的基本計時功能,格式為0 8 - 56 - 36 :時

    2024年02月04日
    瀏覽(71)
  • 用C語言實現(xiàn)萬年歷的代碼及思路(詳細教程)

    1.當選擇1的時候,輸入 年 ,打印輸入的這一年12月的日歷。 2.當選擇2的時候,輸入 年-月 ,打印輸入這一年這一月的日歷。 實現(xiàn)效果: 選擇1時 選擇2時 C語言根據(jù)日期判斷星期幾(使用基姆拉爾森計算公式) 算法如下: 基姆拉爾森計算公式 W= (d+2 m+3 (m+1)/5+y+y/4-y/100+y/400)%

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包