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

QQ登錄

只需一步,快速開始

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

單片機(jī)20~200A大電流檢測(cè)電路設(shè)計(jì) 用AD實(shí)現(xiàn) 帶原理圖,源代碼,proteus仿真文件

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這是我剛做的一個(gè)20~200A大電流檢測(cè)電路,通過(guò)ADC0809轉(zhuǎn)換成數(shù)字信號(hào),通過(guò)LED顯示結(jié)果,包括原理圖,仿真文件,源代碼。
將R1的電壓采樣到ADC0809,轉(zhuǎn)換為數(shù)字信號(hào),輸入單片機(jī)

AD畫的原理圖(附件中可以可以下載):


51單片機(jī)P0口和其他口內(nèi)部結(jié)構(gòu)不同
使用單片機(jī)P0端口時(shí)必須把P0的8個(gè)口都接上拉電阻,
使用單要不然P0口只能輸出低電平,不能輸出高電平

proteus仿真原理圖:


單片機(jī)源程序:
  1. //------------------------------51單片機(jī)頭文件
  2. #include<reg51.h>

  3. //各數(shù)字的數(shù)碼管段碼(共陰)
  4. unsigned char code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //數(shù)碼管顯示數(shù)組{0,1,2,3,4,5,6,7,8,9}

  5. sbit CLK=P3^3;    //時(shí)鐘信號(hào)
  6. sbit ST=P3^6;     //啟動(dòng)信號(hào),由低電平到高電平時(shí)間段復(fù)位 ,高電平到低電平時(shí)間段開始轉(zhuǎn)換
  7. sbit EOC=P3^5;    //轉(zhuǎn)換結(jié)束信號(hào),當(dāng)轉(zhuǎn)換結(jié)束時(shí)會(huì)自動(dòng)變成高電平
  8. sbit OE=P3^4;     //輸出使能 ,當(dāng)OE為高電平時(shí)開啟輸出端,OE為低電平時(shí)禁止輸出
  9. sbit W1=P2^4;     //定義W1表示P2.4位,第一位數(shù)碼管控制端, 為0時(shí)亮,為1時(shí)滅
  10. sbit W2=P2^3;          //定義W2表示P2.3位,第二位數(shù)碼管控制端, 為0時(shí)亮,為1時(shí)滅
  11. sbit W3=P2^2;          //定義W3表示P2.2位,第三位數(shù)碼管控制端, 為0時(shí)亮,為1時(shí)滅
  12. sbit key=P3^7;          //定義按鍵控制key為P3.7
  13. //----------------------------1ms延時(shí)函數(shù)
  14. void Delayms(unsigned char ms)
  15. {
  16. unsigned char i;
  17. while(ms--)
  18. for(i=0;i<120;i++);
  19. }
  20. //---------------------------顯示轉(zhuǎn)換結(jié)果(動(dòng)態(tài)掃描模式)
  21. void Display(unsigned int d)
  22. {
  23.         d=d*1.0/256*5*40;  //將數(shù)字量轉(zhuǎn)換成模擬量的公式為5V*(d/256),采樣電壓值為電流值*100歐姆,所以要獲得實(shí)際電流值,即為采樣電壓值*40倍 (n1:n2=4000:1)

  24.         W1=0;   //第一個(gè)數(shù)碼管亮
  25.         P0=DSY_CODE[d%10];  //顯示第一個(gè)數(shù)碼管的值 為P1的值除以10取余
  26.         Delayms(6);                        //延時(shí)5ms
  27.         W1=1;   //第一個(gè)數(shù)碼管滅

  28.         W2=0;
  29.         P0=DSY_CODE[d%100/10];        //顯示第二個(gè)數(shù)碼管的值 為P1的值除以100取余 再除以10取整
  30.         Delayms(6);
  31.         W2=1;
  32.        
  33.         W3=0;
  34.         P0=DSY_CODE[d/100];           //顯示第三個(gè)數(shù)碼管的值 為P1的值除以100取整
  35.         Delayms(6);
  36.         W3=1;
  37.             }
  38. //-------------------------------------------------主程序
  39. void main()
  40. {                                                                                  
  41.         TMOD=0x02; //16位定時(shí)器0工作模式設(shè)置為2
  42.         TH0=0x14;  //設(shè)置定時(shí)器高8位初值為0x14
  43.         TL0=0x00;  //設(shè)置定時(shí)器低8位初值為0x00
  44.         TR0=1;           //開啟定時(shí)器0開關(guān)
  45.         ET0=1;           //開啟定時(shí)器0中斷開關(guān)
  46.         EA=1;           //開啟中斷總開關(guān)

  47. //---------------啟動(dòng) A/D 轉(zhuǎn)換

  48. //---------開始按鍵-----
  49. A:        while(key==1);     //等待按鍵按下
  50.         Delayms(1);               //延時(shí)1ms
  51.         if(key==0)         //延時(shí)1ms后按鍵還是按下了,說(shuō)明按鍵確實(shí)按下了(按鍵消抖功能)
  52.         while(key==0);           //當(dāng)按鍵松開時(shí),循環(huán)轉(zhuǎn)換和顯示

  53.                 while(1)
  54.                 {
  55.                 ST=0;
  56.                 ST=1;
  57.                 ST=0;  
  58.                   
  59.                 while(EOC==0);   //等待轉(zhuǎn)換完成
  60.                 OE=1;                          //開啟輸出端
  61.        
  62.                 Display(P1);     //將輸出到單片機(jī)P1端口上的數(shù)字信號(hào)在LED顯示出來(lái)
  63.                 OE=0;            //關(guān)閉輸出端
  64.        
  65. //------停止按鍵---------
  66.            if(key==0)
  67.                    {
  68.                         Delayms(1);
  69.                     if(key==0)         //延時(shí)1ms后按鍵還是按下了,說(shuō)明按鍵確實(shí)按下了(按鍵消抖功能)
  70.                         while(key==0);           //當(dāng)按鍵松開時(shí)
  71.                          

  72. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
  73.                                   
復(fù)制代碼



全部資料打包下載:
大電流檢測(cè).zip (210.71 KB, 下載次數(shù): 257)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏12 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:147492 發(fā)表于 2018-12-25 10:54 | 只看該作者
感謝
回復(fù)

使用道具 舉報(bào)

板凳
ID:251061 發(fā)表于 2018-12-25 20:09 | 只看該作者
好東西。感謝分享
回復(fù)

使用道具 舉報(bào)

地板
ID:275111 發(fā)表于 2019-1-15 15:36 | 只看該作者
做到這一部分了。支持樓主。
回復(fù)

使用道具 舉報(bào)

5#
ID:893112 發(fā)表于 2021-3-17 16:32 | 只看該作者
好帖,感謝
回復(fù)

使用道具 舉報(bào)

6#
ID:928738 發(fā)表于 2021-12-17 21:48 | 只看該作者
只是adc采集,直流檢測(cè),太簡(jiǎn)單了
回復(fù)

使用道具 舉報(bào)

7#
ID:1025433 發(fā)表于 2022-5-10 17:29 來(lái)自手機(jī) | 只看該作者
yayayunyun 發(fā)表于 2021-12-17 21:48
只是adc采集,直流檢測(cè),太簡(jiǎn)單了

也是 。不過(guò)已經(jīng)不錯(cuò)了
回復(fù)

使用道具 舉報(bào)

8#
ID:202023 發(fā)表于 2022-5-12 08:35 | 只看該作者
謝謝分享,正想了解了解啥是Adc
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表