单片机多路数据采集控制系统—软件仿真(3)

2018-11-28 16:06

P0=date; //输入数据,就是你要在液晶上显示什么

EN=1;

//使能端拉高,开始输入

数据 delay(5);

EN=0; //拉低使能端,停止工作

delay(5);

}

void delay(uint z) //延时函数 { uintj,k;

for(j=0;j

大约一毫秒

}

voidwrite_sfm(ucharadd,uchar date)

{ write_com(0x80+0x40+add); //写完光标自动到下一位

write_data(0x30+date);

}

/*****************ADC转换和数据采集****************/ void read(uint a) { START=0; P2=0x00; P2=tab[a]; _nop_(); _nop_(); _nop_(); _nop_(); START=1; _nop_(); START=0; _nop_(); delay(5); while(!AD_INT); P2 = 0xff; _nop_(); _nop_(); AD_ENA=1; _nop_();

shuju=P2;

_nop_(); AD_ENA=0; _nop_(); P2 = 0xff;

b1 = shuju/51; //整数部分 b2 = (shujuQ)*10/51;//小数部

分 }

/*****************显示数据*****************/ void display(uint a) { write_sfm(0x04,a); write_sfm(0x07,b1); write_sfm(0x09,b2);

}

/*****************按键扫描*****************/ void key() { if(k0!=1) { read(ii); display(ii); delay(5);

}

if(k1!=1) { for(i=0;i<8;i++) { read(i); display(i); delay(500);

}

}

if(k2!=1) { for(i=0;i<8;i++) { read(i);

display(i);

delay((t+t*(i%2))*1000);

}

}

if(k3!=1) { }

if(k4!=1) {

b=b1+0.1*b2;

if(b<=1.8||b>=2.2)

{

delay(5);

while(1) {

read(2); display(2);

ii++;

delay(500); if(ii>=8) { }

write_sfm(0x04,ii);

ii=0;

}

LED1=0; TR0=1; TR1=1; flag=0; LED1=1; TR0=0; TR1=0; }

}

} } else {

fre=50000;

四、调试及结果

1、可以单点采集、多路巡测、采集时间间隔:

图12 运行显示结果图

2、可以实现IN2通道采集电压报警功能:

图13 IN2通道电压大于等于2.2V报警

图14 IN2通道电压小于等于1.8V报警

五、结束语

通过这次课程设计巩固了自己的单片机编程能力,扎实了自己的专业能力。在程序

设计中由于自己不够细心,在一些很细小的错误中耗费了很多时间,使得在完成课程设计时很赶。因此,在以后程序编写时应该更加认真,做到高效率完成任务。另外,感觉自己的专业十分强大,如果好好学以后会有很好的发展。

六、参考文献

百度文库


单片机多路数据采集控制系统—软件仿真(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:校园安全亮点工作总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: