標(biāo)題:
單片機(jī)+ACS712實(shí)現(xiàn)數(shù)字電流表的程序+電路圖
[打印本頁]
作者:
比魯斯
時間:
2019-6-17 03:38
標(biāo)題:
單片機(jī)+ACS712實(shí)現(xiàn)數(shù)字電流表的程序+電路圖
ACS712直流/交流電流測量傳感器具有量程大、簡單易用等特點(diǎn),可用于直流電流和交流電流的測量。ACS712是帶 2.1 kVRMS 電壓絕緣及低電阻電流導(dǎo)體的全集成、基于霍爾效應(yīng)的線性電流傳感器 IC
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.png
(15.89 KB, 下載次數(shù): 67)
下載附件
2019-6-17 13:33 上傳
0.png
(15.5 KB, 下載次數(shù): 84)
下載附件
2019-6-17 13:33 上傳
單片機(jī)源程序如下:
#include<at89x52.h>
#include<INTRINS.h>
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long
#define CLOCK P1_0
#define D_IN P1_1
#define D_OUT P1_2
#define _CS P1_3
sbit g1=P2^7;
sbit g2=P2^1;
sbit g3=P2^3;
sbit g4=P2^5;
ulong AD_ad1,AD_ad2;
float JiZhun_AD=2.5;
float AD_Data=0.0;
ulong AD_ad=0;
char chi;
unsigned char code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void delay02s(void)
{
unsigned char i,j,k;
for(i=1;i>0;i--)
for(j=10;j>0;j--)
for(k=200;k>0;k--);
}
uint read1543(uchar port)
{
uint ad;
uint i;
uchar al=0,ah=0;
CLOCK=0;
_CS=0;
port<<=4;
for (i=0;i<4;i++) //將四位通道地址送1543
{
D_IN=(bit)(port&0x80);CLOCK=1;CLOCK=0;
port<<=1;
}
for (i=0;i<6;i++) //填6個CLOCK信號
{
CLOCK=1;CLOCK=0;
}
_CS=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
_CS=0; //等待AD轉(zhuǎn)換結(jié)束
_nop_();_nop_();_nop_();
for (i=0;i<2;i++) //D9,D8
{
D_OUT=1;CLOCK=1;ah<<=1;
if (D_OUT) ah +=0x01;
CLOCK=0;
}
for (i=0;i<8;i++) //取出D7--D0
{
D_OUT=1;CLOCK=1;al <<= 1;
if (D_OUT)
al +=0x01;
CLOCK=0;
}
_CS=1;
ad = (uint)ah;
ad <<= 8;
ad +=(uint)al; //
return(ad);
}
void main()
{
TMOD=0x01;
TH0=(65535-20000)/255;
TL0=(65535-20000)%255;
EA=1;ET0=1;TR0=1;
while(1)
{
P0=table[(AD_ad%10)];
g1=1;
delay02s();
g1=0;
P0=table[(AD_ad/10)%10];
g2=1;
delay02s();
g2=0;
P0=table[(AD_ad/100)%10];
g3=1;
delay02s();
g3=0;
P0=table[(AD_ad/1000)]|0X80;
g4=1;
delay02s();
g4=0;
}
}
zhongduan()interrupt 1
{
TH0=(65535-20000)/255;
TL0=(65535-20000)%255;
chi++;
if(chi==50)
{
chi=0;
AD_ad1 = read1543(0); // (通道0電壓正端)
AD_Data = ((float)AD_ad1)*JiZhun_AD*2/1024+0.15005;//0.15經(jīng)過實(shí)測需要加0.15減少誤差
AD_ad =((AD_Data-2.68)/0.185)*1000;
}
}
復(fù)制代碼
所有資料51hei提供下載:
ACS712數(shù)字電流表.rar
(2.86 MB, 下載次數(shù): 179)
2019-6-17 03:35 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
十三姨
時間:
2021-3-10 08:34
多大量程
作者:
清風(fēng)慕雨
時間:
2021-10-19 21:41
大家別參考 這圖引腳號都標(biāo)錯了
作者:
qfg138
時間:
2021-12-25 12:55
可以用6902代替
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1