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

📄 plc51x.lst

📁 PLC源代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V8.16   PLC51X                                                                10/10/2009 14:43:40 PAGE 1   


C51 COMPILER V8.16, COMPILATION OF MODULE PLC51X
OBJECT MODULE PLACED IN PLC51x.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE PLC51x.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                                                                10/10/2009 14:43:40 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                                                                10/10/2009 14:43:40 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          #include "SYSTEM.h"
 128          #include "PLC51x_TYPE.H"
 129          #include "PLC51x_SYS.H"
 130          #include "PLC51x.H"
 131          #include "PLC51x_FNC.H"
 132          
 133          
 134          bit  RUN = 0;
 135           
 136          unsigned int code TYPE_BCD[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,    // LED显示器段码表
 137                                           0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};  // 0123456789AbCdEF
 138          
 139          /***************************************************************************************/ 
 140          
 141          unsigned char  Timer_5ms;         // 5ms时基计数器,5ms Timer0中断计数
 142          unsigned char  Timer_10ms;        // 10ms时基计数器,5ms Timer0中断计数
 143          unsigned char  Timer_100ms;       // 100ms时基计数器,5ms Timer0中断计数
 144          unsigned char  Pulse_val_Sec;     // 1s时基计数器
 145          unsigned char  Pulse_val_Min;     // 1min时基计数器
 146          bit   Pulse_10ms ;
 147          bit   Pulse_100ms;
 148          bit   Pulse_Sec  ;
 149          bit   Pulse_Min  ;
 150          
 151          /***************************************************************************************/ 
 152          
 153          volatile unsigned char   data  ACC_BIT;                         //  位运算器及 7级中间过渡栈

⌨️ 快捷键说明

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