注册名:

密码:

个人注册

企业注册

商务申请

商务管理平台

企业管理平台

个人管理平台

我的工控博客

中国工控网www.chinakong.com

首页 | 新闻中心 | 工控论坛 | 经验视点 | 工控商务 | 电气手册 | 工控博客 | 招聘求职 | 网上调查 | 企业中心 | 供求信息 | 资料中心 | 工控书店

所在位置:工控论坛 -- PLC论坛 -- PLC论坛(非专题) -- PLC应用

中国工控网搜索:

 自动化企业招聘

更多..

 登陆:密码:  注册  密码

搜索:

发表人:lyq_4652 发表时间:2008/8/9 10:29:00  

 

 本栏论题: 科威PLC芯片组开发实例(十一)  [1524]

    实战攻坚!
   
    本节,给大家讲解针对EASY-M0806R这款PLC的SCAN用户驱动子程序该完成的功能。
   
    通过前面的讲解,大家应该知道,SCAN是在梯形图完成一次扫描以后被系统调用的程序,在这个程序里面,我们需要更新输入输出口的状态以及LED的状态。
   
    SCAN
    SCAN: LCALL USER_SCAN_O ;输出端口和LED更新
    LCALL USER_SCAN_I ;输入端口和LED更新
    RET
   
    USER_SCAN_O:
    ;刷新输出端口
    MOV DPTR,#RAM_PY+1 ;Y00--Y05
    MOVX A,@DPTR
    CPL A
    MOV SFRPAGE,#0FH
    ANL A,#3FH
    MOV B,A
    MOV A,P1
    ANL A,#0C0H
    ORL A,B ;使P1.6,P1.7保持原来的状态
    MOV P1,A ;刷新输出
    ;刷新输出LED
    SWAP A
    MOV C,ACC.4
    MOV P0.4,C
    MOV C,ACC.5
    MOV P0.5,C
    MOV C,ACC.6
    MOV P0.6,C
    MOV C,ACC.7
    MOV P0.7,C
    MOV C,ACC.0
    MOV P4.1,C
    MOV C,ACC.1
    MOV P4.0,C
    RET
   
   
    USER_SCAN_I: MOV A,INPUT_CNT
    JZ USER_SCAN_I1
    RET
   
    USER_SCAN_I1: LCALL USER_SCAN_IS ;判断8次采样值是否相同
    JB F0,USER_SCAN_I2
    MOV C,ACC.7 ;调整输入口
    MOV F0,C
    MOV C,ACC.0
    MOV ACC.7,C
    MOV C,F0
    MOV ACC.0,C
    MOV C,ACC.6
    MOV F0,C
    MOV C,ACC.1
    MOV ACC.6,C
    MOV C,F0
    MOV ACC.1,C
    MOV C,ACC.5
    MOV F0,C
    MOV C,ACC.2
    MOV ACC.5,C
    MOV C,F0
    MOV ACC.2,C
    MOV C,ACC.4
    MOV F0,C
    MOV C,ACC.3
    MOV ACC.4,C
    MOV C,F0
    MOV ACC.3,C
    MOV INPUT_PORTA,A ;相同则更新输入数据寄存器
    MOV DPTR,#RAM_PX+1 ;X00--X07
    MOV A,INPUT_PORTA
    MOVX @DPTR,A ;更新X00--X07
    ;刷新输入LED
    MOV A, INPUT_PORTA
    CPL A
    MOV P2,A
    USER_SCAN_I2: MOV INPUT_CNT,#08H
    RET
   
    ;判断8个采样数据是否相同,相同则F0=0
    USER_SCAN_IS: MOV DPTR,#XINPUT
    MOVX A,@DPTR
    MOV M0,A
    MOV R7,#7
   
    USER_SCAN_IS1: INC DPTR
    MOVX A,@DPTR
    CJNE A,M0,USER_SCAN_IS2
    DJNZ R7,USER_SCAN_IS1
    CLR F0
    RET
   
    USER_SCAN_IS2: SETB F0
    RET
   
    关于本段代码的详细说明,笔者将改变一下方式,在下面的回帖为大家讲解。当然笔者在关键处已经做了注释,大家可以先看看并结合之前的程序研究一下,发帖提出问题,看看笔者的回答与自己的理解有何偏差。
   
    如果没有人发帖,笔者自然是希望看文章的朋友们都理解了笔者的代码,就小小的懒惰一回吧,嘿嘿~!
   
    当然如果大家的问题很多,那么笔者就写“科威PLC芯片组开发实例(十二)”,详细给大家说明SCAN中代码的含义。
   
    本帖首发中国工控网科威PLC论坛,转载请声明!
   
   

以下是关于《科威PLC芯片组开发实例(十一)》论题的回复(共1篇)

回复人:偶尔路过 

 回复时间:2008/8/9 16:26:00

支持(251) | 反对(334)

 

    wo kan bu ming bai

如果要回复本栏论题,请首先中国工控网www.chinakong.com

·如果你已经是中国工控网www.chinakong.com成员,请直接登录。

·如果你还不是中国工控网www.chinakong.com成员,请首先注册,注册为免费!

注册名:

密  码:

           注册中国工控网www.chinakong.com
           忘记密码

关闭该窗口

关于我们     免责声明     服务项目     广告联系     友情链接     联系方式     意见反馈     设为首页     加入收藏

 ©2023-2025 中国工控网(www.chinakong.com) 版权所有 豫ICP备17046657号

管理员信箱:chinakong98@163.com  服务热线:13525974529

洛阳博德工控自动化技术有限公司

中国    洛阳