laoxu_plc/编译型/PLC51(V1.06)/PLC51/input.C

107 lines
6.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*----------------------------------------------------------------------------------------------------*/
/* */
/* PLC 梯型图(指令编码)转 51 C 程序示范程序 */
/* */
/* 为防止 PLC 指令编码和 C 语言关键字混淆,特规定,所有 PLC 指令前面加下划线"_"所有点BIT型 */
/* 前后各加下划线"_"所有点WORD型前加下划线"_",指令后面的数据用( )包含,数据中间用","分隔, */
/* 以示和 C 语言关键字区分及适应于 C 语言书写方法。 */
/* 所有十进制常数去掉前导"K",所有十六进制常数去掉前导"H"再加前导数字"0x",以便适应于 C 语言常 */
/* 数书写方法。这些下划线和加减前导数字将由 PLC 梯型图反编译程序自动加入。 */
/* */
/* 由于考虑到今后程序的移植,使之能适应于 AVRSTM8NECPICH8STM32......等任何单片机, */
/* 未使用 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
}