資源簡介
在工業生產和控制中,常常需要對0-16V的多點電壓值進行采集以完成后續工作,因此對多點高量程電壓的測量是十分必要的。本次設計主要采用單片機AT89S51、A/D轉換器TLC2543、繼電器、基準電壓源、LCD1602液晶顯示器設計的多點數字電壓表。該設計將輸入的0-16V直流電壓分為高、低兩個量程進行測量,待測模擬電壓輸入默認接入高量程電路,通過單片機編程實現多路A/D轉換TLC2543的選通和接入,轉換結果與設定值作比較以控制繼電器自動切換高、低電壓測量量程。轉換結果經單片機運算處理后,通過1602液晶屏將三路被測電壓值顯示出來。該設計最終可實現對三路0-16V直流電壓的測量與顯示,能自動轉換量程,誤差小于0.05V。可應用在工業生產控制中,對生產進行實時監控,發現異常及時提醒相關人員采取措施。

代碼片段和文件信息
#include ???//包含頭文件
#define?uint?unsigned?int?
#define?uchar?unsigned?char ???//宏定義
sbit?ale=P2^6;
sbit?start=P2^7;
sbit?eoc=P3^0;
sbit?oe=P3^1; ???//定義adc0809的控制引腳
sbit?adda=P2^0;
sbit?addb=P2^1;
sbit?addc=P2^2; ???//adc0809的地址引腳
sbit?rs=P2^3;
sbit?rw=P2^4;
sbit?en=P2^5; ???//液晶的控制引腳
sbit?key1=P3^4;
sbit?key2=P3^3;
sbit?key3=P3^2; ???//檔位切換按鍵定義
uint?voltdatarealvoltijkltsuma[5]; ?//定義全局變量
uchar?add; ?//地址變量
uchar?code?t1[]={“DC?Voltmeter:IN?“};
uchar?code?t2[]={“?(0~??V):??.??V?“};
uchar?code?t3[]={“??????Hello!????“};
uchar?code?t4[]={“?????Welcome!???“}; ?//初始化顯示
void?delay(uint?ms) ?//延時程序
{
uint?ij;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
void?writelcd_cmd(uchar?cmd)//向1602液晶顯示器里寫入命令的函數
{
en=0;
rs=0;
rw=0;
delay(1);
P0=cmd;
en=1;
delay(1);
en=0;
}
void?writelcd_dat(uchar?dat)//向1602液晶顯示器里寫入數據的函數
{
en=0;
rs=1;
rw=0;
delay(1);
P0=dat;
en=1;
delay(1);
en=0;
}
void?lcd_init() ?//初始化1602液晶顯示器的函數
{
writelcd_cmd(0x38);
delay(5);
writelcd_cmd(0x38);
delay(5);
writelcd_cmd(0x38);
writelcd_cmd(0x08);
writelcd_cmd(0x01);
writelcd_cmd(0x06);
writelcd_cmd(0x0c);
writelcd_cmd(0x80);
}
void?addselect() //量程選擇
{
switch(add) //判斷地址
{
case?0:adda=0;addb=0;addc=0;break;
case?1:adda=1;addb=0;addc=1;break;
case?2:adda=0;addb=1;addc=0;break; //切換到不同的量程
default:break;
}
}
uint?adtrans() ?//AD轉換
{
sum=0; ?????????????//濾波開始
????for?(i=0;i<5;i++) ???
{
addselect();
ale=1;
ale=0;
start=1; ?//啟動AD轉換。
start=0;
while(eoc==0); ?//等待轉換結束。
oe=1;
a[i]=P1; ?????//出入轉換結果。
delay(5); ??////每隔5usAD轉換并采集一次數據,將得到的數值存入數組中
}
for?(j=0;j<4;j++)
for(i=0;i<4-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=1;i<4;i++)
{
sum+=a[i];
} ??//采用冒泡法比較,取中間3個數值
voltdata=sum/3;
delay(1);
oe=0;
voltdata=(100*voltdata)/51; ???//處理運算結果。
return?voltdata;
}
void?disvolt() //顯示函數
{
uchar?sisaneryi; //四個顯示的位
switch(add)
{
case?0:realvolt=voltdata;writelcd_cmd(0x80+15);writelcd_dat(‘1‘);writelcd_cmd(0xc0+4);writelcd_dat(‘0‘);writelcd_dat(‘5‘);break; //計算并顯示對應的電壓值和量程
case?1:realvolt=voltdata*2.4;writelcd_cmd(0x80+15);writelcd_dat(‘2‘);writelcd_cmd(0xc0+4);writelcd_dat(‘1‘);writelcd_dat(‘2‘);break;
case?2:realvolt=voltdata*4.8;writelcd_cmd(0x80+15);writelcd_dat(‘3‘);writelcd_cmd(0xc0+4);writelcd_dat(‘2‘);writelcd_dat(‘4‘);break;
default:break;
}
si=realvolt/1000;
san=realvolt/100%10;
er=realvolt/10%10;
yi=realvolt%10; ?//將電壓值分成4個一位數,方便顯示
writelcd_cmd(0xc0+9); ???//顯示電壓值
writelcd_dat(si+0x30);
writelcd_dat(san+0x30);
writelcd_cmd(0xc0+12);
writelcd_dat(er+0x30);
writelcd_dat(yi+0x30);
}
void?anjian() //按鍵掃描函數
{
if(key1==0) //第一個按鍵按下
add=0; //切換檔位
else?if(key2==0)
add=1;
else?if(key3==0)
add=2;
}
void?init() ? //初始化函數
{
EA=1; //打開中斷總開關
add=0; //初始化為0檔,
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????619661??2018-10-14?22:43??功能說明\錄像\QQ圖片20181014224438.png
?????文件?????325196??2018-10-14?22:44??功能說明\錄像\QQ圖片20181014224451.png
?????文件?????670426??2018-10-14?22:44??功能說明\錄像\QQ圖片20181014224454.png
?????文件????????608??2018-04-26?15:48??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\1、使用之前必看\1、使用之前必看.txt
?????文件??????99638??2018-04-26?15:30??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\1、使用之前必看\芯片放放置步驟示范.jpg
?????文件?????403922??2013-08-22?10:11??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\1、使用之前必看\計算機更改串口(COM口)的方法.pdf
?????文件?????120832??2013-04-07?17:53??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\2、USB驅動\CH340T驅動安裝.doc
?????文件???????4038??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\AT898252.CFG
?????文件???????2742??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\AT89X051.CFG
?????文件???????3066??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\AT89X5X.CFG
?????文件??????31578??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\M168S.CFG
?????文件??????27366??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\M169PS.CFG
?????文件??????28014??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\M169S.CFG
?????文件??????32550??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\M16S.CFG
?????文件??????32550??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\M32S.CFG
?????文件??????26394??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\M48S.CFG
?????文件??????33198??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\M64S.CFG
?????文件??????32550??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\M8515S.CFG
?????文件??????32550??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\M8535S.CFG
?????文件??????30606??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\M88S.CFG
?????文件??????32550??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\M8S.CFG
?????文件???????5334??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\SST89554.CFG
?????文件???????5010??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\SST89564.CFG
?????文件???????5658??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\SST89C5X.CFG
?????文件???????2094??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\SST89F5X.CFG
?????文件??????22182??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\T2313S.CFG
?????文件??????28338??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\TINY26S.CFG
?????文件???????3390??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\W78EXX1.CFG
?????文件???????5982??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\W78EXX2.CFG
?????文件???????5982??2008-08-14?18:36??功能說明\成品\oM18-USB燒錄器使用資料\FoM18-USB燒錄器使用資料\3、AT89?AVR?24?93燒錄軟件\WLPRO_V220_SETUP\cfg\W78EXX3.CFG
............此處省略45個文件信息
- 上一篇:華為網絡拓撲圖標
- 下一篇:有限體積法基礎_第2版--李人憲
評論
共有 條評論