基于stm32f030f4芯片+ds3231+tm1640+16位數(shù)碼管+oled 萬年歷時鐘
由于此版本為代人開發(fā)的!所以只能開源基本代碼(刪除包括:OLED WIFI KEY 等外設代碼)!供大家研究!!!
制作出來的實物圖如下:
GPIO配置:
TM1640
DIN =PA1
SCLK=PA2
DS3231
SDA=PA3
SCL=PA4
單片機源程序如下:
- /*************************************************************************************
- //基于STM32F030F4P6+DS3231+TM1640 ****(此版本為刪減開源版本)
- //實現(xiàn)基本萬年歷時鐘
- //2022.03.10
- ****************************************************************************************/
- //#include "exti.h"
- //#include "oled.h"
- //#include "bmp.h"
- //#include "key.h"
- //#include "wifi.h"
- //#include "uart.h"
- #include "sys.h"
- #include "delay.h"
- #include "i2c.h"
- #include "DS3231.h"
- #include "TM1640.h"
- int main(void)
- {
- delay_init();
- I2C_GPIO_Config();
- DS3231_Init();
- TM1640_Init();
- // //Set_DS3231_Time(22,03,28,22,18,00,1);//22年03月20號14時00?分00秒星期日,初始化DS3231后注銷
- // key_Init();
- // uart_Init();
- // wifi_Init();
- // OLED_Init();
- // OLED_Clear();
- while(1)
- {
- Get_DS3231_Time();
- {
- /*/OLED12864顯示日期
- OLED_ShowString(0,0,"2",16); //2
- OLED_ShowString(10,0,"0",16); //0
- OLED_ShowChar(20,0,calendar.w_year/10+48,16);
- OLED_ShowChar(31,0,calendar.w_year%10+48,16);
- OLED_ShowCHinese(40,0,0);//年
- OLED_ShowChar(59,0,calendar.w_month/10+48,16);
- OLED_ShowChar(68,0,calendar.w_month%10+48,16);
- OLED_ShowCHinese(78,0,1);//月
- OLED_ShowChar(96,0,calendar.w_date/10+48,16);
- OLED_ShowChar(105,0,calendar.w_date%10+48,16);
- OLED_ShowCHinese(112,0,14);//日
- //OLED12864顯示時間
- OLED_Show16X32(0,2,calendar.hour/10);
- OLED_Show16X32(18,2,calendar.hour%10);
- OLED_Show16X32(33,2,10);
- OLED_Show16X32(48,2,calendar.min/10);
- OLED_Show16X32(64,2,calendar.min%10);
- OLED_Show16X32(80,2,10);
- OLED_Show16X32(95,2,calendar.sec/10);
- OLED_Show16X32(110,2,calendar.sec%10);
- //OLED_ShowCHinese(2,6,6);//
- //OLED_ShowCHinese(18,6,7);//
- OLED_ShowCHinese(0,6,2);//
- OLED_ShowCHinese(20,6,calendar.week+7); //星期
- //OLED_ShowChar(70,6,127,16); //
- OLED_ShowCHinese(45,6,4);//
- OLED_ShowCHinese(63,6,5);//
- OLED_ShowChar(79,6,calendar.temper_H/10+48,16);//
- OLED_ShowChar(88,6,calendar.temper_H%10+48,16);//顯示溫度
- OLED_ShowString(96,6,".",16);//.
- OLED_ShowChar(103,6,calendar.temper_L/10+48,16);//
- OLED_ShowCHinese(112,6,3);//C*/
- //*************************************TM1640-16位共陰數(shù)碼管顯示****************************************88888888
- // TM1640_display(0,calendar.w_year/10); //年
- // TM1640_display(1,calendar.w_year%10);//年
- // TM1640_display(2,11); //不顯示
- TM1640_display(0,calendar.w_month/10);
- TM1640_display(1,calendar.w_month%10);//月
- TM1640_display(2,11); //不顯示
- TM1640_display(3,calendar.w_date/10);
- TM1640_display(4,calendar.w_date%10);//日
- TM1640_display(5,11); //不顯?
- TM1640_display(6,11); //不顯?
- TM1640_display(7,calendar.week); //星期
- TM1640_display(8,calendar.hour/10);
- TM1640_display(9,calendar.hour%10);//時
- TM1640_display(10,10); //顯示"-"
- TM1640_display(11,calendar.min/10);
- TM1640_display(12,calendar.min%10);//分
- TM1640_display(13,10); //顯示"-"
- TM1640_display(14,calendar.sec/10);
- TM1640_display(15,calendar.sec%10);//秒
- }
- }
- }
復制代碼
Keil代碼下載:
STM32F030F4P6+TM1640+DS3231 萬年歷時鐘.7z
(195.71 KB, 下載次數(shù): 68)
2022-3-29 14:41 上傳
點擊文件名下載附件
|