日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

電子開(kāi)發(fā)網(wǎng)

電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 電子開(kāi)發(fā) >> 單片機(jī) >> 正文

STC89C52單片機(jī)數(shù)字電流表電壓表源碼與電路圖  51單片機(jī)電流電壓表

作者:佚名    文章來(lái)源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2022-11-23

STC89C52單片機(jī)數(shù)字電流表電壓表電路原理圖如下:
51單片機(jī)電流表電壓表線路原理圖 

電流表電壓表原理框圖 

51單片機(jī)電流表電壓表程序流程圖 

BOM元器件報(bào)表 

51單片機(jī)源程序如下:

#include //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義

#include

#include "1602.h"

#include "delay.h"

#include "i2c.h"


char dis0[16];                           //打印數(shù)組初始化

unsigned long time_20ms=0;                   //定時(shí)器計(jì)數(shù)


float Volt=0.0;                          //檢測(cè)電壓

float Acurrent=0.0;                                  //檢測(cè)電流


void Init_Timer0(void);                //函數(shù)聲明

void uartSendStr(unsigned char *s,unsigned char length);

void UART_Init(void);

void uartSendByte(unsigned char dat);


void main (void)

{     

        unsigned char midvolt,midcur;  //電壓電流中間變量值


        Init_Timer0();        //定時(shí)器0初始化

        UART_Init();                  //串口初始化

                     

        LCD_Init();           //初始化液晶

        DelayMs(20);          //延時(shí)有助于穩(wěn)定

        LCD_Clear();

        sprintf(dis0,"My Designer!!  ");//打印

        LCD_Write_String(0,0,dis0);//顯示第一行

        sprintf(dis0,"V:%3.2fv A:%3.2fA",Volt,Acurrent);//打印電壓電流值

        LCD_Write_String(0,1,dis0);//顯示第二行

        uartSendStr("reday ok!!",10);

        while (1)         //主循環(huán)

        {

                midvolt=ReadADC(1);                                //讀取AD檢測(cè)到的 電壓值

                DelayMs(50);          //延時(shí)有助于穩(wěn)定

                midcur=ReadADC(0);                //讀取電流轉(zhuǎn)化后的電壓值


                Volt=(float)midvolt*5.13/255*3;                //計(jì)算出電壓 *3表示分壓值

                Acurrent=(float)midcur*5.13/255;                //計(jì)算出電流

                                                                                               

                if(Acurrent>2.62)                         //如果電流轉(zhuǎn)換后的電壓值超過(guò)2.62

                {

                        Acurrent=(Acurrent-2.62)/0.185;         //電流模塊 電壓轉(zhuǎn)換計(jì)算

                }

                else

                {

                        Acurrent=0;

                }       


                sprintf(dis0,"V:%3.2fv A:%3.2fA",Volt,Acurrent);//打印電壓電流值

                LCD_Write_String(0,1,dis0);//顯示第二行

//                uartSendStr(dis0,16);          //串口上報(bào)

//                uartSendStr("n",1);                           //換行

                DelayMs(200);          //延時(shí)有助于穩(wěn)定

        }

}



void Init_Timer0(void)

{

        TMOD |= 0x01;          //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響                     

        TH0=(65536-20000)/256;                  //重新賦值 20ms

        TL0=(65536-20000)%256;

        EA=1;            //總中斷打開(kāi)

        ET0=1;           //定時(shí)器中斷打開(kāi)

        TR0=1;           //定時(shí)器開(kāi)關(guān)打開(kāi)

}


void Timer0_isr(void) interrupt 1

{

        TH0=(65536-20000)/256;                  //重新賦值 20ms

        TL0=(65536-20000)%256;

       

        time_20ms++;

}



void UART_Init(void)

{

    SCON  = 0x50;                        // SCON: 模式 1, 8-bit UART, 使能接收  

    TMOD |= 0x20;               // TMOD: timer 1, mode 2, 8-bit 重裝

    TH1   = 0xFD;               // TH1:  重裝值 9600 波特率 晶振 11.0592MHz

        TL1 = TH1;  

    TR1   = 1;                  // TR1:  timer 1 打開(kāi)                        

    EA    = 1;                  //打開(kāi)總中斷

    ES    = 1;                  //打開(kāi)串口中斷

}


void uartSendByte(unsigned char dat)

{

        unsigned char time_out;

        time_out=0x00;

        SBUF = dat;                          //將數(shù)據(jù)放入SBUF中

        while((!TI)&&(time_out<100))  //檢測(cè)是否發(fā)送出去

        {time_out++;DelayUs2x(10);}        //未發(fā)送出去 進(jìn)行短暫延時(shí)

        TI = 0;                                                //清除ti標(biāo)志

}


void uartSendStr(unsigned char *s,unsigned char length)

{

        unsigned char NUM;

        NUM=0x00;

        while(NUM        {

                uartSendByte(*s);  //放松單字節(jié)數(shù)據(jù)

                s++;                  //指針++

                NUM++;                  //下一個(gè)++

           }

}


void UART_SER (void) interrupt 4         //串行中斷服務(wù)程序

{

        if(RI)                        //判斷是接收中斷產(chǎn)生

        {

                RI=0;                      //標(biāo)志位清零

        }

        if(TI)  //如果是發(fā)送標(biāo)志位,清零

        TI=0;

}


……………………

Tags:單片機(jī),電流表,電壓表,設(shè)計(jì)  
責(zé)任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒(méi)有了
  • 相關(guān)文章列表
    自學(xué)stm32單片機(jī)四個(gè)步驟,實(shí)用又高效!
    先學(xué)51還是先學(xué)STM32?STM32和51單片機(jī)的區(qū)別
    單片機(jī)最小系統(tǒng)介紹及電路設(shè)計(jì) STM32單片機(jī)最小系統(tǒng)
    西門子plc梯形圖編程實(shí)例 西門子200smart與電流表Modbus RTU通訊
    什么是PIC單片機(jī)
    五款基于icl7107電壓表電路圖設(shè)計(jì)詳解 數(shù)字電壓表電路
    為什么51單片機(jī)的晶振一般使用11.0592? 51單片機(jī)常用波特率初值表
    51單片機(jī)寄存器功能一覽表
    單片機(jī)寫延時(shí)程序的幾種方法
    自學(xué)單片機(jī)編程之中斷與時(shí)鐘程序
    哈佛結(jié)構(gòu)與馮·諾伊曼結(jié)構(gòu)區(qū)別以及X86體系
    單片機(jī)萬(wàn)年歷:公歷日期與農(nóng)歷日期的相互轉(zhuǎn)換程序
    AVR定時(shí)器1的CTC模式設(shè)置
    單片機(jī)超聲波視覺(jué)識(shí)別系統(tǒng)的測(cè)量軟件開(kāi)發(fā),超聲波測(cè)距
    LCD1602的單片機(jī)驅(qū)動(dòng)詳解
    單片機(jī)時(shí)鐘電路原理
    基于stc89c52的4*4矩陣鍵盤輸入數(shù)碼管,一個(gè)小計(jì)算器
    單片機(jī)紅外遙控器設(shè)計(jì)
    單片機(jī) 鍵盤檢測(cè)與應(yīng)用
    如何給單片機(jī)系統(tǒng)提供可靠的電磁兼容設(shè)計(jì),pcb設(shè)計(jì)
    小白必看:?jiǎn)纹瑱C(jī)系統(tǒng)電路經(jīng)典設(shè)計(jì)教學(xué)
    單片機(jī)上拉電阻和下拉電阻的用處和區(qū)別
    單片機(jī)數(shù)碼管顯示原理
    51單片機(jī)--矩陣鍵盤
    詳解:上拉電阻的作用【圖文】
    4位單片機(jī)數(shù)字鐘 電子鐘制作
    51單片機(jī)4位數(shù)碼管電子鐘源程序
    STC12C2052單片機(jī)LED點(diǎn)陣電子時(shí)鐘制作
    單片機(jī)程序TH0=(65536-50000)/256; 是什么意思?
    單片機(jī)制作的時(shí)鐘程序
    請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個(gè)字
    [ 查看全部 ] 網(wǎng)友評(píng)論
    最新推薦
    關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁(yè)面
    下到頁(yè)底
    晶體管查詢