<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發(fā)網(wǎng)

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

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

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

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

      電流表電壓表原理框圖 

      51單片機電流表電壓表程序流程圖 

      BOM元器件報表 

      51單片機源程序如下:

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

      #include

      #include "1602.h"

      #include "delay.h"

      #include "i2c.h"


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

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


      float Volt=0.0;                          //檢測電壓

      float Acurrent=0.0;                                  //檢測電流


      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();        //定時器0初始化

              UART_Init();                  //串口初始化

                           

              LCD_Init();           //初始化液晶

              DelayMs(20);          //延時有助于穩(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檢測到的 電壓值

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

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


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

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

                                                                                                     

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

                      {

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

                      }

                      else

                      {

                              Acurrent=0;

                      }       


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

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

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

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

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

              }

      }



      void Init_Timer0(void)

      {

              TMOD |= 0x01;          //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響                     

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

              TL0=(65536-20000)%256;

              EA=1;            //總中斷打開

              ET0=1;           //定時器中斷打開

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

      }


      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 打開                        

          EA    = 1;                  //打開總中斷

          ES    = 1;                  //打開串口中斷

      }


      void uartSendByte(unsigned char dat)

      {

              unsigned char time_out;

              time_out=0x00;

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

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

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

              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++;                  //下一個++

                 }

      }


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

      {

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

              {

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

              }

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

              TI=0;

      }


      ……………………

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

      還可以輸入 200 個字
      [ 查看全部 ] 網(wǎng)友評論
      最新推薦
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 久久综合丝袜长腿丝袜| 国产色产综合色产在线观看视频| 亚洲国产综合专区在线电影| 亚洲综合精品网站| 一97日本道伊人久久综合影院| 亚洲综合国产精品第一页| 久久一本色系列综合色| 噜噜综合亚洲AV中文无码| 久久99亚洲综合精品首页| 亚洲综合色婷婷在线观看| 久久婷婷色综合一区二区| 婷婷五月综合激情| 久久99国产综合色| 精品无码综合一区| 色先锋资源久久综合5566| 色综合久久久久综合体桃花网| 色婷婷久久综合中文久久一本`| 久久精品国产91久久综合麻豆自制| 亚洲丁香婷婷综合久久| 久久综合狠狠色综合伊人| 小说区图片区综合久久88| 国产色丁香久久综合| 久久综合图区亚洲综合图区| 天堂无码久久综合东京热| 色欲人妻综合AAAAAAAA网| 亚洲精品综合在线影院| 亚洲国产成人久久综合一| 国产综合精品一区二区三区| 狠狠色丁香婷婷综合久久来来去 | 伊伊人成亚洲综合人网7777| 国产色产综合色产在线视频| 激情综合婷婷丁香五月俺来也 | 色欲久久久天天天综合网| 久久香蕉综合色一综合色88| 国产美女亚洲精品久久久综合| 亚洲伊人久久综合中文成人网| 六月丁香婷婷综合| 亚洲综合精品香蕉久久网| 色综合久久久久无码专区| 亚洲熟女综合色一区二区三区| 狠狠综合久久久久综合小说网|