📄 simpleplc.h
字号:
#define F_CPU 8000000UL
#include <avr\io.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>
#ifndef __SIMPLEPLC__
#define __SIMPLEPLC__
#define _PLC_USE_C_ 1 // 使用计数器
#define Set_Bit(val, bitn) (val |=(1<<(bitn)))
#define Clr_Bit(val, bitn) (val&=~(1<<(bitn)))
#define Get_Bit(val, bitn) (val &(1<<(bitn)))
#define MAX_TIMER 8 // 最大定时器数量
#define NORUN 0 // 不运行
#define RUN 1 // 运行
#define MAX_INPUT 16 // 输入触点个数
#define MAX_OUTPUT 16 // 输出触点个数
#define OUTPUT_TOP 32 // 输入触点和输出触点之和
#define MAX_APUT 32 // 中间继电器个数
#define APUT_TOP 64 // 中间继电器个数、输入、输出触点个数之和
#define MAX_COUNTER 16 // 计数器最大个数
#define I(a) (a) // 输入触点
#define O(a) (a+MAX_INPUT) // 输出触点
#define A(a) (a+OUTPUT_TOP) // 中间触点
#define C(a) (a+APUT_TOP) // 计数器触点
#define OUTPIN (unsigned int)((PIND<<8)+PINC)
#define MAX_TMPPORT 8 // 暂存变量的个数
#define GETTOP() gettop_stack() // 得到栈顶的元素
void PUSH_STACK();
#define POP_STACK() pop_stack() // 出栈命令
#define STACK_MAX 16 // 堆栈最大深度
void push_stack(unsigned int dat);
unsigned int pop_stack(void);
void clear_stack(void);
unsigned int gettop_stack(void);
void LD(unsigned char a);
void NLD(unsigned char a);
void ST(unsigned char a);
void AND(unsigned char a);
void NAND(unsigned char a);
void OR(unsigned char a);
void NOR(unsigned char a);
void GETNEXT(void);
void TOTAL(void);
void OUT(unsigned char a);
void BEG(void);
void END(void);
void INIT(void);
void INIT_TIMER(void);
void AutoTime(void); // 自动调整时间
void SetTimer(unsigned char id,unsigned char Hour,unsigned char minute,unsigned char second,unsigned char tick);
void StartTimer(unsigned char id);
void StopTimer(unsigned char id);
void TCMP(unsigned char id ,unsigned char hour,
unsigned char minute, unsigned char second,unsigned char tick,unsigned char out_less,
unsigned char out_equ,unsigned char out_great);
void TADD(unsigned char id ,unsigned char hour,
unsigned char minute, unsigned char second,unsigned char tick);
void RESETC(unsigned char id);
void COUNTER(unsigned id,unsigned topval);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -