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

📄 plc51x.h

📁 PLC源代码
💻 H
字号:
#ifndef __PLC51X__H__
#define __PLC51X__H__	 1

/***************************************************************************************/ 

sbit HC166_CLK   =   P3^3;   // HC166-7 脚: CLK 时钟
sbit HC166_DATA  =   P1^4;   // HC166-13脚: QH  数据
sbit HC166_SL    =   P3^4;   // HC166-15脚: SL  锁存

sbit HC595_SCLK  =   P3^3;   // HC595-11脚: SCLK  时钟
sbit HC595_SDATA =   P3^7;   // HC595-14脚: SDATA 数据
sbit HC595_RCLK  =   P3^5;   // HC595-12脚: RCLK  锁存

//#define   Pulse_10ms   _M8011_
//#define   Pulse_100ms  _M8012_
//#define   Pulse_Sec    _M8013_
//#define   Pulse_Min    _M8014_

#define   Value      _D[31]  // 变频显示器LED显示缓冲区
#define   Va0        _S251_  // 变频显示器F/R指示显示缓冲区
#define   Va1        _S252_  // 变频显示器 Hz指示显示缓冲区
#define   Va2        _S253_  // 变频显示器 V 指示显示缓冲区
#define   Va3        _S254_  // 变频显示器 A 指示显示缓冲区 
#define   Va4        _S255_  // 变频显示器RUN指示显示缓冲区 
#define   Vb0        _S243_  // 变频显示器LED个位小数点显示缓冲区
#define   Vb1        _S244_  // 变频显示器LED十位小数点显示缓冲区
#define   Vb2        _S245_  // 变频显示器LED百位小数点显示缓冲区
#define   Vb3        _S246_  // 变频显示器LED千位小数点显示缓冲区
#define   Vc0        _S247_  // 变频显示器LED个位数熄灭标志
#define   Vc1        _S248_  // 变频显示器LED十位数熄灭标志
#define   Vc2        _S249_  // 变频显示器LED百位数熄灭标志
#define   Vc3        _S250_  // 变频显示器LED千位数熄灭标志
// 变频显示器扩展键盘输入端口
//   STOP/RESET -----> X20
//   RUN        -----> X21
//   下箭头     -----> X22
//   JOG        -----> X23
//   右移       -----> X24
//   上箭头     -----> X25
//   ENTER/DATA -----> X26
//   MENU/ESC   -----> X27

/***************************************************************************************/ 

#define   Value_T0_cons   0xEE00  // Timer0中断常数(8051_12T_11.0592MHz)
//#define   Value_T0_cons   0x2800  // Timer0中断常数(8051_1T_11.0592MHz)

/***************************************************************************************/ 

#define  DEBUG  0		 // DEBUG=1,测试; DEBUG=0,运行

//#define   PLCSTEP   8000         // PLC代码长度

#if  DEBUG
  extern unsigned char code CODE_START[];
#else
  #define   CODE_START   0x8000         // PLC执行代码缓冲区首地址
#endif

#define     CODE_END     CODE_START + PLCSTEP*2               // PLC执行代码缓冲区结束地址


extern volatile unsigned char   data  ACC_BIT;                         //  位运算器及 7级中间过渡栈
extern volatile unsigned char   data  MPS_BIT;                         //  位元件 8级堆栈

//-------------------------------------------------------------------------------------//
//  位元件 D 内存分配                                                                  //
//-------------------------------------------------------------------------------------//

extern volatile TYPE_BIT_BYTE   data  rX[_X_BYTE] , rY[_Y_BYTE];       //  位元件 X,Y 存储位
extern volatile TYPE_BIT_BYTE   data  rX1[_X_BYTE], rY1[_Y_BYTE];      //  位元件 X,Y 存储位上一步备份
extern volatile TYPE_BIT_BYTE   data  rM8xxx[3];                       //  位元件 M8xxx 存储位 
extern volatile TYPE_BIT_BYTE   data  rM8xxx1[3];                      //  位元件 M8xxx 存储位上一步备份 
extern volatile TYPE_BIT_BYTE   data  rTF[_T_BYTE];                    //  T 得电失电标志位 
extern volatile TYPE_BIT_BYTE   data  rCF[_C_BYTE];                    //  C 得电失电标志位 
extern volatile TYPE_BIT_BYTE   data  rT[_T_BYTE] , rC[_C_BYTE];       //  位元件 T,C 输出位    
extern volatile TYPE_BIT_BYTE   data  rT1[_T_BYTE], rC1[_C_BYTE];      //  位元件 T,C 输出位上一步备份
extern volatile TYPE_BIT_BYTE  xdata  rM[_M_BYTE];                     //  位元件 M 存储位
extern volatile TYPE_BIT_BYTE  xdata  rS[_S_BYTE];                     //  位元件 S 存储位
extern volatile TYPE_BIT_BYTE  xdata  rM1[_M_BYTE];				 	   //  位元件 M 存储位上一步备份
extern volatile TYPE_BIT_BYTE  xdata  rS1[_S_BYTE];                    //  位元件 S 存储位上一步备份
extern volatile signed   int   xdata  _T[_T_num][2];                   //  位元件 T 内存分配    
extern volatile signed   int   xdata  _C[_C_num];                      //  位元件 C 内存分配    
extern volatile signed   int   xdata  _D[_D_num];                      //  位元件 D 内存分配 

//-------------------------------------------------------------------------------------//

extern volatile unsigned char  xdata addr0T,addr1T,addr2T,addr3T,addr4T;  // 数据位第一至第五位字地址/数据类型

extern volatile TYPE_BYTES_WORD xdata addr0x,addr1x,addr2x,addr3x,addr4x; // 数据位第一至第五位字地址/数据缓冲区
#define   addr0     addr0x.WORD          // 数据位第一字地址/数据缓冲区
#define   addr0L    addr0x.BYTES.BYTEL   // 数据位第一字地址/数据低位
#define   addr0H    addr0x.BYTES.BYTEH   // 数据位第一字地址/数据高位
#define   addr1     addr1x.WORD          // 数据位第二字地址缓冲区
#define   addr1L    addr1x.BYTES.BYTEL   // 数据位第二字地址低位
#define   addr1H    addr1x.BYTES.BYTEH   // 数据位第二字地址高位
#define   addr2     addr2x.WORD          // 数据位第三字地址缓冲区
#define   addr2L    addr2x.BYTES.BYTEL   // 数据位第三字地址低位
#define   addr2H    addr2x.BYTES.BYTEH   // 数据位第三字地址高位
#define   addr3     addr3x.WORD          // 数据位第四字地址缓冲区
#define   addr3L    addr3x.BYTES.BYTEL   // 数据位第四字地址低位
#define   addr3H    addr3x.BYTES.BYTEH   // 数据位第四字地址高位
#define   addr4     addr4x.WORD          // 数据位第五字地址缓冲区
#define   addr4L    addr4x.BYTES.BYTEL   // 数据位第五字地址低位
#define   addr4H    addr4x.BYTES.BYTEH   // 数据位第五字地址高位

extern volatile TYPE_BYTES_WORD  xdata order0;	 // 命令位地址缓冲区
#define   order     order0.WORD           // 命令位地址缓冲区
#define   orderL    order0.BYTES.BYTEL    // 命令位地址缓冲区低位
#define   orderH    order0.BYTES.BYTEH    // 命令位地址缓冲区高位

extern volatile unsigned int ppp;
extern volatile unsigned char code *CODE_p;

//-------------------------------------------------------------------------------------//

#endif // __PLC51X__H__

⌨️ 快捷键说明

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