創意小發明:單片機制作電容電阻測量儀 (含C語言原源碼,仿真文件與實物圖)

應一個讀者的要求,用單片機單片機制作電容電阻測量儀
課題
電路元件參數RC測量電路的設計
設計要求:
測量儀的工作原理爲:利用振盪電路,將電阻、電容的測量轉變爲與之成一定函數關係頻率的測量,再利用單片機對不同頻率進行測量和處理,用數碼管顯示被測量的大小,可以利用按鍵對被測量類型進行選擇。
測量電阻範圍爲:≤1MΩ。
測量電容範圍爲:≤10000pF。
測量精度〈±5%。

廢話不多說,先上實物圖

注意,做實物沒找到開關,用的是跳線冒,當未接跳線時,顯示上面最後一張截圖待測狀態,跳線接好後,將顯示對應的測量值。
在這裏插入圖片描述
單片機電容電阻測量儀仿真原理圖截圖如下:
在這裏插入圖片描述
細節1截圖在這裏插入圖片描述
細節2截圖
在這裏插入圖片描述
設計主旨:主要原理是利用555定時器的振盪頻率受外圍電阻電容的影響來測量的,
以下是部分單片機C語言參考代碼:

void measure(void)
{
IE=0x8a;
EA=1;
ET1=1;
ET0=1;
TMOD=0x51;
TH0=H_0;
TL0=L_0;
TH1=0;
TL1=0;

TR0=1;
// while(fw1);//測得引腳P3^5爲高電平
TR1=1; //timer1 開始計數
// while(fw
0); //測得引腳P3^5爲低電平
// TR1=0;
//timer1 停止計數
// DL=TL1; //讀當前計數值
// DH=TH1;
/// freq=DPTR;
// TH1=100;
// TL1=100;
// uu=DH256+DPL+inte65536; //計算總計數值
// inte=0; //清累計溢出計數
// tt=uu/(12*1000000.0/12.0); //求振盪週期
// ff=(unsigned long int)(1.0/tt); //頻率值 求震盪頻率
}

void yunsuan (void)
{
float tt=0;
// DPH=11;
// DPL=12;
uu=DH256+DL+inte65536; //計算總計數值
inte=0; //清累計溢出計數
tt=uu/(12*1000000.0/12.0); //求振盪週期
ff=(unsigned long int)(1.0/tt); //頻率值 求震盪頻率
}
void judgekey1()
{
long int R=0;

// R=(dat1000)/(255-dat);
R=10
dat-130;
display®;
LED=~LED;
}

void judgekey2()
{
long int C=0;
if(scd0)
{
// C=3193333.0/freq;
C=((9.4*ff)-200)*0.8;
display1©;
LED=~LED;
}
else if (scg
0)
{
// C=3193333.0/ff;
C=(9.4*ff)-200;
display1©;
LED=~LED;
}
}

鑑於篇幅限制,只能寫部分代碼

最後,附上 程序源代碼和 上位機程序文件,需要請自行下載,下載地址
鏈接:https://pan.baidu.com/s/1ZjL-h0QGXNCn3l9nxkdkjQ&shfl=sharepset 密碼:gima

謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章