粮食水分在线测量系统设计论文(上交版)(8)

2019-04-16 16:23

第三章 粮食水分在线测量硬件系统设计

3.6 单片机系统与PC机的通讯

在设计中,作为可选方式之一,使用单片机将水分值、温度值实时送入计算机中进行显示处理。这样可以借助PC机强大的数据处理能力,在前期设计阶段对数据进行分析和曲线拟合,同时也可以作为日后定型产品的功能之一,与计算机相接后通过软件处理进行新的粮食品种曲线拟合并存储在单片机中。

单片机与PC通讯采用串行通讯方式,将单片机TXD和RXD的信号通过MAX232进行电平转换后送PC机串行口。具体转换电路如图3.10所示。单片机采用12MHz晶振,为保证通讯的可靠性,将波特率误差控制在4.5%以内,所以选择1200bps的波特率。电压值每150ms向主机发送一次,温度作为缓变信号,每1s向主机发送一次。

图3.7单片机与PC通讯接口电路

通讯协议的约定,在单片机与PC机通讯中,采用自约定的协议方式。将电压值作为一个数据包发送,约定格式为: ?AA?+U1+U2+U3+U4。其中, ?AA?为数据包识别用的前导字符,当上位机检测到?AA?后,就开始连续读取随后的四个数U1-U4作电压值。温度值作为单独的一个数据包发送,约定格式为:?BB?+Tl+T2+T3+T4。其中,?BB?为数据包的前导字符,当上位机检测到?BB?后,就开始连续取随后的Tl-T4作为测得的温度值。

- 31 -

第四章 粮食水分在线测量软件系统设计

第四章 粮食水分在线测量软件系统设计

软件设计包括单片机系统软件设计和上位机系统软件设计两个部分。

4.1 单片机系统软件设计

4.1.1 主程序

主程序流程图如图4.1所示。

数据送 PC? Y N N

图4.1主程序流程图

关机键按下? 调用串行通信程序 结果送LED显示 温度值测量 数据处理:计算水分值 LED显示点状态 初始化 延时1秒 开始 N 测量键按下? Y 电容-电压值测量 Y 结束 系统主程序主要包括初始化管理、显示管理、通讯中断服务程序管理和数据

- 32 -

第四章 粮食水分在线测量软件系统设计

处理等几个部分。

初始化管理主要对单片机89C52内部特殊功能寄存器及24WC02进行初始化状态设定、对拟合曲线系数、温度补偿系数进行初始化。

在系统上电之初,电路处于不稳定状态,另外24WC02要求在写入和读出前有10ms的延时时间,所以在初始化后进行1s延时,以保证电路稳定。

系统中的LED显示采用动态显示的方法,每隔10ms进行一次扫描,在系统初始化后显示“点”状态。随后进行按键检测,为减少操作的复杂性,键盘接口相对简单,采用独立按键形式,三个按键(键名分别为“测量”、“送PC”、“结束”)分别接在89C52的P2.0、P2.1、P2.2上。 4.1.2 电容值测量程序设计

在粮食干燥塔出入口处通过电容传感器测量,经过转换,数值放在50H中。 4.1.3 温度测量程序设计

温度测量主要是对DS18B20的转换控制,在时序上进行严格控制。温度测量主程序流程图如图4.2。

在温度测量主程序之下包括三个子程序:初始化DS18B20子程序;读DS18B20子程序,从DS18B20中读出两个字节的温度数据,低位存入36H(TEMPER L),高位存入35H(TEMPER_H);写DS18B20子程序。

在每一次测量时,先进行初始化然后检测器件是否挂在总线上(也即器件是否可用),如果不存在,则重复检测。如果不进行这一步判断,极有可能由于器件的损坏而造成系统死机。发出SKIP ROM命令及温度转换和读取命令后,完成一次温度测量。

初始化程序流程图如图4.3所示。由单片机在DQ上给出先高后低再高的信号后,延时96?s以等待器件将DQ线拉低,如果DQ没有被拉低则表明器件不存在或者己损坏,如果DQ被拉低,则单片机延时200?s后主动将DQ置位。

读DS18B20子程序流程图如图4.4所示。在进入子程序后,先对所读字节数、所读位数以及读入后存放的地址进行设置。然后给出一系列应答信号,将DQ上出现的位数据通过RRC A指令传递到A寄存器中,根据是高位还是低位存入相应的地址。

写DS18B20子程序流程图如图4.5所示。欲写的数据存放在寄存器A中,在单片机向DQ发出相应的应答信号后,逐位循环右移向DQ上写位数据,完成后置位DQ表示一个字节数据写完成。

- 33 -

第四章 粮食水分在线测量软件系统设计

入口 DQ置位 初始化DS18B20 N

DS18B20存在? Y 延时程序 向DS18B20写控制字CCH,调用DS18B20子程序 向 DS18B20 写控制字 44H ,发温度转换命令,调用DS18B20 子程序 延时程序 初始化DS18B20 N DS18B20存在? Y 延时程序 向DS18B20写控制字CCH, 调用DS18B20子程序 向 DS18B20写控制字BEH,发温度转换命令,调用 DS18B20子程序 返回 图4.2温度测量主程序流程图

- 34 -

入口 DQ置位 DQ复位 延时 DQ置位 延时96微妙,等待延时 DQ=0 ? N Y FLAG1置0,表示器件不存在 FLAG1置1,表示器件存在 延时200微秒 DQ置位 返回 4.3 DS18B20初始化程序流程图

图第四章 粮食水分在线测量软件系统设计

入口 入口 置所写数据位数R2=8清标志C 初始化,置所读字节数R4=2, 置读后低位地址=36H 延时等待 DQ 上数据位出现 N DQ位存入C标志位 DQ复位 DQ置位 清C标志 DQ置位 置所读位数R2=8 复位DQ 带C标志左移寄存器A,将A中的数据逐位移向C 将C中数据送到DQ上 延时 置位DQ Y 带C 标志位右移A寄存器 置位DQ 返回 R2=0? N Y A中数存为低位地址 将 地址数减1形成高位地址 R2=0? N R4=0? 返回 Y 图4.4读DS18B20子程序流程图 图4.5写DS18B20子程序流程图

4.1.4 E2PROM与单片机接口程序设计

E2PROM 24WC02采用I2C总线读取方式,在与单片机的接口程序设计中,主要是使用89C51的口线模拟I2C总线的工作方式,以完成对24WC02的读写操作。24WC02的读写程序主要包括读字节子程序( READBYTE )、写数据子程序(WRITE )、发送字节子程序( SENDBYTE )、起始位子程序(BSTAR )、停止位子程序(BSTOP)以及应答子程序(ACK)。

- 35 -


粮食水分在线测量系统设计论文(上交版)(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:建筑电气毕业设计说明书

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

马上注册会员

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