目錄
具體實現(xiàn)功能
設(shè)計介紹
51單片機簡介
資料內(nèi)容
仿真實現(xiàn)(protues8.7)
程序(Keil5)
全部內(nèi)容
具體實現(xiàn)功能
1、輸入直流電壓值,自動選擇量程,處理后利用LCD1602進行顯示。
2、仿真模擬實現(xiàn)直流電壓的測量與顯示,可進行四個量程的切換(2V、20V、200V、500V)。

設(shè)計介紹

?51單片機簡介
51單片是一種低功耗、高性能CMOS-8位微控制器,擁有靈巧的8位CPU和可編程Flash,使得51單片機為眾多嵌入式控制應(yīng)用系統(tǒng)提供靈活、高效的解決方案。
本設(shè)計所使用的芯片可兼容以下所有的51系列單片機(包括AT系列和STC系列)。

?資料內(nèi)容
仿真實現(xiàn)(protues8.7)
本設(shè)計利用protues8.7軟件實現(xiàn)仿真設(shè)計,具體如圖。

程序(Keil5)
本設(shè)計利用KEIL5軟件實現(xiàn)程序設(shè)計。
主函數(shù)如下:
void main()
{
float DATA,temp2;
char temp1;
LcdInit(); //LCD初始化
LCD_word(0x80,"voltage:");
while(1)
{
P2=0xFF;
temp1=P2;
temp1=temp1&0xf0;
switch(temp1)
{
case 0x80: {P2=P2&0xF8;A=0;break;}
case 0xc0: {P2=P2&0xF9;BB=0;break;}
case 0xE0: {P2=P2&0xFA;C=0;break;}
case 0xF0: {P2=P2&0xFB;D=0;break;}
}
AD_START=0;
AD_OE=0;
AD_START=1;
_nop_();
AD_START=0;
while(!AD_EOC);
AD_OE=1;
temp2=P1;
AD_OE=1;
DATA=temp2/255.0*5.0;
temp1=P2;
temp1=temp1&0x0f;
switch(temp1)
{
case 0x08:DATA=DATA*1;break;
case 0x09:DATA=DATA*10;break;
case 0x0A:DATA=DATA*100;break;
case 0x0B:DATA=DATA*1000;break;
}
LCD_DATA(0x89,DATA);
LCD_word(0x80+15,"V");
}
}
程序運行結(jié)果如圖:

全部內(nèi)容
全部內(nèi)容如下:

資料鏈接:https://docs.qq.com/doc/DT0ZleG9PZ0NhSWxU
?
-
電壓表
+關(guān)注
關(guān)注
3文章
324瀏覽量
41451 -
仿真
+關(guān)注
關(guān)注
54文章
4482瀏覽量
138241 -
51單片機
+關(guān)注
關(guān)注
278文章
5714瀏覽量
134261 -
數(shù)字電壓表
+關(guān)注
關(guān)注
4文章
197瀏覽量
34214
發(fā)布評論請先 登錄
MAX1270/MAX1271:多量程8通道12位串行ADC的卓越之選
求助,簡單的電壓表怎么能用多個測量串聯(lián)電池組的每個電池電壓
基于FPGA和LTC2308模數(shù)轉(zhuǎn)換芯片的數(shù)字電壓表設(shè)計
單片機最小系統(tǒng)工作原理及搭建
單片機怎么驅(qū)動電機?
大一暑假適合學51單片機嗎?
設(shè)計分享|基于51單片機的多量程數(shù)字電壓表
評論