239 lines
12 KiB
Plaintext
239 lines
12 KiB
Plaintext
C51 COMPILER V6.14 COMPUTER 07/07/2009 15:17:52 PAGE 1
|
||
|
||
|
||
C51 COMPILER V6.14, COMPILATION OF MODULE COMPUTER
|
||
OBJECT MODULE PLACED IN computer.OBJ
|
||
COMPILER INVOKED BY: D:\keil\c51\bin\C51.EXE computer.C
|
||
|
||
stmt level source
|
||
|
||
1 /*----------------------------------------------------------------------------------------------------*/
|
||
2 /* */
|
||
3 /* PLC 梯型图(指令编码)转 51 C 程序示范程序 */
|
||
4 /* */
|
||
5 /* 为防止 PLC 指令编码和 C 语言关键字混淆,特规定,所有 PLC 指令前面加下划线"_",所有点(BIT型) */
|
||
6 /* 前后各加下划线"_",所有点(WORD型)前加下划线"_",指令后面的数据用( )包含,数据中间用","分隔, */
|
||
7 /* 以示和 C 语言关键字区分及适应于 C 语言书写方法。 */
|
||
8 /* 所有十进制常数去掉前导"K",所有十六进制常数去掉前导"H"再加前导数字"0x",以便适应于 C 语言常 */
|
||
9 /* 数书写方法。这些下划线和加减前导数字将由 PLC 梯型图反编译程序自动加入。 */
|
||
10 /* */
|
||
11 /* 由于考虑到今后程序的移植,使之能适应于 AVR,STM8,NEC,PIC,H8,STM32......等任何单片机, */
|
||
12 /* 未使用 51单片机特有的 bit 操作指令,等程序修改稳定后再修改相关指令,优化程序代码,提升执行速度, */
|
||
13 /* 使之更适合 51单片机的使用。 */
|
||
14 /* */
|
||
15 /* 本程序支持混合编程,即在 PLC 指令编码中可任意插入 C 语言语句,符合 C 语言规范的汇编语言语句。 */
|
||
16 /* 可使用现有的调试软件仿真器设置断点,单步,多步,跟踪,连续,全速等手段调试 PLC 程序,修改和监控 */
|
||
17 /* PLC 点元件状态和内容,使之更适合广大单片机爱好者使用。 */
|
||
18 /* */
|
||
19 /* 目前支持下列点(继续完善中): */
|
||
20 /* _X0_---_X57_,_Y0_---_S57_,_M0_---_M255_,_S0_---_S255_,_T0---_T31,_C0---_C31,_D0---_D31; */
|
||
21 /* */
|
||
-
|
||
22 /* 目前支持常数(继续完善中): */
|
||
23 /* K 范围:-32768---32767; H 范围:0---FFFFH; */
|
||
24 /* */
|
||
25 /* 目前支持特殊点数(继续完善中): */
|
||
26 /* _M8000_,_M8001_,_M8002_,_M8003_,_M8004_,_M8011_,_M8012_,_M8013_,_M8014_, */
|
||
27 /* _M8020_,_M8021_,_M8022_; */
|
||
28 /* */
|
||
29 /* 目前支持下列基本指令和扩展指令(继续完善中): */
|
||
30 /* _LD,_LDI,_AND,_ANI,_OR,_ORI,_INV,_OUT(_OUT_T,_OUT_C),_SET,_RST,_ANB,_ORB,_LDP,_LDF,_ANDP,_ANDF, */
|
||
31 /* _ORP,_ORF,_PLS,_PLF,_MPS,_MRD,_MPP,_NOP,END,_ADD,_SUB,_MUL,_DIV,_INC,_DEC,_WAND,_WOR,_WXOR, */
|
||
32 /* _NEG,_ALT,_MOV,_CML,_XCH,_BCD,_BIN,_LD>=,_LD<=,_LD>,_LD<,_LD<>,_LD=,_AND>=,_AND<=,_AND>,_AND<, */
|
||
33 /* _AND<>,_AND=,_OR>=,_OR<=,_OR>,_OR<,_OR<>,_OR=; */
|
||
34 /* */
|
||
35 /* 由于 C语言无法识别下列符号,特用下列英文缩写表示: */
|
||
36 /* 大于等于(>=) _GE,小于等于(<=) _LE,大于(>) _GT,小于(<) _LT,不相等(<>) _NE,相等(=) _EQ; */
|
||
37 /* 即指令集:_LD>=,_LD<=,_LD>,_LD<,_LD<>,_LD=,_AND>=,_AND<=,_AND>,_AND<,_AND<>,_AND=, */
|
||
38 /* _OR>=,_OR<=,_OR>,_OR<,_OR<>,_OR=; */
|
||
39 /* 用下列指令书写方式替代(由 PLC 梯型图反编译程序自动生成)。 */
|
||
40 /* _LD_GE,_LD_LE,_LD_GT,_LD_LT,_LD_NE,_LD_EQ,_AND_GE,_AND_LE,_AND_GT,_AND_LT,_AND_NE,_AND_EQ, */
|
||
41 /* _OR_GE,_OR_LE,_OR_GT,_OR_LT,_OR_NE,_OR_EQ; */
|
||
42 /* */
|
||
43 /* */
|
||
44 /* CPU : 51系列单片机 */
|
||
45 /* 晶振 : 11.0592MHz */
|
||
46 /* 作者 : 许意义 */
|
||
47 /* 版本 : V1.01 */
|
||
48 /* 日期 : 2009.6.18 */
|
||
49 /* 版权 : ourDEV.cn */
|
||
50 /* */
|
||
51 /*----------------------------------------------------------------------------------------------------*/
|
||
52
|
||
53 #include "plc_start.h"
|
||
54
|
||
C51 COMPILER V6.14 COMPUTER 07/07/2009 15:17:52 PAGE 2
|
||
|
||
55 //-------------------------------------------------------------------------------------//
|
||
56 // PLC 执行程序 //
|
||
57 //-------------------------------------------------------------------------------------//
|
||
58
|
||
59 void main_PLC(void)
|
||
60 {
|
||
61 1 _LD (_M8002_)
|
||
62 1 _ORP (_X20_)
|
||
63 1 _RST (_D0)
|
||
64 1 _RST (_D1)
|
||
65 1 _RST (_D2)
|
||
66 1 _RST (_M0_)
|
||
67 1 _LD (_M8000_)
|
||
68 1 _AND_LT (_D0,999)
|
||
69 1 _MPS
|
||
70 1 _ANDP (_X0_)
|
||
71 1 _MPS
|
||
72 1 _AND (_M0_)
|
||
73 1 _RST (_D0)
|
||
74 1 _RST (_M0_)
|
||
75 1 _MPP
|
||
76 1 _MUL (_D0,10,_D0)
|
||
77 1 _MRD
|
||
78 1 _ANDP (_X1_)
|
||
79 1 _MPS
|
||
80 1 _AND (_M0_)
|
||
81 1 _RST (_D0)
|
||
82 1 _RST (_M0_)
|
||
83 1 _MPP
|
||
84 1 _MUL (_D0,10,_D0)
|
||
85 1 _ADD (_D0,1,_D0)
|
||
86 1 _MRD
|
||
87 1 _ANDP (_X2_)
|
||
88 1 _MPS
|
||
89 1 _AND (_M0_)
|
||
90 1 _RST (_D0)
|
||
91 1 _RST (_M0_)
|
||
92 1 _MPP
|
||
93 1 _MUL (_D0,10,_D0)
|
||
94 1 _ADD (_D0,2,_D0)
|
||
95 1 _MRD
|
||
96 1 _ANDP (_X3_)
|
||
97 1 _MPS
|
||
98 1 _AND (_M0_)
|
||
99 1 _RST (_D0)
|
||
100 1 _RST (_M0_)
|
||
101 1 _MPP
|
||
102 1 _MUL (_D0,10,_D0)
|
||
103 1 _ADD (_D0,3,_D0)
|
||
104 1 _MRD
|
||
105 1 _ANDP (_X4_)
|
||
106 1 _MPS
|
||
107 1 _AND (_M0_)
|
||
108 1 _RST (_D0)
|
||
109 1 _RST (_M0_)
|
||
110 1 _MPP
|
||
111 1 _MUL (_D0,10,_D0)
|
||
112 1 _ADD (_D0,4,_D0)
|
||
113 1 _MRD
|
||
114 1 _ANDP (_X5_)
|
||
115 1 _MPS
|
||
116 1 _AND (_M0_)
|
||
C51 COMPILER V6.14 COMPUTER 07/07/2009 15:17:52 PAGE 3
|
||
|
||
117 1 _RST (_D0)
|
||
118 1 _RST (_M0_)
|
||
119 1 _MPP
|
||
120 1 _MUL (_D0,10,_D0)
|
||
121 1 _ADD (_D0,5,_D0)
|
||
122 1 _MRD
|
||
123 1 _ANDP (_X6_)
|
||
124 1 _MPS
|
||
125 1 _AND (_M0_)
|
||
126 1 _RST (_D0)
|
||
127 1 _RST (_M0_)
|
||
128 1 _MPP
|
||
129 1 _MUL (_D0,10,_D0)
|
||
130 1 _ADD (_D0,6,_D0)
|
||
131 1 _MRD
|
||
132 1 _ANDP (_X7_)
|
||
133 1 _MPS
|
||
134 1 _AND (_M0_)
|
||
135 1 _RST (_D0)
|
||
136 1 _RST (_M0_)
|
||
137 1 _MPP
|
||
138 1 _MUL (_D0,10,_D0)
|
||
139 1 _ADD (_D0,7,_D0)
|
||
140 1 _MRD
|
||
141 1 _ANDP (_X10_)
|
||
142 1 _MPS
|
||
143 1 _AND (_M0_)
|
||
144 1 _RST (_D0)
|
||
145 1 _RST (_M0_)
|
||
146 1 _MPP
|
||
147 1 _MUL (_D0,10,_D0)
|
||
148 1 _ADD (_D0,8,_D0)
|
||
149 1 _MPP
|
||
150 1 _ANDP (_X11_)
|
||
151 1 _MPS
|
||
152 1 _AND (_M0_)
|
||
153 1 _RST (_D0)
|
||
154 1 _RST (_M0_)
|
||
155 1 _MPP
|
||
156 1 _MUL (_D0,10,_D0)
|
||
157 1 _ADD (_D0,9,_D0)
|
||
158 1 _LDP (_X25_)
|
||
159 1 _MOV (1,_D2)
|
||
160 1 _MOV (_D0,_D1)
|
||
161 1 _SET (_M0_)
|
||
162 1 _LDP (_X22_)
|
||
163 1 _MOV (2,_D2)
|
||
164 1 _MOV (_D0,_D1)
|
||
165 1 _SET (_M0_)
|
||
166 1 _LDP (_X24_)
|
||
167 1 _MOV (3,_D2)
|
||
168 1 _MOV (_D0,_D1)
|
||
169 1 _SET (_M0_)
|
||
170 1 _LDP (_X23_)
|
||
171 1 _MOV (4,_D2)
|
||
172 1 _MOV (_D0,_D1)
|
||
173 1 _SET (_M0_)
|
||
174 1 _LD (_M8000_)
|
||
175 1 _MPS
|
||
176 1 _AND_EQ (_D2,1)
|
||
177 1 _OUT (_S251_)
|
||
178 1 _MRD
|
||
C51 COMPILER V6.14 COMPUTER 07/07/2009 15:17:52 PAGE 4
|
||
|
||
179 1 _AND_EQ (_D2,2)
|
||
180 1 _OUT (_S252_)
|
||
181 1 _MRD
|
||
182 1 _AND_EQ (_D2,3)
|
||
183 1 _OUT (_S253_)
|
||
184 1 _MPP
|
||
185 1 _AND_EQ (_D2,4)
|
||
186 1 _OUT (_S254_)
|
||
187 1 _LDP (_X21_)
|
||
188 1 _MPS
|
||
189 1 _AND_EQ (_D2,1)
|
||
190 1 _ADD (_D1,_D0,_D0)
|
||
191 1 _MRD
|
||
192 1 _AND_EQ (_D2,2)
|
||
193 1 _SUB (_D1,_D0,_D0)
|
||
194 1 _MRD
|
||
195 1 _AND_EQ (_D2,3)
|
||
196 1 _MUL (_D1,_D0,_D0)
|
||
197 1 _MRD
|
||
198 1 _AND_EQ (_D2,4)
|
||
199 1 _DIV (_D1,_D0,_D0)
|
||
200 1 _MPP
|
||
201 1 _RST (_D2)
|
||
202 1 _LD (_M8000_)
|
||
203 1 _AND_GT (_D0,9999)
|
||
204 1 _OUT (_S255_)
|
||
205 1 _LD (_M8000_)
|
||
206 1 _BCD (_D0,_D31)
|
||
207 1 _END
|
||
208 1 }
|
||
|
||
|
||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||
CODE SIZE = 4155 ----
|
||
CONSTANT SIZE = 32 ----
|
||
XDATA SIZE = 352 ----
|
||
PDATA SIZE = ---- ----
|
||
DATA SIZE = 59 30
|
||
IDATA SIZE = 32 ----
|
||
BIT SIZE = ---- ----
|
||
END OF MODULE INFORMATION.
|
||
|
||
|
||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|