恭喜,你发布的帖子
发布于 2017-03-25 17:03:29
2楼
这是自己半复制半原创的程序,达不到预期目的,希望有大神能帮忙纠正一下。
//主程序
//网络1
LD SM0.1 //初次扫描,初始化例行程序
MOVB 16#09, SMB30//设置串口通讯参数
MOVB 16#94, SMB87//
MOVB 5, SMB89 //
MOVW +5, SMW90 //空闲时间检测
MOVB 100, SMB94 //设定接收结束标志最大字符数100
ATCH INT_0:INT0, 23 //开启中断,将中断服务程序0与中断事件23联系
ATCH INT_2:INT2, 9 //将中断服务程序2与中断事件发送信息联系
ENI //使全局中断能
RCV VB100, 0 //开始接收数据
MOVW +50, SMW92
//网络2
LD SM0.0 //载入
MOVB 1, AC1 //将1装入AC1变量存储器
MOVB 1, AC2 //将2装入AC2变量存储器
SLEN VB100, AC0 //计算缓存区vb100中的字符串中字符数量,并载入AC0
SFND VB100, "ON0", AC1//在缓存区VB100中查找字符串“ON0”,将首次出现的首字母位置放入AC1中,否则AC0为0。
SFND VB100, "ON1", AC2//同上
TON T37, AC0//初始化计时器T37,并以AC0*100ms为计时时间
//网络3
LDB>= AC1, 16#1//判断是否找寻到相应的字符
AN T37//计时时间到达后,T37常闭触点断开
= Q0.0//使输出映像区Q0.0能
//网络4
LDB>= AC2, 16#1//同上
AN T37//
= Q0.1//
//中断程序0
LDB= SMB86, 16#04//检测接收状态
MOVB 10, SMB34//定义一个10ms定时中断
ATCH INT_1:INT1, 10//开启中断
CRETI//返回中断
NOT//如果在任何情况下结束接收,则开始新的接收
RCV VB100, 0
//中断程序1
LD SM0.0//
DTCH 10//隔离中断
XMT VB100, 0//将缓存区的信息发送出去
LD SM0.0//
ITB AC0, VB200//将整数型数据AC0转化为字节型数据并放入缓存区VB200
MOVB VB200, QB0//将缓存区VB200传送至QB0中
//中断程序2
LD SM0.0//
RCV VB100, 0//
请填写推广理由:
分享
只看
楼主