多机通信和单片机与PC机通信

上传人:工**** 文档编号:470557446 上传时间:2023-11-25 格式:DOC 页数:31 大小:569.50KB
返回 下载 相关 举报
多机通信和单片机与PC机通信_第1页
第1页 / 共31页
多机通信和单片机与PC机通信_第2页
第2页 / 共31页
多机通信和单片机与PC机通信_第3页
第3页 / 共31页
多机通信和单片机与PC机通信_第4页
第4页 / 共31页
多机通信和单片机与PC机通信_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《多机通信和单片机与PC机通信》由会员分享,可在线阅读,更多相关《多机通信和单片机与PC机通信(31页珍藏版)》请在金锄头文库上搜索。

1、多机通信和单片机与PC机通信 一、系统概述随着单片机和微机技术的不断发展,由PC机和多台单片机构成的多机网络监控系统已成为单片机技术发展的一个方向。它结合了单片机在实时数据采集和微机对图形处理、显示的优点。同时,Windows环境下后台微机在数据库管理上具有明显的优势,二者结合,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。在许多工业生产中,用计算机对生产过程实行实时监控,对下位单片机采集来的数据进行实时数据处理,以及控制信号的产生与传输等功能。在这种工业生产的特定环境下,计算机要与过程控制的实时信号相联系,因此要求计算机能实现对串

2、行端口的直接操作。二、总体方案 2.1. 原理框图三、多机通信原理电路 四、系统虚拟仿真操作方法:先点击Protues的开始按钮,在闭合与从机1或2通信时,在按下键盘,观察LED,在闭合与PC通信开关时,右键点击PC选择virtual terminal选项观察结果。与从机1通信与从机2通信与pc机通信PC机通信的结果主机程序:ORG 0000HAJMP MAINFEATURE_CODE EQU 22H ; 保存键值特征字节码KEY_VAL EQU 23H ; 键值GET_KEY0 EQU 24H ;BUF EQU 25HTEMP EQU 26HADDER EQU 27HSLAVE EQU 28

3、HDTA_OR_COM EQU 29HVALUE EQU 30HSTR1 EQU 31HLCD_DATA EQU 32HORG 0080HMAIN:MOV KEY_VAL, #0C0H ;键盘没键按下的时候送的初值CALL LCD1602 ;LCD1602初值化CALL Init_Lcd ;LCD1602初值化MOV VALUE,#80H ;数据指针定位到第一行第一列 CLR P3.2 ;P3.2表示RS,RS=0,写命令CALL Write_Lcd ;调用写命令子程序MOV DPTR, #STR7CALL printstring1 ;调用显示Host communicate 的子程序MOV

4、VALUE,#0C0H ;设置开显示,不显示光标CLR P3.2 ;P3.2表示RS,RS=0,写命令CALL Write_Lcd ;调用写命令子程序MOV DPTR, #STR2CALL printstring1 ;调用显示 with的子程序TEST:LOOP_1:MOV A,P2 ;判断是与单片机1通信的是否开关按下ANL A,#01HJNZ LOOP_2 MOV VALUE,#0C6H ;数据指针定位到第一行第七列 CLR P3.2 ;P3.2表示RS,RS=0,写命令CALL Write_Lcd ;调用写命令子程序MOV DPTR,#STR3CALL printstring1 ;调用显

5、示 1 的子程序LOOP_2:MOV A,P2 ;判断是与p单片机2通信的是否开关按下ANL A,#02HJNZ LOOP_3 MOV VALUE,#0C6H ;数据指针定位到第一行第七列 CLR P3.2 ;P3.2表示RS,RS=0,写命令CALL Write_Lcd ;调用写命令子程序MOV DPTR,#STR4CALL printstring1 ;调用显示 2 的子程序LOOP_3:MOV A,P2 ;判断是与pc机通信的是否开关按下ANL A,#04HJNZ LOOP_4 MOV VALUE,#0C6H ;数据指针定位到第一行第七列CLR P3.2 ;P3.2表示RS,RS=0,写命

6、令CALL Write_Lcd ;调用写命令子程序MOV DPTR,#STR5CALL printstring1 ;调用显示 pc 的子程序LOOP_4:MOV VALUE,#0C6H CLR P3.2CALL Write_LcdMOV DPTR,#STR6;CALL printstring1 ;没有与别的机子通信;TEST:CALL KEY_SCAN ;调用键盘扫描函数 CALL GET_KEYMOV BUF,KEY_VALMOV TEMP,P2 ;通过P2口读要访问的从机地址ANL TEMP,#0FHMOV ADDER, TEMP ;CALL INIT ;串口初始化CLR TISETB T

7、B8MOV SBUF,ADDER ;发送地址帧WT1:JNB TI,WT1 ;等待发送CLR TI ;发送完毕TI清零CALL SENDDATA ;发送数据MOV A,P2ANL A,#04HCJNE A,#00H,PC2 MOV SLAVE,#03HPC1:MOV A,SLAVE;CJNE A,#03H,PC2;SETB P3.7CLR P3.7 ;RE=0MOV R0, #0MOV DPTR, #STRLOOP0:;MOV SBUF, DPTRMOV A, R0MOVC A, A+DPTRMOV SBUF,AWT3:JNB TI,WT3 ;等待发送CLR TI ;发送完毕TI清零INC R

8、0CJNE A, #00H, LOOP0CALL DELAY_10MSSETB SM2SETB P3.7 ;RE=1PC2:MOV SLAVE,#00HLJMP TESTLCD1602:CLR P3.2 ;RSSETB P3.3 ;RWSETB P3.5 ;ENMOV P0,#0XFF RETInit_Lcd:CALL DELAY1000US ;1500MSMOV VALUE,#38H CLR P3.2CALL Write_LcdCALL DELAY1000US ;500MSMOV VALUE,#38H CLR P3.2CALL Write_LcdMOV VALUE,#01H CLR P3.2

9、CALL Write_LcdMOV VALUE,#06H CLR P3.2CALL Write_LcdMOV VALUE,#0CHCLR P3.2CALL Write_LcdRETWrite_Lcd:MOV P0,VALUE;MOV RS,DTA_OR_COMCLR P3.3SETB P3.5CALL Delay1000US ;100MSCLR P3.5RETprintstring1:MOV R1,#00HLOOP9:MOV A,R1 MOVC A, A+DPTRMOV VALUE,ASETB P3.2CALL Write_LcdINC R1CJNE A, #00H, LOOP9 RETSEN

10、DDATA:;SETB TICLR TB8MOV SBUF,BUFWT2:JNB TI,WT2CLR TIRET INIT:MOV TMOD,#20H ;定时器T1使用工作方式2MOV TL1, #0FAHMOV TH1, #0FAHSETB TR1 ;开始计时MOV SCON,#0D0HMOV PCON,#80H ;SMOD = 1SETB P3.4 ;DE ;MAX485使能端SETB P3.7 ;RERET;P1口矩阵键盘扫描;特征字节码保存在FEATURE_CODE内存单元KEY_SCAN:MOV P1, #0F0HMOV A, P1ANL A,#0F0HCJNE A, #0F0H,

11、NEXT1AJMP KEY_SCAN_ENDNEXT1:LCALL DELAY_10MS ; 延时去抖动MOV P1, #0F0HMOV A, P1ANL A,#0F0HCJNE A, #0F0H, NEXT2 ;有键按下AJMP KEY_SCAN_ENDNEXT2:MOV R0, #0FEHMOV R1, #4 ; 逐行扫描,一共4行LOOP:MOV A, R0MOV P1, AMOV A, P1ANL A, #0F0HCJNE A, #0F0H, NEXT ; 此行无键扫按下,则扫描下一行AJMP NEXT3NEXT:ORL A, #0FHCPL AMOV R2, A ; A临时保存到R2

12、MOV A, R0CPL AORL A, R2MOV FEATURE_CODE, A ; 返回特征字节码,为1的位即对应于行和列RETNEXT3:MOV A, R0RL A ; 行扫描码左移一位;ORL A, #01HMOV R0, A;DEC R1DJNZ R1, LOOP ; 4行未扫描完 KEY_SCAN_END:MOV FEATURE_CODE, #00H ; 无键按下,返回特征字节码0RET;根据特征字节码求键值GET_KEY:MOV A, FEATURE_CODE ; 取征字节码; 第一行ROW1_COL1:CJNE A, #11H, ROW1_COL2MOV KEY_VAL, #0C0H ; 1行1列,数字0RETROW1_COL2:CJNE A, #21H, ROW1_COL3MOV KEY_VAL, #0F9H ; 1行2列,数字1RETROW1_COL3:CJNE A, #41H, ROW1_COL4MOV KEY_VAL, #0A4H ; 1行3列,数字2RETROW1_COL4:CJNE A, #81H, ROW2_COL1MOV KEY_VAL, #0B0H ; 1行4列,数字3RET;第二行ROW2_COL1:CJN

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号