⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plc51x_fnc.lst

📁 PLC源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 129          //                                                                                                                         //
 130          //                                                              FNC 指令编程格式描述                                   //
 131          //                                                                                                                         //
 132          //    函数名称:   FNC_xxx                                                                  //
 133          //    函数类型:   void FNC_xxx(void)                                                       //
 134          //                                                                                                                         //
 135          //    功能描述:  执行 FNC 扩展命令                                                        //
 136          //                                                                                                                         //
 137          //    入口参数:  无                                                                       //
 138          //                                                                                                                         //
 139          //    出口参数:  无                                                                       //
 140          //                                                                                                                         //
 141          //    全局变量:   addr0   (addr0x.WORD        )   // 数据位第一字地址/数据缓冲区         //
 142          //                addr0L  (addr0x.BYTES.BYTEL )   // 数据位第一字地址/数据低位           //
 143          //                addr0H  (addr0x.BYTES.BYTEH )   // 数据位第一字地址/数据高位           //
 144          //                addr1   (addr1x.WORD        )   // 数据位第二字地址缓冲区              //
 145          //                addr1L  (addr1x.BYTES.BYTEL )   // 数据位第二字地址低位                        //
 146          //                addr1H  (addr1x.BYTES.BYTEH )   // 数据位第二字地址高位                        //
 147          //                addr2   (addr2x.WORD        )   // 数据位第三字地址缓冲区                  //
 148          //                addr2L  (addr2x.BYTES.BYTEL )   // 数据位第三字地址低位                //
 149          //                addr2H  (addr2x.BYTES.BYTEH )   // 数据位第三字地址高位                            //
 150          //                addr3   (addr3x.WORD        )   // 数据位第四字地址缓冲区                  //
 151          //                addr3L  (addr3x.BYTES.BYTEL )   // 数据位第四字地址低位                            //
 152          //                addr3H  (addr3x.BYTES.BYTEH )   // 数据位第四字地址高位                //
 153          //                addr4   (addr4x.WORD        )   // 数据位第五字地址缓冲区              //
 154          //                addr4L  (addr4x.BYTES.BYTEL )   // 数据位第五字地址低位                //
 155          //                addr4H  (addr4x.BYTES.BYTEH )   // 数据位第五字地址高位                //
 156          //                                                                                                                         //
 157          //                                                                                                                         //
 158          //-----------------------------------------------------------------------------------------//
 159          //    调用模块:  void RD_ADDR(int a, unsigned char c)                                     //
 160          //                                                                                         //
 161          //    注    释:  从 PLC 指定的点地址读入数据                                              //
 162          //                                                                                         //
 163          //    入口参数:  int a            点地址                                                  //
 164          //                unsigned char c  地址格式 m=(c&0xe0)>>4, n=(c&0x1f);                     //
 165          //                                                                                         //
 166          //    出口参数:  int              读入的数据                                              //
 167          //-----------------------------------------------------------------------------------------//
 168          //    调用模块:   void WR_ADDR(int a, int b, unsigned char c)                              //
 169          //                                                                                         //
 170          //    注    释:  将数据写入 PLC 指定的点地址                                              //
 171          //                                                                                         //
 172          //    入口参数:  int a            点地址                                                  //
 173          //                int b            写入的数据                                              //
 174          //                unsigned char c  地址格式 m=(c&0xe0)>>4, n=(c&0x1f);                     //
 175          //                                                                                         //
 176          //    出口参数:  无                                                                       //
 177          //-----------------------------------------------------------------------------------------//
 178          //                                                                                                                         //
 179          //    模块描述:                                                                           //
C51 COMPILER V8.16   PLC51X_FNC                                                            10/10/2009 14:43:38 PAGE 4   

 180          //                                                                                         //
 181          //                                                                                                                         //
 182          //    作   者:   许意义                                                                                       //
 183          //    日   期:   2009年9月26日                                                                        //
 184          //    备    注:                                                                                                            //
 185          //-----------------------------------------------------------------------------------------//
 186          //    修 改 人:                                                                                                        //
 187          //    日   期:                                                                                                        //
 188          //    备    注:                                                                                                            //
 189          //-----------------------------------------------------------------------------------------//
 190          
 191          #include "SYSTEM.h"
 192          #include "REG_MPC82G516.H"
 193          #include "PLC51x_TYPE.H"
 194          #include "PLC51x_SYS.H"
 195          #include "PLC51x.H"
 196          #include "PLC51x_FNC.H"
 197          
 198          /******************************************************************************************************/ 
 199          
 200          code (*key_list[16])();
 201          code (*key_list_1[12][2])();
 202          code (*key_list_2[14][2])();
 203          code (*key_list_3[256])();
 204          int RD_ADDR(unsigned int a, unsigned char c);
 205          
 206          #define   CSP_Pn_MAX    8
 207          #define   CALL_SP_MAX   2
 208          volatile unsigned char        CALL_SP_i;
 209          volatile unsigned char code  *CALL_SP[CALL_SP_MAX];
 210          volatile unsigned char code  *CSP_Pn[CSP_Pn_MAX+1];
 211          
 212          volatile          bit        CODE_ERROR;
 213          volatile unsigned int  data  PS_BIT;                         //  P 指令16级暂存
 214          volatile unsigned int  data  PS1_BIT;                        //  P 指令16级暂存备份
 215          volatile unsigned int  data  Pi;                             //  P 指令16级暂存位置指针
 216          
 217          /********************************************  程序开始  **********************************************/ 
 218          
 219          //-----------------------------------------------------------------------------------------//
 220          //    数组名称:   BYTE_BIT                                                                 //
 221          //    数组类型:   unsigned char code BYTE_BIT[8]                                           //
 222          //                                                                                                                         //
 223          //    功能描述:  BYTE 字节型 BIT 位表                                                     //
 224          //                                                                                                                         //
 225          //    入口参数:  BIT 位编号                                                               //
 226          //                                                                                                                         //
 227          //    出口参数:  返回 BYTE 字节中 BIT 屏蔽位                                              //
 228          //                                                                                                                         //
 229          //                                                                                                                         //
 230          //    作   者:   许意义                                                                                       //
 231          //    日   期:   2009年10月2日                                                                        //
 232          //    备    注:                                                                                                            //
 233          //-----------------------------------------------------------------------------------------//
 234          //    修 改 人:                                                                                                        //
 235          //    日   期:                                                                                                        //
 236          //    备    注:                                                                                                            //
 237          //-----------------------------------------------------------------------------------------//
 238          
 239          unsigned char code BYTE_BIT_s[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
 240          unsigned char code BYTE_BIT_w[8]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80};
 241          unsigned char code BYTE_BIT_e[8]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
C51 COMPILER V8.16   PLC51X_FNC                                                            10/10/2009 14:43:38 PAGE 5   

 242          
 243          //-----------------------------------------------------------------------------------------//
 244          //    数组名称:   FNC_CMD_LNE                                                              //
 245          //    数组类型:   unsigned char code FNC_CMD_LNE[256]                                      //
 246          //                                                                                                                         //
 247          //    功能描述:  返回单条 FNC指令后面跟随的命令/数据字长度                                //
 248          //                                                                                                                         //
 249          //    入口参数:  FNC指令代码编号                                                          //
 250          //                                                                                                                         //
 251          //    出口参数:  返回本条 FNC指令后面跟随的命令/数据字长度                                //
 252          //                                                                                                                         //
 253          //                                                                                                                         //
 254          //    作   者:   许意义                                                                                       //
 255          //    日   期:   2009年9月26日                                                                        //
 256          //    备    注:                                                                                                            //
 257          //-----------------------------------------------------------------------------------------//
 258          //    修 改 人:                                                                                                        //
 259          //    日   期:                                                                                                        //
 260          //    备    注:                                                                                                            //
 261          //-----------------------------------------------------------------------------------------//
 262          
 263          unsigned char code FNC_CMD_LNE[256]={
 264                    1,1,0,0,0,0,0,0,1,0,
 265                    3,4,2,5,2,3,3,2,2,2,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -