地结果变量输入,若求和结果为“0”,则不回发任何信息;若求和结果不为“0”,则回发“数据有误,请重新发送!”信息,请求重新发送数据。至此接收端程序设计完毕,保存此程序,取名为“接收数据. vi”。
图5 重发框图
由此可以得出Labview的总体程序: 这里是程序面板(图6):
图6 程序函数面板图
这里是前面板(图7):
图7 程序前面板图
2 单片机部分设计
2.1 硬件部分
MCS-51单片机部有一个功能很强的全双工串行口,该串行口有4种工作方式,波特率可是软件设置,由片的定时器/计数器产生,接收、发送均可触发中断系统,使用十分方便。有2个物理上独立的接收、发送缓冲器SBUF,对外也有两条独立的收、发信号线RXD(P3.0)和TXD(P3.1)。
本文采用RS232串行接口标准,在电气特性上,RS-232采用负逻辑,要求高低两信号间有较大的幅度,标准为:逻辑“1”在-5V~-15V之间,逻辑“0”在+5V~+15V之间,通常采用-10V左右为逻辑1,+10V左右为逻辑0。由于MCS-51系统的信号输入输出为TTL电平,逻辑1为3.8V左右,逻辑0为0.4V左右,因此,必须外接电路实现TTL电平到RS-232电平的传换。本文采用MAX232F实现此转换。
采用TLC0831芯片进行数据的采集。TLC0831芯片为8位逐次逼近电压型A/D转换器,支持单信道输入串口输出,极性设置固定,不需寻址。其主要特点为:8位分辨率;5Vde电源提供0~5V的可调基准电压;输入输出可与TTL和MOS兼容。
若要提高信号的采样频率,只需选择转换速度较快的A/D芯片即可。硬件部分原理图如图8。
图8 硬件protel图
2.2 软件部分
下面给出单片机软件部分的主要程序。波特率设置为9600,用定时器1产生波特率,串口工作在方式1,无奇偶校验。定时器0设定采样的时间间隔。TLC0831为A/D转换器数据采样子程序,SEND为单片机发送子程序。
CK EQU P1.0 ; 0832的时钟 DO EQU P1.1 ; 0832的输出 DI EQU P1.2 ; 0832的配置输入 CS EQU P1.3 ; 0832的片选 ORG 0000H ; 主程序入口 AJMP MAIN
ORG 0030H ;主程序
MAIN:MOV TMOD , # 20H ; T1选择为方式2 ,8 位计数,自动装载 NOP NOP
MOV TH1 , # OFDH;选择波特率为9600 bps NOP NOP
MOV TL1 , # OFDH NOP NOP
SETB TR1 ;启动定时器 NOP
MOV SCON , # 040H ;选择串口为方式1 ,10 位异步通信格式 NOP NOP
END:MOV SBUF ,A ;发送0832 采集来的数据 CLR CS ;片选有效 NOP
MOV A , # 03H ;配置0832 为单端输入
MOV R0 , # 03 ;共配置3 位 WWWR:CLR CK
RRC A ;将配置位移入 C中 MOV DI ,C ;开始配置0832 SETB CK DJNZ R0 ,WWWR
CLR CK ;稳定0832 的输出通道 NOP SETB CK
MOV R0 , # 8 ;循环8 次,采一个字节 RRRD:CLR CK MOV C ,D0 RLC A SETB CK
DJNZ R0 ,RRRD SETB CS ;取消片选
NOP
WAIT:JNB TI ,WAIT ;等待发送完毕 CLR TI ;清发送完标志 NOP
SJMP SEND ;继续下一次发送 END