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

標(biāo)題: ACS712電流檢測報(bào)警電路與單片機(jī)控制源程序 [打印本頁]

作者: 電子愛好者999    時(shí)間: 2018-3-2 11:30
標(biāo)題: ACS712電流檢測報(bào)警電路與單片機(jī)控制源程序
ACS712電路原理圖如下:


單片機(jī)ACS712電流采集源程序如下:
  1. /********************************************************************
  2.                             匯誠科技
  3. 實(shí)現(xiàn)功能:檢測電流,數(shù)碼管顯示電流值
  4. 使用芯片:STC12C5604AD
  5. 產(chǎn)品模塊編號:兩輸入,一路電流檢測,三個(gè)按鍵,四位數(shù)顯,一路繼電器
  6. 晶振:外部晶振 11.0592M
  7. 編譯環(huán)境:Keil -uvision4
  8. 旺旺:
  9.       1、jiangtaoyang88
  10.           2、電子開發(fā)直銷
  11. 【聲明】此程序僅用于學(xué)習(xí)與參考,引用請注明版權(quán)和作者信息!     
  12. /********************************************************************
  13. ********************************************************************/
  14. #include<STC12C56.h>                 //庫文件
  15. #include <intrins.h>
  16. #define uchar unsigned char//宏定義無符號字符型
  17. #define uint unsigned int  //宏定義無符號整型
  18. #define FOSC 11059200L
  19. #define BAUD  9600

  20. #define ADC_POWER   0x80            //ADC 電源控制位
  21. #define ADC_FLAG    0x10            //ADC 轉(zhuǎn)換結(jié)束標(biāo)志位
  22. #define ADC_START   0x08            //ADC 開始轉(zhuǎn)換控制位
  23. #define ADC_SPEEDHH 0x60            //270個(gè)時(shí)鐘周期轉(zhuǎn)換一次

  24. sfr ADC_DATA=0xc6;           //70個(gè)時(shí)鐘周期轉(zhuǎn)換一次
  25. void display(void);         //顯示函數(shù)
  26. void t_to_dis(uint num);

  27. #define DUAN P2                   //P0口控制段
  28. #define WEI  P1                   //P2口控制位
  29. /********************************************************************
  30.                             初始定義
  31. *********************************************************************/
  32. //數(shù)碼管顯示段碼
  33. code uchar seg7code[11]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0XBF};
  34. //數(shù)碼管位控制端
  35. sbit wei1=P1^0;
  36. sbit wei2=P1^1;
  37. sbit wei3=P1^2;
  38. sbit wei4=P1^3;  
  39. //繼電器輸出控制端                           
  40. sbit OUT=P3^7;
  41. //按鍵輸入控制端
  42. sbit key1=P3^2;
  43. sbit key2=P3^3;
  44. sbit key3=P3^4;
  45. //兩路輸入控制端可做ad采樣
  46. sbit IN1=P1^6;
  47. sbit IN2=P1^5;
  48. sbit IC=P1^7;
  49. uchar numb[4];              //定義字符串用于數(shù)值轉(zhuǎn)換
  50. uchar cnt,times;
  51. uint ad;
  52. float ad1;
  53. /********************************************************************
  54.                             延時(shí)函數(shù)
  55. *********************************************************************/
  56. void delay(uint x)//延時(shí)程序 0.1秒
  57. {
  58.         uint m,n,s;
  59.         for(m=x;m>0;m--)
  60.         for(n=20;n>0;n--)
  61.         for(s=248;s>0;s--);
  62. }
  63. /********************************************************************
  64.                          AD轉(zhuǎn)換初始化程序
  65. *********************************************************************/
  66. void InitADC()
  67. {
  68.     P1=P1M0|=0xf0;
  69.         P1M1=0x00;
  70.         ADC_DATA=0;        //AD數(shù)據(jù)寄存器清空
  71.     ADC_CONTR=ADC_POWER|ADC_SPEEDHH|ADC_START;//打開AD電源,轉(zhuǎn)換周期XX
  72.     delay(10);                //延時(shí)
  73. }
  74. /********************************************************************
  75.                          AD轉(zhuǎn)換控制程序
  76. *********************************************************************/
  77. uint GetADCResult(uchar px)          //轉(zhuǎn)換輸出的數(shù)據(jù) (PX為通道口)
  78. {
  79.       uint t;
  80.         ADC_CONTR=ADC_POWER | ADC_SPEEDHH | px | ADC_START;//開始轉(zhuǎn)換
  81.     _nop_();                        //延時(shí)一個(gè)機(jī)器周期
  82.     _nop_();                                                //延時(shí)一個(gè)機(jī)器周期
  83.     _nop_();                                                //延時(shí)一個(gè)機(jī)器周期
  84.     _nop_();                                                //延時(shí)一個(gè)機(jī)器周期
  85.         while (!(ADC_CONTR & ADC_FLAG));//等待轉(zhuǎn)換結(jié)束
  86.         ADC_CONTR &= ~ADC_FLAG;       //關(guān)閉AD轉(zhuǎn)換
  87.          t=(ADC_DATA<<2)|ADC_LOW2;
  88.          return t;
  89. }                  
  90. /********************************************************************
  91.                            IO口初始化函數(shù)
  92. *********************************************************************/   
  93. void init_all(void)
  94. {               
  95.     P2M1=0;
  96.         P2M0=0xff;
  97.         P1M1=0x80;
  98.         P1M0=0x0f;
  99.         P3M1&=0x7f;
  100.         P3M0|=0x80;
  101. }
  102. /********************************************************************
  103.                            定時(shí)器T1初始化
  104. *********************************************************************/
  105. void timer0init(void)
  106. {
  107.          TMOD=0X01;                  //設(shè)定定時(shí)器工作方式
  108.          TH0 =(655336-1000)/256;
  109.      TL0 =(655336-1000)%256;
  110.          ET0=1;
  111.          TR0=1;
  112.          EA=1;
  113. }
  114. /********************************************************************
  115.                             主函數(shù)
  116. *********************************************************************/
  117. void main()
  118. {         
  119.    
  120.     init_all();         //初始化IO
  121.         timer0init();//定時(shí)器初始化
  122.     InitADC();  //AD初始化
  123.         while(1)
  124.         {  
  125.                  ad=GetADCResult(7);
  126.                  if(times>=250)
  127.                  {
  128.                     times=0;
  129.                         ad=ad-2;
  130.                     ad1=(ad*50.0)/1024-25;
  131.                     ad1=ad1*100;
  132.                     t_to_dis(ad1);   //數(shù)值變換
  133.                  }
  134.     }
  135. }
  136. /********************************************************************
  137.                             求值函數(shù)
  138. *********************************************************************/
  139. void t_to_dis(uint num)
  140. {       
  141.         numb[0]=num/1000;        ;                        //顯示千位
  142.         numb[1]=num/100%10;                //顯示百位
  143.         numb[2]=num/10%10;                    //顯示十位
  144.         numb[3]=num%10;             //顯示個(gè)位
  145. }
  146. /********************************************************************
  147.                            定時(shí)器T1中斷函數(shù)
  148. *********************************************************************/
  149. ……………………

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

【簡要說明】
此模塊采用ACS712電流傳感器監(jiān)測設(shè)備電流,數(shù)碼管可以顯示監(jiān)測電流值,通過單片
機(jī)對電流數(shù)據(jù)的采集,來控制繼電器。
通常用于,電流過載報(bào)警器,電流監(jiān)測,過載保護(hù)等,,,通過單片機(jī)的編程可以實(shí)
現(xiàn)多種功能,具體可以聯(lián)系店主進(jìn)行溝通.
量程:0~5A、0~20A
測量類型:交流和直流
注:購買時(shí)請備注量程和測量類型
一、【簡要說明】
1、 尺寸:長72cmX寬67cmX高2cm
2、 主要芯片:STC12C5604AD
3、 工作電壓:直流12伏(板上有LM7805穩(wěn)壓芯片);
4、 特點(diǎn):

    可編程(通過下載排針可下載程序)
    具有兩路信號輸入端(也可檢測兩路模擬量)
    三個(gè)按鍵輸入            
    一路繼電器輸出,可控制兩路交流220V/10A一下設(shè)備
    一路電流檢測輸入(ACS712電流傳感器)
    板子帶有防反接二極管
    標(biāo)準(zhǔn)的11.0592晶振
    板子晶振11.0592,有uart接口,可以方便連接uart轉(zhuǎn)485模塊
    有復(fù)位按鍵
    帶四位數(shù)碼管顯示

5、可以根據(jù)顧客提出要求實(shí)現(xiàn)想要實(shí)現(xiàn)的功能
注:模塊有三種功能,顧客購買時(shí),請聯(lián)系客服,詳細(xì)說明所需功能,
功能一:按鍵設(shè)定電流值(無通信)
功能二:讀取電流設(shè)定報(bào)警值
功能三:可根據(jù)顧客需要定制功能,詳細(xì)功能介紹,請看下文

二、【ACS712簡介】
ACS712具有精確的低偏置線性霍爾傳感器電路,且其銅制的電流路徑靠近晶片的表面。通過該銅制電流路徑施加的電流能夠生成可被集成霍爾IC感應(yīng)并轉(zhuǎn)化為成比例電壓的磁場。通過將磁性信號靠近霍爾傳感器,實(shí)現(xiàn)器件精確度優(yōu)化。精確的成比例電壓由穩(wěn)定斬波型低偏置BiCMOS霍爾IC提供,該IC出廠時(shí)已進(jìn)行精確度編程。
當(dāng)通過用作電流感測通路的主要銅制電流路徑(從引腳1和2,到3和4)的電流不斷上升時(shí),器件的輸出具有正斜率(>VIOUT(Q))。該傳導(dǎo)通路的內(nèi)電阻通常是1.2 mΩ,具有較低的功耗。銅線的粗細(xì)允許器件在可達(dá)5×的過電流條件下運(yùn)行。傳導(dǎo)通路的接線端與傳感器引腳(引腳5到8)是電氣絕緣的。這讓ACS712電流傳感器可用于那些要求電氣絕緣卻未使用光電絕緣器或其它昂貴絕緣技術(shù)的應(yīng)用。
ACS712采用小型的表面安裝SOIC8封裝。引腳架鍍采用100%霧錫電鍍,可與標(biāo)準(zhǔn)無鉛(Pb)印刷電路板裝配流程兼容。在內(nèi)部,該器件為無鉛產(chǎn)品,倒裝法使用當(dāng)前豁免于RoHS的高溫含鉛焊球除外。器件在出廠裝運(yùn)前已完全校準(zhǔn)。

全部資料51hei下載地址:
例程.rar (138.04 KB, 下載次數(shù): 300)
原理圖.pdf (495.64 KB, 下載次數(shù): 179)
使用說明.pdf (643.23 KB, 下載次數(shù): 169)



作者: xiaoqi976633690    時(shí)間: 2018-7-24 17:32
謝謝分享
作者: zhczlzhang    時(shí)間: 2018-8-2 15:14
非常感謝!正好需要。
作者: 吾乃李逵    時(shí)間: 2018-10-26 18:40
請教版主 這塊板子哪里購買?
作者: 用戶名不好取    時(shí)間: 2018-11-10 16:04
ACS712 不支持多路輸入?
作者: wengen20    時(shí)間: 2018-11-20 11:31
謝謝分享!
作者: wbx01    時(shí)間: 2019-1-3 10:35
謝謝分享,下載學(xué)習(xí)
作者: zhaofuzheng    時(shí)間: 2019-1-14 10:05
會不會出現(xiàn)無電流通過時(shí),顯示不穩(wěn)定現(xiàn)象
作者: 若若先生    時(shí)間: 2019-1-18 09:21
看看怎么樣11111
作者: 隨風(fēng)飄零翼    時(shí)間: 2019-5-7 12:23
打包下不行嗎
作者: jayzay008    時(shí)間: 2019-6-4 11:45

看看怎么樣1111
作者: 太陽黑子1    時(shí)間: 2019-6-4 19:28
可以打包一下嗎
作者: coffeexz    時(shí)間: 2019-6-12 08:48
謝謝!!
作者: liushiming82    時(shí)間: 2019-10-25 17:50
這三句是什么意思呀?謝謝
作者: 棟棟棟    時(shí)間: 2020-4-5 10:40
感謝樓主分享




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 天天插天天操 | 国产一区二区在线视频 | 精品久久一区二区三区 | 国产日韩欧美一区二区在线播放 | www312aⅴ欧美在线看 | 一区二区av | 免费在线看黄 | 91传媒在线观看 | 国产色99精品9i | 日韩中文字幕一区 | 国产精品综合久久 | 91在线一区 | 亚洲精品一区二区网址 | 国产精品一区一区三区 | 成人日韩精品 | 成人综合在线视频 | 欧美精品一区二区三区在线 | 夜夜操天天操 | www.色53色.com | 亚洲成人福利视频 | 欧美成人精品一区二区三区 | 国久久| www.四虎.com| 超碰日本| 五月天天丁香婷婷在线中 | 国产剧情一区 | 一区二区电影网 | 久久久精品视频一区二区三区 | 中文字幕一区二区三区在线观看 | 四色永久 | av在线播放网址 | av男人的天堂av | 亚洲国产精品一区二区三区 | 91久久久久久久久 | 国产激情一区二区三区 | 91精品久久久久久久久中文字幕 | 国产一区二区三区在线视频 | 97视频成人 | 亚洲精品v日韩精品 | 99精品免费| 老司机精品福利视频 |