注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! 打开购物车 查看留言付款方式联系我们
初中电子 单片机教材一 单片机教材二
搜索上次看见的商品或文章:
商品名、介绍 文章名、内容
首页 电子入门 学单片机 免费资源 下载中心 商品列表 象棋在线 在线绘图 加盟五一 加入收藏 设为首页
本站推荐:
三菱 PLC梯型图(指令编码)反汇编程序-----开源 PLC 编程重点参考资料
文章长度[24097] 加入时间[2010/8/20] 更新时间[2024/3/16 21:14:16] 级别[0] [评论] [收藏]
    本三菱 PLC梯型图(指令编码)反汇编程序是 三菱 PLC梯型图 转 HEX 文件的重要组成部分,由于考虑到今后程序移植的方便,未使用控件,仅用最基本的 C 语言语句编写。 
    本程序的 三菱 PLC梯型图 测试程序 PLC2N.PMW 由 ourDEV 网友 easygoing 编写,再次表示感谢其对开源 PLC 的支持, 在本例中转换成同名的 PLC2N.C 程序。再经 Keil C 编译成 HEX 文件执行。
    本“三菱 PLC梯型图(指令编码)反汇编程序”将和“PLC梯型图(指令编码)转 51 C语言”组合,由网友 xingliu 编写操作界面软件,使之更适合广大片机爱好者使用。         
    由于作者水平有限,未正规学过 C 语言,失误和错误难免,请广大网友指正,拍砖。

/*----------------------------------------------------------------------------------------------------*/
/*                                                                                                    */
/*                  三菱 PLC梯型图(指令编码)反汇编程序 转 C 程序示范程序                            */
/*                                                                                                    */
/*     为防止 PLC 指令编码和 C 语言关键字混淆,特规定,所有 PLC 指令前面加下划线"_",所有点(BIT型)  */
/*  前后各加下划线"_",所有点(WORD型)前加下划线"_",指令后面的数据用( )包含,数据中间用","分隔,  */
/*  以示和 C 语言关键字区分及适应于 C 语言书写方法。                                                  */
/*      所有十进制常数去掉前导"K",所有十进制常数去掉前导"H"再加前导数字"0x",以便适应于 C 语言常数   */
/*  书写方法。这些下划线和加减前导数字将由 PLC 梯型图反编译程序自动加入。                             */ 
/*                                                                                                    */
/*     本程序支持混合编程,即在 PLC 指令编码中可任意插入 C 语言语句,符合 C 语言规范的汇编语言语句。  */
/*  可使用现有的调试软件仿真器设置断点,单步,多步,跟踪,连续,全速等手段调试 PLC 程序,修改和监控   */
/*  PLC 点元件状态和内容,使之更适合广大片机爱好者使用。                                            */
/*                                                                                                    */
/*     目前支持下列点(继续完善中):                                                                 */
/*  _X0_---_X57_,_Y0_---_S57_,_M0_---_M255_,_S0_---_S255_,_T0---_T31,_C0---_C31,_D0---_D31;     */
/*                                                                                                    */   
/*     目前支持常数(继续完善中):                                                                   */
/*  K 范围:-32768---32767;  H 范围:0---FFFFH;                                                       */
/*                                                                                                    */
/*      目前支持特殊点数(继续完善中):                                                              */
/*  _M8000_,_M8001_,_M8002_,_M8003_,_M8004_,_M8011_,_M8012_,_M8013_,_M8014_,                 */
/*  _M8020_,_M8021_,_M8022_,_M8121_,_M8122_,_M8123_,_M8124_;                                   */
/*                                                                                                    */
/*      目前支持下列基本指令和扩展指令(继续完善中):                                                */
/*  _LD,_LDI,_AND,_ANI,_OR,_ORI,_INV,_OUT(_OUT_T,_OUT_C),_SET,_RST(_RST_T,_RST_C),                    */
/*  _ANB,_ORB,_LDP,_LDF,_ANDP,_ANDF,_ORP,_ORF,_PLS,_PLF,_MPS,_MRD,_MPP,_NOP,END,                      */
/*  _ADD,_SUB,_MUL,_DIV,_INC,_DEC,_WAND,_WOR,_WXOR,_NEG,_ALT,_MOV,_CML,_XCH,_BCD,_BIN,                */
/*  _LD>=,_LD<=,_LD>,_LD<,_LD<>,_LD=,_AND>=,_AND<=,_AND>,_AND<,_AND<>,_AND=,                          */
/*  _OR>=,_OR<=,_OR>,_OR<,_OR<>,_OR=;                                                                 */
/*                                                                                                    */
/*      由于 C语言无法识别下列符号,特用下列英文缩写表示:                                            */
/*  大于等于(>=)  _GE,小于等于(<=)  _LE,大于(>)  _GT,小于(<)  _LT,不相等(<>)  _NE,相等(=)  _EQ;  */
/*  即指令集:_LD>=,_LD<=,_LD>,_LD<,_LD<>,_LD=,_AND>=,_AND<=,_AND>,_AND<,_AND<>,_AND=,                */
/*            _OR>=,_OR<=,_OR>,_OR<,_OR<>,_OR=;                                                       */
/*      用下列指令书写方式替代(由 PLC 梯型图反编译程序自动生成)。                                   */
/*  _LD_GE,_LD_LE,_LD_GT,_LD_LT,_LD_NE,_LD_EQ,_AND_GE,_AND_LE,_AND_GT,_AND_LT,_AND_NE,_AND_EQ,        */
/*  _OR_GE,_OR_LE,_OR_GT,_OR_LT,_OR_NE,_OR_EQ;                                                        */
/*                                                                                                    */
/*                                                                                                    */
/*   CPU  : 51系列单片机                                                                              */
/*   晶振 : 11.0592MHz                                                                                */
/*   作者 : 许意义                                                                                    */  
/*   版本 : V1.0                                                                                      */
/*   日期 : 2009.5.17                                                                                 */
/*   版权 : ourDEV.cn                                                                                 */
/*                                                                                                    */
/*----------------------------------------------------------------------------------------------------*/

#include "plc_start.h"

//-------------------------------------------------------------------------------------//
//  PLC 执行程序                                                                       //
//-------------------------------------------------------------------------------------//

void main_PLC(void)

_LDI (_X2_)
_OUT_ (_T100,124)
_EI
_LD (_M1_)
_MC (N1,_M0_)
_LDP (_M8000_)
_ORF (_M1000_)
_LDP (_M3000_)
_ORF (_M2000_)
_ANB
_LDP (_S100_)
_ORF (_M2999_)
_ANB
_OUT_ (_T100,30)
_RST (_D1)
_RST (_M2999_)
_SET (_S100_)
_OUT (_M8005_)
_LDP (_M1_)
_ADDP (_C20,_T35,_D11)
_LD (_X1_)
_OUT_ (_C210,123456789)
_LD (_X2_)
_TCMP (_C10,_K2M0,_K1M0,_D0,_M0_)
_P5:
_LD (_X10_)
_CJ (_P5)
_LD (_X13_)
_OUT (_Y13_)
_MCR (N1)
_LD (_X0_)
_CALL (_P2)
_DI
_FOR (4)
_LD (_M8000_)
_DADDP (_K8M1000,10,_D11)
_NEXT
_LD (_M8000_)
_ADD (-200,_D12,_D14)
_MPS
_AND (_M0_)
_SUB (_D1000,_D999,_D7000)
_MRD
_AND (_M1_)
_MUL (2,_D13,_D14)
_MRD
_AND (_M2_)
_DIV (_D14,_D12,_D15)
_MPP
_INC (_D0)
_DEC (_D0)
_MPS
_AND (_M3_)
_WAND (_D10,_D12,_D14)
_MRD
_AND (_M4_)
_WOR (_D10,_D12,_D14)
_MRD
_AND (_M5_)
_WXOR (_D10,_D12,_D14)
_MPP
_NEG (_D10)
_LD (_X16_)
_CMP (100,_D0,_M0_)
_ZCP (100,120,_C10,_M3_)
_MOV (100,_D18)
_SMOV (_D1,4,2,_D2,3)
_CMP (_D0,_K1Y17)
_BMOV (_D5,_D10,2)
_RMOV (0,_D0,2)
_XCH (_D18,_D19)
_BCD (_D12,_K2Y20)
_BIN (_K2X0,_D13)
_LD (_X17_)
_ROR (_D0,4)
_ROL (_D0,4)
_RCR (_D0,4)
_RCL (_D0,4)
_SFTR (_X0_,_M0_,16,1)
_SFTL (_X0_,_M0_,16,4)
_WSFR (_D0,_D10,16,4)
_WSFL (_D0,_D10,16,4)
_SFWR (_D0,_D1,10)
_SFRD (_D0,_D20,10)
_LD (_X20_)
_ZRST (_M500_,_M599_)
_DECO (_X0_,_M10_,2)
_DNCO (_M10_,_D10,3)
_SUM (_D0,_D2)
_BON (_D10,_M0_,15)
_MEAN (_D0,_D10,3)
_ANS (_T0,10,_S900_)
_ANR
_SOR (_D10,_D12)
_FLT (_D10,_D12)
_LD (_X21_)
_REF (_X100_,8)
_REFF (1)
_MTR (_X20_,_Y40_,_M0_,8)
_DHSCS (100,_C255,_Y10_)
_DHSCR (200,_C255,_Y10_)
_DHSZ (1000,2000,_C251,_Y0_)
_SPD (_X0_,100,_D0)
_DPLSY (1000,_D0,_Y0_)
_PWM (_D10,50,_Y0_)
_PLSR (500,_D0,3600,_Y0_)
_LD (_X23_)
_SER (_D100,_D0,_D10,10)
_ABSD (_D300,_C0,_M0_,4)
_INCD (_D300,_C0,_M0_,4)
_TTMR (_D300,0)
_STMR (_T10,100,_M0_)
_ALT (_M0_)
_RAMP (_D1,_D2,_D3,1000)
_ROTC (_D200,10,2,_M0_)
_SORT (_D100,5,4,_D200,_D0)
_LD (_X24_)
_TKY (_X0_,_D0,_M0_)
_HKY (_X0_,_Y0_,_D0,_M0_)
_DSW (_X0_,_Y10_,_D0,1)
_SEGD (_D0,_K2Y10)
_SEGL (_D0,_Y0_,0)
_ARWS (_X10_,_D0,_Y0_,0)
_ASC ("ABCD    ",_D300)
_PR (_D300,_Y0_)
_FROM (1,29,_K4M0,1)
_TO (1,29,_K4M0,1)
_LD (_X25_)
_RS (_D200,_D0,_D500,_D1)
_PRUN (_K4X0,_K4M0)
_ASCI (_D100,_D200,4)
_HEX (_D20,_D10,4)
_CCD (_D100,_D0,10)
_VRRD (0,_D0)
_VRSC (1,_D1)
_PID (_D0,_D1,_D100,_D150)
_LD (_M8000_)
_DECMP (_D10,_D20,_M0_)
_DEZCP (_D20,_D30,_D0,_M3_)
_DEBCD (_D50,_D20)
_DEBIN (_D20,_D50)
_DEADD (_D10,_D20,_D50)
_DESUB (_D10,_D20,_D50)
_DEMUL (_D10,_D20,_D50)
_DEDIV (_D10,_D20,_D50)
_DESOR (_D10,_D20)
_INT (_D10,_D20)
_DSIN (_D50,_D60)
_DCOS (_D50,_D60)
_DTAN (_D50,_D60)
_SWAP (_D10)
_LD (_X26_)
_TCMP (10,30,50,_D0,_M0_)
_TZCP (_D20,_D30,_D0,_M3_)
_TADD (_D10,_D20,_D30)
_TSUB (_D10,_D20,_D30)
_TRD (_D0)
_TWR (_D10)
_LD (_X27_)
_GRY (1234,_K3Y10)
_GBIN (_K3X0,_D10)
_LD_EQ (200,_C10)
_OUT (_M50_)
_LD_GT (_D200,-30)
_OUT (_M51_)
_LD_GE (_D200,100)
_OUT (_M52_)
_LD_LT (_D200,10)
_OUT (_M53_)
_LD_LE (_D200,10)
_OUT (_M54_)
_LD_NE (_D330,_D440)
_OUT (_M55_)
_LD (_M8000_)
_MPS
_AND_EQ (200,_C10)
_OUT (_M10_)
_MRD
_AND_GT (100,_D10)
_OUT (_M11_)
_MRD
_AND_GE (100,_D10)
_OUT (_M12_)
_MRD
_AND_LT (200,_D10)
_OUT (_M13_)
_MRD
_AND_LE (_D10,_D20)
_OUT (_M14_)
_MPP
_AND_NE (_D20,_D30)
_OUT (_M15_)
_NOP
_LD (_M8000_)
_OR_EQ (200,_C10)
_OR_GT (200,_D10)
_OR_GE (200,_D20)
_OR_LT (300,_D30)
_OR_LE (400,_D40)
_OR_NE (500,_D50)
_OUT (_Y10_)
_FEND
_P2:
_LD (_M8_)
_OUT (_M9_)
_SRET
_I101:
_LD (_M8000_)
_INC (_D0)
_DEC (_D1)
_IRET
_END
}



点击此处下载 ourdev_446545.rar(文件大小:198K) (原文件名:PMW-C示范.rar) 
1、 本站不保证以上观点正确,就算是本站原创作品,本站也不保证内容正确。
2、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! 以上可能是本站收集或者转载的文章,本站可能没有文章中的元件或产品,如果您需要类似的商品请 点这里查看商品列表!
本站协议 | 版权信息 |  关于我们 |  本站地图 |  营业执照 |  发票说明 |  付款方式 |  联系方式
深圳市宝安区西乡五壹电子商行——粤ICP备16073394号-1;地址:深圳西乡河西四坊183号;邮编:518102
E-mail:51dz$163.com($改为@);Tel:(0755)27947428
工作时间:9:30-12:00和13:30-17:30和18:30-20:30,无人接听时可以再打手机13537585389