📄 plc51x_fnc.lst
字号:
C51 COMPILER V8.16 PLC51X_FNC 10/10/2009 14:43:38 PAGE 1
C51 COMPILER V8.16, COMPILATION OF MODULE PLC51X_FNC
OBJECT MODULE PLACED IN PLC51x_FNC.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE PLC51x_FNC.c LARGE WARNINGLEVEL(1) BROWSE DEBUG OBJECTEXTEND
line level source
1 /*----------------------------------------------------------------------------------------------------*/
2 /* */
3 /* PLC 梯型图 解释型监控 C Code示范程序(用于 51单片机) */
4 /* */
5 /* 为防止 PLC 指令编码和 C 语言关键字混淆,特规定,在本监控程序中,所有 PLC 指令前面加下划线"_", */
6 /* 所有点(BIT型)前后各加下划线"_",所有点(WORD型)前加下划线"_",指令后面的数据用( )包含,数据 */
7 /* 中间用","分隔,以示和 C 语言关键字区分及适应于 C 语言书写方法。 */
8 /* 所有十进制常数去掉前导"K",所有十六进制常数去掉前导"H"再加前导数字"0x",以便适应于 C 语言常 */
9 /* 数书写方法。这些下划线和加减前导数字将由 PLC 梯型图反编译程序自动加入。 */
10 /* */
11 /* 说心里话,这种容量小、功能少的 PLC,用汇编是最佳选择,程序精练、执行效率高,比如散转指令,用 */
12 /* C语言的函数指针效率大打折扣,但考虑到方便大家今后程序的移植、更改、提高,使之能适应于 AVR,STM8, */
13 /* NEC,PIC,H8,STM32......等任何单片机,未使用 51单片机特有的 bit 操作指令,关键部位也未插入汇编, */
14 /* 等程序修改稳定后再修改相关指令,优化程序代码,提升执行速度,使之更适合 51单片机的使用。 */
15 /* */
16 /* 本程序支持混合编程,即在 PLC 指令编码中可任意插入 C 语言语句,符合 C 语言规范的汇编语言语句。 */
17 /* 可使用现有的调试软件仿真器设置断点,单步,多步,跟踪,连续,全速等手段调试 PLC 程序,修改和监控 */
18 /* PLC 点元件状态和内容,使之更适合广大单片机爱好者使用。 */
19 /* */
20 /* 目前支持下列点(继续完善中): */
21 /* _X0_---_X57_,_Y0_---_S57_,_M0_---_M255_,_S0_---_S255_,_T0---_T31,_C0---_C31,_D0---_D31; */
22 /* */
23 /* 目前支持常数(继续完善中): */
24 /* K 范围:-32768---32767; H 范围:0---FFFFH; */
25 /* */
26 /* 目前支持特殊点数(继续完善中): */
27 /* _M8000_,_M8001_,_M8002_,_M8003_,_M8004_,_M8011_,_M8012_,_M8013_,_M8014_, */
28 /* _M8020_,_M8021_,_M8022_; */
29 /* */
30 /* 目前支持下列基本指令和扩展指令(继续完善中): */
31 /* _LD,_LDI,_AND,_ANI,_OR,_ORI,_INV,_OUT(_OUT_T,_OUT_C),_SET,_RST,_ANB,_ORB,_LDP,_LDF,_ANDP,_ANDF, */
32 /* _ORP,_ORF,_PLS,_PLF,_MPS,_MRD,_MPP,_NOP,END,_ADD,_SUB,_MUL,_DIV,_INC,_DEC,_WAND,_WOR,_WXOR, */
33 /* _NEG,_ALT,_MOV,_CML,_XCH,_BCD,_BIN,_CMP,_ZCP,_FMOV,_ROR,_ROL,_ZRST,_REF,_ASCI,_SWAP,_CJ,_CALL, */
34 /* _SRET,_FEND,_LD>=,_LD<=,_LD>,_LD<,_LD<>,_LD=,_AND>=,_AND<=,_AND>,_AND<,_AND<>,_AND=,_OR>=,_OR<=, */
35 /* _OR>,_OR<,_OR<>,_OR=; */
36 /* */
37 /* 由于 C语言无法识别下列符号,特用下列英文缩写表示: */
38 /* 大于等于(>=) _GE,小于等于(<=) _LE,大于(>) _GT,小于(<) _LT,不相等(<>) _NE,相等(=) _EQ; */
39 /* 即指令集:_LD>=,_LD<=,_LD>,_LD<,_LD<>,_LD=,_AND>=,_AND<=,_AND>,_AND<,_AND<>,_AND=, */
40 /* _OR>=,_OR<=,_OR>,_OR<,_OR<>,_OR=; */
41 /* 用下列指令书写方式替代。 */
42 /* _LD_GE,_LD_LE,_LD_GT,_LD_LT,_LD_NE,_LD_EQ,_AND_GE,_AND_LE,_AND_GT,_AND_LT,_AND_NE,_AND_EQ, */
43 /* _OR_GE,_OR_LE,_OR_GT,_OR_LT,_OR_NE,_OR_EQ; */
44 /* */
45 /* */
46 /* C P U : MPC82G516A(51系列)单片机 */
47 /* 晶 振: 11.0592MHz */
48 /* 作 者: 许意义 */
49 /* 版 本: V1.1.5 */
50 /* 日 期: 2009.10.10 */
51 /* 版 权: ourDEV.cn */
52 /* */
53 /*----------------------------------------------------------------------------------------------------*/
54 /* 历次修改记录: */
55 /*----------------------------------------------------------------------------------------------------*/
C51 COMPILER V8.16 PLC51X_FNC 10/10/2009 14:43:38 PAGE 2
56 /* 版 本: V1.1.5 */
57 /* 修改人: 许意义 */
58 /* 日 期: 2009.10.10 */
59 /* 备 注: 修改了网友 winmcu 查出的 BUG , PLS 和 PLF指令运行异常现象, 已修正。 */
60 /* */
61 /*----------------------------------------------------------------------------------------------------*/
62 /* 版 本: V1.1.4 */
63 /* 修改人: 许意义 */
64 /* 日 期: 2009.10.9 */
65 /* 备 注: 修改了网友 oste 查出的 BUG , ALT指令运行异常现象, 已修正。 */
66 /* 并增加了PLC程序缺少END指令及运行错误指令会马上停止报错。 */
67 /* */
68 /*----------------------------------------------------------------------------------------------------*/
69 /* 版 本: V1.1.3 */
70 /* 修改人: 许意义 */
71 /* 日 期: 2009.10.9 */
72 /* 备 注: 修改了网友 oste 查出的 BUG , CMP指令,ZCP指令运行异常现象, 已修正。 */
73 /* */
74 /*----------------------------------------------------------------------------------------------------*/
75 /* 版 本: V1.1.2 */
76 /* 修改人: 许意义 */
77 /* 日 期: 2009.10.8 */
78 /* 备 注: 修改了网友 oste 和 winmcu 查出的 BUG , KnMx类变量 x非4的倍数出错,M801x时钟变量脉冲类 */
79 /* 指令出错,AND类指令出错,均已修正。 */
80 /* */
81 /*----------------------------------------------------------------------------------------------------*/
82 /* 版 本: V1.1.1 */
83 /* 修改人: 许意义 */
84 /* 日 期: 2009.10.8 */
85 /* 备 注: 修改了网友 oste 查出的 BUG , 计数器在每次接通时的上升沿才应该计数(加1),已修正。 */
86 /* */
87 /*----------------------------------------------------------------------------------------------------*/
88 /* 版 本: V1.1.0 */
89 /* 修改人: 许意义 */
90 /* 日 期: 2009.10.3 */
91 /* 备 注: 增加了对KnX,KnY,KnM,KnS变量的支持, 增加了对CJ,CALL等指令的支持。 */
92 /* */
93 /*----------------------------------------------------------------------------------------------------*/
94 /* 版 本: V1.0.9 */
95 /* 修改人: 许意义 */
96 /* 日 期: 2009.10.1 */
97 /* 备 注: 修改了网友 houjingqing 和 winmcu 查出的 BUG , 部分变量 初始化不正确,已修正。 */
98 /* */
99 /*----------------------------------------------------------------------------------------------------*/
100 /* 版 本: V1.0.8 */
101 /* 修改人: 许意义 */
102 /* 日 期: 2009.09.30 */
103 /* 备 注: 修改了网友 oste 查出的 BUG , 下载完刚运行时,时间继电器的时基会变小,定时值很快就到了, */
104 /* 已修正。 */
105 /* */
106 /*----------------------------------------------------------------------------------------------------*/
107 /* 版 本: V1.0.7 */
108 /* 修改人: 许意义 */
109 /* 日 期: 2009.09.30 */
110 /* 备 注: 修改了网友 houjingqing 和 oste 查出的 BUG , 数据比较类 指令错误,已修正。 */
111 /* */
112 /*----------------------------------------------------------------------------------------------------*/
113 /* 版 本: V1.0.6 */
114 /* 修改人: 许意义 */
115 /* 日 期: 2009.09.26 */
116 /* 备 注: 修改了网友 oste 查出的 BUG , OUT T0 D30 指令错误,已修正。 */
117 /* */
C51 COMPILER V8.16 PLC51X_FNC 10/10/2009 14:43:38 PAGE 3
118 /*----------------------------------------------------------------------------------------------------*/
119 /* 版 本: V1.0.5 */
120 /* 修改人: 许意义 */
121 /* 日 期: 2009.09.25 */
122 /* 备 注: 将“简易PLC 梯型图(指令编码)转 51 C 程序示范程序”和“仿三菱 FX1N PLC 下载通讯协议 */
123 /* C Code示范程序”合并,使之真正成为直接兼容 三菱FXGPWIN 软件 的 开源PLC。 */
124 /* */
125 /*----------------------------------------------------------------------------------------------------*/
126
127
128 //-----------------------------------------------------------------------------------------//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -