IICreceiveByte(); //空读一次
slave_ACK(); //收到一个字节后发送一个应答位
while (i < 3)
//采集0,1,2通道
{
receivebuf[i++] = IICreceiveByte();
slave_ACK();
}
receivebuf[3] = IICreceiveByte(); //采集第3通道
slave_NOACK(); //收到最后一个字节后发送一个非应答位
iic_stop();
}
图4.3.2 A/D转换子流程图
4.3.3 显示子程序
显示子程序流程图如图4-3所示。判断LCD是否忙,通过单片机写指令控制,然后调用A/D转换的数据,显示在液晶显示屏上。
图4.3.3显示子程序流程图
结 论
本通用数据采集系统实用性强,能够很好地巡回采集测量控制多路数字信号和模拟信号,结构较为简单,成本低,外接元件少。在实际应用中工作性能稳定,测量电压准确,精度较高。而且从单片机主芯片串行口连接RS232转换芯片MAX232与PC机相连,完成电压实时数据的传递和其他控制工作。并通过串口和LCD显示端连接,拥有较好的人机界面。适用范围广泛,可以单独使用作为监控仪,应用于电子器件环境变化,工业厂房测量各部分的工作电压等等。也可以作为智能控制系统的一部分,与其它设备协同工作。系统移植性强,只需改变或添加前端测量用的传感器类型,可在此基础上修改为其他非电量参数的测量系统。
但是由于时间仓促,本多路数据采集系统,还有一些不足之处,也发现在许多的问题并没有很好的解决,只解决了一部分的问题,例如A/D转换,存储的问题得到了解决,但参数设置的问题并没有解决。虽然现场不能大量的存储数据,但也可存一定量至少当天所有的数据例如温度,气压的等等数据,这可以当做是上位机的一种备份,这本系统已可做到。但在现在设置参数的任务我并没有完成,这需要今后更进一步的思考与学习。在现实生产应用中现场设置也是有一定必要的,这样我们可以随时根据现在变化改变,不需要依靠后台。希望今后能够进一步完善系统。