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

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

QQ登錄

只需一步,快速開(kāi)始

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

STC8H3K64S2單片機(jī)制作oled12832USB電壓電流容量表

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
設(shè)計(jì)目的(聲明:僅作為個(gè)人參考用,希望能多給我點(diǎn)積分以便于下載更多的學(xué)習(xí)資料,謝謝):
    本設(shè)計(jì)為了方便的觀察手機(jī)及其他設(shè)備充電時(shí)所輸出的電流電壓大小,可進(jìn)行功耗、充電時(shí)間、及充電容量的計(jì)算。參數(shù):輸入電壓:5-25v,輸入電流0-3A
設(shè)計(jì)說(shuō)明:
    采用STC8H3K64S2單片機(jī)的12位adc進(jìn)行電壓及電流 程序代碼已完成顯示wmahwh.zip (386.82 KB, 下載次數(shù): 81)

USB電壓電流檢測(cè)儀圖紙.zip (106.04 KB, 下載次數(shù): 58)

的采樣,用0.91英寸的OLED屏幕來(lái)進(jìn)行顯示。用嘉立創(chuàng)eda進(jìn)行設(shè)計(jì)。先看成品如下(具體見(jiàn)附件哈哈):


原理圖:
PCB圖:


代碼部分截圖(具體見(jiàn)附件):

#include "STC8xxxx.H"
#include "oled.h"
#include "bmp.h"
#include        "config.h"
#include        "adc.h"
#include        "gpio.h"
#include        "delay.h"

#define N 8        //ADC采樣使用遞推平均濾波算法,采樣次數(shù)
                u8        i;
        u16        j;
           u32 sum=0;  //數(shù)值和
                u32 sum1=0;  //數(shù)值和
                u16 cut=0;  //采樣次數(shù)
         u16 cu=0;//平均數(shù)
                        u16 ca=0;//平均數(shù)
                         u16 u1=0;
   u16 u2=0;
    u16 u3=0;
   u16 a1=0;
   u16 a2=0;
   u16 a3=0;


/*************        功能說(shuō)明        **************

本例程基于STC8H8K64U為主控芯片的實(shí)驗(yàn)箱8進(jìn)行編寫(xiě)測(cè)試,STC8G、STC8H系列芯片可通用參考.

本程序演示多路ADC查詢(xún)采樣,通過(guò)串口2發(fā)送給上位機(jī),波特率115200,N,8,1。

下載時(shí), 選擇時(shí)鐘 22.1184MHz (可以在配置文件"config.h"中修改).

******************************************/


/*************        本地常量聲明        **************/
  unsigned int  ADC_Buf[N+1];                //采樣數(shù)組mA
  unsigned char num,ADCcount=0,ADCcount2=0;        //ADC采樣次數(shù)變量

/*************        本地變量聲明        **************/


/*************        本地函數(shù)聲明        **************/


/*************  外部函數(shù)和變量聲明 *****************/


/******************* IO配置函數(shù) *******************/
void        GPIO_config(void)
{
        GPIO_InitTypeDef        GPIO_InitStructure;                //結(jié)構(gòu)定義
        //AD口設(shè)置為輸入口
        GPIO_InitStructure.Pin  = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;                //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7
        GPIO_InitStructure.Mode = GPIO_HighZ;        //指定IO的輸入或輸出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
        GPIO_Inilize(GPIO_P1,&GPIO_InitStructure);        //初始化

        GPIO_InitStructure.Pin  = GPIO_Pin_6 | GPIO_Pin_7;                //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7
        GPIO_InitStructure.Mode = GPIO_PullUp;        //指定IO的輸入或輸出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
        GPIO_Inilize(GPIO_P4,&GPIO_InitStructure);        //初始化
}

/******************* AD配置函數(shù) *******************/
void        ADC_config(void)
{
        ADC_InitTypeDef                ADC_InitStructure;                //結(jié)構(gòu)定義
        ADC_InitStructure.ADC_SMPduty   = 31;                //ADC 模擬信號(hào)采樣時(shí)間控制, 0~31(注意: SMPDUTY 一定不能設(shè)置小于 10)
        ADC_InitStructure.ADC_CsSetup   = 0;                //ADC 通道選擇時(shí)間控制 0(默認(rèn)),1
        ADC_InitStructure.ADC_CsHold    = 1;                //ADC 通道選擇保持時(shí)間控制 0,1(默認(rèn)),2,3
        ADC_InitStructure.ADC_Speed     = ADC_SPEED_2X1T;                //設(shè)置 ADC 工作時(shí)鐘頻率        ADC_SPEED_2X1T~ADC_SPEED_2X16T
        ADC_InitStructure.ADC_Power     = ENABLE;                                //ADC功率允許/關(guān)閉        ENABLE,DISABLE
        ADC_InitStructure.ADC_AdjResult = ADC_RIGHT_JUSTIFIED;        //ADC結(jié)果調(diào)整,        ADC_LEFT_JUSTIFIED,ADC_RIGHT_JUSTIFIED
        ADC_InitStructure.ADC_Priority    = Priority_0;                        //指定中斷優(yōu)先級(jí)(低到高) Priority_0,Priority_1,Priority_2,Priority_3
        ADC_InitStructure.ADC_Interrupt = DISABLE;                        //中斷允許        ENABLE,DISABLE
        ADC_Inilize(&ADC_InitStructure);                                        //初始化
        ADC_PowerControl(ENABLE);                                                        //單獨(dú)的ADC電源操作函數(shù), ENABLE或DISABLE
}
void        ADCCL(void)
{


        if(cut<20000)
        {                  
        Get_ADCResult(1);  //電流
        Get_ADCResult(2); //電壓
        sum1+=Get_ADCResult(1);
        sum+=Get_ADCResult(2);

        cut++;
        
        }
      if(cut>=20000)
          {
           cu=sum/20000;
           ca=sum1/20000;
           sum=0;
           sum1=0;
           cut=0;
            cu=cu*0.902077193; //ADC平均值轉(zhuǎn)化成電壓值
                //        OLED_ShowNum(0,2,cu,7,16);
                   u1=cu/100;        //
                         OLED_ShowNum(0,0,u1,2,16);//整數(shù)部分電壓值
                   u2=cu%100/10;
                        OLED_ShowNum(20,0,u2,1,16);         //小數(shù)部分1位電壓值                  
                          u3=cu%1000;                                         
                        OLED_ShowNum(28,0,u3,1,16);         ////小數(shù)部分2位電壓值
               
                         ca=ca*0.20143615924092;        //ADC平均值轉(zhuǎn)化成mA電流值
                         a1=ca/100;        //
                         OLED_ShowNum(75,0,a1,2,16);//整數(shù)部分電流值
                   a2=ca%100/10;
                        OLED_ShowNum(95,0,a2,1,16);         //小數(shù)部分1位電電流值                  
                          a3=ca%1000;                                         
                        OLED_ShowNum(103,0,a3,1,16);         ////小數(shù)部分2位電流值
                //        OLED_ShowNum(75,2,ca,4,16);
          }      
         
                        
               

               



}

/**********************************************/
void main(void)
{
//        u8        i;
//        u16        j;
        
        GPIO_config();

        ADC_config();
        EA = 1;
        P3M1 = 0x00;
        P3M0 = 0x00;
        OLED_Init();//初始化OLED
        OLED_ColorTurn(0);//0正常顯示,1 反色顯示
   OLED_DisplayTurn(0);//0正常顯示 1 屏幕翻轉(zhuǎn)顯示
          OLED_Clear();
        OLED_ShowString(17,0,".",16);
                OLED_ShowString(40,0,"V",16);
                OLED_ShowString(112,0,"A",16);
                OLED_ShowString(91,0,".",16);
        
        while (1)
        {
           
//                OLED_ShowString(0,2,"T:",16);
//                OLED_ShowString(16,2,"00:00",16);
//                OLED_ShowString(70,2,"5000",16);
//                OLED_ShowString(102,2,"mAh",16);
                          ADCCL();
               
                //        delay_ms(250);

               
               
        
        }
}

評(píng)分

參與人數(shù) 2黑幣 +60 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!
jialishoushi + 10 很給力!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:35873 發(fā)表于 2023-12-3 04:58 | 只看該作者
謝謝分享 手上還有好幾個(gè)這屏 得閑了也整個(gè)玩玩
回復(fù)

使用道具 舉報(bào)

板凳
ID:672765 發(fā)表于 2023-12-3 13:02 | 只看該作者
jialishoushi 發(fā)表于 2023-12-3 04:58
謝謝分享 手上還有好幾個(gè)這屏 得閑了也整個(gè)玩玩

可以的,哈哈
回復(fù)

使用道具 舉報(bào)

地板
ID:1086066 發(fā)表于 2023-12-5 09:40 | 只看該作者
樓主高手,準(zhǔn)備買(mǎi)元件做一個(gè)。
回復(fù)

使用道具 舉報(bào)

5#
ID:430492 發(fā)表于 2023-12-6 09:26 | 只看該作者
樓主高手,動(dòng)手設(shè)計(jì)就成功一半!
回復(fù)

使用道具 舉報(bào)

6#
ID:672765 發(fā)表于 2023-12-6 20:12 | 只看該作者
ycw701123 發(fā)表于 2023-12-5 09:40
樓主高手,準(zhǔn)備買(mǎi)元件做一個(gè)。

可以的,有問(wèn)題可以隨時(shí)交流
回復(fù)

使用道具 舉報(bào)

7#
ID:672765 發(fā)表于 2023-12-6 20:16 | 只看該作者
cooleaf 發(fā)表于 2023-12-6 09:26
樓主高手,動(dòng)手設(shè)計(jì)就成功一半。

哈哈,還得多多學(xué)習(xí),
回復(fù)

使用道具 舉報(bào)

8#
ID:1087912 發(fā)表于 2023-12-20 21:24 | 只看該作者
請(qǐng)問(wèn),用的是什么型號(hào)的屏?
回復(fù)

使用道具 舉報(bào)

9#
ID:371734 發(fā)表于 2024-3-29 22:15 | 只看該作者
樓主高手  學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲va视频 | a级片在线观看 | 国产精品久久久久久久 | 亚洲欧美日韩一区二区 | 亚洲激情综合网 | 天堂网在线播放 | 久久av网 | 久久亚洲成人 | 综合色av| 黄色一级免费视频 | 免费成人毛片 | 日韩成人在线播放 | 精品国产一区二区在线观看 | 欧美一级艳片视频免费观看 | 四虎影| 久久久久久免费 | 国产不卡在线观看 | 亚洲综合精品 | 中文字幕免费视频 | 麻豆国产一区二区三区四区 | 中文字幕一区在线观看 | 偷拍一区二区三区 | 视频在线一区 | 中文字幕麻豆 | 国精产品99永久一区一区 | 亚洲精品国产精品国自产观看 | 久久精品久久久久 | 国产日批视频 | 性久久久久久 | 成人免费视频国产免费麻豆 | 欧美一区二区视频在线观看 | 免费精品| 亚洲人成免费 | 午夜成人免费视频 | 日韩在线观看一区 | 国产传媒在线观看 | 天天操天天插 | 亚洲欧美视频在线观看 | 日韩在线不卡视频 | 亚洲影院在线 | 亚色视频 |