分布式电压采集系统

上传人:s9****2 文档编号:494055626 上传时间:2023-09-03 格式:DOCX 页数:3 大小:13.78KB
返回 下载 相关 举报
分布式电压采集系统_第1页
第1页 / 共3页
分布式电压采集系统_第2页
第2页 / 共3页
分布式电压采集系统_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《分布式电压采集系统》由会员分享,可在线阅读,更多相关《分布式电压采集系统(3页珍藏版)》请在金锄头文库上搜索。

1、分布式电压采集系统1目的利用单片机双机通信实现多通道采集控制以及采集电压的异地显示。(1) 2系统组成图1系统组成3基本设计要求甲机用于电压信号的采集,要求采集2路电压信号(信号源可由电位器分压得到),将当前采样的通道号和电压值在数码管或LCD进行显示。(2) 实现甲机和乙机的数据通信,采用RS-232方式完成通信接口。(3) 乙机通过键盘设置甲机的采集电压通道,并将给信息发送给甲机。4发挥部分乙机控制甲机电压采集通道,并接收甲机的采集电压数据在乙机的数码管或LCD上进行显示。(1) 增加实现2路信号的同时采集的功能,并进行采样电压的同时显示。(3)其他发挥。注:发挥部分前两点可不用同时满足。

2、留出相关测试点,程序固化到单片机中。电路图:略甲机程序:#include#defineuintunsignedint#defineucharunsignedchar/相关变量定义/bitshift;ucharnum,key;floattemp;ucharval_int;ucharval_decimal;ucharflag=0;/I/O口定义/sbitSTA_ALE=P3A6;sbitEOC=卩3八1;sbitOE=P3A7;sbitADC_C=P2A0;sbitADC_B=P2A1;sbitADC_A=P2A2;sbitW1=P2A3;sbitW2=P2A4;sbitW3=P2A5;sbitW

3、4=P2A6;sbitwela=P2A7;/带小数点数码管显示编码/uchardatanumtable_DE=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/不带小数点数码管显示编码/uchardatanumtable=0xb0,0xf9,0xa4,0xa0,0x99,0x92,0x82,0xf8,0x80,0x90;/数码管动态显示函数声明/voiddisp();/延时函数/voiddelay(uintx)uinta,b;for(a=x;a0;a-)for(b=110;b0;b-);/数码管动态显示函数/voiddisp()P0=numt

4、able_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;delay(5);W1=0;/通道编号的数码管显示函数/voiddisp_in(uchara)P0=numtablea;wela=1;W4=1;wela=0;delay(5);W4=0;/通道1的AD转换函数/voidADC_1()STA_ALE=0;ADC_C=0;ADC_B=0;AD

5、C_A=0;STA_ALE=1;delay(5);STA_ALE=0;/通道2的AD转换函数/voidADC_2()STA_ALE=0;ADC_C=0;ADC_B=0;ADC_A=1;STA_ALE=1;delay(5);STA_ALE=0;/判别是哪条通道AD转换函数/voidADC(ucharad_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

6、_2();delay(5);while(!EOC);OE=1;disp();disp_in(2);ES=0;SBUF=0xff;while(!TI);TI=0;SBUF=P1;while(!TI);TI=0;ES=1;temp=ad_dat*0.0196078;val_int=(uchar)temp;val_decimal=(uchar)(temp-val_int)*100);/初始化voidinit()TMOD=0x21;TH1=0xfd;TL1=0xfd;TH0=(65535-45872)/256;TL0=(65535-45872)%256;TR1=1;ET0=1;SM0=0;SM1=1;

7、REN=1;EA=1;ES=1;/主函数/intmain()init();while(!flag);while(1)if(key=0xa1)TR0=0;shift=0;ADC(P1);if(key=0xb2)TR0=0;shift=1;ADC(P1);if(key=0xc3)TR0=1;ADC(P1);voidT0_srv()interrupt1TH0=(65535-45872)/256;TL0=(65535-45872)%256;num+;if(num=30)num=0;shift=!shift;voidser()interrupt4RI=0;key=SBUF;flag=1;乙机程序:160

8、2头文件:#defineucharunsignedchar#defineuintunsignedintsbitlcd_rs=P3A5;sbitlcd_en=P3A4;voiddelay(uintz);voidwrite_com(ucharcom);voidwrite_data(uchardate);voidinit();1602c文件#include#defineucharunsignedchar#defineuintunsignedintsbitlcd_rs=P3A5;sbitlcd_en=P3A4;voiddelay(uintz)uintx,y;for(x=z;x0;x-)for(y=11

9、0;y0;y-);voidwrite_com(ucharcom)lcd_rs=0;P0=com;delay(5);lcd_en=1;delay(5);lcd_en=0;voidwrite_data(uchardate)lcd_rs=1;P0=date;delay(5);lcd_en=1;delay(5);lcd_en=0;voidinit()lcd_en=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);主程序:#include#include#defineucharunsignedchar#defineuint

10、unsignedintucharkey,ad_data,num,num1;floattemp;uchara,b,c;bitflag;sbitkey1=P3A2;sbitkey2=P3A3;sbitkey3=P3A6;uchard2;ucharcodetable=tongdao1:;ucharcodetable1=tongdao2:;ucharval_int;ucharval_decimal;voidkeyscan()/键盘扫描,并发送按键值if(key1=0)delay(10);if(key1=0)key=1;while(!key1);write_com(0x01);ES=0;SBUF=0xa

11、1;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(!TI);TI=0;ES=1;voiddisplay1(uchara1,ucharb1,ucharc1)/1通道显示write_com(0x80);for(num=0;num10;num+)write_data(

12、tablenum);delay(5);write_data(a1+0x30);write_data(.);write_data(b1+0x30);write_data(c1+0x30);write_data(V);/2通道显示voiddisplay2(uchara2,ucharb2,ucharc2)if(key=2)write_com(0x80);elsewrite_com(0x80+0x40);for(num=0;num10;num+)write_data(table1num);delay(5);write_data(a2+0x30);write_data(.);write_data(b2+

13、0x30);write_data(c2+0x30);write_data(V);voidchuli()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;voidinit_kz()TMOD=0x20;TH1=0xfd;TL1=0xfd;EA=1;TR1=1;SM0=0;SM1=1;REN=1;ES=1;main()init();init_kz();while(1)keyscan();if(key=1|key=2|key=3)delay(10);while(!flag);flag=0;chuli();voidser()interrupt4RI=0;for(num1=0;num12;num1+)dnum1=SBUF;ad_data=d1;flag=1;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号