图3-6 上位机程序主界面
除了主窗口外本软件还包含两个子窗口:一个是放大的温度显示窗口,可通过单击温度显示部分弹出,如图3-7;另一个是读取ROM窗口,可通过菜单栏的“工具-读取ROM”弹出,如图3-8。
图3-7 温度显示窗口
20
图3-7 读ROM窗口
3.3.3 串口收发程序设计
要想实现串口收发需要使用MSComm控件[13],同时必须正确地设置MSComm控件的各个属性才能实现数据的正常收发。其中主要属性的介绍与设置如下:
PortOpen属性:设置并返回通讯端口的状态。可通过设置该端口的值来打开和关闭端口。只有该端口设置为Ture时才能实现串口通信。本软件在Form_Load( )函数里将其设置为Ture,即打开计算机的串口。 CommPort属性:设置并返回通讯端口号。在设计时,value 可以设置成从 1 到 16 的任何数(缺省值为 1)。但是如果用 PortOpen 属性打开一个并不存在的端口时,MSComm 控件会产生错误 68(设备无效)。本软件默认设置为1。
SThreshold 属性:设置或返回引发发送事件的字节数,默认为0,即不引发发送事件。本软件设置为1,即1个字节就引发发送时间。
RThreshold 属性:设置或返回引发接收事件的字节数,默认为0,即不引发接收事件。本软件设置为1,即接收到一个字节就引发接收事件。
Settings 属性: 设置并返回波特率、奇偶校验、数据位、停止位参数。由于波特率越大,最大通信距离越短,所以考虑到本课题的应用范围比较大,故设置波特率为110bit/s;奇偶校验设置为n,即不需要奇偶校验;数据位设置位8,即一个字节;停止位设置为1。
21
InputMode 属性:用于设置数据取回的方式,设置为0(默认)时,以文本方式取回数据,设置为1时,以二进制方式取回数据。
3.3.4 绘图程序
该程序用于在PictureBox控件中绘制坐标函数和温度曲线[1]。并可以通过调整采集时长来调整横坐标的刻度,通过调整阈值中的上下限来调整温度曲线的颜色。坐标效果如图3-8所示。
图3-8 PictureBox控件中的坐标效果
3.4 本章小结
本章主要介绍了整个系统的软件部分,包括用C语言编写单片机程序和用Visual Basic6编写的计算机软件。 单片机程序主要分为三部分:读取测温器件DS18B20的温度、显示温度并将温度发送给电脑。而使用Visual Basic6编写的计算机端软件则主要是用于接收单片机发送到的数据并进行相应的处理,对数据的处理工作主要是绘制温度曲线和制作温度列表,此外该软件还具有对单片机工作的一些控制功能,能够对单片机发送精度选择命令和通道选择命令,再通过单片机对DS18B20的写存储器操作实现精度的选择和测温通道的选择。
22
第4章 仿真与调试
4.1 PROTEUS介绍
Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大[5]。
4.2 原理图的输入
4.2.1 工作界面
Proteus ISIS的工作界面是一种标准的Windows界面,如图4-1所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
23
图4-1 Proteus ISIS的工作界面
4.2.2 绘制原理图
1.画导线
Proteus的智能化可以在你想要画线的时候进行自动检测。当鼠标的指针靠近一个对象的连接点时,跟着鼠标的指针就会出现一个“×”号,鼠标左键点击元器件的连接点,移动鼠标(不用一直按着左键)就。出现了粉红色的连接线变成了深绿色。如果你想让软件自动定出线路径,只需左击另一个连接点即可。这就是Proteus的线路自动路径功能(简称WAR),如果你只是在两个连接点用鼠标左击,WAR将选择一个合适的线径。WAR可通过使用工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。如果你想自己决定走线路径,只需在想要拐点处点击鼠标左键即可。在此过程的任何时刻,你都可以按ESC或者点击鼠标的右键来放弃画线。
24