2.4上位计算机通信模块
上位计算机通信模块使用通用的MAX232串口通信方式,电路如图2.7:
图2.7
MAX232的主要作用是进行电平转换,从而使单片机AT89S51能和计算机进行通信。我们只使用了11、12来连接单片机AT89S51的P3.0口和P3.1口。MAX232的13和14脚与串口相连,将数据传送到计算机。
2.4.1串口通信的工作参数
波特率:9600;数据位是8位;停止位是1位;没有校验位。
3软件设计
3.1主程序设计
主程序主要的功能是组织并协调各模块的工作,处理“温度采集”模块传来的温度。
3.1.1被监测端(发射端)
被监测端(发射端)主程序时序图如图3.1:
11
图3.1
1. “操作人员”给“控制器1(AT89S51)”上电; 2. “控制器1(AT89S51)”对“本地显示(LCD1602)”进行初始化; 3. “控制器1(AT89S51)”对“无线收发(NRF905)”进行初始化; 4. “控制器1(AT89S51)”给“温度采集(DS18B20)”一个温度采集命令; 5. “温度采集(DS18B20)”把采集到的温度数据传输给“控制器1(AT89S51)”; 6. “控制器1(AT89S51)”对采集到的温度数据进行处理。判断温度的正负,把负温度转换为正码,
再把温度数据计算为实际温度,最后把温度数据传换成“本地显示(LCD1602)”能显示的格式。 7. “控制器1(AT89S51)”把处理后的温度数据传输给“本地显示(LCD1602)”以进行显示; 8. “控制器1(AT89S51)”设置“无线收发(NRF905)”为发射模式,以便发射原始温度数据; 9. “控制器1(AT89S51)”把未处理过的温度数据传输给“无线收发(NRF905)”,从而把温度数据
发射出去;
10. 回到第4步继续采集温度数据,一直这样循环;
以下是各模块对应的程序文件名称: 模块名称 控制器1(AT89S51) 本地显示(LCD1602) 无线收发(NRF905) 12
程序文件名称 Main.c Lcd1602.c及lcd1602.h Nrf905.c及nrf905.h 温度采集(DS18B20) Ds1820.c及ds1820.h 3.1.2监测端(接收端)
监测端(接收端)主程序时序图如图3.2:
1. 2. 3. 4. 5. 6. 7. 8. 9.
图3.2
“操作人员”给“控制器1(AT89S51)”上电; “控制器2(AT89S51)”对“本地显示(LCD1602)”进行初始化; “控制器2(AT89S51)”对“无线收发(NRF905)”进行初始化; “控制器2(AT89S51)”初始化串口通信,设置串口通信的参数; “控制器2(AT89S51)”设置“无线收发(NRF905)”为接收模式,以便接收被监测端(发射端)发射出来的原始温度数据; “无线收发(NRF905)”接收到原始温度数据,进行CRC校验,如果数据正确则把数据传输给“控制器2(AT89S51)”; “控制器2(AT89S51)”对接收到的数据进行处理,处理方法同被监测端(发射端)一样,这里就不重述。
“控制器2(AT89S51)”把处理后的温度数据传输给“本地显示(LCD1602)”以进行显示; “控制器2(AT89S51)”向上位计算机传输温度数据,以便上位计算机对温度数据进行监控;
13
10. 回到第15步继续接收温度数据,一直这样循环;
以下是各模块对应的程序文件名称: 模块名称 控制器1(AT89S51) 本地显示(LCD1602) 无线收发(NRF905) 串口通信
程序文件名称 Main.c Lcd1602.c及lcd1602.h Nrf905.c及nrf905.h Comm..c及comm.h 3.6计算机监控软件设计
计算机端监控软件的主要功能是接收单片机通过串口传输过来的温度数据,然后显示在屏幕上;采用对平台兼容性很好的JAVA语言编写。此软件的附加功能:
1. 设置报警温度,当温度超过报警温度时,屏幕上会报警; 2. 可以任意选择监控端口;
3. 退出软件后,再次启动本软件会恢复上次设置的报警温度; 其软件界面如图3.3
图3.3
由于计算机端监控软件功能很少,所以没有使用现在最流行的MVC模式进行开发。监控软件主要包括2部分:
1. 屏幕显示及控制类,类名:MainFrame;
2. 串口收发类,类名:SerialComm;使用的串口通信参数和单片机上的串口通信参数一致。
控制类(MainFrame)主要控制串口收发类(SerialComm)发送过来的数据,然后设置“现在温度”滑条,当“现在温度”超过“报警温度”时则显示报警,如图3.4所示
14
图3.4
由于我们把JAVA语言的运行平台JDK进行了集成,所以计算机监控软件无需安装即可使用。其使用方法如下:
1. 解压文件夹下的“PC串口通信程序”。
2. 进入解压后的文件夹,打开“温度监控”文件夹下的“温度监控.exe”即可。
4系统测试
4.1测试所使用的仪器
测试所使用的仪器有:数字万用表,温度计,串口调试器软件。
4.2软硬件测试
4.2.1显示(LCD1602)测试及数据
显示(LCD1602)测试方式:单片机AT89S51直接驱动LCD1602显示字符。测试数据如下:
被监测端(发射端): 标准显示 Temperature is:: 1234567890+-,./? 监测端(接收端): 标准显示 15
实际显示 实际显示