PC与数控机床通信系统---单片机软件设计(可编辑)_第1页
PC与数控机床通信系统---单片机软件设计(可编辑)_第2页
PC与数控机床通信系统---单片机软件设计(可编辑)_第3页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PC与数控机床通信系统-单片机软件设计(可编辑)(文档可以直接使用,也可根据实际需要修改使用 ,可编辑推荐下载)PC与数控机床通信系统-单片机软件设计A PC与数控机床通信结点的程序流程图程序流程图B、PC与数控机床通信结点的程序源代码;指示性语句ADDRESSEQU 90H地址寄存器.ADDREG EQU 30H; 地址缓冲区 .ASCADDHEQU 31H;地址ASC码.ASCADDLEQU 32H;地址ASC码.RS485IOEQU 0B3H;RS485输入输出选择:0-选择输入,1-选择输出.RS485CEEQU 0B5H;RS485选择使能:1-有效.RS232CEEQU 0B4H;

2、RS232 选择使能 :1- 有效.START_BYTEEQU01H; 起始命令字SEND_BYTEEQU02H; 发送命令字.READ_BYTEEQU03H; 接收命令字 .; 错误命令字 .FINISH_BYTE EQU 17H; 结束命令字 .ODD BIT 0D0H ; 奇校验位 .ODD_BIT BIT 0E7H; 奇校验缓冲位 .TIMEHEQU 03HTIMELEQU 9BH; 定时常数 ,(60S).C_BITBIT 00H; 进位标志缓冲位 .A_BYTEEQU 33H; 累加器缓冲区 .DOGIN BIT 0B7H; 看门狗喂狗输入 .ORG 0000HAJMP MAINO

3、RG 000BHAJMP T0PRGORG 0100HMAIN:MOV SP,#50HACALL WATCHDOG ; 调看门狗喂狗子程序 .MOVP1,#0FFHMOVP3,#0FFHACALL COMRST; 串行口初始化 .MOVA,ADDRESS; 读地址 .AJMP PCPRG; 与 PC 机接口 .MAIN1:AJMP SCPRG; 与数控机床接口 .PCPRG:ACALL WATCHDOG; 调看门狗喂狗子程序 .SETB RS485IO;允许RS485输出.禁止RS485输入.CLRRS485CESETB RS232CE; 选择 RS232.ACALL DELAYACALL D

4、ELAYACALL DELAYACALL DELAYCLRRIPCWAIT: ACALL WATCHDOG; 调看门狗喂狗子程序 .; 读地址 .CJNE A,#00H,PCWAIT1 ; 检测地址是否改动 .SJMP PCWAIT2PCWAIT1:AJMP MAINPCWAIT2: JNB RI,PCWAIT ; 无接收数据 , 则循环等待 .CLRRIMOVA,SBUFSETBRS485IO允许RS485输出.禁止RS485输入.CLR RS232CESETB RS485CE; 选择 RS485.ACALL DELAYACALL DELAYACALL DELAYACALL DELAYACA

5、LL DELAYACALL DELAYACALL DELAYMOV SBUF,APCWAIT18: JNB TI,PCWAIT18 ; 发送未完 , 则循环等待 .CLRTICLRODD_BIT; 清除奇校验位 .CJNE A,#START_BYTE,PCPRG ; 判断是否为起始位 .SETB RS485IO;允许RS485输出.禁止RS485输入.CLRRS485CESETB RS232CE; 选择 RS232.ACALL DELAYCLRRIACALL TIMESET设置定时器 (60S).; 调看门狗喂狗子程序 .JNBRI,PCWAIT3; 无接收数据 , 则循环等待 .CLRRIM

6、OVASCADDH,SBUFPCWAIT4: ACALL WATCHDOG; 调看门狗喂狗子程序 .JNBRI,PCWAIT4; 无接收数据 , 则循环等待 .CLRRIMOVASCADDL,SBUF; 地址接收完毕 .ACALL TIMEOFF; 关定时器 .SETB RS485IO;允许RS485输出.禁止RS485输入.CLR RS232CESETB RS485CE; 选择 RS485.ACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYMOV SBUF,ASCADDHPCWAIT5:;

7、 发送未完PCWAIT6:; 发送未完JNB TI,PCWAIT5 则循环等待 .CLRTIMOVSBUF,ASCADDLJNB TI,PCWAIT6 则循环等待 .CLR TI; 地址发送完毕CLRRS485IO;允许RS485俞入.禁止RS485俞出.CLRRS232CESETB RS485CE; 选择 RS485.ACALL DELAY; 设置定时器 (60S).PCWAIT7:ACALLWATCHDOG; 调看门狗喂狗子程序 .JNBRI,PCWAIT7; 无接收数据 , 则循环等待 .CLRRIMOVA,SBUFACALLTIMEOFF; 关定时器 .CJNEA,ASCADDH,PC

8、ERRE1; 判断地址是否相等 .ACALLTIMESET; 设置定时器 (60S).PCWAIT8:ACALLWATCHDOG; 调看门狗喂狗子程序 .JNBRI,PCWAIT8; 地址相等 , 继续接收 .CLRRIACALLDELAYCLRRIACALLTIMESETMOVA,SBUFACALL TIMEOFF; 关定时器 .CJNE A,ASCADDL,PCERRE1 ; 判断地址是否相等 .AJMP PCCONTINU1; 地址相等 , 继续 .PCERRE1: SETB RS485IO;允许RS485输出.禁止RS485输入.CLRRS485CESETB RS232CE; 选择 R

9、S232.ACALL DELAYACALL DELAYACALL DELAYMOVA,#ERRE_BYTE; 发送错误命令字 .MOVC,ODDCPLCMOVODD_BIT,C加奇校验位 .MOVSBUF,APCWAIT9: JNB TI,PCWAIT9CLR TIAJMP PCPRG; 返回PCCONTINU1: SETB RS485IO;允许RS485输出.禁止RS485输入.CLRRS485CE; 地址相等 .SETB RS232CE; 选择 RS232.ACALL DELAYACALL DELAYACALL DELAYMOV SBUF,ASCADDH; 向 PC 机回发地址 .PCWA

10、IT10:JNB TI,PCWAIT10CLR TIMOV SBUF,ASCADDLPCWAIT11:JNBTI,PCWAIT11TICLR; 地址回发完毕 .ACALLDELAYCLRRIACALLTIMESET; 设置定时器 (60S).PCWAIT12:ACALL WATCHDOG; 调看门狗喂狗子程序 .JNBRI,PCWAIT12; 无接收数据 , 则循环等待 .RICLRMOVA,SBUFACALLTIMEOFF; 关定时器 .SETBRS485IO;允许RS485输出.禁止RS485输入.CLRRS232CESETBRS485CE; 选择 RS485.ACALLDELAYACAL

11、L DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYMOVSBUF,APCWAIT16: JNB ; 发送未完 , 则循环等待 .TI,PCWAIT16CLRTI; 数据发送完毕CLR; 清除奇校验位 .ODD_BITCJNE A,#SEND_BYTE,PCNEXT1判断是否为PC发送命令字.AJMP PCSENDPCNEXT1:否为PC接收命令字CJNE A,#READ_BYTE,PCERRE2判断是AJMP PCREADPCERRE2:SETB RS485IO;允许RS485输出.禁止RS485输

12、入.CLR RS485CESETB RS232CE ; 选择 RS232.ACALL DELAYACALL DELAYACALL DELAYMOV A,#ERRE_BYTE; 发送错误命令字 .MOVC,ODDCPLCMOVODD_BIT,C加奇校验位 .MOVSBUF,APCWAIT13:JNB TI,PCWAIT13CLR TIAJMP PCPRG ; 返回;PC 机发送数据到数控机床 .PCSEND: SETB RS485IO;允许RS485输出.禁止RS485输入.SETB RS232CE; 选择 RS232.ACALL DELAYACALL DELAYACALL DELAYCLR R

13、IACALL TIMESET; 设置定时器 (60S).PCWAIT14: ACALL WATCHDOG; 调看门狗喂狗子程序 .JNBRI,PCWAIT14; 无接收数据 , 则循环等待 .CLRRIMOVA,SBUFACALL TIMEOFF; 关定时器 .SETB RS485IO;允许RS485输出.禁止RS485输入.CLR RS232CESETBRS485CE; 选择 RS485.ACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYMOV SBUF,APCWAI

14、T15: JNB TI,PCWAIT15; 发送未完 , 则循环等待 .CLRTI; 数据发送完毕 .CLRODD_BIT; 清除奇校验位 .CJNEA,#FINISH_BYTE,PCCONTINU判断是否为结束命令字 .ACALL DELAYACALL DELAYAJMP PCPRG; 收到结束命令字 , 返回 .PCCONTINU2: AJMP PCSEND; 未收到结束命令字 , 继续接收 .;PC 机接收数控机床的数据 .PCREAD: CLR RS485IO;允许RS485输入.禁止RS485输出.CLR RS232CESETB RS485CE; 选择 RS485.ACALL DEL

15、AYACALL DELAYACALL DELAYCLRRIPCPC:ACALL TIMESET; 设置定时器 (60S).PCWAIT17: ACALL WATCHDOG; 调看门狗喂狗子程序 .JNB RI,PCWAIT17; 无接收数据 , 则循环等待 .RICLRMOV A,SBUFACALL TIMEOFF ; 关定时器 .CLR RS485CESETB RS232CE ; 选择 RS232.ACALL DELAYACALL DELAYACALL DELAYMOV SBUF,APCWAIT19:JNB TI,PCWAIT19TIODD_BITA,#FINISH_BYTE,PCCONTI

16、NU判CLRCLR; 清除奇校验位 .CJNE 断是否为结束命令字 .AJMP PCPRG ; 收到结束命令字 , 返回 .PCCONTINU3:AJMP PCREAD; 未收到结束命令字 , 继续接收 .; 调看门狗喂狗子程序ACALLDELAYACALLDELAYACALLDELAYCLRRS485IO;允许RS485俞入.禁止RS485俞出.CLRRS232CESETB RS485CE; 选择 RS485.ACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYSCWAIT:ACALLWAT

17、CHDOG; 调看门狗喂狗子程序MOVA,ADDRESS; 读地址 .CJNE A,#00H,SCWAIT1; 检测地址是否改动 .AJMP MAINSCWAIT1: JNB RI,SCWAIT ; 无接收数据 , 则循环等待 .CLRRIMOVA,SBUFCLRODD_BIT; 清除奇校验位 .CJNE A,#START_BYTE,SCPRG ; 判断是否为起始位 .ACALL TIMESET; 设置定时器 (60S).SCWAIT3: ACALL WATCHDOG; 调看门狗喂狗子程序 .JNBRI,SCWAIT3; 无接收数据 , 则循环等待 .MOVASCADDH,SBUF; 调看门狗

18、喂狗子程序; 无接收数据; 地址接收完毕; 关定时器 .JNB, 则循环等待 .CLRMOVACALLMOVSWAPANLMOVMOVANLADDMOVMOVCJNERI,SCWAIT4RIASCADDL,SBUFTIMEOFFA,ASCADDHAA,#11110000BADDREG,AA,ASCADDLA,#00001111BA,ADDREGADDREG,AA,ADDRESSA,ADDREG,SCPRG; 地址不符 , 返回 .SETBRS485IO允许RS485输出.禁止RS485输入.CLR RS232CESETB RS485CE ; 选择 RS485.ACALL DELAYACALL

19、DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYTI,SCWAIT5MOV SBUF,ASCADDH ; 地址相符 , 回发 .SCWAIT5:JNB; 发送未完 , 则循环等待 .TI,SCWAIT6MOV SBUF,ASCADDLSCWAIT6:JNB; 发送未完 , 则循环等待 .TICLR; 地址发送完毕ACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYCLRRS485IO;允许RS485输入.禁止RS485输出

20、.CLRRS232CESETB RS485CE; 选择 RS485.ACALL TIMESET; 设置定时器 (60S).SCWAIT7:ACALL WATCHDOG; 调看门狗喂狗子程序 .JNBRI,SCWAIT7; 无接收数据 , 则循环等待 .CLRRI; 关定时器 .CLRODD_BIT; 清除奇校验位 .CJNEA,#SEND_BYTE,SCNEXT1判断是否为PC发送命令字.AJMPSCSENDSCNEXT1:CJNEA,#READ_BYTE,SCERRE1; 判断是否为PC接收命令字.AJMPSCREADSCERRE1:AJMPSCPRG; 出错, 返回.;接收PC机数据送到数

21、控机床.SCSEND:CLRRS485IO;允许RS485输入.禁止RS485输出.CLR RS232CESETB RS485CE; 选择 RS485.ACALL DELAYACALL DELAYACALL DELAYRIRI,SCWAIT8RIA,SBUFTIMEOFFR4,AODD_BITA,#FINISH_BYTE,SCCONTINU 判DELAYDELAYSCPRGCLRACALL TIMESET ; 设置定时器 (60S).SCWAIT8: ACALL WATCHDOG; 调看门狗喂狗子程序 .JNB; 无接收数据 , 则循环等待 .CLRMOVACALL ; 关定时器 .MOV;

22、保护累加器 .CLR; 清除奇校验位 .CJNE 断是否为结束命令字 .ACALLACALLAJMP; 收到结束命令字 , 返回 .SCCONTINU1: MOV A,R4 ; 未收到结束命令字 , 继续接收 .CLRRS485CESETBRS232CE; 选择 RS232.ACALLDELAYACALLDELAYACALLDELAYMOVSBUF,ASCWAIT9:JNBTI,SCWAIT9; 发送未完 , 则循环等待 .TICLR; 数据发送完毕 .ACALL TIMESET; 设置定时器 (60S).SCWAIT10:ACALL WATCHDOG; 调看门狗喂狗子程序 .JNBRI,SC

23、WAIT10; 无接收数据 , 则循环等待 .RICLRACALL TIMEOFFAJMP SCSEND;接收数控机床数据送到PC机.SCREAD:SETB RS485IO;允许RS485输出.禁止RS485输入.CLRRS485CESETB RS232CE; 选择 RS232.ACALL DELAYACALL DELAYACALL DELAYCLRRIACALL TIMESET; 设置定时器 (60S).SCWAIT11:ACALL WATCHDOG; 调看门狗喂狗子程序 .JNBRI,SCWAIT11; 无接收数据 , 则循环等待 .CLRRIACALL TIMEOFF关定时器 .SETB

24、 RS485IO;允许RS485输出.禁止RS485输入.CLR RS232CESETB RS485CE; 选择 RS485.ACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYMOV SBUF,ASCWAIT12:; 发送未完 ,JNB TI,SCWAIT12 则循环等待 .CLR TI; 数据发送完毕 .CLRRS485CESETB RS232CE ; 选择 RS232.SCNEXT3: 是否为结束命令字CJNE A,#1AH,SCCONTINU2; 判断ACALLD

25、ELAYACALLDELAYACALLDELAYMOVSBUF,ASCWAIT14: JNBTI,SCWAIT14; 发送未完 , 则循环等待 .CLRTI; 数据发送完毕 .CLRODD_BIT; 清除奇校验位 .CJNEA,#00H,SCNEXT2; 判断是否为结束命令字 .AJMPFINISHPRG; 收到结束命令字 , 返回 .SCNEXT2: CJNEA,#25H,SCNEXT3判断是否为结束命令字 .AJMPFINISHPRG; 收到结束命令字 , 返回 .AJMP FINISHPRG ; 收到结束命令字 , 返回 .SCCONTINU2: AJMP SCREAD; 未收到结束命令字 , 继续接收 .FINISHPRG: SETB RS485IO ;允许RS485输出.禁止RS485输入.CLR RS232CESETB RS485CE ; 选择 RS485.ACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYMOVA,#FINISH_BYTE; 发送结束命令字 .CPLCMOVODD_BIT,C加奇校验 .MOV SBUF,ASCWAIT13: JNB TI,SCWAIT13; 发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论