保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

高速铁路防风防雨安全监测报警系统


AT89C52单片机本身具有全双工串行数据通信功能,其实现由SCON和PCON两个特殊寄存器控制。本系统选用方式3的9位数据异步通信方式,无奇偶校验。通信时各单片机装置中SCON的SM2均设置为1,上位机发送某一地址码并置R1,则所有的单片机均发生接收中断,此时表明上位机发来的信息是1帧地址信息。当某一单片机发现其接收的地址信息与本机地址相符时,SM2=0,并把本机地址作为应答信号返回给上位机,准备接收上位机发来的命令或数据。地址相符的单片机收第9位为

0的数据或命令;而地址不符的单片机则保持SM2=1,不能产生中断标志,信息将抛弃,从而实现了上位机与单片机的一对一通信。通信初始化为

MOV SCON,#0F0H

MOV PCON,#00H

MOV TMOD,#20H

MOV TH1,#0F3H

MOV TL1,#0F3H

(2)PC机软件设计

在串行通信中调用Windows的API接口方法,是实现VB直接控制串行口硬件的有效方案。VB提供了一个名为Mscomm的控件(或Winsock控件),能为应用程序提供串行通信功能。初始化和定时数据通信程序如下:

Dim Cindata As Variant

Dim Coutdata(0) As Byte

Private Sub Form_Load()

MSComm1.CommPort=2 '端口设置为2

MSComm1.PortOpen=True '打开端口

MSComm1.Settings="2400,n,8,1" '通信方式设置

MSConn1.InputMode=comliputModeBinary '以二进制形式传送

End Sub

Private Sub Timer2_Timer()

Coutdata(0)=CUMADDRESS '发送下位机地址

MSComm1.Output=Coutdata

Do

DoEvents

Loop Until MSComm1.InBufferCount>=1

Cindata=MSComm1.Input

If Cindata(0)=CUMADDRESS Then

Do

DoEvents

Loop Until MSComm1.InBufferCount>=DATALENGTH

Cindata=MSComm1.Input

End Sub

(3)软件抗干扰设计

调试中发现常有死机、接触不灵敏问题,因此必须考虑抗干扰设计方法。单片机受干扰导致出错而无法自动恢复正常状态,通常是由于RAM区数据被破坏的缘故。我们利用AT89C52的数据RAM单元在每一个主要程序模块入口设置检验标导,结束时验证其标志是否与入口时一致,还要验证重要的数据标志是否正确(如键盘的键值),否则程序将进行出错处理。另外,设备软件看门狗,利用AT89C52不用的T2定时监视程序是否正常运行,这样保证了运行的可靠性。

《高速铁路防风防雨安全监测报警系统(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/155850.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。