📄 plc51x.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 + -