久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 311|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32F030F4可充電的鋰電池桌面時(shí)鐘

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:14088 發(fā)表于 2025-4-26 22:41 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
3.7V鋰電池供電的0.8寸數(shù)碼管超亮數(shù)碼時(shí)鐘,點(diǎn)亮你的半個(gè)房間。電池充電使用TP4054,升壓電路使用RY3750這些元件在立創(chuàng)均有大量庫(kù)存。
夜晚效果圖
/**
******************************************************************************
* 文件名程: main.c
* 作    者: 東莞鄧凱哥
* 功    能: 主函數(shù)
* 硬    件: STM32F030F4P-DesktopClock-V0.1
* 說明:桌面數(shù)碼管時(shí)鐘
* 軟件版本 V0.0.1(2025/4/20 16:02)
******************************************************************************
**/
#include "main.h"
#include "user_gpio.h"
#include "user_seg.h"
#include "user_adc.h"
#include "user_i2c.h"
#include "user_rcc.h"
#include "type_ntc_tab.h"
#include "timepare.h"
#include "pcf8563.h"


RCC_ClocksTypeDef SRCC_CLOCK;



uint16_t ntc_val,adc_int,ntc_tmp,clpiont;
int16_t ntc_temp;

void seg_display_temp(int16_t data)
{
        if( data < 0 )
        {
                TM1629_DisplayChar(0, 0x11);  // 負(fù)溫度
        }else{
                TM1629_DisplayChar(0, 0x12);  // 正溫度
        }
        
        TM1629_DisplayChar(2, data%1000%100/10);                // 第三位帶小數(shù)點(diǎn)顯示
        TM1629_DisplayChar(4, data%1000%100%10);                  // 第一位顯示數(shù)字 0
}

void seg_display_clock(int16_t hours,int16_t min,uint8_t piont)
{
        TM1629_DisplayChar(8, hours/10);         
        if( piont )
        {
                TM1629_DisplayPiontChar(10, hours%10);         // 顯示中間點(diǎn) DP
        }else{
                TM1629_DisplayChar(10, hours%10);                 // 不顯示DP
        }
        TM1629_DisplayChar(12, min/10);         
        TM1629_DisplayChar(14, min%10);         
}


float Vx1,Rx1,NTC_t1,NTC_t2;
int main(void)
{
        user_rcc_init();
        RCC_GetClocksFreq(&SRCC_CLOCK);
        SysTick_Config(SRCC_CLOCK.SYSCLK_Frequency / 1000);
        user_output_init();
        user_adc_init();
        user_i2c1_init();
        TM1629_Init();
        
//        PCF8563_SetTime(25, 4, 16, 19, 02, 00,3);
               
        while (1)
        {
                if( TimePare.Tim1ms_flag == 1 )                //1ms任務(wù)
                {

                        TimePare.Tim1ms_flag = 0;
                        if( ++TimePare.Tim10ms_count >= 10 )
                        {
                                TimePare.Tim10ms_count = 0;
                                TimePare.Tim10ms_flag = 1;
                        }
                        
                        if( ++TimePare.Tim50ms_count >= 50 )
                        {
                                TimePare.Tim50ms_count = 0;
                                TimePare.Tim50ms_flag = 1;
                        }
                }
               
               
               
                if( TimePare.Tim10ms_flag == 1 )        //10ms 任務(wù)
                {

                        TimePare.Tim10ms_flag = 0;
                        if( ++TimePare.Tim100ms_count >= 10 )
                        {
                                TimePare.Tim100ms_count = 0;
                                TimePare.Tim100ms_flag = 1;
                        }
                        
                        if( ++TimePare.Tim200ms_count >= 20 )
                        {
                                TimePare.Tim200ms_count = 0;
                                TimePare.Tim200ms_flag = 1;
                        }
                }
               
               
                if( TimePare.Tim50ms_flag == 1 )        //50ms 任務(wù)
                {
                        
                        TimePare.Tim50ms_flag = 0;
                }
               
                if( TimePare.Tim100ms_flag == 1 )        //100ms 任務(wù)
                {
                        
                        TimePare.Tim100ms_flag = 0;
                        if( ++TimePare.Tim500ms_count >= 5 )
                        {
                                TimePare.Tim500ms_count = 0;
                                TimePare.Tim500ms_flag = 1;
                        }
                }
               
                if( TimePare.Tim200ms_flag == 1 )        //200ms 任務(wù)
                {
                        TimePare.Tim200ms_flag = 0;
                }
               
                if( TimePare.Tim500ms_flag == 1 )        //500ms 任務(wù)
                {
                        PCF8563_GetTime();
                        seg_display_temp(ntc_temp);
                        clpiont ++;
                        if( clpiont == 1)
                        {
                                seg_display_clock(Times[4],Times[5],1);
                        }else if(clpiont >= 2)
                        {
                                seg_display_clock(Times[4],Times[5],0);
                                clpiont = 0;
                        }
                        TimePare.Tim500ms_flag = 0;
                        if( ++TimePare.Tim1s_count >= 2 )
                        {
                                TimePare.Tim1s_count = 0;
                                TimePare.Tim1s_flag = 1;
                        }
                        
                        if( ++TimePare.Tim4s_count >= 8 )
                        {
                                TimePare.Tim4s_count = 0;
                                TimePare.Tim4s_flag = 1;
                        }
                }
               
                if( TimePare.Tim1s_flag == 1 )                //1000ms 任務(wù)
                {
                        TimePare.Tim1s_flag = 0;
                }
               
                if( TimePare.Tim4s_flag == 1 )                //4000ms 任務(wù)
                {
                        TimePare.Tim4s_flag = 0;
                }
        }
}

void DMA1_Channel1_IRQHandler()
{
        if( DMA_GetITStatus(DMA1_IT_TC1) )
        {
                ntc_tmp += ADC_Buffer[0];
                adc_int++;
                if(adc_int>=16)
                {
                        ntc_val = ntc_tmp>>4;
                        adc_int = 0;
                        ntc_tmp = 0;
                        ntc_temp = get_type_ntc_temp(ntc_val);
                }
                DMA_ClearITPendingBit(DMA1_IT_TC1); //清除DMA1通道1傳輸結(jié)束標(biāo)志
        }
}

202504265.jpg (2.45 MB, 下載次數(shù): 0)

202504265.jpg

202504264.jpg (1.99 MB, 下載次數(shù): 0)

202504264.jpg

202504263.jpg (1.99 MB, 下載次數(shù): 0)

202504263.jpg

202504262.jpg (2.63 MB, 下載次數(shù): 0)

202504262.jpg

STM32F030F4_Desktop_Clock_V0.1.7z

931.49 KB, 下載次數(shù): 0, 下載積分: 黑幣 -5

Schematic_STM32F030F4_Desktop_Clock_V0.1_2025-04-26.pdf

177.46 KB, 下載次數(shù): 0, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日日操夜夜干 | 欧美日韩国产三级 | 色婷婷精品国产一区二区三区 | 中文字幕第90页 | 99资源 | 伊人一区 | 九九伊人sl水蜜桃色推荐 | 不卡一区 | 中文字幕视频在线看 | 欧美亚州综合 | 久久一区精品 | 欧美一区二区三区四区在线 | 国产传媒视频在线观看 | 成人福利网 | 午夜欧美一区二区三区在线播放 | 超碰成人免费观看 | 欧美美女一区二区 | 午夜免费观看网站 | 免费成人高清 | 伊人性伊人情综合网 | 亚州一区二区三区 | 日韩毛片在线免费观看 | 日本一道本 | 亚洲大片一区 | 天天操狠狠操 | 久久久成人精品 | 欧美男人天堂 | 男女午夜激情视频 | 日韩视频一区二区 | 免费黄色片在线观看 | 亚洲成人一区二区三区 | 成人久久18免费网站麻豆 | 麻豆精品国产91久久久久久 | 中文字幕不卡在线88 | 美女操网站 | 中文字幕在线一区 | 色爱综合网 | 成人伊人 | 亚洲综合色丁香婷婷六月图片 | 亚洲精品视频在线看 | 免费黄色片在线观看 |