107 lines
6.4 KiB
C
107 lines
6.4 KiB
C
/*----------------------------------------------------------------------------------------------------*/
|
||
/* */
|
||
/* PLC 梯型图(指令编码)转 51 C 程序示范程序 */
|
||
/* */
|
||
/* 为防止 PLC 指令编码和 C 语言关键字混淆,特规定,所有 PLC 指令前面加下划线"_",所有点(BIT型) */
|
||
/* 前后各加下划线"_",所有点(WORD型)前加下划线"_",指令后面的数据用( )包含,数据中间用","分隔, */
|
||
/* 以示和 C 语言关键字区分及适应于 C 语言书写方法。 */
|
||
/* 所有十进制常数去掉前导"K",所有十六进制常数去掉前导"H"再加前导数字"0x",以便适应于 C 语言常 */
|
||
/* 数书写方法。这些下划线和加减前导数字将由 PLC 梯型图反编译程序自动加入。 */
|
||
/* */
|
||
/* 由于考虑到今后程序的移植,使之能适应于 AVR,STM8,NEC,PIC,H8,STM32......等任何单片机, */
|
||
/* 未使用 51单片机特有的 bit 操作指令,等程序修改稳定后再修改相关指令,优化程序代码,提升执行速度, */
|
||
/* 使之更适合 51单片机的使用。 */
|
||
/* */
|
||
/* 本程序支持混合编程,即在 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_; */
|
||
/* */
|
||
/* 目前支持下列基本指令和扩展指令(继续完善中): */
|
||
/* _LD,_LDI,_AND,_ANI,_OR,_ORI,_INV,_OUT(_OUT_T,_OUT_C),_SET,_RST,_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.01 */
|
||
/* 日期 : 2009.6.18 */
|
||
/* 版权 : ourDEV.cn */
|
||
/* */
|
||
/*----------------------------------------------------------------------------------------------------*/
|
||
|
||
#include "plc_start.h"
|
||
|
||
//-------------------------------------------------------------------------------------//
|
||
// PLC 执行程序 //
|
||
//-------------------------------------------------------------------------------------//
|
||
|
||
void main_PLC(void)
|
||
{
|
||
_LD (_M8002_)
|
||
_RST (_D0)
|
||
_LDP (_X0_)
|
||
_MOV (1,_D0)
|
||
_LDP (_X1_)
|
||
_MOV (2,_D0)
|
||
_LDP (_X2_)
|
||
_MOV (3,_D0)
|
||
_LDP (_X3_)
|
||
_MOV (4,_D0)
|
||
_LDP (_X4_)
|
||
_MOV (5,_D0)
|
||
_LDP (_X5_)
|
||
_MOV (6,_D0)
|
||
_LDP (_X6_)
|
||
_MOV (7,_D0)
|
||
_LDP (_X7_)
|
||
_MOV (8,_D0)
|
||
_LDP (_X10_)
|
||
_MOV (9,_D0)
|
||
_LDP (_X11_)
|
||
_MOV (10,_D0)
|
||
_LDP (_X12_)
|
||
_MOV (11,_D0)
|
||
_LDP (_X13_)
|
||
_MOV (12,_D0)
|
||
_LDP (_X20_)
|
||
_MOV (13,_D0)
|
||
_LDP (_X21_)
|
||
_MOV (14,_D0)
|
||
_LDP (_X22_)
|
||
_MOV (15,_D0)
|
||
_LDP (_X23_)
|
||
_MOV (16,_D0)
|
||
_LDP (_X24_)
|
||
_MOV (17,_D0)
|
||
_LDP (_X25_)
|
||
_MOV (18,_D0)
|
||
_LDP (_X26_)
|
||
_MOV (19,_D0)
|
||
_LDP (_X27_)
|
||
_MOV (20,_D0)
|
||
_LD (_M8000_)
|
||
_BCD (_D0,_D31)
|
||
_END
|
||
}
|