分布式電壓采集系統(tǒng)_第1頁
分布式電壓采集系統(tǒng)_第2頁
分布式電壓采集系統(tǒng)_第3頁
分布式電壓采集系統(tǒng)_第4頁
分布式電壓采集系統(tǒng)_第5頁
免費預(yù)覽已結(jié)束,剩余3頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、分布式電壓采集系統(tǒng)1目的利用單片機雙機通信實現(xiàn)多通道采集控制以及采集電壓的異地顯示。2系統(tǒng)組成1 系統(tǒng)組成3基本設(shè)計要求(1)甲機用于電壓信號的采集,要求采集 2 路電壓信號(信號源可由電位器分壓得到),將當(dāng)前采樣的通道號和電壓值在數(shù)碼管或 LCD進行顯示。2)實現(xiàn)甲機和乙機的數(shù)據(jù)通信,采用 RS-232 方式完成通信接口。3)乙機通過鍵盤設(shè)置甲機的采集電壓通道, 并將給信息發(fā)送給甲機。4發(fā)揮部分(1)乙機控制甲機電壓采集通道, 并接收甲機的采集電壓數(shù)據(jù)在乙機的數(shù)碼管或LCD上進行顯示。2)增加實現(xiàn) 2 路信號的同時采集的功能, 并進行采樣電壓的同時顯示。3)其他發(fā)揮。注:發(fā)揮部分前兩點可不用

2、同時滿足。留出相關(guān)測試點,程序固化到單片機中。電路圖:略 甲機程序:#include <reg52.h>#define uint unsigned int#define uchar unsigned char / 相關(guān)變量定義 / bit shift;uchar num,key;float temp;uchar val_int;uchar val_decimal;uchar flag=0;/I/O 口定義 /sbit STA_ALE = P 3八6;sbit EOC = P 3"sbit OE = P 3八7;sbit ADC_C = PSO;sbit ADC_B = P

3、 2"sbit ADC_A = P22;sbit W仁P 2八3;sbit W2=P 2八4;sbit W3=P 2八5;sbit W4=P 2八6;sbit wela=卩2八7;/ 帶小數(shù)點數(shù)碼管顯示編碼 / uchar data numtable_DE = Ox4O,Ox79,Ox24,Ox3O,Ox19,Ox12,OxO2,Ox78, OxOO,Ox1O;/ 不帶小數(shù)點數(shù)碼管顯示編碼 / uchar data numtable =OxbO,Oxf9,Oxa4,OxaO,Ox99,Ox92,Ox82,Oxf8, Ox8O,Ox9O;/ 數(shù)碼管動態(tài)顯示函數(shù)聲明 / void dis

4、p();/ 延時函數(shù) / void delay(uint x) uint a,b;for ( a = x; a > O; a-)for ( b = 110; b > 0; b-);/ 數(shù)碼管動態(tài)顯示函數(shù) / void disp()P0 = numtable_DEval_int; wela=1;W3=1; wela=0; delay(5);W3=0;P0 = numtable(val_decimal/10); wela=1;W2=1; wela=0; delay(5);W2=0;P0 = numtable(val_decimal)%10; wela=1;W1=1; wela=0; d

5、elay(5);W1=0;/ 通道編號的數(shù)碼管顯示函數(shù) / void disp_in(uchar a)P0 = numtablea; wela=1;W4=1; wela=0; delay(5);W4=0;/ 通道1的AD轉(zhuǎn)換函數(shù)/void ADC_1()STA_ALE = 0;ADC_C = 0;ADC_B = 0;ADC_A = 0;STA_ALE = 1; delay(5);STA_ALE = 0;/ 通道2的AD轉(zhuǎn)換函數(shù)/void ADC_2()STA_ALE = 0;ADC_C = 0;ADC_B = 0;ADC_A = 1;STA_ALE = 1;delay(5);STA_ALE =

6、 0;/ 判別是哪條通道AD轉(zhuǎn)換函數(shù)/ void ADC(uchar ad_dat)if (!shift)OE=0;ADC_1();delay(5); while(!EOC);OE=1;disp(); disp_in(1);ES=0;SBUF=0xaa; while(!TI);TI=0;SBUF=P1; while(!TI);TI=0;ES=1; if (shift)OE=0;ADC_2(); delay(5); while(!EOC);OE=1; disp(); disp_in(2);ES=0;SBUF=0xff; while(!TI);TI=0;SBUF=P1; while(!TI);TI

7、=0;ES=1;temp = ad_dat*0.0196078; val_int = (uchar) temp; val_decimal = (uchar) (temp - val_int)*100); / 初始化 void init() TMOD=0x21; TH1=0xfd; TL1=0xfd;TH0 =(65535-45872)/256;TL0 =(65535-45872)%256;TR1=1;ET0=1;SM0=0;SM1=1;REN=1; EA=1; ES=1;/ 主函數(shù) / int main () init(); while(!flag); while(1) if(key=0xa1

8、) TR0=0;shift=0;ADC(P1); if(key=0xb2) TR0=0;shift=1;ADC(P1);if(key=0xc3)TR0=1;ADC(P1);void T0_srv() interrupt 1TH0 =(65535-45872)/256;TL0 =(65535-45872)%256; num+;if(num=30)num=0;shift=!shift;void ser() interrupt 4RI=0;key=SBUF;flag=1;乙機程序:1602頭文件: #define uchar unsigned char #define uint unsigned i

9、nt sbit lcd_rs=P 3八5;sbit lcd_e n=P 3八4;void delay(uint z); void write_com(uchar com); void write_data(uchar date); void init();1602c文件 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit lcd_rs=P 3八5;sbit lcd_e n=P 3八4; void delay(uint z)uint x,y;for(x=z;x>0;x-) fo

10、r(y=110;y>0;y-);void write_com(uchar com)lcd_rs=0;P0=com; delay(5); lcd_en=1;delay(5); lcd_en=0;void write_data(uchar date)lcd_rs=1;P0=date; delay(5);lcd_en=1; delay(5);lcd_en=0;void init()lcd_en=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01);主程序:#include<reg52.h> #in

11、clude<1602.h> #define uchar unsigned char #define uint unsigned int uchar key,ad_data,num,num1; float temp;uchar a,b,c;bit flag;sbit key仁卩3人2;sbit key2=卩3人3;sbit key3=卩3人6;uchar d2;uchar code table="tongdao1: " uchar code table1="tongdao2: " uchar val_int;uchar val_decimal;

12、void keyscan() /鍵盤掃描,并發(fā)送按鍵值if(key1=0)delay(10);if(key1=0)key=1;while(!key1);write_com(0x01);ES=0;SBUF=0xa1;while(!TI);TI=0;ES=1;if(key2=0)delay(10);if(key2=0)key=2;while(!key2);write_com(0x01);ES=0;SBUF=0xb2;while(!TI);TI=0;ES=1;if(key3=0)delay(10);if(key3=0)key=3;while(!key3);ES=0;SBUF=0xc3;while(!

13、TI);TI=0;ES=1;/1 通道顯示void display1(uchar a1,uchar b1,uchar c1)write_com(0x80);for(num=0;num<10;num+)write_data(tablenum);delay(5);write_data(a1+0x30); write_data('.');write_data(b1+0x30);write_data(c1+0x30); write_data('V');/2 通道顯示void display2(uchar a2,uchar b2,uchar c2)if(key=2)

14、write_com(0x80);else write_com(0x80+0x40); for(num=0;num<10;num+)write_data(table1num);delay(5);write_data(a2+0x30); write_data('.');write_data(b2+0x30);write_data(c2+0x30); write_data('V');void chuli()if(key=1)if(d0=0xaa) display1(a,b,c);if(key=2)if(d0=0xff) display2(a,b,c); if(key=3) if(d0=0xaa) display1(a,b,c); if(d0=0xff) display2(a,b,c);temp = ad_data*0.0196078;val_int = (uchar) temp;val_decimal = (uchar) (temp - val_int)*100); a=val_int;b=val_decimal/10; c=val_decimal%10;void init_kz()TMOD=0x20;TH1=0xfd

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論