欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
我用九齊MCU芯片做adc測(cè)交流電電壓,測(cè)出來(lái)的電壓值在一直變化
[打印本頁(yè)]
作者:
遲遲不離去
時(shí)間:
2019-9-20 11:15
標(biāo)題:
我用九齊MCU芯片做adc測(cè)交流電電壓,測(cè)出來(lái)的電壓值在一直變化
51hei圖片20190920111015.png
(19.58 KB, 下載次數(shù): 67)
下載附件
2019-9-20 11:10 上傳
這個(gè)是電路圖 下邊是我的程序 大佬幫幫忙 萬(wàn)分感謝
#include <at8.h>
#include "at8_constant.h"
unsigned int v,ge,shi,bai;
unsigned int R_AIN1_DATA_HB;
unsigned int R_AIN1_DATA_LB;
unsigned int ADC_DATA;
#define UPDATE_REG(x) __asm__("MOVR _" #x ",F")
#define A PORTAbits.PA0
#define B PORTAbits.PA4
#define C PORTAbits.PA7
#define D PORTBbits.PB3
#define E PORTBbits.PB1
#define F PORTAbits.PA1
#define G PORTAbits.PA6
#define DP PORTAbits.PA5
#define W1 PORTBbits.PB0
#define W2 PORTAbits.PA2
#define W3 PORTAbits.PA3
void display(unsigned int i);
void weixuan();
//! interrupt service routine
void isr(void) __interrupt(0)
{
ADRbits.ADIF = 0;
R_AIN1_DATA_HB = ADD;
R_AIN1_DATA_LB = 0x0F & ADR;
ADMDbits.START = 1;
}
void main(void)
{
// R_AIN1_DATA_HB=R_AIN1_DATA_LB=0x00;
//----- Initial GPIO-----
IOSTA = 0x00;
IOSTB = 0X04;
PORTA = 0xFF;
PORTB = 0xFF;
INTE = 0x00;
//----- Initial ADC-----
ADMD = C_ADC_En | C_ADC_CH_Dis | C_ADC_PB2 ;
ADVREFH = C_Vrefh_2V;
ADR = C_Ckl_Div1;
ADCR = C_Sample_8clk | C_12BIT;
PACON = C_PB2_AIN7;
ADMDbits.GCHS = 1;
ADRbits.ADIF = 0;
ADRbits.ADIE = 1;
ADMDbits.START = 1;
ENI();
while(1)
{
while(ADMDbits.EOC==0);
ADC_DATA = ((unsigned int)R_AIN1_DATA_HB << 4 )+ R_AIN1_DATA_LB;
v=(unsigned int)ADC_DATA/10;
ge = v%10;
shi = v/10%10;
bai = v/100%10;
weixuan();
}
}
void display(unsigned int i)
{
switch(i)
{
case 0:A=0;B=0;C=0;D=0;E=0;F=0;G=1;DP=1;break;
case 1:A=1;B=0;C=0;D=1;E=1;F=1;G=1;DP=1;break;
case 2:A=0;B=0;C=1;D=0;E=0;F=1;G=0;DP=1;break;
case 3:A=0;B=0;C=0;D=0;E=1;F=1;G=0;DP=1;break;
case 4:A=1;B=0;C=0;D=1;E=1;F=0;G=0;DP=1;break;
case 5:A=0;B=1;C=0;D=0;E=1;F=0;G=0;DP=1;break;
case 6:A=0;B=1;C=0;D=0;E=0;F=0;G=0;DP=1;break;
case 7:A=0;B=0;C=0;D=1;E=1;F=1;G=1;DP=1;break;
case 8:A=0;B=0;C=0;D=0;E=0;F=0;G=0;DP=1;break;
case 9:A=0;B=0;C=0;D=0;E=1;F=0;G=0;DP=1;break;
}
}
void weixuan()
{
unsigned int i,j;
while(1)
{
for(i=0;i<3;i++)
{
switch(i)
{
case(0):W1=0;W2=0;W3=1;display(ge);break;
case(1):/*if(v>10)*/W2=1;W1=0;W3=0;display(shi);break;
case(2):/*if(v>100)*/W1=1;W2=0;W3=0;display(bai);break;
}
j=50;
while(j--);
復(fù)制代碼
作者:
qq603599910
時(shí)間:
2019-9-20 19:27
看程序你是單次測(cè)試,一般做AD都是多次測(cè)試掐頭去尾取中間的均值哦,之前我用20次循環(huán)值取均值都有10個(gè)數(shù)字的跳動(dòng)哦.
作者:
南瓜派
時(shí)間:
2019-9-21 00:20
你這個(gè)半波的交流電壓,需要準(zhǔn)的話,假設(shè)定時(shí)1ms中斷,連續(xù)采20個(gè)數(shù)值,去掉一個(gè)最高值,取次高值*0.707可得交流有效值電壓
作者:
yzwzfyz
時(shí)間:
2019-9-21 09:25
用這個(gè)電路,你就不怕被電到!
AD切換后,要待其充電充分后再起動(dòng)測(cè)試!
作者:
sanm
時(shí)間:
2020-8-7 15:01
邏輯寫(xiě)的不好
作者:
hsl32
時(shí)間:
2020-8-8 09:45
用測(cè)直流電的算法去測(cè)交流電,再怎么平均濾波顯示都一直變化的。因?yàn)榻涣麟姳旧砭褪且恢弊兓模恢辈蛔兊哪鞘侵绷麟姟y(cè)交流電要在一個(gè)頻率周期采樣N點(diǎn),然后采用最大值法或均方根法計(jì)算。N的個(gè)數(shù)越大越精確。最大值法最簡(jiǎn)單,精度不高。均方根法最準(zhǔn),但耗時(shí)。
作者:
wwh2382
時(shí)間:
2020-8-8 23:03
能不能分享那兩個(gè)頭文件呀?讓大家一窺神秘的九齊
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1