资源描述:
《多机通信和单片机与pc机通信》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、多机通信和单片机与PC机通信一、系统概述随着单片机和微机技术的不断发展,由PC机和多台单片机构成的多机网络监控系统已成为单片机技术发展的一个方向。它结合了单片机在实时数据采集和微机对图形处理、显示的优点。同时,Windows环境下后台微机在数据库管理上具有明显的优势,二者结合,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。在许多工业生产中,用计算机对生产过程实行实时监控,对下位单片机采集来的数据进行实时数据处理,以及控制信号的产生与传输等功能。在这种工业生产的特定环境下,计算机要与过程控制的实时信号相联系
2、,因此要求计算机能实现对串行端口的直接操作。二、总体方案2.1.原理框图三、多机通信原理电路四、系统虚拟仿真操作方法:先点击Protues的开始按钮,在闭合与从机1或2通信时,在按下键盘,观察LED,在闭合与PC通信开关时,右键点击PC选择virtualterminal选项观察结果。与从机1通信与从机2通信与pc机通信PC机通信的结果主机程序:ORG0000HAJMPMAINFEATURE_CODEEQU22H;保存键值特征字节码KEY_VALEQU23H;键值GET_KEY0EQU24H;BUFEQU25HTEMPEQU26HADDEREQU27HSLAVEEQU
3、28HDTA_OR_COMEQU29HVALUEEQU30HSTR1EQU31HLCD_DATAEQU32HORG0080HMAIN:MOVKEY_VAL,#0C0H;键盘没键按下的时候送的初值CALLLCD1602;LCD1602初值化CALLInit_Lcd;LCD1602初值化MOVVALUE,#80H;数据指针定位到第一行第一列CLRP3.2;P3.2表示RS,RS=0,写命令CALLWrite_Lcd;调用写命令子程序MOVDPTR,#STR7CALLprintstring1;调用显示Hostcommunicate的子程序MOVVALUE,#0C0H;设置
4、开显示,不显示光标CLRP3.2;P3.2表示RS,RS=0,写命令CALLWrite_Lcd;调用写命令子程序MOVDPTR,#STR2CALLprintstring1;调用显示with的子程序TEST:LOOP_1:MOVA,P2;判断是与单片机1通信的是否开关按下ANLA,#01HJNZLOOP_2MOVVALUE,#0C6H;数据指针定位到第一行第七列CLRP3.2;P3.2表示RS,RS=0,写命令CALLWrite_Lcd;调用写命令子程序MOVDPTR,#STR3CALLprintstring1;调用显示1的子程序LOOP_2:MOVA,P2;判断是与
5、p单片机2通信的是否开关按下ANLA,#02HJNZLOOP_3MOVVALUE,#0C6H;数据指针定位到第一行第七列CLRP3.2;P3.2表示RS,RS=0,写命令CALLWrite_Lcd;调用写命令子程序MOVDPTR,#STR4CALLprintstring1;调用显示2的子程序LOOP_3:MOVA,P2;判断是与pc机通信的是否开关按下ANLA,#04HJNZLOOP_4MOVVALUE,#0C6H;数据指针定位到第一行第七列CLRP3.2;P3.2表示RS,RS=0,写命令CALLWrite_Lcd;调用写命令子程序MOVDPTR,#STR5CAL
6、Lprintstring1;调用显示pc的子程序LOOP_4:MOVVALUE,#0C6HCLRP3.2CALLWrite_LcdMOVDPTR,#STR6;CALLprintstring1;没有与别的机子通信;TEST:CALLKEY_SCAN;调用键盘扫描函数CALLGET_KEYMOVBUF,KEY_VALMOVTEMP,P2;通过P2口读要访问的从机地址ANLTEMP,#0FHMOVADDER,TEMP;CALLINIT;串口初始化CLRTISETBTB8MOVSBUF,ADDER;发送地址帧WT1:JNBTI,WT1;等待发送CLRTI;发送完毕TI清零C
7、ALLSENDDATA;发送数据MOVA,P2ANLA,#04HCJNEA,#00H,PC2MOVSLAVE,#03HPC1:MOVA,SLAVE;CJNEA,#03H,PC2;SETBP3.7CLRP3.7;RE=0MOVR0,#0MOVDPTR,#STRLOOP0:;MOVSBUF,@DPTRMOVA,R0MOVCA,@A+DPTRMOVSBUF,AWT3:JNBTI,WT3;等待发送CLRTI;发送完毕TI清零INCR0CJNEA,#00H,LOOP0CALLDELAY_10MSSETBSM2SETBP3.7;RE=1PC2:MOVSLAVE,#00HLJ